gcc/libstdc++-v3/doc/xml/manual
Jonathan Wakely ebaf365963 Enforce allocator::value_type consistency for containers in C++2a
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
2019-06-03 14:22:59 +01:00
..
abi.xml
algorithms.xml
allocator.xml * doc/xml/manual/allocator.xml: Move hoard.org back to http. 2019-05-31 22:26:55 +00:00
appendix_contributing.xml appendix_contributing.xml: Update pointer to C++ standard at ansi.org. 2019-05-26 19:46:09 +00:00
appendix_free.xml
appendix_porting.xml
atomics.xml
auto_ptr.xml
backwards_compatibility.xml Remove broken links from libstdc++ manual to Doxygen pages 2019-03-22 20:57:35 +00:00
bitmap_allocator.xml
build_hacking.xml
codecvt.xml
concurrency_extensions.xml Remove broken links from libstdc++ manual to Doxygen pages 2019-03-22 20:57:35 +00:00
concurrency.xml
configure.xml
containers.xml
ctype.xml
debug_mode.xml
debug.xml Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
diagnostics.xml Update libstdc++ documentation for Support and Diagnostics clauses 2019-05-30 16:47:32 +01:00
documentation_hacking.xml
evolution.xml LWG 2921 remove packaged_task constructors taking allocators 2019-05-23 22:40:56 +01:00
extensions.xml Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
internals.xml
intro.xml LWG 2996 add rvalue overloads for shared_ptr aliasing and casting 2019-05-23 22:41:02 +01:00
io.xml
iterators.xml
locale.xml
localization.xml
messages.xml
mt_allocator.xml
numerics.xml
parallel_mode.xml Remove broken links from libstdc++ manual to Doxygen pages 2019-03-22 20:57:35 +00:00
policy_data_structures_biblio.xml
policy_data_structures.xml Small markup changes to PBDS docs 2019-05-13 21:11:47 +01:00
prerequisites.xml
shared_ptr.xml Fix names of _Lock_policy constants in libstdc++ manual 2019-05-21 14:50:35 +01:00
spine.xml Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
status_cxx1998.xml
status_cxx2011.xml Update documentation of implementation-defined library features 2019-05-30 11:14:06 +01:00
status_cxx2014.xml Update libstdc++ status docs 2016-07-07 17:35:43 +01:00
status_cxx2017.xml Update documentation of implementation-defined library features 2019-05-30 11:14:06 +01:00
status_cxx2020.xml Enforce allocator::value_type consistency for containers in C++2a 2019-06-03 14:22:59 +01:00
status_cxxis29124.xml
status_cxxtr1.xml
status_cxxtr24733.xml
strings.xml
support.xml Update libstdc++ documentation for Support and Diagnostics clauses 2019-05-30 16:47:32 +01:00
test_policy_data_structures.xml Small markup changes to PBDS docs 2019-05-13 21:11:47 +01:00
test.xml Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
using_exceptions.xml
using.xml Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
utilities.xml