Читая различные вопросы здесь, в Stack Переполнение об итераторах C++ и производительности **, я начал задаваться вопросом, будет ли for(auto& elem : container)
"расширяться" компилятором до наилучшей возможной версии? (Наподобие auto
, который компилятор сразу преобразует в правильный тип и поэтому никогда не бывает медленнее, а иногда и быстрее).
** Например, имеет ли значение, пишете ли вы
for(iterator it = container.begin(), eit = container.end(); it != eit; ++it)
или
for(iterator it = container.begin(); it != container.end(); ++it)
для неаннулирующих контейнеров?