Duplicar posible:
Advantages of using forwardReenvío perfecto: ¿de qué se trata?
Podría alguien explicarme qué reenvío perfecto es esto?
Duplicar posible:
Advantages of using forwardReenvío perfecto: ¿de qué se trata?
Podría alguien explicarme qué reenvío perfecto es esto?
http://www.justsoftwaresolutions.co.uk/cplusplus/rvalue_references_and_perfect_forwarding.html
¿Por qué es ú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.
Citando Session Announcement: Adventures in Perfect Forwarding:
Perfeccionamiento de reenvío es una importante técnica de C++ 0x construido encima de referencias rvalue. Permite que la semántica de movimiento sea automáticamente aplicada, incluso cuando la fuente y el destino de un movimiento son separados por llamadas a funciones intermedias. Los ejemplos comunes incluyen constructores y funciones setter que reenvían argumentos que reciben a los miembros de datos de la clase que están inicializando o configurando, como así como funciones de biblioteca estándar como make_shared, que "perfecciona" sus argumentos al constructor de clase del objeto que debe crear el shared_ptr que se creará.
El enlace que proporcionó en esta respuesta ya no existe ... – TheCrafter
Acabo de llegar aquí. Tal vez esto le ahorre a alguien un poco de tiempo. https://cppandbeyond.wordpress.com/2011/04/25/session-announcement-adventures-in-perfect-forwarding/ – rfx
Me lo ganaste :) –
Merece la pena recordar los artículos que has marcado. ;) –
que es un gran artículo, gracias. –