1. 19 Nov, 2019 1 commit
    • libstdc++: Fix declarations of variable templates · 5ecaaf98
      This code is invalid and rejected by other compilers (see PR 92576).
      
      	* include/bits/regex.h (ranges::__detail::__enable_view_impl): Fix
      	declaration.
      	* include/bits/stl_multiset.h (ranges::__detail::__enable_view_impl):
      	Likewise.
      	* include/bits/stl_set.h (ranges::__detail::__enable_view_impl):
      	Likewise.
      	* include/bits/unordered_set.h (ranges::__detail::__enable_view_impl):
      	Likewise.
      	* include/debug/multiset.h (ranges::__detail::__enable_view_impl):
      	Likewise.
      	* include/debug/set.h (ranges::__detail::__enable_view_impl): Likewise.
      	* include/debug/unordered_set (ranges::__detail::__enable_view_impl):
      	Likewise.
      
      From-SVN: r278440
      Jonathan Wakely committed
  2. 17 Nov, 2019 1 commit
    • libstdc++: Define C++20 range utilities and range factories · 37f33df7
      This adds another chunk of the <ranges> header.
      
      The changes from P1456R1 (Move-only views) and P1862R1 (Range adaptors
      for non-copyable iterators) are included, but not the changes from
      P1870R1 (forwarding-range<T> is too subtle).
      
      The tests for subrange and iota_view are poor and should be improved.
      
      	* include/bits/regex.h (match_results): Specialize __enable_view_impl.
      	* include/bits/stl_set.h (set): Likewise.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Likewise.
      	* include/debug/multiset.h (__debug::multiset): Likewise.
      	* include/debug/set.h (__debug::set): Likewise.
      	* include/debug/unordered_set (__debug::unordered_set)
      	(__debug::unordered_multiset): Likewise.
      	* include/std/ranges (ranges::view, ranges::enable_view)
      	(ranges::view_interface, ranges::subrange, ranges::empty_view)
      	(ranges::single_view, ranges::views::single, ranges::iota_view)
      	(ranges::views::iota): Define for C++20.
      	* testsuite/std/ranges/empty_view.cc: New test.
      	* testsuite/std/ranges/iota_view.cc: New test.
      	* testsuite/std/ranges/single_view.cc: New test.
      	* testsuite/std/ranges/view.cc: New test.
      
      From-SVN: r278370
      Jonathan Wakely committed
  3. 03 Jun, 2019 1 commit
    • Enforce allocator::value_type consistency for containers in C++2a · ebaf3659
      In previous standards it is undefined for a container and its allocator
      to have a different value_type. Libstdc++ has traditionally allowed it
      as an extension, automatically rebinding the allocator to the
      container's value_type. Since GCC 8.1 that extension has been disabled
      for C++11 and later when __STRICT_ANSI__ is defined (i.e. for
      -std=c++11, -std=c++14, -std=c++17 and -std=c++2a).
      
      Since the acceptance of P1463R1 into the C++2a draft an incorrect
      allocator::value_type now requires a diagnostic. This patch implements
      that by enabling the static_assert for -std=gnu++2a as well.
      
      	* doc/xml/manual/status_cxx2020.xml: Document P1463R1 status.
      	* include/bits/forward_list.h [__cplusplus > 201703]: Enable
      	allocator::value_type assertion for C++2a.
      	* include/bits/hashtable.h: Likewise.
      	* include/bits/stl_deque.h: Likewise.
      	* include/bits/stl_list.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/stl_vector.h: Likewise.
      	* testsuite/23_containers/deque/48101-3_neg.cc: New test.
      	* testsuite/23_containers/forward_list/48101-3_neg.cc: New test.
      	* testsuite/23_containers/list/48101-3_neg.cc: New test.
      	* testsuite/23_containers/map/48101-3_neg.cc: New test.
      	* testsuite/23_containers/multimap/48101-3_neg.cc: New test.
      	* testsuite/23_containers/multiset/48101-3_neg.cc: New test.
      	* testsuite/23_containers/set/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_map/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_multimap/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_multiset/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_set/48101-3_neg.cc: New test.
      	* testsuite/23_containers/vector/48101-3_neg.cc: New test.
      
      From-SVN: r271866
      Jonathan Wakely committed
  4. 26 Feb, 2019 1 commit
    • PR libstdc++/89477 constrain deduction guides for maps and sets · 08abbdda
      The Compare, Hash, and Pred template parameters should be constrained in
      the C++17 deduction guides for associative and unordered containers.
      
      The deduction guides for stack, queue and priority_queue are already
      constrained, but this patch makes them use the _RequireNotAllocator
      helper instead of reproducing the logic each time.
      
      	PR libstdc++/89477
      	* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
      	container deduction guides.
      	* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
      	* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
      	parameters in deduction guides.
      	* include/bits/stl_multimap.h (multimap): Likewise.
      	* include/bits/stl_multiset.h (multiset): Likewise.
      	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
      	* include/bits/stl_set.h (set): Likewise.
      	* include/bits/stl_stack.h (stack): Likewise.
      	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
      	use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
      	constrain parameters in deduction guides.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Likewise.
      	* testsuite/23_containers/map/cons/deduction.cc: Test additional
      	deduction cases.
      	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
      	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
      	* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
      
      From-SVN: r269234
      Jonathan Wakely committed
  5. 21 Jan, 2019 1 commit
    • Fix after P0600. · d715f554
      gcc/testsuite/ChangeLog
      2019-02-20  Ulrich Drepper  <drepper@redhat.com>
      
      	Fix after P0600.
      	* g++.dg/init/new39.C: Don't just ignore result of new.
      
      libstdc++/ChangeLog
      2019-02-20  Ulrich Drepper  <drepper@redhat.com>
      
      	Implement C++20 P0600r1.
      	* include/backward/hash_map: Add nodiscard attribute to empty.
      	* include/backward/hash_set: Likewise.
      	* backward/hashtable.h: Likewise.
      	* include/bits/basic_string.h: Likewise.
      	* include/bits/forward_list.h: Likewise.
      	* include/bits/hashtable.h: Likewise.
      	* include/bits/regex.h: Likewise.
      	* include/bits/stl_deque.h: Likewise.
      	* include/bits/stl_list.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_queue.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/stl_stack.h: Likewise.
      	* include/bits/stl_tree.h: Likewise.
      	* include/bits/stl_vector.h: Likewise.
      	* include/bits/unordered_map.h: Likewise.
      	* include/bits/unordered_set.h: Likewise.
      	* include/debug/array: Likewise.
      	* include/experimental/any: Likewise.
      	* include/experimental/bits/fs_path.h: Likewise.
      	* include/experimental/internet: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp:
      	Likewise.
      	*
      include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
      	Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
      	* include/ext/pb_ds/trie_policy.hpp: Likewise.
      	* include/ext/rope: Likewise.
      	* include/ext/slist: Likewise.
      	* include/ext/vstring.h: Likewise.
      	* include/profile/array: Likewise.
      	* include/std/array: Likewise.
      	* include/tr1/array: Likewise.
      	* include/tr1/hashtable.h: Likewise.
      	* include/tr1/regex: Likewise.
      	* include/tr2/dynamic_bitset: Likewise.
      	* include/bits/alloc_traits.h: Add nodiscard attribute to
      	allocate.
      	* include/experimental/memory_resource: Likewise.
      	* include/ext/alloc_traits.h: Likewise.
      	* include/ext/array_allocator.h: Likewise.
      	* include/ext/bitmap_allocator.h: Likewise.
      	* include/ext/debug_allocator.h: Likewise.
      	* include/ext/extptr_allocator.h: Likewise.
      	* include/ext/mt_allocator.h: Likewise.
      	* include/ext/new_allocator.h: Likewise.
      	* include/ext/pool_allocator.h: Likewise.
      	* include/ext/throw_allocator.h: Likewise.
      	* include/std/scoped_allocator: Likewise.
      	* libsupc++/eh_alloc.cc: Likewise.
      	* include/std/future: Add nodiscard attribute to async.
      	* libsupc++/new: Add nodiscard attribute to new.
      
      From-SVN: r268111
      Ulrich Drepper committed
  6. 01 Jan, 2019 1 commit
  7. 03 Sep, 2018 1 commit
    • PR libstdc++/87194 fix range insertion into maps and sets · 83a840a9
      Since C++11 range insertion and construction of maps and sets from a
      pair of iterators only requires that the iterator's value_type is
      convertible to the container's value_type (previously it had to be the
      same).
      
      This fixes the implementation to meet that relaxed requirement, by
      defining a pair of overloads that either insert or emplace, depending on
      the iterator's value_type. Instead of adding yet another overload of
      _M_insert_unique and _M_insert_equal, the overloads taking iterators are
      renamed to _M_insert_range_unique and _M_insert_range_equal.
      
      	PR libstdc++/87194
      	* include/bits/stl_map.h
      	(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
      	(map::map(initializer_list<value_type>, const Alloc&))
      	(map::map(InputIterator, InputIterator, const Alloc&))
      	(map::map(InputIterator, InputIterator))
      	(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
      	(map::insert(InputIterator, InputIterator)):
      	Call _M_insert_range_unique instead of _M_insert_unique.
      	* include/bits/stl_multimap.h
      	(multimap::multimap(initializer_list<value_type>, const C&, const A&))
      	(multimap::multimap(initializer_list<value_type>, const A&))
      	(multimap::multimap(InputIterator, InputIterator, const A&))
      	(multimap::multimap(InputIterator, InputIterator))
      	(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
      	(multimap::insert(InputIterator, InputIterator)): Call
      	_M_insert_range_equal instead of _M_insert_equal.
      	* include/bits/stl_multiset.h
      	(multiset::multiset(InputIterator, InputIterator))
      	(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
      	(multiset::multiset(initializer_list<value_type>, const C&, const A&))
      	(multiset::multiset(initializer_list<value_type>, const A&))
      	(multiset::multiset(InputIterator, InputIterator, const A&))
      	(multiset::insert(InputIterator, InputIterator)): Call
      	_M_insert_range_equal instead of _M_insert_equal.
      	* include/bits/stl_set.h
      	(set::set(InputIterator, InputIterator))
      	(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
      	(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
      	(set::set(initializer_list<value_type>, const Alloc&))
      	(set::set(InputIterator, InputIterator, const Alloc&))
      	(set::insert(InputIterator, InputIterator)):
      	Call _M_insert_range_unique instead of _M_insert_unique.
      	* include/bits/stl_tree.h
      	[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
      	template for SFINAE constraints.
      	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
      	constrained overloads that either insert or emplace, depending on
      	iterator's value_type.
      	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
      	[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
      	(_Rb_tree::_M_insert_range_equal): New functions replacing range
      	versions of _M_insert_unique and _M_insert_equal.
      	(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
      	(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
      	* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
      
      From-SVN: r264060
      Jonathan Wakely committed
  8. 04 Jul, 2018 1 commit
    • P0458R2 Checking for Existence of an Element in Associative Containers · 3adea09e
      	* include/bits/stl_map.h (map::contains): Add for C++2a.
      	* include/bits/stl_multimap.h (multimap::contains): Likewise.
      	* include/bits/stl_multiset.h (multiset::contains): Likewise.
      	* include/bits/stl_set.h (set::contains): Likewise.
      	* include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
      	(_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
      	(_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
      	(_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
      	* include/bits/unordered_map.h (unordered_map::contains)
      	(unordered_multimap::contains): Add for C++2a.
      	* include/bits/unordered_set.h (unordered_set::contains)
      	(unordered_multiset::contains): Likewise.
      	* testsuite/23_containers/map/operations/contains.cc: New.
      	* testsuite/23_containers/multimap/operations/contains.cc: New.
      	* testsuite/23_containers/multiset/operations/contains.cc: New.
      	* testsuite/23_containers/set/operations/contains.cc: New.
      	* testsuite/23_containers/unordered_map/operations/contains.cc: New.
      	* testsuite/23_containers/unordered_multimap/operations/contains.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/operations/contains.cc:
      	New.
      	* testsuite/23_containers/unordered_set/operations/contains.cc: New.
      
      From-SVN: r262418
      Jonathan Wakely committed
  9. 27 May, 2018 1 commit
    • stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. · 538a7cd0
      2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
      	(_Rb_tree(const allocator_type&)): Use latter.
      	* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
      	(map(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multimap.h
      	(multimap(const allocator_type&)): Likewise.
      	(multimap(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multimap(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      	* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
      	(set(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multiset.h
      	(multiset(const allocator_type&)): Likewise.
      	(multiset(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multiset(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      
      From-SVN: r260806
      François Dumont committed
  10. 20 Mar, 2018 1 commit
    • re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) · 5dfb5e5b
      2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/84998
      	* include/bits/stl_bvector.h: Fix std::hash friend declaration.
      	* include/std/bitset: Likewise.
      	* include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
      	declaration.
      	* include/bits/stl_multimap.h (std::multimap<>): Likewise.
      	* include/bits/stl_multiset.h (std::multiset<>): Likewise.
      	* include/bits/stl_set.h (std::set<>): Likewise.
      	* include/bits/unordered_map.h (std::unordered_map<>): Fix
      	_Hash_merge_helper friend declaration.
      	(std::unordered_multimap<>): Likewise.
      	* include/bits/unordered_set.h (std::unordered_set<>): Likewise.
      	(std::unordered_multiset<>): Likewise.
      
      From-SVN: r258693
      François Dumont committed
  11. 03 Jan, 2018 1 commit
  12. 21 Nov, 2017 1 commit
    • PR libstdc++/48101 improve errors for invalid container specializations · 866e4d38
      	PR libstdc++/48101
      	* include/bits/allocator.h (allocator<const _Tp>)
      	(allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
      	specializations.
      	* include/bits/forward_list.h (forward_list): Add static assertions.
      	* include/bits/hashtable.h (__cache_default): Use
      	__is_nothrow_invocable instead of __is_noexcept_hash.
      	(_Hashtable): Add static assertions.
      	* include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
      	* include/bits/stl_deque.h (deque): Add static assertions.
      	* include/bits/stl_function.h (_Identity<const _Tp>): Add partial
      	specialization.
      	* include/bits/stl_list.h (list): Add static assertions.
      	* include/bits/stl_map.h (map): Likewise.
      	* 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): Likewise.
      	* include/bits/stl_vector.h (vector): Likewise.
      	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
      	Use typename instead of class in template-parameter-list and remove
      	spaces.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Likewise.
      	* testsuite/23_containers/deque/48101-2_neg.cc: New test.
      	* testsuite/23_containers/deque/48101_neg.cc: New test.
      	* testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
      	* testsuite/23_containers/forward_list/48101_neg.cc: New test.
      	* testsuite/23_containers/list/48101-2_neg.cc: New test.
      	* testsuite/23_containers/list/48101_neg.cc: New test.
      	* testsuite/23_containers/map/48101-2_neg.cc: New test.
      	* testsuite/23_containers/map/48101_neg.cc: New test.
      	* testsuite/23_containers/map/operations/31440.cc: Fix comparison
      	object to have const-qualified call operator.
      	* testsuite/23_containers/multimap/48101-2_neg.cc: New test.
      	* testsuite/23_containers/multimap/48101_neg.cc: New test.
      	* testsuite/23_containers/multiset/48101-2_neg.cc: New test.
      	* testsuite/23_containers/multiset/48101_neg.cc: New test.
      	* testsuite/23_containers/set/48101-2_neg.cc: New test.
      	* testsuite/23_containers/set/48101_neg.cc: New test.
      	* testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
      	* testsuite/23_containers/unordered_map/48101_neg.cc: New test.
      	* testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
      	* testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
      	* testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
      	* testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
      	* testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
      	* testsuite/23_containers/unordered_set/48101_neg.cc: New test.
      	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
      	dg-error line number.
      	* testsuite/23_containers/vector/48101-2_neg.cc: New test.
      	* testsuite/23_containers/vector/48101_neg.cc: New test.
      
      From-SVN: r255035
      Jonathan Wakely committed
  13. 26 Oct, 2017 1 commit
    • Deduction guides for associative containers, debug mode deduction guide fixes. · 957f5fea
      * include/bits/stl_iterator.h (__iter_key_t)
      (__iter_val_t, __iter_to_alloc_t): New.
      * include/bits/stl_map.h: Add deduction guides.
      * include/bits/stl_multimap.h: Likewise.
      * include/bits/stl_multiset.h: Likewise.
      * include/bits/stl_set.h: Likewise.
      * include/bits/unordered_map.h: Likewise.
      * include/bits/unordered_set.h: Likewise.
      * include/debug/deque: Likewise.
      * include/debug/forward_list: Likewise.
      * include/debug/list: Likewise.
      * include/debug/map.h: Likewise.
      * include/debug/multimap.h: Likewise.
      * include/debug/multiset.h: Likewise.
      * include/debug/set.h: Likewise.
      * include/debug/unordered_map: Likewise.
      * include/debug/unordered_set: Likewise.
      * include/debug/vector: Likewise.
      * testsuite/23_containers/map/cons/deduction.cc: New.
      * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
      * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
      * testsuite/23_containers/set/cons/deduction.cc: Likewise.
      * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
      * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
      Likewise.
      * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
      Likewise.
      * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
      
      From-SVN: r254113
      Ville Voutilainen committed
  14. 23 Jul, 2017 1 commit
    • re PR libstdc++/81064 (Inline namespace regression) · 4a15d842
      2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/81064
      	* include/bits/algorithmfwd.h: Reorganize versioned namespace.
      	* include/bits/basic_string.h: Likewise.
      	* include/bits/c++config: Likewise.
      	* include/bits/deque.tcc: Likewise.
      	* include/bits/forward_list.h: Likewise.
      	* include/bits/forward_list.tcc: Likewise.
      	* include/bits/hashtable_policy.h: Likewise.
      	* include/bits/list.tcc: Likewise.
      	* include/bits/move.h: Likewise.
      	* include/bits/quoted_string.h: Likewise.
      	* include/bits/random.h: Likewise.
      	* include/bits/random.tcc: Likewise.
      	* include/bits/regex.h: Likewise.
      	* include/bits/regex.tcc: Likewise.
      	* include/bits/regex_automaton.h: Likewise.
      	* include/bits/regex_automaton.tcc: Likewise.
      	* include/bits/regex_compiler.h: Likewise.
      	* include/bits/regex_compiler.tcc: Likewise.
      	* include/bits/regex_constants.h: Likewise.
      	* include/bits/regex_error.h: Likewise.
      	* include/bits/regex_executor.h: Likewise.
      	* include/bits/regex_executor.tcc: Likewise.
      	* include/bits/regex_scanner.h: Likewise.
      	* include/bits/regex_scanner.tcc: Likewise.
      	* include/bits/specfun.h: Likewise.
      	* include/bits/stl_algo.h: Likewise.
      	* include/bits/stl_algobase.h: Likewise.
      	* include/bits/stl_bvector.h: Likewise.
      	* include/bits/stl_deque.h: Likewise.
      	* include/bits/stl_iterator.h: Likewise.
      	* include/bits/stl_iterator_base_funcs.h: Likewise.
      	* include/bits/stl_list.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_relops.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/stl_vector.h: Likewise.
      	* include/bits/uniform_int_dist.h: Likewise.
      	* include/bits/unordered_map.h: Likewise.
      	* include/bits/unordered_set.h: Likewise.
      	* include/bits/vector.tcc: Likewise.
      	* include/c_global/cmath: Likewise.
      	* include/c_std/cmath: Likewise.
      	* include/decimal/decimal: Likewise.
      	* include/decimal/decimal.h: Likewise.
      	* include/experimental/algorithm: Likewise.
      	* include/experimental/any: Likewise.
      	* include/experimental/array: Likewise.
      	* include/experimental/bits/erase_if.h: Likewise.
      	* include/experimental/bits/fs_dir.h: Likewise.
      	* include/experimental/bits/fs_fwd.h: Likewise.
      	* include/experimental/bits/fs_ops.h: Likewise.
      	* include/experimental/bits/fs_path.h: Likewise.
      	* include/experimental/bits/lfts_config.h: Likewise.
      	* include/experimental/bits/shared_ptr.h: Likewise.
      	* include/experimental/bits/string_view.tcc: Likewise.
      	* include/experimental/chrono: Likewise.
      	* include/experimental/deque: Likewise.
      	* include/experimental/filesystem: Likewise.
      	* include/experimental/forward_list: Likewise.
      	* include/experimental/functional: Likewise.
      	* include/experimental/iterator: Likewise.
      	* include/experimental/list: Likewise.
      	* include/experimental/map: Likewise.
      	* include/experimental/memory: Likewise.
      	* include/experimental/memory_resource: Likewise.
      	* include/experimental/numeric: Likewise.
      	* include/experimental/optional: Likewise.
      	* include/experimental/propagate_const: Likewise.
      	* include/experimental/random: Likewise.
      	* include/experimental/ratio: Likewise.
      	* include/experimental/regex: Likewise.
      	* include/experimental/set: Likewise.
      	* include/experimental/source_location: Likewise.
      	* include/experimental/string: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/experimental/system_error: Likewise.
      	* include/experimental/tuple: Likewise.
      	* include/experimental/type_traits: Likewise.
      	* include/experimental/unordered_map: Likewise.
      	* include/experimental/unordered_set: Likewise.
      	* include/experimental/utility: Likewise.
      	* include/experimental/vector: Likewise.
      	* include/ext/bitmap_allocator.h: Likewise.
      	* include/ext/codecvt_specializations.h: Likewise.
      	* include/ext/rope: Likewise.
      	* include/ext/typelist.h: Likewise.
      	* include/std/chrono: Likewise.
      	* include/std/complex: Likewise.
      	* include/std/functional: Likewise.
      	* include/std/numeric: Likewise.
      	* include/std/string_view: Likewise.
      	* include/std/thread: Likewise.
      	* include/std/variant: Likewise.
      	* include/tr1/array: Likewise.
      	* include/tr1/bessel_function.tcc: Likewise.
      	* include/tr1/beta_function.tcc: Likewise.
      	* include/tr1/cmath: Likewise.
      	* include/tr1/complex: Likewise.
      	* include/tr1/ell_integral.tcc: Likewise.
      	* include/tr1/exp_integral.tcc: Likewise.
      	* include/tr1/functional: Likewise.
      	* include/tr1/functional_hash.h: Likewise.
      	* include/tr1/gamma.tcc: Likewise.
      	* include/tr1/hashtable.h: Likewise.
      	* include/tr1/hashtable_policy.h: Likewise.
      	* include/tr1/hypergeometric.tcc: Likewise.
      	* include/tr1/legendre_function.tcc: Likewise.
      	* include/tr1/modified_bessel_func.tcc: Likewise.
      	* include/tr1/poly_hermite.tcc: Likewise.
      	* include/tr1/poly_laguerre.tcc: Likewise.
      	* include/tr1/random.h: Likewise.
      	* include/tr1/random.tcc: Likewise.
      	* include/tr1/regex: Likewise.
      	* include/tr1/riemann_zeta.tcc: Likewise.
      	* include/tr1/shared_ptr.h: Likewise.
      	* include/tr1/special_function_util.h: Likewise.
      	* include/tr1/tuple: Likewise.
      	* include/tr1/type_traits: Likewise.
      	* include/tr1/unordered_map.h: Likewise.
      	* include/tr1/unordered_set.h: Likewise.
      	* include/tr1/utility: Likewise.
      	* include/tr2/bool_set: Likewise.
      	* include/tr2/bool_set.tcc: Likewise.
      	* include/tr2/dynamic_bitset: Likewise.
      	* include/tr2/dynamic_bitset.tcc: Likewise.
      	* include/tr2/ratio: Likewise.
      	* include/tr2/type_traits: Likewise.
      	* src/c++11/chrono.cc: Likewise.
      	* src/c++11/compatibility-c++0x.cc: Likewise.
      	* src/c++11/compatibility-chrono.cc: Likewise.
      	* src/c++11/cxx11-shim_facets.cc: Likewise.
      	* src/c++11/hashtable_c++0x.cc: Likewise.
      	* src/c++11/placeholders.cc: Likewise.
      	* src/c++11/thread.cc: Likewise.
      	* src/c++98/bitmap_allocator.cc: Likewise.
      	* src/c++98/hashtable_tr1.cc: Likewise.
      	* src/c++98/list.cc: Likewise.
      	* src/shared/hashtable-aux.cc: Likewise.
      	* testsuite/20_util/duration/literals/range.cc: Adapt line number.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/forward/c_neg.cc: Likewise.
      	* testsuite/20_util/forward/f_neg.cc: Likewise.
      	* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
      	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
      	* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
      	* python/libstdcxx/v6/printers.py: Adapt.
      
      From-SVN: r250458
      François Dumont committed
  15. 20 Mar, 2017 1 commit
    • stl_deque.h (deque): Access allocator value_type only if concept checks are enabled. · fe62dd04
      2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_deque.h (deque): Access allocator value_type only if
      	concept checks are enabled.
      	* include/bits/stl_stack.h (stack): Likewise.
      	* include/bits/stl_vector.h (vector): Likewise.
      	* include/bits/stl_list.h (list): Likewise and check
      	_SGIAssignableConcept only in C++03.
      	* include/bits/stl_map.h (map): Likewise.
      	* include/bits/stl_set.h (set): Likewise.
      	* include/bits/stl_multimap.h (multimap): Likewise.
      	* include/bits/stl_multiset.h (multiset): Likewise.
      	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
      
      From-SVN: r246294
      François Dumont committed
  16. 11 Jan, 2017 1 commit
    • PR78134 fix return types of heterogeneous lookup functions · b744bf4e
      	PR libstdc++/78134
      	* include/bits/stl_map.h (map::lower_bound, map::upper_bound)
      	(map::equal_range): Fix return type of heterogeneous overloads.
      	* include/bits/stl_multimap.h (multimap::lower_bound)
      	(multimap::upper_bound, multimap::equal_range): Likewise.
      	* include/bits/stl_multiset.h (multiset::lower_bound)
      	(multiset::upper_bound, multiset::equal_range): Likewise.
      	* include/bits/stl_set.h (set::lower_bound, set::upper_bound)
      	(set::equal_range): Likewise.
      	* testsuite/23_containers/map/operations/2.cc
      	* testsuite/23_containers/multimap/operations/2.cc
      	* testsuite/23_containers/multiset/operations/2.cc
      	* testsuite/23_containers/set/operations/2.cc
      
      From-SVN: r244318
      Jonathan Wakely committed
  17. 01 Jan, 2017 1 commit
  18. 07 Dec, 2016 1 commit
    • stl_map.h (map(const map&)): Make default. · a4dec0d6
      2016-12-07  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_map.h (map(const map&)): Make default.
      	(map(map&&)): Likewise.
      	(~map()): Likewise.
      	(operator=(const map&)): Likewise.
      	* include/bits/stl_multimap.h (multimap(const multimap&)): Make default.
      	(multimap(multimap&&)): Likewise.
      	(~multimap()): Likewise.
      	(operator=(const multimap&)): Likewise.
      	* include/bits/stl_set.h (set(const set&)): Make default.
      	(set(set&&)): Likewise.
      	(~set()): Likewise.
      	(operator=(const set&)): Likewise.
      	* include/bits/stl_multiset.h (multiset(const multiset&)): Make default.
      	(multiset(multiset&&)): Likewise.
      	(~multiset()): Likewise.
      	(operator=(const multiset&)): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree_key_compare<>): New.
      	(_Rb_tree_header): New.
      	(_Rb_tree_impl): Inherit from latters.
      	(_Rb_tree_impl()): Make default.
      	(_Rb_tree_impl(const _Rb_tree_impl&)): New.
      	(_Rb_tree<>(const _Rb_tree&): Use latter.
      	(_Rb_tree_impl(_Rb_tree_impl&&)): New, default.
      	(_Rb_tree_impl(const _Key_compare&, const _Node_allocator&)): Delete.
      	(_Rb_tree_impl::_M_reset): Move...
      	(_Rb_tree_header::_M_reset): ...here.
      	(_Rb_tree_impl::_M_initialize): Delete.
      	(_Rb_tree(_Rb_tree&&)): Make default.
      	(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): New.
      	(_Rb_tree<>::_M_move_data(_Rb_tree&, true_type)): Use latter.
      	(_Rb_tree<>(_Rb_tree&&)): Make default.
      
      From-SVN: r243379
      François Dumont committed
  19. 26 Oct, 2016 1 commit
    • stl_map.h (map()): Make default. · d72c3f0a
      2016-10-26  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_map.h (map()): Make default.
      	* 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_impl()): Add conditional noexcept.
      	(_Rb_tree()): Make default.
      
      From-SVN: r241601
      François Dumont committed
  20. 05 Oct, 2016 1 commit
    • 77864 Fix noexcept conditions for map/set default constructors · a2a64b49
      	PR libstdc++/77864
      	* include/bits/stl_map.h (map::map()): Use nothrow constructibility
      	of comparison function in conditional noexcept.
      	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
      	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
      	* include/bits/stl_set.h (set::set()): Likewise.
      	* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
      	New test.
      	* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
      	Likewise.
      	* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
      	Likewise.
      	* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
      	Likewise.
      
      From-SVN: r240780
      Jonathan Wakely committed
  21. 26 Sep, 2016 1 commit
    • Add assertions to extract(const_iterator) functions · 976160b9
      	* include/bits/stl_map.h (map::extract(const_iterator)): Assert that
      	iterator is not past-the-end.
      	* include/bits/stl_multimap.h (multimap::extract(const_iterator)):
      	Likewise.
      	* include/bits/stl_multiset.h (multiset::extract(const_iterator)):
      	Likewise.
      	* include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
      	* include/bits/unordered_map.h (unordered_map::extract(const_iterator))
      	(unordered_multimap::extract(const_iterator)): Likewise.
      	* include/bits/unordered_set.h (unordered_set::extract(const_iterator))
      	(unordered_multiset::extract(const_iterator)): Likewise.
      
      From-SVN: r240487
      Jonathan Wakely committed
  22. 22 Sep, 2016 1 commit
    • Implement C++17 node extraction and insertion (P0083R5) · 2dbe56bd
      	* doc/xml/manual/status_cxx2017.xml: Document status.
      	* doc/html/*: Regenerate.
      	* include/Makefile.am: Add bits/node_handle.h and reorder.
      	* include/Makefile.in: Regenerate.
      	* include/bits/hashtable.h (_Hashtable::node_type)
      	(_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
      	(_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
      	(_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
      	(_Hash_merge_helper): Define primary template.
      	* include/bits/node_handle.h: New header.
      	* include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
      	friend.
      	(map::node_type, map::insert_return_type, map::extract, map::merge)
      	(map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
      	Define new members.
      	(_Rb_tree_merge_helper): Specialize for map.
      	* include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
      	as friend.
      	(multimap::node_type, multimap::extract, multimap::merge)
      	(multimap::insert(node_type&&))
      	(multimap::insert(const_iterator, node_type&&)): Define.
      	(_Rb_tree_merge_helper): Specialize for multimap.
      	* include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
      	as friend.
      	(multiset::node_type, multiset::extract, multiset::merge)
      	(multiset::insert(node_type&&))
      	(multiset::insert(const_iterator, node_type&&)): Define.
      	* include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
      	friend.
      	(set::node_type, set::insert_return_type, set::extract, set::merge)
      	(set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
      	Define.
      	(_Rb_tree_merge_helper): Specialize for set.
      	* include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
      	(_Rb_tree::node_type, _Rb_tree::insert_return_type)
      	(_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
      	(_Rb_tree::_M_reinsert_node_hint_unique)
      	(_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
      	(_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
      	(_Rb_tree_merge_helper): Specialize for multiset.
      	* include/bits/unordered_map.h (unordered_map): Declare
      	unordered_map<> and unordered_multimap<> as friends.
      	(unordered_map::node_type, unordered_map::insert_return_type)
      	(unordered_map::extract, unordered_map::merge)
      	(unordered_map::insert(node_type&&))
      	(unordered_map::insert(const_iterator, node_type&&))
      	(unordered_multimap): Declare _Hash_merge_helper as friend.
      	(unordered_multimap::node_type, unordered_multimap::extract)
      	(unordered_multimap::merge, unordered_multimap::insert(node_type&&))
      	(unordered_multimap::insert(const_iterator, node_type&&)): Define.
      	(_Hash_merge_helper): Specialize for unordered maps and multimaps.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Declare _Hash_merge_helper as friend.
      	(unordered_set::node_type, unordered_set::insert_return_type)
      	(unordered_set::extract, unordered_set::merge)
      	(unordered_set::insert(node_type&&))
      	(unordered_set::insert(const_iterator, node_type&&)): Define.
      	(unordered_multiset::node_type, unordered_multiset::extract)
      	(unordered_multiset::merge, unordered_multiset::insert(node_type&&))
      	(unordered_multiset::insert(const_iterator, node_type&&)): Define.
      	(_Hash_merge_helper): Specialize for unordered sets and multisets.
      	* include/debug/map.h (map): Add using declarations or forwarding
      	functions for new members.
      	* include/debug/map.h (multimap): Likewise.
      	* include/debug/map.h (multiset): Likewise.
      	* include/debug/map.h (set): Likewise.
      	* include/debug/unordered_map (unordered_map, unordered_multimap):
      	Likewise.
      	* include/debug/unordered_set( unordered_set, unordered_multiset):
      	Likewise.
      	* python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
      	helper function.
      	(get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
      	(StdNodeHandlePrinter): Define printer for node handles.
      	(build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
      	* testsuite/23_containers/map/modifiers/extract.cc: New.
      	* testsuite/23_containers/map/modifiers/merge.cc: New.
      	* testsuite/23_containers/multimap/modifiers/extract.cc: New.
      	* testsuite/23_containers/multimap/modifiers/merge.cc: New.
      	* testsuite/23_containers/multiset/modifiers/extract.cc: New.
      	* testsuite/23_containers/multiset/modifiers/merge.cc: New.
      	* testsuite/23_containers/set/modifiers/extract.cc: New.
      	* testsuite/23_containers/set/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
      	* testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
      	New.
      	* testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
      	* testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
      	dg-error lineno.
      	* testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
      
      From-SVN: r240363
      Jonathan Wakely committed
  23. 14 Jul, 2016 1 commit
    • Improve doxygen comments for allocators in containers · 0a2bf188
      	PR libstdc++/70716
      	* include/bits/forward_list.h (forward_list): Update doxygen comments
      	to reflect allocator propagation semantics. Remove ambiguous
      	statements about data being lost.
      	* include/bits/stl_deque.h (deque): Likewise.
      	* include/bits/stl_list.h (list): Likewise.
      	* include/bits/stl_map.h (map): Likewise.
      	* include/bits/stl_multimap.h (multimap): Likewise.
      	* include/bits/stl_multiset.h (multiset): Likewise.
      	* include/bits/stl_set.h (set): Likewise.
      	* include/bits/stl_vector.h (vector): Likewise.
      	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
      	Likewise.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Likewise.
      
      From-SVN: r238332
      Jonathan Wakely committed
  24. 04 Jan, 2016 1 commit
  25. 10 Nov, 2015 1 commit
    • Fix return type of heterogeneous find for sets · d4a9dffb
      	PR libstdc++/68190
      	* include/bits/stl_multiset.h (multiset::find): Fix return types.
      	* include/bits/stl_set.h (set::find): Likewise.
      	* testsuite/23_containers/map/operations/2.cc: Test find return types.
      	* testsuite/23_containers/multimap/operations/2.cc: Likewise.
      	* testsuite/23_containers/multiset/operations/2.cc: Likewise.
      	* testsuite/23_containers/set/operations/2.cc: Likewise.
      
      From-SVN: r230113
      Jonathan Wakely committed
  26. 13 Jul, 2015 1 commit
    • c++config (_GLIBCXX_NOEXCEPT_IF): Define. · c5d9ec56
      	* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
      	* include/bits/forward_list.h (forward_list::swap): Make noexcept
      	unconditional.
      	* include/bits/hashtable.h (_Hashtable::swap): Do not use
      	_S_nothrow_swap().
      	* include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
      	unconditional.
      	* include/bits/stl_deque.h (deque::swap): Likewise.
      	(swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
      	* include/bits/stl_list.h (list::swap): Make noexcept unconditional.
      	(swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
      	* include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
      	_GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
      	* include/bits/stl_multimap.h (multimap::swap,
      	swap(multimap&, multimap&)): Likewise.
      	* include/bits/stl_multiset.h (multiset::swap,
      	swap(multiset&, multiset&)): Likewise.
      	* include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree::swap,
      	swap(_Rb_tree&, _Rb_tree&)): Likewise.
      	* include/bits/stl_vector.h (vector::swap): Make noexcept
      	unconditional.
      	(swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
      	* include/debug/deque (deque::swap, swap): Likewise.
      	* include/debug/forward_list (swap): Add noexcept.
      	* include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
      	* include/debug/map.h (map::swap, swap): Likewise.
      	* include/debug/multimap.h (multimap::swap, swap): Likewise.
      	* include/debug/multiset.h (multiset::Swap, swap): Likewise.
      	* include/debug/set.h (set::swap, swap): Likewise.
      	* include/debug/unordered_map (unordered_map::swap,
      	unordered_multimap::swap, swap): Likewise.
      	* include/debug/unordered_set (unordered_set::swap,
      	unordered_multiset::swap, swap): Likewise.
      	* include/debug/vector (vector::swap, swap): Likewise.
      	* include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
      	Remove.
      	* include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
      	* include/profile/forward_list (swap): Add noexcept.
      	* include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
      	* include/profile/map.h (map::swap, swap): Likewise.
      	* include/profile/multimap.h (multimap::swap, swap): Likewise.
      	* include/profile/multiset.h (multiset::swap, swap): Likewise.
      	* include/profile/set.h (set::swap, swap): Likewise.
      	* include/profile/unordered_map (swap): Likewise.
      	* include/profile/unordered_set (swap): Likewise.
      	* include/profile/vector (vector::swap, swap): Likewise. Remove
      	overloads for swapping rvalues.
      	* testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
      	for noexcept on swap.
      	* testsuite/23_containers/forward_list/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
      	* testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
      	number.
      
      From-SVN: r225744
      Jonathan Wakely committed
  27. 26 Jun, 2015 2 commits
    • Implement N4258 (Cleaning-up noexcept in the Library rev 3) · a2b5fdcb
      	* doc/xml/manual/intro.xml: Document LWG 2108 status.
      	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
      	Define.
      	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
      	* include/bits/forward_list.h
      	(forward_list::operator=(forward_list&&)): Use __bool_constant.
      	(forward_list::swap(forward_list&)): Add noexcept.
      	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
      	Likewise.
      	(_Hashtable::swap(_Hashtable&)): Likewise.
      	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
      	Use _Alloc_traits::is_always_equal.
      	(deque::operator=(deque&&)): Likewise.
      	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
      	__bool_constant.
      	(swap(deque&, deque&)): Add noexcept.
      	* include/bits/stl_list.h (list::operator=(list&&)): Use
      	__bool_constant.
      	(swap(list&, list&)): Add noexcept.
      	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
      	noexcept.
      	(swap(map&, map&)): Add noexcept.
      	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
      	_Compare in noexcept.
      	(swap(multimap&, multimap&)): Add noexcept.
      	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
      	_Compare in noexcept.
      	(swap(multiset&, multiset&)): Add noexcept.
      	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
      	noexcept.
      	(swap(set&, set&)): Add noexcept.
      	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
      	_Compare in noexcept.
      	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
      	is_always_equal.
      	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
      	__bool_constant.
      	(swap(vector&, vector&)): Add noexcept.
      	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
      	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
      	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
      	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
      	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
      	Remove.
      	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
      	__allocator_always_compares_equal.
      	* include/ext/array_allocator.h (array_allocator::is_always_equal):
      	Define.
      	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
      	__propagate_on_move, __propagate_on_swap): Remove.
      	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
      	scoped_allocator_adaptor::propagate_on_container_move_assignment,
      	scoped_allocator_adaptor::propagate_on_container_swap): Define with
      	__and_ instead of __any_of.
      	(scoped_allocator_adaptor::is_always_equal): Define.
      	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
      	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
      	derive from true_type or false_type.
      	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
      	is_always_equal member and remove the trait specialization.
      	* testsuite/23_containers/vector/52591.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
      	Adjust dg-error line number.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* 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.
      
      From-SVN: r225081
      Jonathan Wakely committed
    • stl_bvector.h (vector<bool>::vector()): Add noexcept. · 504a5fe6
      	* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
      	* include/bits/stl_map.h (map::map()): Likewise.
      	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
      	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
      	* include/bits/stl_set.h (set::set()): Likewise.
      
      From-SVN: r225024
      Jonathan Wakely committed
  28. 20 Jan, 2015 1 commit
    • Implement N3657: heterogeneous lookup in associative containers. · 91c78ea5
      	* include/bits/stl_map.h (map::find<>, map::count<>,
      	map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
      	member function templates to perform heterogeneous lookup.
      	* include/bits/stl_multimap.h (multimap::find<>, multimap::count<>,
      	multimap::lower_bound<>, multimap::upper_bound<>,
      	multimap::equal_range<>): Likewise.
      	* include/bits/stl_multiset.h (multiset::find<>, multiset::count<>,
      	multiset::lower_bound<>, multiset::upper_bound<>,
      	multiset::equal_range<>): Likewise.
      	* include/bits/stl_set.h (set::find<>, set::count<>,
      	set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr,
      	_Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr,
      	_Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr,
      	_Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise.
      	* testsuite/23_containers/map/operations/2.cc: New.
      	* testsuite/23_containers/multimap/operations/2.cc: New.
      	* testsuite/23_containers/multiset/operations/2.cc: New.
      	* testsuite/23_containers/set/operations/2.cc: New.
      
      From-SVN: r219888
      Jonathan Wakely committed
  29. 05 Jan, 2015 1 commit
  30. 24 Sep, 2014 1 commit
    • re PR libstdc++/29988 (More stl_tree.h enhancements: improving operator=) · c6195f58
      2014-09-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/29988
      	* include/bits/stl_tree.h (_Rb_tree_reuse_or_alloc_node<>): New.
      	(_Rb_tree_alloc_node<>): New.
      	(_Rb_tree<>::operator=(_Rb_tree<>&&)): New.
      	(_Rb_tree<>::_M_assign_unique): New.
      	(_Rb_tree<>::_M_assign_equal): New.
      	(_Rb_tree<>): Adapt to reuse allocated nodes as much as possible.
      	* include/bits/stl_map.h
      	(std::map<>::operator=(std::map<>&&)): Default implementation.
      	(std::map<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_unique.
      	* include/bits/stl_multimap.h
      	(std::multimap<>::operator=(std::multimap<>&&)): Default implementation.
      	(std::multimap<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_equal.
      	* include/bits/stl_set.h
      	(std::set<>::operator=(std::set<>&&)): Default implementation.
      	(std::set<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_unique.
      	* include/bits/stl_multiset.h
      	(std::multiset<>::operator=(std::multiset<>&&)): Default implementation.
      	(std::multiset<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_equal.
      	* testsuite/23_containers/map/allocator/copy_assign.cc (test03): New.
      	* testsuite/23_containers/map/allocator/init-list.cc: New.
      	* testsuite/23_containers/map/allocator/move_assign.cc (test03): New.
      	* testsuite/23_containers/multimap/allocator/copy_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multimap/allocator/init-list.cc: New.
      	* testsuite/23_containers/multimap/allocator/move_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multiset/allocator/copy_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multiset/allocator/init-list.cc: New.
      	* testsuite/23_containers/multiset/allocator/move_assign.cc
      	(test03): New.
      	* testsuite/23_containers/set/allocator/copy_assign.cc (test03): New.
      	* testsuite/23_containers/set/allocator/init-list.cc: New.
      	* testsuite/23_containers/set/allocator/move_assign.cc (test03): New.
      
      From-SVN: r215568
      François Dumont committed
  31. 14 Jun, 2014 1 commit
    • api.xml: Link to more recent API docs. · 10d43d2f
      	* doc/xml/api.xml: Link to more recent API docs.
      	* include/bits/allocator.h: Fix link in doxygen comment.
      	* include/bits/char_traits.h: Likewise.
      	* include/bits/ios_base.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/unordered_map.h: Likewise.
      	* include/bits/unordered_set.h: Likewise.
      	* include/ext/mt_allocator.h: Likewise.
      	* include/std/fstream: Likewise.
      	* include/std/iosfwd: Likewise.
      	* include/std/ostream: Likewise.
      	* include/std/sstream: Likewise.
      	* include/std/streambuf: Likewise.
      	* doc/html/*: Regenerate.
      
      From-SVN: r211671
      Jonathan Wakely committed
  32. 23 Jan, 2014 1 commit
    • re PR libstdc++/59872 (Cannot move std::map with move-only mapped_type) · 6a5839c8
      	PR libstdc++/59872
      	* include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
      	* include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
      	Likewise.
      	* include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
      	Likewise.
      	* include/bits/stl_set.h (set::operator=(set&&)): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
      	functions to perform moving or copying of elements from rvalue tree.
      	(_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
      	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
      	* testsuite/23_containers/map/59872.cc: New.
      	* testsuite/23_containers/map/56613.cc: Remove duplicate include.
      
      From-SVN: r206994
      Jonathan Wakely committed
  33. 02 Jan, 2014 1 commit
  34. 15 Nov, 2013 1 commit
    • stl_map.h (map): Implement C++11 allocator-aware container requirements. · ff90a89e
      	* 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.
      
      From-SVN: r204848
      Jonathan Wakely committed
  35. 10 Jun, 2013 1 commit
    • c++config (_GLIBCXX_ABI_TAG_CXX11): Add. · 3b31a727
      2013-06-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/bits/c++config (_GLIBCXX_ABI_TAG_CXX11): Add.
      	* include/bits/stl_map.h (erase): Use abi_tag when C++11.
      	* include/bits/stl_multimap.h: Same.
      	* include/bits/stl_multiset.h: Same.
      	* include/bits/stl_set.h: Same.
      	* include/bits/stl_tree.h: Same.
      	* include/std/complex (real, imag): Use macro for abi_tag.
      
      	* testsuite/lib/libstdc++.exp: Disable inlinling with -fno-inline.
      	* testsuite/util/testsuite_containers.h (erase_external): New
      	declarations.
      	(erase_external_iterators): Same.
      	(linkage_check_cxx98_cxx11_erase): Same.
      	(linkage_check_cxx98_cxx11_erase_iterators): Same.
      	* testsuite/util/testsuite_shared.cc: Define.
      	* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: New.
      	* testsuite/23_containers/map/modifiers/erase/
      	dr130-linkage-check.cc: New.
      	* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: New.
      	* testsuite/23_containers/multimap/modifiers/erase/
      	dr130-linkage-check.cc: New.
      	* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: New.
      	* testsuite/23_containers/multiset/modifiers/erase/
      	dr130-linkage-check.cc: New.
      	* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: New.
      	* testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc:
      	New.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line number.
      
      	* testsuite/23_containers/map/dr130.cc: Move...
      	* testsuite/23_containers/map/modifiers/dr130.cc: ...here.
      	* testsuite/23_containers/multimap/dr130.cc: Move ...
      	* testsuite/23_containers/multimap/modifiers/dr130.cc: ...here.
      	* testsuite/23_containers/multiset/dr130.cc: Move...
      	* testsuite/23_containers/multiset/modifiers/dr130.cc: ...here.
      	* testsuite/23_containers/set/dr130.cc: Move...
      	* testsuite/23_containers/set/modifiers/dr130.cc: ...here.
      
      From-SVN: r199924
      Benjamin Kosnik committed
  36. 03 Feb, 2013 1 commit
  37. 10 Nov, 2012 1 commit
  38. 24 Sep, 2012 1 commit
    • re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) · 55826ab6
      2012-09-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/44436
      	* include/bits/stl_tree.h
      	(_Rb_tree<>::_M_insert_): Take _Base_ptr rather than
      	_Const_Base_ptr.
      	(_Rb_tree<>::_M_insert_node): New.
      	(_Rb_tree<>::_M_get_insert_unique_pos): New, search code of
      	_M_insert_unique method.
      	(_Rb_tree<>::_M_insert_unique): Use latter.
      	(_Rb_tree<>::_M_emplace_unique): New, likewise.
      	(_Rb_tree<>::_M_get_insert_equal_pos): New, search code of
      	_M_insert_equal method.
      	(_Rb_tree<>::_M_insert_equal): Use latter.
      	(_Rb_tree<>::_M_emplace_equal): New, likewise.
      	(_Rb_tree<>::_M_get_insert_hint_unique_pos): New, search code of
      	_M_insert_unique_ method.
      	(_Rb_tree<>::_M_insert_unique_): Use latter.
      	(_Rb_tree<>::_M_emplace_hint_unique): New, likewise.
      	(_Rb_tree<>::_M_get_insert_hint_equal_pos): New, search code of
      	_M_insert_equal_ method.
      	(_Rb_tree<>::_M_insert_equal_): Use latter.
      	(_Rb_tree<>::_M_emplace_hint_equal): New, likewise.
      	(_Rb_tree<>::_M_insert_lower): Remove first _Base_ptr parameter,
      	useless as always null.
      	* include/bits/stl_map.h: Include <tuple> in C++11.
      	(map<>::operator[](const key_type&)): Use
      	_Rb_tree<>::_M_emplace_hint_unique in C++11.
      	(map<>::operator[](key_type&&)): Likewise.
      	(map<>::emplace): New.
      	(map<>::emplace_hint): New.
      	* include/bits/stl_multimap.h (multimap<>::emplace): New.
      	(multimap<>::emplace_hint): New.
      	* include/bits/stl_set.h (set<>::emplace): New.
      	(set<>::emplace_hint): New.
      	* include/bits/stl_multiset.h (multiset<>::emplace): New.
      	(multiset<>::emplace_hint): New.
      	* include/debug/map.h (std::__debug::map<>::emplace): New.
      	(std::__debug::map<>::emplace_hint): New.
      	* include/debug/multimap.h (std::__debug::multimap<>::emplace):
      	New.
      	(std::__debug::multimap<>::emplace_hint): New.
      	* include/debug/set.h (std::__debug::set<>::emplace): New.
      	(std::__debug::set<>::emplace_hint): New.
      	* include/debug/multiset.h (std::__debug::multiset<>::emplace):
      	New.
      	(std::__debug::multiset<>::emplace_hint): New.
      	* include/profile/map.h (std::__profile::map<>::emplace): New.
      	(std::__profile::map<>::emplace_hint): New.
      	* include/profile/multimap.h (std::__profile::multimap<>::emplace):
      	New.
      	(std::__profile::multimap<>::emplace_hint): New.
      	* include/profile/set.h (std::__profile::set<>::emplace): New.
      	(std::__profile::set<>::emplace_hint): New.
      	* include/profile/multiset.h (std::__profile::multiset<>::emplace):
      	New.
      	(std::__profile::multiset<>::emplace_hint): New.
      	* testsuite/util/testsuite_container_traits.h: Signal that emplace
      	and emplace_hint are available on std::map, std::multimap,
      	std::set and std::multiset in C++11.
      	* testsuite/23_containers/map/operators/2.cc: New.
      	* testsuite/23_containers/map/modifiers/emplace/1.cc: New.
      	* testsuite/23_containers/multimap/modifiers/emplace/1.cc: New.
      	* testsuite/23_containers/set/modifiers/emplace/1.cc: New.
      	* testsuite/23_containers/multiset/modifiers/emplace/1.cc: New.
      
      From-SVN: r191679
      François Dumont committed
  39. 02 May, 2012 1 commit
    • re PR libstdc++/44015 (template parameters not documented) · d632488a
      2012-05-02  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/44015
      	* include/bits/basic_ios.h: Add tparam markup for
      	* doxygen.  include/bits/basic_string.h: Same.
      	* include/bits/forward_list.h: Same.
      	* include/bits/stl_bvector.h: Same.
      	* include/bits/stl_deque.h: Same.
      	* include/bits/stl_list.h: Same.  include/bits/stl_map.h:
      	* Same.  include/bits/stl_multimap.h: Same.
      	* include/bits/stl_multiset.h: Same.
      	* include/bits/stl_pair.h: Same.
      	* include/bits/stl_queue.h: Same.
      	* include/bits/stl_set.h: Same.
      	* include/bits/stl_stack.h: Same.
      	* include/bits/stl_vector.h: Same.
      	* include/bits/unordered_map.h: Same.
      	* include/bits/unordered_set.h: Same.  include/std/array:
      	* Same.  include/std/atomic: Same.  include/std/fstream:
      	* Same.  include/std/istream: Same.  include/std/ostream:
      	* Same.  include/std/sstream: Same.
      	* include/std/streambuf: Same.
      	* testsuite/23_containers/deque/requirements/dr438/*:
                Adjust line numbers.
      	* testsuite/23_containers/list/requirements/dr438/*: Same.
      	* testsuite/23_containers/vector/requirements/dr438/*: Same.
      
      From-SVN: r187066
      Benjamin Kosnik committed