将RVALUE参考分配给LVALUE参考

assigning Rvalue reference to Lvalue reference

本文关键字:参考 LVALUE 分配 RVALUE      更新时间:2023-10-16
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。