¿Cuál es la ventaja de usar referencias universales en bucles basados en rango?
const auto&
bastaría si quisiera realizar operaciones de solo lectura. Sin embargo, me he topado con
for (auto&& e : v) // v is non-const
Un par de veces recientemente. Esto me hace preguntarme:
¿Es posible que en algunos casos oscuros de esquina haya algún beneficio de rendimiento en el uso de referencias universales, en comparación conauto&
oconst auto&
?
(shared_ptr
es un sospechoso de casos de esquina oscura)
Actualizar Dos ejemplos que encontré en mis favoritos:
¿Alguna desventaja de usar la referencia const cuando se itera sobre tipos básicos?
¿Puedo iterar fácilmente sobre los valores de un mapa usando un bucle para rango basado en rango?
Por favor concéntrate en la pregunta:¿Por qué querría usar auto && en bucles basados en rango?