* include/bits/stl_map.h (map): Implement C++11 allocator-aware
commit709dc99173b17adad3855e8501a709cb7733da9b
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Nov 2013 15:34:14 +0000 (15 15:34 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Nov 2013 15:34:14 +0000 (15 15:34 +0000)
tree8d74c7399d7ca47a8c91d1e7e04159421d2f077b
parent0aa8c34eee39336ae1df533ab1aa5709ad456e6d
* include/bits/stl_map.h (map): Implement C++11 allocator-aware
container requirements.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_buffer and
add accessors for value.
(_Rb_tree_iterator, _Rb_tree_const_iterator): Use _Rb_tree_node
accessors.
(_Rb_tree): Use allocator_traits and implement support for sets and
maps the be allocator-aware.
* include/bits/forward_list.h (_Fwd_list_base::_M_create_node): Do
not zero-initialize storage buffer.
* include/bits/hashtable_policy.h (_Hashtable_alloc::_M_allocate_node):
Likewise.
* include/bits/stl_vector.h (vector(vector&&, const allocator_type&)):
Add conditional noexcept specification.
* doc/xml/manual/status_cxx2011.xml: Update status of containers.
* testsuite/util/testsuite_allocator.h: Re-indent.
* testsuite/23_containers/forward_list/allocator/copy.cc: Test
allocator-extended copy constructor.
* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
* testsuite/23_containers/unordered_multimap/allocator/copy.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/allocator/copy.cc:
Likewise.
* testsuite/23_containers/unordered_set/allocator/copy.cc: Likewise.
* testsuite/23_containers/vector/allocator/copy.cc: Likewise.
* testsuite/23_containers/forward_list/allocator/move.cc: New.
* testsuite/23_containers/unordered_map/allocator/move.cc: New.
* testsuite/23_containers/unordered_multimap/allocator/move.cc: New.
* testsuite/23_containers/unordered_multiset/allocator/move.cc: New.
* testsuite/23_containers/unordered_set/allocator/move.cc: New.
* testsuite/23_containers/vector/allocator/move.cc: New.
* testsuite/23_containers/map/allocator/copy.cc: New.
* testsuite/23_containers/map/allocator/copy_assign.cc: New.
* testsuite/23_containers/map/allocator/minimal.cc: New.
* testsuite/23_containers/map/allocator/move.cc: New.
* testsuite/23_containers/map/allocator/move_assign.cc: New.
* testsuite/23_containers/map/allocator/noexcept.cc: New.
* testsuite/23_containers/map/allocator/swap.cc: New.
* testsuite/23_containers/multimap/allocator/copy.cc: New.
* testsuite/23_containers/multimap/allocator/copy_assign.cc: New.
* testsuite/23_containers/multimap/allocator/minimal.cc: New.
* testsuite/23_containers/multimap/allocator/move.cc: New.
* testsuite/23_containers/multimap/allocator/move_assign.cc: New.
* testsuite/23_containers/multimap/allocator/noexcept.cc: New.
* testsuite/23_containers/multimap/allocator/swap.cc: New.
* testsuite/23_containers/multiset/allocator/copy.cc: New.
* testsuite/23_containers/multiset/allocator/copy_assign.cc: New.
* testsuite/23_containers/multiset/allocator/minimal.cc: New.
* testsuite/23_containers/multiset/allocator/move.cc: New.
* testsuite/23_containers/multiset/allocator/move_assign.cc: New.
* testsuite/23_containers/multiset/allocator/noexcept.cc: New.
* testsuite/23_containers/multiset/allocator/swap.cc: New.
* testsuite/23_containers/set/allocator/copy.cc: New.
* testsuite/23_containers/set/allocator/copy_assign.cc: New.
* testsuite/23_containers/set/allocator/minimal.cc: New.
* testsuite/23_containers/set/allocator/move.cc: New.
* testsuite/23_containers/set/allocator/move_assign.cc: New.
* testsuite/23_containers/set/allocator/noexcept.cc: New.
* testsuite/23_containers/set/allocator/swap.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204848 138bc75d-0d04-0410-961f-82ee72b054a4
55 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/doc/xml/manual/status_cxx2011.xml
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/hashtable_policy.h
libstdc++-v3/include/bits/stl_map.h
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc with 77% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 61% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 65% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc [copied from libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc with 53% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 64% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 62% similarity]
libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 61% similarity]
libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 65% similarity]
libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc [copied from libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc with 53% similarity]
libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 64% similarity]
libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 62% similarity]
libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 68% similarity]
libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 72% similarity]
libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc [copied from libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc with 53% similarity]
libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc with 66% similarity]
libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 69% similarity]
libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 53% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 68% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 72% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc [copied from libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc with 53% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc with 66% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 69% similarity]
libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 54% similarity]
libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc with 88% similarity]
libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc with 88% similarity]
libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc with 87% similarity]
libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc with 87% similarity]
libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc [copied from libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc with 77% similarity]
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
libstdc++-v3/testsuite/util/testsuite_allocator.h