【发布时间】:2013-09-15 19:40:21
【问题描述】:
在过去的几天里,我一直试图掌握左值/右值引用背后的一个看似微不足道的原则。让我们定义一个新的右值引用:
int&& x = 12;
x 因此是int&& 类型的左值表达式。由于x 是一个左值,它可以绑定到相同类型的左值引用,即int&& 类型的左值引用。这样的左值引用将被定义为:
int&& & ref_x = x; // non-working code, just for the sake of explanation
当然,不能显式定义一个引用到一个引用,正确的绑定方式如下:
int& ref_x = x;
C++ Primer 报告了以下关于使用引用作为初始值设定项的内容:
当我们使用引用作为初始化器时,我们实际上是在使用 引用绑定的对象
另一方面,左值引用必须与左值表达式的类型相匹配。我错过了什么?这种情况下是否涉及到引用折叠?
谢谢。
【问题讨论】:
标签: c++ c++11 rvalue-reference lvalue