My confusion is based on the following function declarations:
foo(int const &) // (1) -- compiles
foo(const int &) // (2) -- compiles
foo( const int * const & ) // (3) -- compiles
foo( const int const & ) // (4) -- does _NOT_ compile
Question 1
Assuming the declarations of (1) and (2) are equal: do they take a parameter of type non-const reference to an const int or const reference to an non-const int?
Question 2
Why is it valid to declare a const reference to a const int * but not valid to declare a const reference to a const int?
Log from gcc-compiler version 5.4.0 compiling prototype (4):
error: ‘const’ qualifiers cannot be applied to ‘const int&’
foo ( const int & const a )
Aucun commentaire:
Enregistrer un commentaire