为什么Rvalue不能绑定Lvalue引用
Why Rvalue cannot bind Lvalue reference?
这是一个简单而古老的问题。我确信这一定是在别的地方问的。但在谷歌搜索了30多分钟后,我决定再次询问这里。关于价值参考的信息泛滥,让我很难找到合适的网页来解决这个问题。
这个决定背后的原因是什么,右值不能绑定左值引用?
Rvalue通常是即将死亡的东西或文字。如果此代码合法:int &r = 5
那么你可以修改5,但这没有意义!引用(任何类型的)只是被引用对象的别名
但是,对const的左值引用禁止对对象进行任何更改,因此您可以将它们绑定到右值const int &r = 5; // ok
r = 10; // compilation error
相关文章:
- 对RValue对象调用的LValue ref限定成员函数
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 编译C++时未定义的引用
- 为什么不能使用 rvalue 来初始化 lvalue 引用
- 每当传递lvalue时,每当通过rvalue传递时,将const引用存储
- C 〜引用非const的初始值必须是lvalue
- 为什么const/nonconst lvalue引用与rvalue参考结合
- rvalue引用lVALUE参考-UB
- 返回const lvalue引用rvalue临时?为什么这项工作
- 从大括号括起来的初始值设定项列表进行的Lvalue引用初始化无法编译
- 使用 LValue 引用移动语义
- 可以在分配它的对象被销毁后访问返回的 LValue 引用
- Lvalue引用绑定
- 为什么Rvalue不能绑定Lvalue引用
- 将一个数组中的引用分配给另一个数组 - "warning: target of assignment not really an lvalue"
- 引用(类型 &)"non-const lvalue reference to type cannot bind"错误,但指针(类型 *)不错误