O loop baseado em intervalos é benéfico para o desempenho?

Lendo várias questões aqui no Stack Overflow sobre os iteradores e o desempenho do C ++ **, comecei a pensar sefor(auto& elem : container) fica "expandido" pelo compilador na melhor versão possível? (Meio queauto, que o compilador infere imediatamente no tipo certo e, portanto, nunca é mais lento e às vezes mais rápido).

** Por exemplo, importa se você escreve

for(iterator it = container.begin(), eit = container.end(); it != eit; ++it)

ou

for(iterator it = container.begin(); it != container.end(); ++it)

para recipientes não invalidados?

questionAnswers(5)

yourAnswerToTheQuestion