Possible Duplicate:
Using std::move() when returning a value from a function to avoid to copy
Assume you have any sort of variable inside a function and you want to return it:
X foo(/*...*/) {
X x;
//...
return x;
}
I'm trying to determine if there is any case where return std::move(x);
would be problematic. Clearly x
will go out of scope, so there doesn't seem to be a good reason to keep it around. However, I'm not sure what the effects would be if X
was some Y&
referencing some long(er) lived variable.