rvalue对临时声明的引用

时间:2016-01-30 13:02:29

标签: c++ c++11 declaration rvalue-reference rvalue

E && e0 = E () ; 
E e1 ;

这两种对象声明案例之间是否存在差异? ;

1 个答案:

答案 0 :(得分:2)

在你的例子中:

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

因此,如果下面的代码没有区分EE&&(例如,decltypeauto不会),那么它们会表现出来相同。