1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- ->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)
|