gcc/libstdc++-v3/include/ext
Michael de Lang b96e2ff9d8 libstdc++: Implement constexpr std::basic_string for C++20
This is only supported for the cxx11 ABI, not for COW strings.

libstdc++-v3/ChangeLog:

	* include/bits/basic_string.h (basic_string, operator""s): Add
	constexpr for C++20.
	(basic_string::basic_string(basic_string&&)): Only copy
	initialized portion of the buffer.
	(basic_string::basic_string(basic_string&&, const Alloc&)):
	Likewise.
	* include/bits/basic_string.tcc (basic_string): Add constexpr
	for C++20.
	(basic_string::swap(basic_string&)): Only copy initialized
	portions of the buffers.
	(basic_string::_M_replace): Add constexpr implementation that
	doesn't depend on pointer comparisons.
	* include/bits/cow_string.h: Adjust comment.
	* include/ext/type_traits.h (__is_null_pointer): Add constexpr.
	* include/std/string (erase, erase_if): Add constexpr.
	* include/std/version (__cpp_lib_constexpr_string): Update
	value.
	* testsuite/21_strings/basic_string/cons/char/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/literals/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
	* testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
	New test.
	* testsuite/21_strings/basic_string/version.cc: New test.
2021-11-16 16:43:20 +00: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 libstdc++: Fix std::allocator<void> for versioned namespace 2021-08-28 14:37:19 +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++: Use __builtin_operator_new when available [PR94295] 2021-07-22 14:38:34 +01:00
numeric Update copyright years. 2021-01-04 10:26:59 +01:00
numeric_traits.h libstdc++: Use __extension__ instead of diagnostic pragmas 2021-07-16 15:03:03 +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 libstdc++: Enable vstring for wchar_t unconditionally [PR98725] 2021-10-09 00:57:49 +01:00
rope libstdc++: Remove __gnu_cxx::rope::erase(size_type) [PR102048] 2021-08-25 22:28:46 +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 libstdc++: Improvements to Doxygen markup 2021-07-01 18:45:48 +01:00
type_traits.h libstdc++: Implement constexpr std::basic_string for C++20 2021-11-16 16:43:20 +00:00
typelist.h Update copyright years. 2021-01-04 10:26:59 +01:00
vstring.h libstdc++: Enable vstring for wchar_t unconditionally [PR98725] 2021-10-09 00:57:49 +01:00
vstring.tcc Update copyright years. 2021-01-04 10:26:59 +01:00
vstring_fwd.h libstdc++: Enable vstring for wchar_t unconditionally [PR98725] 2021-10-09 00:57:49 +01:00
vstring_util.h Update copyright years. 2021-01-04 10:26:59 +01:00