cpp and c++11 terminology perfect-forwarding

c++11 - and - Reenvío perfecto: ¿de qué se trata?



virtual and override c++ (2)

Anuncio de la sesión citando : aventuras en reenvío perfecto :

Perfeccionar el reenvío es una técnica importante de C ++ 0x construida sobre las referencias de valores r. Permite que la semántica de movimientos se aplique automáticamente, incluso cuando la fuente y el destino de un movimiento están separados por llamadas a funciones intermedias. Los ejemplos comunes incluyen constructores y funciones setter que envían argumentos que reciben a los miembros de datos de la clase que están inicializando o configurando, así como funciones de biblioteca estándar como make_shared, que "adelanta" sus argumentos al constructor de clase de cualquier objeto a crearse shared_ptr es señalar.

Posible duplicado:
Ventajas de usar adelante

¿Podría alguien por favor explicarme de qué se trata el reenvío perfecto?


http://www.justsoftwaresolutions.co.uk/cplusplus/rvalue_references_and_perfect_forwarding.html

¿Por qué es esto útil? Bueno, significa que una plantilla de función puede pasar sus argumentos a otra función mientras conserva la naturaleza lvalue / rvalue de los argumentos de la función usando std :: forward. Esto se denomina "reenvío perfecto", evita la copia excesiva y evita que el autor de la plantilla tenga que escribir sobrecargas múltiples para las referencias lvalue y rvalue.