63 lines
2.2 KiB
Plaintext
Executable File
63 lines
2.2 KiB
Plaintext
Executable File
->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)
|