This patch replaces is_enum<T>::value with __is_enum built-in trait in the type_traits header.
libstdc++-v3/ChangeLog: * include/std/type_traits (__make_unsigned_selector): Use __is_enum built-in trait. (__make_signed_selector): Likewise. (__underlying_type_impl): Likewise. Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org> --- libstdc++-v3/include/std/type_traits | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 0e7a9c9c7f3..9f086992ebc 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -1740,7 +1740,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Select between integral and enum: not possible to be both. template<typename _Tp, bool _IsInt = is_integral<_Tp>::value, - bool _IsEnum = is_enum<_Tp>::value> + bool _IsEnum = __is_enum(_Tp)> class __make_unsigned_selector; template<typename _Tp> @@ -1900,7 +1900,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Select between integral and enum: not possible to be both. template<typename _Tp, bool _IsInt = is_integral<_Tp>::value, - bool _IsEnum = is_enum<_Tp>::value> + bool _IsEnum = __is_enum(_Tp)> class __make_signed_selector; template<typename _Tp> @@ -2353,7 +2353,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __common_type_fold<_CTp, _Rp, void> { }; - template<typename _Tp, bool = is_enum<_Tp>::value> + template<typename _Tp, bool = __is_enum(_Tp)> struct __underlying_type_impl { using type = __underlying_type(_Tp); -- 2.41.0