[libcxx-commits] [PATCH] D97283: [libcxx][type_traits] is_unsigned is false for enum types
Arthur O'Dwyer via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 16 08:18:25 PDT 2021
Quuxplusone accepted this revision as: Quuxplusone.
Quuxplusone added a comment.
Unfortunately I think the current check for
#if __has_keyword(__is_unsigned) && _LIBCPP_CLANG_VER >= 1300
has the effect of disabling the fast path for GCC and MSVC forever.
However, we currently have the exact same problem in checks for `__is_pointer` and `__is_fundamental` (plus a redundant check for `nullptr` support in the latter), so I support landing this patch as-is-now and then I'll make a followup PR myself to change all these checks at once to e.g.
#if __has_keyword(__is_unsigned) && (!defined(_LIBCPP_CLANG_VER) || (_LIBCPP_CLANG_VER >= 1300))
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the libcxx-commits