Boost logo

Boost :

Subject: [boost] [Containers Review Result] Boost.Containers is accepted into Boost.
From: John Maddock (boost.regex_at_[hidden])
Date: 2011-08-22 12:09:59


This is to announce that the Containers library by Ion Gaztanaga has been
accepted into Boost.

There were 11 positive reviews and one negative, many making the same points
(see summary below). Acceptance is therefore conditional on Ion improving
the documentation as the reviewers requested.

Review comments summary:
~~~~~~~~~~~~~~~~~~~~~~~~

* Needs a better introduction/overview/tutorial in the docs:
 # what are stateful allocators, what's currently supported in this area,
how is it supported, does it have performance implications.
 # Needs overview of the new containers - stable_vector, flat_* etc.
 # Needs description of recursive containers and why this library supports
them but not C++03 containers.
 # Needs to justify why this library and not the std one (probably by
mention of the above).
* Make clear in the docs (if not already) what the default allocator is.
* Make allocator template parameter name consistent.
* Add basic_string::shrink_to_fit member function (from C++11).
* Typo in range insertion docs (first/last vs i/j)
* vector<bool> behavior needs to be documented (and justified either which
way).
* Need to document conformance to C++0x container requirements, plus use (or
not) of new C++0x features such as std::allocator_traits.
* Missing documentation for some deque member functions.
* Missing Returns/Effects,Complexity or Throws. (ex: after No.23 in
basic_string)
* The "Acknowledgements" page is currently empty. There are various (c)
notices in the source referring to sources from which parts of the
code may have come. This page should clarify these sources, including any
cases where the original code has now all been replaced, and assert that the
licenses are all in order. It should also point out the history of the code
in Boost, i.e. that parts were previously in Boost.Interprocess, so that
anyone with previous exposure to the Interprocess containers is not
confused.
* There are some comments that the organisation of the docs makes it
unnecessarily hard to jump directly to the info you want.

Requests for additional features:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Consider implementing std::forward_list from C++0x.
* Consider Boost.Range interoperability and/or range insert support.
* Make the flat_* containers container adapters - so that a) the user can
choose the underlying implementation and b) they can shoot themselves in the
foot if they want to by manipulating the underlying container (mostly for
efficient loading of data). Alternatively, provide some other interface
enhancements to try to meet most of the use cases given.
* Efficient construction of ordered containers from already sorted data.
* Investigate Clang's Libc++ std lib performance tests.

John Maddock
Containers review manager.

PS: Ion: if you need any help with quickbook/docbook and AutoIndex ping me
and I'll see what I can do to help - there are all sorts of parameters that
can be used to tweak the appearance etc.


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