Subject: Re: [boost] Move semantics for std::string?
From: Robert Dailey (rcdailey_at_[hidden])
Date: 2012-02-16 18:06:40


On Thu, Feb 16, 2012 at 5:01 PM, Jeffrey Lee Hellrung, Jr. <
jeffrey.hellrung_at_[hidden]> wrote:

> On Thu, Feb 16, 2012 at 2:40 PM, Robert Dailey <rcdailey_at_[hidden]> 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.