对临时声明的右值引用

Posted

技术标签:

【中文标题】对临时声明的右值引用【英文标题】:rvalue reference to temporary declaration 【发布时间】:2016-01-30 13:02:29 【问题描述】:
E && e0 = E () ; 
E e1 ;

这两种对象声明的情况有什么不同吗? ;

【问题讨论】:

【参考方案1】:

在你的例子中:

E() 的结果是一个右值(确切地说是一个右值); e0 是一个左值,类型为E&&(右值引用E); e1 也是一个左值,类型为Ee0,通过绑定到E() 的结果,将其生命周期从临时延长到自动。

因此,如果以下代码在 EE&& 之间没有区别(例如,decltype 会但 auto 不会),它们的行为将相同。

【讨论】:

以上是关于对临时声明的右值引用的主要内容,如果未能解决你的问题,请参考以下文章

如何评价 C++11 的右值引用(Rvalue reference)特性?

重新理解C11的右值引用

[转][c++11]我理解的右值引用移动语义和完美转发

右值引用,移动语义,完美转发

C11新特性右值引用&&

对函数的右值引用