
Thomas Mullaly wrote:
I feel that this would be a valuable library to Boost because the standards implementation limits you (depending on your library vendor) to either a constant time size() function with a linear time splice operations or constant time splice operations with a linear time size() function. With my implementations a developer will be able to pick and choose whether they want a singly or a doubly linked list, or if they want to use a counted listed instead of a non-counted list. Also their is variations in memory/runtime efficiency between the different variations of the list types which a developer will be able to choose for.
Currently my list implementations make heavy use of the new features available in C++0x such as rvalue references and move semantics, but, I will be more than happy to create a backport of these for the current C++ standard so they can be included in Boost.
There are already in Boost.Intrusive single linked list and double linked lists, and both are wrapped into containers with full move, emplace and next-gen allocator support in Boost.Container (in the review queue). The containers do not have policies in order to keep the standard interface, but the intrusive versions do. It might be interesting to ask the author of those two libraries, Ion GaztaƱaga, whether he thinks you can provide improvements to them. In any case I'm not sure there is enough material for a project there.