Подтвердить что ты не робот

Является ли 'auto const' и 'const auto' одинаковым?

Есть ли разница или она то же самое?

4b9b3361

Ответ 1

Квалификатор const относится к типу к немедленному левому, если нет ничего слева, а затем применяется к типу сразу справа. Так что это то же самое.

Ответ 2

Упрощенный пример:

std::vector<char*> test;
const auto a = test[0];
*a = 'c';
a = 0; // does not compile
auto const b = test[1];
*b = 'c';
b = 0; // does not compile

Оба a и b имеют тип char* const. Не думайте, что вы можете просто "вставить" тип вместо ключевого слова auto (здесь: const char* a)! Ключевое слово const будет применяться ко всему типу, который соответствует auto (здесь: char*).