[libcxx-commits] [libcxx] [libc++] Simplify std::is_void (PR #99033)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jul 16 06:07:36 PDT 2024
https://github.com/philnik777 created https://github.com/llvm/llvm-project/pull/99033
None
>From 10d41847e98fe951d1b820c71908149fe0e034e2 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Tue, 16 Jul 2024 15:06:12 +0200
Subject: [PATCH] [libc++] Simplify std::is_void
---
libcxx/include/__type_traits/is_void.h | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/libcxx/include/__type_traits/is_void.h b/libcxx/include/__type_traits/is_void.h
index 4c27060530c8e..46316b0d3a534 100644
--- a/libcxx/include/__type_traits/is_void.h
+++ b/libcxx/include/__type_traits/is_void.h
@@ -11,8 +11,6 @@
#include <__config>
#include <__type_traits/integral_constant.h>
-#include <__type_traits/is_same.h>
-#include <__type_traits/remove_cv.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
@@ -20,28 +18,14 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if __has_builtin(__is_void)
-
template <class _Tp>
-struct _LIBCPP_TEMPLATE_VIS is_void : _BoolConstant<__is_void(_Tp)> {};
+struct _LIBCPP_TEMPLATE_VIS is_void : _BoolConstant<__is_same(__remove_cv(_Tp), void)> {};
# if _LIBCPP_STD_VER >= 17
template <class _Tp>
-inline constexpr bool is_void_v = __is_void(_Tp);
+inline constexpr bool is_void_v = __is_same(__remove_cv(_Tp), void);
# endif
-#else
-
-template <class _Tp>
-struct _LIBCPP_TEMPLATE_VIS is_void : public is_same<__remove_cv_t<_Tp>, void> {};
-
-# if _LIBCPP_STD_VER >= 17
-template <class _Tp>
-inline constexpr bool is_void_v = is_void<_Tp>::value;
-# endif
-
-#endif // __has_builtin(__is_void)
-
_LIBCPP_END_NAMESPACE_STD
#endif // _LIBCPP___TYPE_TRAITS_IS_VOID_H
More information about the libcxx-commits
mailing list