Boost logo

Boost :

From: Maksym Motornyy (mmotorny_at_[hidden])
Date: 2005-05-31 06:14:54

Hello All,

I know that my idea is trivial but this thing is missing in Boost. In
some cases it is useful to have copy-on-write objects. For example,
everybody knows that returning std::string from a function is not very
efficient (actually that's why in Qt strings are implemented as
copy-on-write ones).

Consider following code:

copy_on_write< std::string > concatenate(
     const std::string &first, const std::string &second )
     copy_on_write< std::string > result;
     result->assign( first );
     result->append( second );
     return result;

// somewhere else
std::cout << *concatenate( "Hello,", " world!" ) << std::endl;

Here no string copy occurs.

One can invent a lot of different applications of copy-on-write
techinque (strings, iterators, memory pages). I have an implementation,
now let community decide if this can be a part of Boost.

Sincerely yours,
Maksym Motornyy.

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