to-do.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. ->Change "insert" and "push_back"/"push_front" to catch non-const rvalues
  2. ->Add an example with stateful allocators
  3. ->Add test to check convertible types in push_back/insert
  4. ->Align with C++11 [multi]map::insert(P &&p) overload.
  5. ->Fix code marked with "//to-do: if possible, an efficient way to deallocate allocated blocks"
  6. ->Add BOOST_CONTAINER_TRY, etc. macros to allow disabling exceptions only in this library (just like Boost.Intrusive)
  7. ->Add macro to change the default allocator std::allocator to another one
  8. ->Add front()/back() to string
  9. Review allocator traits
  10. -> Avoid any rebind<>::other
  11. -> Review select_on_container_copy_xxx
  12. -> Review propagate_on_xxx
  13. -> Put default constructed containers with their own constructor (different nothrow guarantees). Optimization, not needed
  14. -> Default + swap move constructors correct?
  15. -> Review container documentation in swap/copy/move regarding allocators
  16. Check all move constructors: swap might not be a valid idiom, allocators must be move constructed,
  17. intrusive containers are now movable
  18. Add and test:
  19. Test different propagation values and with inequal allocators
  20. propagate_on_container_move_assignment
  21. select_on_container_copy_construction
  22. propagate_on_container_swap
  23. propagate_on_container_copy_assignment
  24. Test move constructors with data values and unequal allocators
  25. An allocator should use a smart allocator not constructible from raw pointers to catch missing pointer_traits calls
  26. Add initializer lists
  27. Write forward_list
  28. check move if noexcept conditions in vector, deque and stable_vector
  29. Add noexcept testing using static_assert (Howard Hinnants's suggestion):
  30. #include <type_traits>
  31. struct A
  32. {
  33. void foo() noexcept;
  34. };
  35. static_assert(noexcept(std::declval<A&>().foo()), "A::foo() should be noexcept");
  36. Detect always equal or unequal allocators at compiler time. operator== returns true_type or false_type
  37. change virtual functions with pointers to avoid template instantiation for every type
  38. Add hash for containers
  39. Add std:: hashing support
  40. Fix trivial destructor after move and other optimizing traits
  41. Implement n3586, "Splicing Maps and Sets" (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3586.pdf)