Boost logo

Boost :

Subject: [boost] [containers] reviewette
From: Gregory Crosswhite (gcross_at_[hidden])
Date: 2011-08-08 18:18:33


Hey everyone,

I don't know if I will get the chance to perform a full review within
the review window, but I just wanted to share my limited experience with
the library.

Back in February I wrote (or more precisely, rewrote in C++) a
production numerical simulation code [1] that makes extensive use of
Boost.Move because move-but-not-copy semantics were the most natural fit
for most of my data objects. (The rationale for this was that in nearly
all cases I only wanted one entity to hold a given data object, and in
the remaining cases few I could just wrap the data object in a
shared_ptr.) Since I wanted to have vectors containing these objects, I
made use of the containers::vector class that was bundled with
Boost.Move, so the headers for Boost.Move and at least the vector class
of the proposed Boost.Containers library have lived in my code for a few
months now. Being able to return a vector without having to worry about
whether it would be copied was so nice that I eventually just started
using boost::containers::vector everywhere I would normally have used
std::vector; it was also very nice to be able to use the .emplace*
methods to construct elements in place because this saved both some
overhead *and* additional typing on my part. (Of course, I will
eventually get these things by default in std::vector as soon as C++0x
is available everywhere, but it is really nice to have them now! :-) )
The code has been stable enough that I never encounter any problems
using it.

Now, I don't know what has changed since I coped the
Boost.Move+Boost.Container headers into my tree in Febrary so hopefully
nothing has been broken, but based on my personal experience using the
library I can say that it at least boost::containers::vector seems to
work just fine in production code and I would really like to see it be a
part of Boost.

Cheers,
Greg

[1] Nutcracker, a matrix product state based quantum simulation code,
available at: http://github.com/gcross/Nutcracker


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk