применяется к самому указателю или объекту, на который он указывает, тогда как в этом случае больше нет двусмысленности.
робовал какой-то код, и мне интересно, какconst
квалификатор в C ++ применяется к типам указателей при использованииauto
.
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;
}
Я понимаю, что есть аналогичный вопрос, спрашивающий, являются ли они одинаковыми, я спрашиваю более конкретно, какое правило здесь применяется к выводу типа указателя конца.