在过去的几天里,我一直试图掌握左值/右值引用背后的一个明显微不足道的原则。让我们定义一个新的右值引用:
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 报告了以下关于使用引用作为初始值设定项的内容:
当我们使用引用作为初始化器时,我们实际上是在使用引用绑定到的对象
另一方面,左值引用必须与左值表达式的类型相匹配。我错过了什么?在这种情况下是否涉及参考崩溃?
谢谢。