¿Cómo se aplican const auto y auto const a los punteros?
Estaba probando un código y me pregunto cómoconst
el calificador en C ++ se aplica a los tipos de puntero cuando se usaauto
.
int main()
{
int foo = 1;
int bar = 2;
//Expected: const int * ptr_to_const_int = &foo;
const auto ptr_to_const_int = &foo;
//Expected: int * const const_ptr_to_int = &foo;
auto const const_ptr_to_int = &foo;
*ptr_to_const_int = 3; //Thought this would error
//ptr_to_const_int = &bar; This does error.
*const_ptr_to_int = 3;
return 0;
}
Me doy cuenta de que hay una pregunta similar que pregunta si son iguales, estoy preguntando más específicamente cuál es la regla aquí que se aplica a la deducción del tipo de puntero final.