Boost logo

Boost :

Subject: Re: [boost] Move semantics for std::string?
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-02-16 18:01:58

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.

- Jeff

Boost list run by bdawes at, gregod at, cpdaniel at, john at