Qual é a vantagem de usar referências universais em loops baseados em intervalo?
const auto&
seria suficiente se eu quiser realizar operações somente leitura. No entanto, eu esbarrei
for (auto&& e : v) // v is non-const
algumas vezes recentemente. Isso me faz pensar:
É possível que em alguns casos obscuros haja algum benefício no desempenho ao usar referências universais, comparado aauto&
ouconst auto&
?
(shared_ptr
é um suspeito para casos de canto obscuros)
Atualizar Dois exemplos que encontrei nos meus favoritos:
Alguma desvantagem de usar referência const ao iterar sobre tipos básicos?
Posso facilmente iterar sobre os valores de um mapa usando um loop baseado em intervalo?
Por favor, concentre-se na questão:Por que eu iria querer usar auto && em loops baseados em intervalo?