完美的转发 – 这是关于什么的?

可能重复:
使用forward的优点

有人可以向我解释什么是完美的转发?

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

为什么这是有用的? 那么,这意味着一个函数模板可以通过使用std :: forward来保留函数参数的左值/右值性质。 这被称为“完美转发”,避免了过度复制,避免了模板作者为左值和右值引用写入多个重载。

引用会话公告:完美转发的冒险 :

完善转发是在rvalue引用之上构build的一个重要的C ++ 0x技术。 它允许移动语义被自动应用,即使移动的源和目标是通过中间函数调用分开的。 常见的例子包括构造函数和setter函数,它们将接收到的参数转发给正在初始化或设置的类的数据成员,以及标准库函数(如make_shared),它将参数“完美”转发给任何对象的类构造函数待创build的shared_ptr是指向的。