<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/libstdc++-v3/include/debug/map.h, branch trunk</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>libstdc++: Test specific feature test macros instead of __cplusplus</title>
<updated>2025-10-14T14:47:20+00:00</updated>
<author>
<name>Jonathan Wakely</name>
<email>jwakely@redhat.com</email>
</author>
<published>2025-10-08T14:24:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=9b444204886227c9714158859bf21920e42e2656'/>
<id>9b444204886227c9714158859bf21920e42e2656</id>
<content type='text'>
This changes the associative and unordered containers to check
__glibcxx_node_extract, __glibcxx_generic_associative_lookup, and
__glibcxx_generic_unordered_lookup instead of just checking the value of
__cplusplus.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable.h: Check specific feature test macros
	instead of checking thevalue of __cplusplus.
	* 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_tree.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: 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.

Reviewed-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes the associative and unordered containers to check
__glibcxx_node_extract, __glibcxx_generic_associative_lookup, and
__glibcxx_generic_unordered_lookup instead of just checking the value of
__cplusplus.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable.h: Check specific feature test macros
	instead of checking thevalue of __cplusplus.
	* 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_tree.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: 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.

Reviewed-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libstdc++: Define __cpp_lib_containers_ranges in appropriate headers [PR111055]</title>
<updated>2025-04-11T11:56:03+00:00</updated>
<author>
<name>Tomasz Kamiński</name>
<email>tkaminsk@redhat.com</email>
</author>
<published>2025-03-21T11:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=ae54d8cb51eb5cc1f5a3d319cc1840d2e9bfcbfc'/>
<id>ae54d8cb51eb5cc1f5a3d319cc1840d2e9bfcbfc</id>
<content type='text'>
This is final piece of P1206R7, adding a feature test macros,
as range constructors and member operations are now implemented for
all containers and adaptors.

For consistency with the proposal, all new container operations and
helpers are now defined if __glibcxx_containers_ranges, instead
of __glibcxx_ranges_to_container.

	PR libstdc++/111055

libstdc++-v3/ChangeLog:

	* include/bits/version.def (containers_ranges): Define.
	* include/bits/version.h: Regenerate.
	* include/bits/ranges_base.h (__detail::__container_compatible_range)
	(__detail::__range_to_alloc_type, __detail::__range_mapped_type)
	(__detail::__range_key_type): Depend on __glibcxx_containers_ranges
	instead of __glibcxx_ranges_to_container.
	* include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
	__glibcxx_containers_ranges.
	* include/bits/cow_string.h: Likewise.
	* include/bits/deque.tcc: Likewise.
	* include/bits/forward_list.h: Likewise.
	* include/bits/stl_bvector.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_vector.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/bits/vector.tcc: 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.
	* include/std/deque: Provide __cpp_lib_containers_ranges.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/map: Likewise.
	* include/std/queue: Likewise.
	* include/std/set: Likewise.
	* include/std/stack: Likewise.
	* include/std/string: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/vector: Likewise.
	* testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
	__cpp_lib_containers_ranges.
	* testsuite/23_containers/deque/cons/from_range.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/stack/cons_from_range.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/cons/from_range.cc: Likewise.

Reviewed-by: Jonathan Wakely &lt;jwakely@redhat.com&gt;
Signed-off-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is final piece of P1206R7, adding a feature test macros,
as range constructors and member operations are now implemented for
all containers and adaptors.

For consistency with the proposal, all new container operations and
helpers are now defined if __glibcxx_containers_ranges, instead
of __glibcxx_ranges_to_container.

	PR libstdc++/111055

libstdc++-v3/ChangeLog:

	* include/bits/version.def (containers_ranges): Define.
	* include/bits/version.h: Regenerate.
	* include/bits/ranges_base.h (__detail::__container_compatible_range)
	(__detail::__range_to_alloc_type, __detail::__range_mapped_type)
	(__detail::__range_key_type): Depend on __glibcxx_containers_ranges
	instead of __glibcxx_ranges_to_container.
	* include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
	__glibcxx_containers_ranges.
	* include/bits/cow_string.h: Likewise.
	* include/bits/deque.tcc: Likewise.
	* include/bits/forward_list.h: Likewise.
	* include/bits/stl_bvector.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_vector.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/bits/vector.tcc: 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.
	* include/std/deque: Provide __cpp_lib_containers_ranges.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/map: Likewise.
	* include/std/queue: Likewise.
	* include/std/set: Likewise.
	* include/std/stack: Likewise.
	* include/std/string: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/vector: Likewise.
	* testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
	__cpp_lib_containers_ranges.
	* testsuite/23_containers/deque/cons/from_range.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/stack/cons_from_range.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/cons/from_range.cc: Likewise.

Reviewed-by: Jonathan Wakely &lt;jwakely@redhat.com&gt;
Signed-off-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libstdc++: Add from_range_t constructors to debug ordered containers</title>
<updated>2025-03-20T09:59:41+00:00</updated>
<author>
<name>Jonathan Wakely</name>
<email>jwakely@redhat.com</email>
</author>
<published>2025-03-19T22:22:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=f3253bd7bd49e54fe56cfb7e41fed4d8183803de'/>
<id>f3253bd7bd49e54fe56cfb7e41fed4d8183803de</id>
<content type='text'>
libstdc++-v3/ChangeLog:

	* include/debug/map.h (map): Add from_range constructors and
	deduction guides.
	* include/debug/multimap.h (multimap): Likewise.
	* include/debug/multiset.h (multiset): Likewise.
	* include/debug/set.h (set): Likewise.

Reviewed-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
libstdc++-v3/ChangeLog:

	* include/debug/map.h (map): Add from_range constructors and
	deduction guides.
	* include/debug/multimap.h (multimap): Likewise.
	* include/debug/multiset.h (multiset): Likewise.
	* include/debug/set.h (set): Likewise.

Reviewed-by: Tomasz Kamiński &lt;tkaminsk@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2025-01-02T10:59:57+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2025-01-02T10:59:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=6441eb6dc020faae0672ea724dfdb38c6a9bf6a1'/>
<id>6441eb6dc020faae0672ea724dfdb38c6a9bf6a1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libstdc++: Do not define _Insert_base::try_emplace before C++17</title>
<updated>2024-11-08T14:39:56+00:00</updated>
<author>
<name>Jonathan Wakely</name>
<email>jwakely@redhat.com</email>
</author>
<published>2024-11-08T13:58:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=b66a57c0ad300b293ebd366bc29f44f2ddb65c69'/>
<id>b66a57c0ad300b293ebd366bc29f44f2ddb65c69</id>
<content type='text'>
This is not a reserved name in C++11 and C++14, so must not be defined.

Also use the appropriate feature test macros for the try_emplace members
of the Debug Mode maps.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable_policy.h (_Insert_base::try_emplace):
	Do not define for C++11 and C++14.
	* include/debug/map.h (try_emplace): Use feature test macro.
	* include/debug/unordered_map (try_emplace): Likewise.
	* testsuite/17_intro/names.cc: Define try_emplace before C++17.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is not a reserved name in C++11 and C++14, so must not be defined.

Also use the appropriate feature test macros for the try_emplace members
of the Debug Mode maps.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable_policy.h (_Insert_base::try_emplace):
	Do not define for C++11 and C++14.
	* include/debug/map.h (try_emplace): Use feature test macro.
	* include/debug/unordered_map (try_emplace): Likewise.
	* testsuite/17_intro/names.cc: Define try_emplace before C++17.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2024-01-03T11:19:35+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2024-01-03T11:19:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=a945c346f57ba40fc80c14ac59be0d43624e559d'/>
<id>a945c346f57ba40fc80c14ac59be0d43624e559d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2023-01-16T10:52:17+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2023-01-16T10:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=83ffe9cde7fe0b4deb0d1b54175fd9b19c38179c'/>
<id>83ffe9cde7fe0b4deb0d1b54175fd9b19c38179c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2022-01-03T09:42:10+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2022-01-03T09:42:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=7adcbafe45f8001b698967defe682687b52c0007'/>
<id>7adcbafe45f8001b698967defe682687b52c0007</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if</title>
<updated>2021-11-20T15:11:22+00:00</updated>
<author>
<name>François Dumont</name>
<email>fdumont@gcc.gnu.org</email>
</author>
<published>2021-11-16T20:51:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=5f40d34b6dd30ed076f9beb9a88e7ec264c1a55a'/>
<id>5f40d34b6dd30ed076f9beb9a88e7ec264c1a55a</id>
<content type='text'>
Bypass the _GLIBCXX_DEBUG additional checks in std::__detail::__erase_node_if used
by all implementations of std::erase_if for node based containers.

libstdc++-v3/ChangeLog:

	* include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
	parameter. Use it to get iterators to work with.
	* include/debug/macros.h (__glibcxx_check_erase2): New.
	* include/debug/map.h (map&lt;&gt;::erase(_Base_const_iterator)): New.
	(map&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/multimap.h (multimap&lt;&gt;::erase(_Base_const_iterator)): New.
	(multimap&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/multiset.h (multiset&lt;&gt;::erase(_Base_const_iterator)): New.
	(multiset&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/set.h (set&lt;&gt;::erase(_Base_const_iterator)): New.
	(set&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/unordered_map (unordered_map&lt;&gt;::erase(_Base_const_iterator)): New.
	(unordered_multimap&lt;&gt;::erase(const_iterator)): New.
	* include/debug/unordered_set (unordered_set&lt;&gt;::erase(_Base_const_iterator)): New.
	(unordered_multiset&lt;&gt;::erase(const_iterator)): New.
	* include/experimental/map (erase_if): Adapt.
	* include/experimental/set (erase_if): Adapt.
	* include/experimental/unordered_map (erase_if): Adapt.
	* include/experimental/unordered_set (erase_if): Adapt.
	* include/std/map (erase_if): Adapt.
	* include/std/set (erase_if): Adapt.
	* include/std/unordered_map (erase_if): Adapt.
	* include/std/unordered_set (erase_if): Adapt.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bypass the _GLIBCXX_DEBUG additional checks in std::__detail::__erase_node_if used
by all implementations of std::erase_if for node based containers.

libstdc++-v3/ChangeLog:

	* include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
	parameter. Use it to get iterators to work with.
	* include/debug/macros.h (__glibcxx_check_erase2): New.
	* include/debug/map.h (map&lt;&gt;::erase(_Base_const_iterator)): New.
	(map&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/multimap.h (multimap&lt;&gt;::erase(_Base_const_iterator)): New.
	(multimap&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/multiset.h (multiset&lt;&gt;::erase(_Base_const_iterator)): New.
	(multiset&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/set.h (set&lt;&gt;::erase(_Base_const_iterator)): New.
	(set&lt;&gt;::erase(const_iterator)): Use latter.
	* include/debug/unordered_map (unordered_map&lt;&gt;::erase(_Base_const_iterator)): New.
	(unordered_multimap&lt;&gt;::erase(const_iterator)): New.
	* include/debug/unordered_set (unordered_set&lt;&gt;::erase(_Base_const_iterator)): New.
	(unordered_multiset&lt;&gt;::erase(const_iterator)): New.
	* include/experimental/map (erase_if): Adapt.
	* include/experimental/set (erase_if): Adapt.
	* include/experimental/unordered_map (erase_if): Adapt.
	* include/experimental/unordered_set (erase_if): Adapt.
	* include/std/map (erase_if): Adapt.
	* include/std/set (erase_if): Adapt.
	* include/std/unordered_map (erase_if): Adapt.
	* include/std/unordered_set (erase_if): Adapt.
</pre>
</div>
</content>
</entry>
<entry>
<title>libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container&lt;&gt;::_M_safe()</title>
<updated>2021-11-14T20:55:01+00:00</updated>
<author>
<name>François Dumont</name>
<email>fdumont@gcc.gnu.org</email>
</author>
<published>2021-11-12T06:26:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=e9a53a4f764c37b50aff68811c5d37fcd6f38adb'/>
<id>e9a53a4f764c37b50aff68811c5d37fcd6f38adb</id>
<content type='text'>
_GLIBCXX_DEBUG container code cleanup to get rid of _Safe_container&lt;&gt;::_M_safe() and just
use _Safe:: calls which use normal inheritance. Also remove several usages of _M_base()
which can be most of the time ommitted and sometimes replace with explicit _Base::
calls.

libstdc++-v3/ChangeLog:

	* include/debug/safe_container.h (_Safe_container&lt;&gt;::_M_safe): Remove.
	* include/debug/deque (deque::operator=(initializer_list&lt;&gt;)): Replace
	_M_base() call with _Base:: call.
	(deque::operator[](size_type)): Likewise.
	* include/debug/forward_list (forward_list(forward_list&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(forward_list::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(forward_list::splice_after, forward_list::merge): Likewise.
	* include/debug/list (list(list&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(list::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(list::splice, list::merge): Likewise.
	* include/debug/map.h (map(map&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(map::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/multimap.h (multimap(multimap&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(multimap::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/set.h (set(set&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(set::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/multiset.h (multiset(multiset&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(multiset::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/string (basic_string(basic_string&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(basic_string::operator=(initializer_list&lt;&gt;)): Remove _M_base() call.
	(basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
	(basic_string::operator[](size_type), basic_string::operator+=(const basic_string&amp;)):
	Likewise.
	(basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
	* include/debug/unordered_map (unordered_map(unordered_map&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_map::operator=(initializer_list&lt;&gt;), unordered_map::merge):
	Remove _M_base() calls.
	(unordered_multimap(unordered_multimap&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multimap::operator=(initializer_list&lt;&gt;), unordered_multimap::merge):
	Remove _M_base() calls.
	* include/debug/unordered_set (unordered_set(unordered_set&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_set::operator=(initializer_list&lt;&gt;), unordered_set::merge):
	Remove _M_base() calls.
	(unordered_multiset(unordered_multiset&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multiset::operator=(initializer_list&lt;&gt;), unordered_multiset::merge):
	Remove _M_base() calls.
	* include/debug/vector (vector(vector&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(vector::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(vector::operator[](size_type)): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_GLIBCXX_DEBUG container code cleanup to get rid of _Safe_container&lt;&gt;::_M_safe() and just
use _Safe:: calls which use normal inheritance. Also remove several usages of _M_base()
which can be most of the time ommitted and sometimes replace with explicit _Base::
calls.

libstdc++-v3/ChangeLog:

	* include/debug/safe_container.h (_Safe_container&lt;&gt;::_M_safe): Remove.
	* include/debug/deque (deque::operator=(initializer_list&lt;&gt;)): Replace
	_M_base() call with _Base:: call.
	(deque::operator[](size_type)): Likewise.
	* include/debug/forward_list (forward_list(forward_list&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(forward_list::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(forward_list::splice_after, forward_list::merge): Likewise.
	* include/debug/list (list(list&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(list::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(list::splice, list::merge): Likewise.
	* include/debug/map.h (map(map&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(map::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/multimap.h (multimap(multimap&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(multimap::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/set.h (set(set&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(set::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/multiset.h (multiset(multiset&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(multiset::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	* include/debug/string (basic_string(basic_string&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(basic_string::operator=(initializer_list&lt;&gt;)): Remove _M_base() call.
	(basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
	(basic_string::operator[](size_type), basic_string::operator+=(const basic_string&amp;)):
	Likewise.
	(basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
	* include/debug/unordered_map (unordered_map(unordered_map&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_map::operator=(initializer_list&lt;&gt;), unordered_map::merge):
	Remove _M_base() calls.
	(unordered_multimap(unordered_multimap&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multimap::operator=(initializer_list&lt;&gt;), unordered_multimap::merge):
	Remove _M_base() calls.
	* include/debug/unordered_set (unordered_set(unordered_set&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_set::operator=(initializer_list&lt;&gt;), unordered_set::merge):
	Remove _M_base() calls.
	(unordered_multiset(unordered_multiset&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(unordered_multiset::operator=(initializer_list&lt;&gt;), unordered_multiset::merge):
	Remove _M_base() calls.
	* include/debug/vector (vector(vector&amp;&amp;, const allocator_type&amp;)):
	Remove _M_safe() and _M_base() calls.
	(vector::operator=(initializer_list&lt;&gt;)): Remove _M_base() calls.
	(vector::operator[](size_type)): Likewise.
</pre>
</div>
</content>
</entry>
</feed>
