我认为我对理解右值参考有问题.什么是这种建筑的寿命和使用.
int&& value = 5;
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,5是右值对象(我不能接受它的地址)并且它是临时的 - 生命周期是当前表达式的结束.将它分配给右值参考以某种方式延长寿命吗?如果是,那么对象的新生命周期是多少?
将它分配给右值参考以某种方式延长寿命吗?
是.Rvalue引用可用于延长临时对象的生命周期(注意,lvalue references也const可以延长临时对象的生命周期,但它们不能通过它们进行修改).从而:
// both will extend the lifetime of the temporary
int&& value = 5; // modifiable
const int& value = 5; // non-modifiable
Run Code Online (Sandbox Code Playgroud)
如果是,那么对象的新生命周期是多少?
临时的生命周期被扩展以匹配引用的生命周期.看到临时的一生.