我有以下功能:常量T&与T &&
T foo();
而且,在其他功能,我玩返回T
值,如:
const T& t = foo();
或
T&& t = foo();
我想问:
两者是否相等?
记忆方面,这两种方法有什么区别?
我知道,在第一种方法的临时值寿命的寿命基准时间相匹配。使用右值引用时会发生同样的情况吗?
应我甚至考虑使用一个const右值引用(
const T&&
)?
我正在使用第一种方法,那就是我习惯的并且很好地服从我。我仍然围绕右值引用和C++ 11商品进行包装。
仅仅因为你可以创建一个局部右值引用变量并不意味着它是有用的。它们主要用于参数,偶尔会返回值。 – 2013-02-10 01:08:25
“T”是否是推断类型?这是一个很大的区别。 – 2013-02-10 01:14:52
@sftrabbit:好点。我认为这个问题意味着'T &&'实际上是一个r值参考,不受参考折叠规则的约束。 – 2013-02-10 01:20:40