【发布时间】:2016-01-20 12:03:07
【问题描述】:
为什么 auto&& 不是右值引用?
Widget&& var1 = Widget(); // rvalue reference
auto&& var2 = var1; //var2 not rvalue reference
以下是右值引用示例
void f(Widget&& param); // rvalue reference
Widget&& var1 = Widget(); // rvalue reference
为什么 var2 不是右值引用,而 f 和 var2 是右值引用?
【问题讨论】:
-
我建议阅读this article 转发引用(以前称为通用引用)。
-
添加
auto&& var3 = 10作为右值引用 -
因为命名的右值引用是左值。
-
“左值引用”和“右值引用”指的是如何绑定引用。绑定后它只是一个引用,除了
decltype的结果之外不再有任何区别。请更新您的问题以显示您如何确定“非右值参考”
标签: c++ c++11 auto forwarding-reference