
On Thu, Feb 16, 2012 at 5:01 PM, Jeffrey Lee Hellrung, Jr. < jeffrey.hellrung@gmail.com> wrote:
On Thu, Feb 16, 2012 at 2:40 PM, Robert Dailey <rcdailey@gmail.com> wrote:
I'm using C++03 and would love some way to apply move semantics to a std::string. Can boost facilitate this in some way without using smart pointers? Consider an example like below (This is a contrived example, so assume NRVO does not apply):
std::string GetInformation( int someNumber ) { // We use 'someNumber' to look up a string std::string myValue( "hello world" ); // Create the string here return myValue; }
Above, the return value would result in a copy, I'd like to move it instead.
Well I think you can always make NRVO apply if you're always returning the same variable, which is always possible: just swap what you would otherwise return into that common variable.
In general, though, no, I don't think you can cleanly introduce (emulated) move semantics non-intrusively in C++03.
Just to be clear, what "common variable" are you referring to? Thanks for your answers.