Есть ли разница или она то же самое?
Является ли 'auto const' и 'const auto' одинаковым?
Ответ 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*
).