COW strings in libstdc++

Brendan Miller catphive@catphive.net
Mon Aug 31 18:21:00 GMT 2009


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.

Does C++0x effect the complexity specification of std::string in such
a way that COW strings are required or prohibited, i.e. is operator=
supposed to be constant time now?

Thanks,
Brendan



More information about the Libstdc++ mailing list