Como const auto e auto const se aplicam a ponteiros?
Eu estava tentando algum código e estou me perguntando como oconst
qualificador em C ++ se aplica a tipos de ponteiros ao usarauto
.
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;
}
Percebo que há uma pergunta semelhante perguntando se são iguais. Estou perguntando mais especificamente qual é a regra aqui que está sendo aplicada à dedução do tipo de ponteiro final.