我认为我对理解右值参考有问题。这种建筑的寿命和使用情况究竟是什么。
int&& value = 5;
如果我理解正确,5是右值对象(我不能接受它的地址)并且它是临时的 - 生命周期是当前表达式的结束。将它分配给右值参考以某种方式延长寿命吗?如果是,那么对象的新生命周期是什么?
答案 0 :(得分:5)
将其分配给右值引用是否可以延长寿命?
是的。 Rvalue references可用于延长临时对象的寿命(请注意,lvalue references
至const
也可以延长临时对象的寿命,但不能通过它们修改)。因此:
// both will extend the lifetime of the temporary
int&& value = 5; // modifiable
const int& value = 5; // non-modifiable
如果是,对象的新生命周期是什么?
扩展了临时项的生存期以匹配引用的生存期。参见lifetime of a temporary.