可能重复:
Using std::move() when returning a value from a function to avoid to copy
假设您在函数中有任何类型的变量,并且您想要返回它:
X foo(/*...*/) {
X x;
//...
return x;
}
我正在尝试确定是否存在return std::move(x);
会出现问题的情况。显然x
将超出范围,因此似乎没有充分理由保持它。但是,我不确定如果X
引用了一些长(er)生存变量Y&
,会产生什么影响。