由于某种原因,我没有设法找到这个确切的问题。为什么允许将rvalue
绑定到const lvalue reference
,但是如果没有const
则不可能相同?绑定右值到const左值引用
我明白,右值的生命周期以某种方式获得扩展(在第一种情况下),但如果是这样,为什么编译器不允许更改'rvalue',这实际上不再是临时对象。
例如,请考虑下面的代码:
int main(){
int &i=3; //produces error
const int&j =3; //compiles
return 1;
}
问题是没有意义的。不能约束“右值”。只有引用可以绑定到任何东西。 – SergeyA