将RVALUE参考分配给LVALUE参考
assigning Rvalue reference to Lvalue reference
int&& rv = 10;
int& lv = rv; //no error
怎么可能?
这与"参考折叠规则"有关?
int&& rv = 10;
int& lv = rv; //no error
首先,名为对象的是从不 rvalue。其次,由于 rv
是命名对象,即使它绑定到rvalue,也不是rvalue。由于rv
是LVALUE,因此它可以绑定到LVALUE而不会出现任何问题。
请注意,rvalue-ness是 expression 的属性,而不是 actible 。在上面的示例中,由10
创建一个rvalue并与rv
结合,正如我所说,它是lvalue。
相关文章:
- RVALUE参考与const lVALUE参考作为参数之间的混淆
- RVALUE参考与LVALUE结合
- C 11:为什么RVALUE参考参数隐式转换为LVALUE
- 如何使用转发将RVALUE铸造为lvalue参考
- 是否有一种方法可以避免在RVALUE和LVALUE参考中创建功能时避免重复的代码
- 如果lvalue,请参考,如果rvalue进行复制,即使rvalue持久
- C 接收const lvalue和rvalue参考参数,而无需过载
- rvalue参考绑定到std ::功能类型的LVALUE
- C ,为什么可以将RVALUE传递到将lVALUE参考作为参数的函数
- 统一处理LVALUE和RVALUE参考
- 将const lvalue参考作为rvalue参考
- 通用参考模板类型始终评估到LVALUE
- LVALUE参考和RVALUE参考之间的过载分辨率
- 为什么const/nonconst lvalue引用与rvalue参考结合
- rvalue引用lVALUE参考-UB
- 需要进一步的解释:参考非const的初始价值必须是lvalue
- C :RVALUE参考转换为非const lvalue-Reference
- 将RVALUE参考分配给LVALUE参考
- 将RVALUE参数传递给非const lvalue参考的参数
- 获取const lvalue参考的地址是合法的吗?