libstdc++: use __is_enum built-in trait

Message ID 20230703011753.18876-1-kmatsui@cs.washington.edu
State Accepted
Headers
Series libstdc++: use __is_enum built-in trait |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Ken Matsui July 3, 2023, 1:17 a.m. UTC
  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 <kmatsui@cs.washington.edu>
---
 libstdc++-v3/include/std/type_traits | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Patch

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);