Я новичок в С++ и пытаюсь изучить концепцию ключевого слова "авто" и ссылки. Я видел этот вопрос и ответ в Интернете.
Является ли следующий диапазон законным? Если да, то какой тип c?
const string s = "Keep out!";
for (auto &c : s){ /*... */ }
И ответ таков:
В зависимости от кода внутри тела цикла for. Например:
cout << c; // legal.
c = 'X'; // illegal.
Никаких объяснений предоставлено не было. Может ли кто-нибудь объяснить, почему это так?
c
вообще не зависит от тела цикла. В целом система типов C++ работает иначе, за одним известным мне исключением. - person chris   schedule 02.02.2016