diff options
Diffstat (limited to 'src/boost/libs/container/proj/to-do.txt')
-rw-r--r-- | src/boost/libs/container/proj/to-do.txt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/boost/libs/container/proj/to-do.txt b/src/boost/libs/container/proj/to-do.txt new file mode 100644 index 00000000..9c332238 --- /dev/null +++ b/src/boost/libs/container/proj/to-do.txt @@ -0,0 +1,62 @@ +->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 +->Align with C++11 [multi]map::insert(P &&p) overload. +->Fix code marked with "//to-do: if possible, an efficient way to deallocate allocated blocks" +->Add BOOST_CONTAINER_TRY, etc. macros to allow disabling exceptions only in this library (just like Boost.Intrusive) +->Add macro to change the default allocator std::allocator to another one +->Add front()/back() to string + + +Review allocator traits +-> 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 + +Add initializer lists + +Write forward_list + +check move if noexcept conditions in vector, deque and stable_vector + +Add noexcept testing using static_assert (Howard Hinnants's suggestion): + + #include <type_traits> + + struct A + { + void foo() noexcept; + }; + + static_assert(noexcept(std::declval<A&>().foo()), "A::foo() should be noexcept"); + +Detect always equal or unequal allocators at compiler time. operator== returns true_type or false_type + +change virtual functions with pointers to avoid template instantiation for every type + +Add hash for containers + +Add std:: hashing support + +Fix trivial destructor after move and other optimizing traits + +Implement n3586, "Splicing Maps and Sets" (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3586.pdf) |