rvalue引用的生命周期

19

我认为我对理解右值引用有些问题。这种构造的生命周期和用法到底是什么。

int&& value = 5;

如果我理解正确,5 是一个右值对象(我无法获取它的地址),并且它是一个临时对象 - 生命周期仅限于当前表达式。将其赋给右值引用是否会延长其生命周期?如果是,那么对象的新生命周期是多久?


5
将引用绑定到临时对象会导致该对象的生命周期延长,以匹配引用的生命周期。 - Paul
1个回答

21

将其分配给右值引用是否会以某种方式延长生命周期?

是的。右值引用可以用于扩展临时对象的生命周期(注意,const左值引用也可以扩展临时对象的生命周期,但不能通过它们进行修改)。因此:

// both will extend the lifetime of the temporary
int&& value = 5;      // modifiable
const int& value = 5; // non-modifiable

如果是的话,对象的新生命周期是多长?这个临时对象的寿命被延长以匹配引用的寿命。参见临时对象的生命周期

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接