右值参考的生命周期

use*_*984 5 c++

我认为我对理解右值参考有问题.什么是这种建筑的寿命和使用.

int&& value = 5;
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,5是右值对象(我不能接受它的地址)并且它是临时的 - 生命周期是当前表达式的结束.将它分配给右值参考以某种方式延长寿命吗?如果是,那么对象的新生命周期是多少?

Sta*_*gle 5

将它分配给右值参考以某种方式延长寿命吗?

是.Rvalue引用可用于延长临时对象的生命周期(注意,lvalue referencesconst可以延长临时对象的生命周期,但它们不能通过它们进行修改).从而:

// both will extend the lifetime of the temporary
int&& value = 5;      // modifiable
const int& value = 5; // non-modifiable
Run Code Online (Sandbox Code Playgroud)

如果是,那么对象的新生命周期是多少?

临时的生命周期被扩展以匹配引用的生命周期.看到临时的一生.