У меня была ошибка, потому что это, и это заставило меня задуматься, почему это было разработано таким образом.
Я чувствую, что было бы лучше, чтобы auto что-то: контейнер производил ссылки, а не значения.
Например:
int t[3]{11,22,33};
for(int& el:t2)
el*=2;
дает 22,44,66
int t[3]{11,22,33};
for(auto el:t2)
el*=2;
"ничего не делает".