diff --git a/doc/container.qbk b/doc/container.qbk index a9c4337..1fd0899 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -60,7 +60,7 @@ compiler include path. [*Boost.Container] requires a decent C++98 compatibility. Some compilers known to work are: * Visual C++ >= 7.1. -* GCC >= 3.4. +* GCC >= 4.1. * Intel C++ >= 9.0 [endsect] @@ -584,7 +584,20 @@ use [*Boost.Container]? There are several reasons for that: [section:release_notes Release Notes] -* First release with Boost 1.48. Container code from [*Boost.Interprocess] was deleted +[section:release_notes_boost_1_49_00 Boost 1.49 Release] + +* Fixed bugs + [@https://svn.boost.org/trac/boost/ticket/6205 #6205], + [@https://svn.boost.org/trac/boost/ticket/6287 #6287], + [@https://svn.boost.org/trac/boost/ticket/4383 #4383]. + +[endsect] + +[section:release_notes_boost_1_48_00 Boost 1.48 Release] + +* First release. Container code from [*Boost.Interprocess] was deleted and redirected to [*Boost.Container ] via using directives. [endsect] + +[endsect] diff --git a/proj/to-do.txt b/proj/to-do.txt index c7f77cf..d82bd8a 100644 --- a/proj/to-do.txt +++ b/proj/to-do.txt @@ -1,2 +1,46 @@ ->Change "insert" and "push_back"/"push_front" to catch non-const rvalues ->Add an example with stateful allocators +->Add test to check convertible types in push_back/insert + + +Review allocator traits +-> Explicit instantiation of simple allocator & std::allocator to detect missing allocator_traits calls +-> Avoid any rebind<>::other +-> Review select_on_container_copy_xxx +-> Review propagate_on_xxx +-> Put default constructed containers with their own constructor (different nothrow guarantees). Optimization, not needed +-> Default + swap move constructors correct? +-> Review container documentation in swap/copy/move regarding allocators + +Check all move constructors: swap might not be a valid idiom, allocators must be move constructed, intrusive containers are now movable + +Add and test: + +Test different propagation values and with inequal allocators + + +propagate_on_container_move_assignment +select_on_container_copy_construction +propagate_on_container_swap +propagate_on_container_copy_assignment + +Test move constructors with data values and unequal allocators + +An allocator should use a smart allocator not constructible from raw pointers to catch missing pointer_traits calls + +Review all internal container swap's to check allocator propagation is correct + +Add initializer lists + +Write forward_list + +Review all move constructors to test if allocator is move constructed + +check move if noexcept conditions in vector, deque and stable_vector + +Add new allocator propagation copy constructors + +Review all destructors (search for "~") to detect placement destruction and replace it with allocator_traits::destroy + +All functions from base classes like vector_base, node_alloc_holder, etc., should be named with underscore or +similar to avoid namespace pollution. \ No newline at end of file