COW strings in libstdc++
Christopher Jefferson
chris@bubblescope.net
Mon Aug 31 21:26:00 GMT 2009
On 31 Aug 2009, at 18:44, Brendan Miller wrote:
> It looks like the current implementation of string in libstdc++ is
> copy on write correct? Is this also true of gcc 3.4? Is this behavior
> guaranteed for the future, or will C++0x somehow require a change
> here?
>
> Generally I'm wondering whether it will remain efficient to do things
> like stick strings by value in vectors to be sorted. Right now as I
> see it, there's no real point in wrapping the string in a shared_ptr,
> since it already uses reference counting internally.
With some care, rvalue references will get back all the speed, and
more, of COW in many situations. running std::sort on a vector of
strings will be faster in C++0x with non-COW strings than C++03 with
COW strings. Of course sometimes you actually want to copy of a
string, and that will be slower.
Chris
More information about the Libstdc++
mailing list