[Containers Library Review] The review of the Containers library by Ion Gaztanaga starts today

The review of the containers library by Ion Gaztanaga starts today, to summarize the library: "Boost.Container library implements several well-known containers, including STL containers. The aim of the library is to offers advanced features not present in standard containers or to offer the latest standard draft features for compilers that comply with C++03. In short, what does Boost.Container offer? * Move semantics are implemented, including move emulation for pre-C++0x compilers. * New advanced features (e.g. placement insertion, recursive containers) are present. * Containers support stateful allocators and are compatible with Boost.Interprocess (they can be safely placed in shared memory). * The library offers new useful containers: o flat_map, flat_set, flat_multiset and flat_multiset: drop-in replacements for standard associative containers but more memory friendly and with faster searches. o stable_vector: a std::list and std::vector hybrid with random-access iterators that offers iterator stability in insertions and erasures. o slist: the classic pre-standard singly linked list container." Documentation from the library may be viewed online here: file:///M:/data/boost/sandbox/move/libs/container/doc/html/index.html The source may be accessed from the "move" directory of the sandbox SVN or downloaded from http://www.drivehq.com/web/igaztanaga/boost_container.zip. Note that this download contains a copy of the accepted, but not yet release, Boost.Move library - extract the zip over a copy of Boost-1.47 to get a full working copy. Review comments might like to answer the following questions: * What is your evaluation of the design? * What is your evaluation of the implementation? * What is your evaluation of the documentation? * What is your evaluation of the potential usefulness of the library? * Did you try to use the library? With what compiler? Did you have any problems? * How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? * Are you knowledgeable about the problem domain? And finally, every review should answer this question: * Do you think the library should be accepted as a Boost library? Be sure to say this explicitly so that your other comments don't obscure your overall opinion. Regards, John Maddock.

On Wed, Aug 03, 2011 at 11:53:45AM +0100, John Maddock wrote:
Documentation from the library may be viewed online here: file:///M:/data/boost/sandbox/move/libs/container/doc/html/index.html
For you who do not have John's M: drive, the docs exist at: https://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.h... -- Lars Viklund | zao@acc.umu.se

Documentation from the library may be viewed online here: file:///M:/data/boost/sandbox/move/libs/container/doc/html/index.html
For you who do not have John's M: drive, the docs exist at: https://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.h...
Ahh! Sorry, for that! John.

Hi, My review is here.
* What is your evaluation of the design?
I think it is important, emulating move semantics and emplace inserter.
* What is your evaluation of the implementation?
Some requirements added in C++0x (see 23.2.1 in n3290). Does Boost.Container satisfy, partial or not? (just question) I anxious about 23.2.1/8 especially. And associated to the requirements, do you have any plans to provide allocator_traits?
* What is your evaluation of the documentation?
1) There are no documentation about free functions. (operators, swap, ... 2) The documentation of deque::push_[back|front] are missing. 3) Some member functions are not documented about Returns/Effects, Complexity or Throws. (ex: after No.23 in basic_string) Please check it.
* What is your evaluation of the potential usefulness of the
library? Very good! It can replace STL container easily.
* Did you try to use the library? With what compiler? Did you have
any
problems? No, I only read documents and source code.
* How much effort did you put into your evaluation? A glance? A
quick
reading? In-depth study? A quick reading for C++03 developer. And a glance for C++0x developer.
* Are you knowledgeable about the problem domain?
I am using STL containers (including C++0x's one), but not expert about implementations and algorithms.
And finally, every review should answer this question:
* Do you think the library should be accepted as a Boost library? Be sure to say this explicitly so that your other comments don't obscure your overall opinion. I think should be accepted it with improved documentations.
Thanks, -- TAKAHASHI Kohei College of Information Science, University of Tsukuba private mail: flast@flast.jp others: flast@ac-room.org s0911476@coins.tsukuba.ac.jp

El 08/08/2011 6:58, Kohei Takahashi escribió:
Hi,
My review is here.
* What is your evaluation of the design?
I think it is important, emulating move semantics and emplace inserter.
* What is your evaluation of the implementation?
Some requirements added in C++0x (see 23.2.1 in n3290). Does Boost.Container satisfy, partial or not? (just question) I anxious about 23.2.1/8 especially. And associated to the requirements, do you have any plans to provide allocator_traits?
It implements 23.2.1/8 without allocator_traits. I plan to add allocator_traits and C++11 features soon as C++11 features are now stable.
* What is your evaluation of the documentation?
1) There are no documentation about free functions. (operators, swap, ...
Ok, I'll fix this, although I think they are self-describing.
2) The documentation of deque::push_[back|front] are missing.
Thanks for spotting this.
3) Some member functions are not documented about Returns/Effects, Complexity or Throws. (ex: after No.23 in basic_string) Please check it.
Ok. I'd need to do a full review of all descriptions.
And finally, every review should answer this question:
* Do you think the library should be accepted as a Boost library? Be sure to say this explicitly so that your other comments don't obscure your overall opinion. I think should be accepted it with improved documentations.
Thanks. Best, Ion

Hi, It is my first review ever, sorry if something is not right. Here it goes:
* What is your evaluation of the design?
As it is designed according to C++0x specs not really much to debate here. It allows us (users) to get used to both new functionality like emplacing and move semantics.
* What is your evaluation of the implementation?
Only went briefly through vector implementation while debugging to see how exactly move semantics is implemented. Code is very clean and easy to follow in fact way easier to grasp than visual studio's std::vector implementation.
* What is your evaluation of the documentation?
Lacks. I was especially interested in new allocators. Rest is pretty much the same as C++98 equivalents so no problematic to figure out.
* What is your evaluation of the potential usefulness of the library?
It is imho very important and frankly long overdue. Move semantic are in debate for years yet it was never available in boost even tho library-level emulation was fully possible (like Alexandrescu's mojo) for years.
* Did you try to use the library? With what compiler? Did you have any problems?
I used vector in VS 2008 SP1. No problems.
* How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
Didn't have time to do in-depth study. Made a class movable with boost.move and played a bit with vector of them. Found something very interesting tho - check Ion's answer to my question regarding forward declaring movable class.
* Are you knowledgeable about the problem domain?
Understand it ;)
And finally, every review should answer this question:
* Do you think the library should be accepted as a Boost library? Be sure to say this explicitly so that your other comments don't obscure your overall opinion.
3 x yes: 1) It gives the possibility to start think in new way (like return containers by value) already. 2) I can enjoy it with older (VC2008) compiler 3) without boost.container boost.move is only 1/5 complete Best regards, Szymon Gatner
participants (5)
-
Ion Gaztañaga
-
John Maddock
-
Kohei Takahashi
-
Lars Viklund
-
Szymon Gatner