fe9571a35d
The possible base classes of std::allocator are new_allocator and malloc_allocator, which both cause a non-reserved name to be declared in every program that includes the definition of std::allocator. This is non-conforming. This change replaces __gnu_cxx::new_allocator with std::__new_allocator which is identical except for using a reserved name. The non-standard extension __gnu_cxx::new_allocator is preserved as a thin wrapper over std::__new_allocator. There is no problem with the extension using a non-reserved name now that it's not included by default in other headers. The same change could be done to __gnu_cxx::malloc_allocator but as it's not the default configuration it can wait. libstdc++-v3/ChangeLog: PR libstdc++/64135 * config/allocator/new_allocator_base.h: Include <bits/new_allocator.h> instead of <ext/new_allocator.h>. (__allocator_base): Use std::__new_allocator instead of __gnu_cxx::new_allocator. * doc/xml/manual/allocator.xml: Document new default base class for std::allocator. * doc/xml/manual/evolution.xml: Likewise. * doc/html/*: Regenerate. * include/Makefile.am: Add bits/new_allocator.h. * include/Makefile.in: Regenerate. * include/experimental/memory_resource (new_delete_resource): Use std::__new_allocator instead of __gnu_cxx::new_allocator. * include/ext/new_allocator.h (new_allocator): Derive from std::__new_allocator. Move implementation to ... * include/bits/new_allocator.h: New file. * testsuite/20_util/allocator/64135.cc: New test. |
||
---|---|---|
.. | ||
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 |