出于某种原因,我没有找到这个确切的问题。为什么允许将rvalue绑定到const lvalue引用,而不使用const则不可能呢?
我确实理解rvalue的生命周期在某种程度上得到了延长(在第一种情况下),但如果是这样的话,为什么编译器会禁止修改那个不再是临时对象的'rvalue'呢?
例如,考虑以下代码:
我确实理解rvalue的生命周期在某种程度上得到了延长(在第一种情况下),但如果是这样的话,为什么编译器会禁止修改那个不再是临时对象的'rvalue'呢?
例如,考虑以下代码:
int main(){
int &i = 3; //produces error
const int &j = 3; //compiles
return 1;
}
rvalue
不能被绑定。只有引用可以绑定到任何东西。 - SergeyA