万能引用是模板中T&&形式的参数,可推导为左值或右值引用:传入左值时T被推导为U&,最终类型为U&;传入右值时T被推导为U,最终类型为U&&。

在C++模板元编程中,完美转发(Perfect Forwarding)是指将函数模板的参数以完全相同的方式(包括左值/右值属性、const/volatile限定等)传递给另一个函数。实现这一功能的关键是结合万能引用(Universal Reference)和std::forward。
什么是万能引用(Universal Reference)
万能引用出现在模板参数推导中,形式为 T&&,这里的 T 是一个模板类型参数。它之所以“万能”,是因为它可以被推导为左值引用或右值引用:
- 当传入左值时,T 被推导为 U&,于是 (引用折叠规则)
- 当传入右值时,T 被推导为 就是
template
void wrapper(T&& arg) {
real_function(std::forward(arg));
}解释:
标签: c++
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~