右值参考的生命周期

时间:2018-03-19 19:34:16

标签: c++

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

int&& value = 5;

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

1 个答案:

答案 0 :(得分:5)

  

将其分配给右值引用是否可以延长寿命?

是的。 Rvalue references可用于延长临时对象的寿命(请注意,lvalue referencesconst也可以延长临时对象的寿命,但不能通过它们修改)。因此:

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

如果是,对象的新生命周期是什么?

扩展了临时项的生存期以匹配引用的生存期。参见lifetime of a temporary.