mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-25 03:55:32 +08:00
29e4184858
This meets the requirement that std::is_integral_v<wchar_t> is true, even when full library support for wchar_t via specializations of char_traits etc. is not provided. This is done by checking __WCHAR_TYPE__ to see if the compiler knows about the type, rather than checking the library's own _GLIBCXX_USE_WCHAR_T autoconf macro. This assumes that the C++ compiler correctly defines wchar_t as a distinct type, not a typedef for one of the other integeral types. This is always true for G++ and should be true for any supported non-GNU compilers. Similarly, the std::make_unsigned and std::make_signed traits and the internal helpers std::__is_integer and std::__is_char are also changed to depend on the same macro. libstdc++-v3/ChangeLog: * include/std/type_traits (is_integral<wchar_t>) (make_unsigned<wchar_t>, make_signed<wchar_t>): Define based on #ifdef __WCHAR_TYPE__ instead of _GLIBCXX_USE_WCHAR_T. * include/bits/cpp_type_traits.h (__is_integer<wchar_t>) (__is_char<wchar_t>): Likewise. |
||
---|---|---|
.. | ||
backward | ||
bits | ||
c | ||
c_compatibility | ||
c_global | ||
c_std | ||
debug | ||
decimal | ||
experimental | ||
ext | ||
parallel | ||
precompiled | ||
pstl | ||
std | ||
tr1 | ||
tr2 | ||
Makefile.am | ||
Makefile.in |