ebaf365963
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 |
||
---|---|---|
.. | ||
abi.xml | ||
algorithms.xml | ||
allocator.xml | ||
appendix_contributing.xml | ||
appendix_free.xml | ||
appendix_porting.xml | ||
atomics.xml | ||
auto_ptr.xml | ||
backwards_compatibility.xml | ||
bitmap_allocator.xml | ||
build_hacking.xml | ||
codecvt.xml | ||
concurrency_extensions.xml | ||
concurrency.xml | ||
configure.xml | ||
containers.xml | ||
ctype.xml | ||
debug_mode.xml | ||
debug.xml | ||
diagnostics.xml | ||
documentation_hacking.xml | ||
evolution.xml | ||
extensions.xml | ||
internals.xml | ||
intro.xml | ||
io.xml | ||
iterators.xml | ||
locale.xml | ||
localization.xml | ||
messages.xml | ||
mt_allocator.xml | ||
numerics.xml | ||
parallel_mode.xml | ||
policy_data_structures_biblio.xml | ||
policy_data_structures.xml | ||
prerequisites.xml | ||
shared_ptr.xml | ||
spine.xml | ||
status_cxx1998.xml | ||
status_cxx2011.xml | ||
status_cxx2014.xml | ||
status_cxx2017.xml | ||
status_cxx2020.xml | ||
status_cxxis29124.xml | ||
status_cxxtr1.xml | ||
status_cxxtr24733.xml | ||
strings.xml | ||
support.xml | ||
test_policy_data_structures.xml | ||
test.xml | ||
using_exceptions.xml | ||
using.xml | ||
utilities.xml |