【发布时间】:2016-01-30 13:02:29
【问题描述】:
E && e0 = E () ;
E e1 ;
这两种对象声明的情况有什么不同吗? ;
【问题讨论】:
标签: c++ c++11 declaration rvalue-reference rvalue
E && e0 = E () ;
E e1 ;
这两种对象声明的情况有什么不同吗? ;
【问题讨论】:
标签: c++ c++11 declaration rvalue-reference rvalue
在你的例子中:
E() 的结果是一个右值(确切地说是一个右值);e0 是一个左值,类型为E&&(右值引用E);e1 也是一个左值,类型为E;e0,通过绑定到E() 的结果,将其生命周期从临时延长到自动。因此,如果以下代码在 E 和 E&& 之间没有区别(例如,decltype 会但 auto 不会),它们的行为将相同。
【讨论】: