gcc/libstdc++-v3/include/experimental
Jonathan Wakely 0afb9ebaab libstdc++: Always define typedefs and hash functions for wide strings [PR 98725]
The wstring and wstring_view typedefs should be enabled even if
<wchar.h> isn't supported, because char_traits<wchar_t> works
unconditionally. Similarly, the std::hash specializations for wide
strings do not depend on <wchar.h> support.

Although the primary template works OK for std::char_traits<wchar_t> in
the absence of <wchar.h> support, this patch still defines it as an
explicit specialization for compatibility with declarations that expect
it to be specialized. The explicit specialization just uses the same
__gnu_cxx::char_traits base class as the primary template.

libstdc++-v3/ChangeLog:

	PR libstdc++/98725
	* include/bits/char_traits.h (char_traits<wchar_t>): Define
	explicit specialization unconditionally.
	* include/bits/basic_string.h (hash<wstring>): Define
	unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
	* include/bits/stringfwd.h (wstring): Likewise.
	* include/debug/string (wstring): Likewise.
	* include/experimental/string_view (experimental::wstring_view)
	(hash<experimental::wstring_view>): Likewise.
	* include/std/string (pmr::wstring, hash<pmr::wstring>):
	Likewise.
	* include/std/string_view (wstring_view, hash<wstring_view>):
	Likewise.
2021-10-09 00:57:49 +01:00
..
bits libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
algorithm Update copyright years. 2021-01-04 10:26:59 +01:00
any libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
array libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
buffer libstdc++: Fix doxygen markup for group close commands 2021-04-06 16:43:24 +01:00
chrono libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
deque libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00
executor libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
filesystem Update copyright years. 2021-01-04 10:26:59 +01:00
forward_list Update copyright years. 2021-01-04 10:26:59 +01:00
functional libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
internet libstdc++: Improve error handling in Net TS name resolution 2021-08-31 17:36:11 +01:00
io_context libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
iterator Update copyright years. 2021-01-04 10:26:59 +01:00
list Update copyright years. 2021-01-04 10:26:59 +01:00
map libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00
memory libstdc++: Remove unnecessary uses of <utility> 2021-07-27 12:04:18 +01:00
memory_resource Update copyright years. 2021-01-04 10:26:59 +01:00
net Update copyright years. 2021-01-04 10:26:59 +01:00
netfwd libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
numeric Update copyright years. 2021-01-04 10:26:59 +01:00
optional libstdc++: Simplify std::optional::value() 2021-07-27 21:36:01 +01:00
propagate_const libstdc++: Finish implementing LWG 3413 for propagate_const 2021-06-08 15:01:06 +01:00
random libstdc++: Add [[nodiscard]] to experimental::randint 2021-08-12 19:46:16 +01:00
ratio Update copyright years. 2021-01-04 10:26:59 +01:00
regex Update copyright years. 2021-01-04 10:26:59 +01:00
set libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00
simd libstdc++: Improve Doxygen documentation groups [PR 101258] 2021-07-01 00:25:46 +01:00
socket libstdc++: Make Networking TS headers more portable [PR100285] 2021-08-26 12:41:28 +01:00
source_location Update copyright years. 2021-01-04 10:26:59 +01:00
string Update copyright years. 2021-01-04 10:26:59 +01:00
string_view libstdc++: Always define typedefs and hash functions for wide strings [PR 98725] 2021-10-09 00:57:49 +01:00
system_error Update copyright years. 2021-01-04 10:26:59 +01:00
timer libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
tuple Update copyright years. 2021-01-04 10:26:59 +01:00
type_traits libstdc++: Improve Doxygen documentation groups [PR 101258] 2021-07-01 00:25:46 +01:00
unordered_map libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00
unordered_set libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00
utility Update copyright years. 2021-01-04 10:26:59 +01:00
vector libstdc++: Restore debug checks in uniform container erasure functions 2021-10-08 12:20:25 +01:00