tal*_*les 5 c++ rvalue-reference c++11
我有以下功能:
T foo();
Run Code Online (Sandbox Code Playgroud)
而且,在另一个函数中,我正在使用返回T值,如:
const T& t = foo();
Run Code Online (Sandbox Code Playgroud)
要么
T&& t = foo();
Run Code Online (Sandbox Code Playgroud)
我想问一下:
两者都相同吗?
在记忆方面,这两种方法有什么区别?
我知道在第一种方法中,临时值生存期与参考生命周期匹配.使用右值参考时会出现同样的情况吗?
我是否应该考虑使用const rvalue reference(const T&&)?
我正在使用第一种方法,这就是我习惯的并且很好地照顾我.我仍在围绕右值参考和C++ 11商品.
不,他们有不同的类型.
实现定义,但不太可能有任何区别.
对于右值和左值引用,Lifetime扩展的工作方式相同.但规则比"临时值生命周期与参考生命周期匹配"更复杂.
可能不是.我当然不会去寻找使用它的地方.如果你有使用它,最好是这样一个显着的改进,以证明使用这种不寻常的组合,以及当人们将来阅读它时会产生的混乱.