gcc/libstdc++-v3/include/ext
Jonathan Wakely 5e3a1ea3d8 libstdc++: Fix missing members in std::allocator<void>
The changes in 75c6a925da were slightly
incorrect, because the converting constructor should be noexcept, and
the POCMA and is_always_equal traits should still be present in C++20.
This fixes it, and slightly refactors the preprocessor conditions and
order of members. Also add comments explaining things.

The non-standard construct and destroy members added for PR 78052 can be
private if allocator_traits<allocator<void>> is made a friend.

libstdc++-v3/ChangeLog:

	* include/bits/allocator.h (allocator<void>) [C++20]: Add
	missing noexcept to constructor. Restore missing POCMA and
	is_always_equal_traits.
	[C++17]: Make construct and destroy members private and
	declare allocator_traits as a friend.
	* include/bits/memoryfwd.h (allocator_traits): Declare.
	* include/ext/malloc_allocator.h (malloc_allocator::allocate):
	Add nodiscard attribute. Add static assertion for LWG 3307.
	* include/ext/new_allocator.h (new_allocator::allocate): Add
	static assertion for LWG 3307.
	* testsuite/20_util/allocator/void.cc: Check that converting
	constructor is noexcept. Check for propagation traits and
	size_type and difference_type. Check that pointer and
	const_pointer are gone in C++20.
2021-05-11 16:11:01 +01:00
..
pb_ds libstdc++: Fix null dereference in pb_ds containers 2021-05-04 22:34:20 +01:00
algorithm Update copyright years. 2021-01-04 10:26:59 +01:00
aligned_buffer.h Update copyright years. 2021-01-04 10:26:59 +01:00
alloc_traits.h Update copyright years. 2021-01-04 10:26:59 +01:00
atomicity.h Update copyright years. 2021-01-04 10:26:59 +01:00
bitmap_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
cast.h Update copyright years. 2021-01-04 10:26:59 +01:00
cmath Update copyright years. 2021-01-04 10:26:59 +01:00
codecvt_specializations.h Update copyright years. 2021-01-04 10:26:59 +01:00
concurrence.h Update copyright years. 2021-01-04 10:26:59 +01:00
debug_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
enc_filebuf.h Update copyright years. 2021-01-04 10:26:59 +01:00
extptr_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
functional Update copyright years. 2021-01-04 10:26:59 +01:00
iterator Update copyright years. 2021-01-04 10:26:59 +01:00
malloc_allocator.h libstdc++: Fix missing members in std::allocator<void> 2021-05-11 16:11:01 +01:00
memory Update copyright years. 2021-01-04 10:26:59 +01:00
mt_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
new_allocator.h libstdc++: Fix missing members in std::allocator<void> 2021-05-11 16:11:01 +01:00
numeric Update copyright years. 2021-01-04 10:26:59 +01:00
numeric_traits.h Update copyright years. 2021-01-04 10:26:59 +01:00
pod_char_traits.h Update copyright years. 2021-01-04 10:26:59 +01:00
pointer.h Update copyright years. 2021-01-04 10:26:59 +01:00
pool_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
random libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
random.tcc Update copyright years. 2021-01-04 10:26:59 +01:00
rb_tree Update copyright years. 2021-01-04 10:26:59 +01:00
rc_string_base.h Update copyright years. 2021-01-04 10:26:59 +01:00
rope Update copyright years. 2021-01-04 10:26:59 +01:00
ropeimpl.h Update copyright years. 2021-01-04 10:26:59 +01:00
slist Update copyright years. 2021-01-04 10:26:59 +01:00
sso_string_base.h Update copyright years. 2021-01-04 10:26:59 +01:00
stdio_filebuf.h Update copyright years. 2021-01-04 10:26:59 +01:00
stdio_sync_filebuf.h libstdc++: Fix build failure for targets without unistd.h 2021-02-09 12:31:52 +00:00
string_conversions.h Update copyright years. 2021-01-04 10:26:59 +01:00
throw_allocator.h Update copyright years. 2021-01-04 10:26:59 +01:00
type_traits.h Update copyright years. 2021-01-04 10:26:59 +01:00
typelist.h Update copyright years. 2021-01-04 10:26:59 +01:00
vstring_fwd.h Update copyright years. 2021-01-04 10:26:59 +01:00
vstring_util.h Update copyright years. 2021-01-04 10:26:59 +01:00
vstring.h Update copyright years. 2021-01-04 10:26:59 +01:00
vstring.tcc Update copyright years. 2021-01-04 10:26:59 +01:00