为什么 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 是右值引用?
auto&&
是一个相当于转发引用的声明(具有相同的推导规则)。因此,当初始化器是左值时,它将被推导为左值引用。然而,var
是一个左值(因为它是变量的名称),因此var2
是左值引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)