62

可能重复:
使用 forward 的优点

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

4

2 回答 2

57

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

为什么这很有用?好吧,这意味着函数模板可以将其参数传递给另一个函数,同时通过使用 std::forward 保留函数参数的左值/右值性质。这称为“完美转发”,避免过度复制,并避免模板作者为左值和右值引用编写多个重载。

于 2011-07-26T11:25:04.657 回答
12

报价环节公告:完美转发历险记

完善转发是建立在右值引用之上的一项重要的 C++0x 技术。它允许自动应用移动语义,即使移动的源和目标被中间函数调用分开。常见的例子包括构造函数和设置函数,它们将接收到的参数转发给它们正在初始化或设置的类的数据成员,以及像 make_shared 这样的标准库函数,它将其参数“完美转发”到任何对象的类构造函数。 to-be-created shared_ptr 是指向。

于 2011-07-26T11:25:08.013 回答