Skip to content

Commit

Permalink
[libc++] Simplify std::is_void (llvm#99033)
Browse files Browse the repository at this point in the history
  • Loading branch information
philnik777 authored and sgundapa committed Jul 23, 2024
1 parent 00486d9 commit 37e2fac
Showing 1 changed file with 2 additions and 18 deletions.
20 changes: 2 additions & 18 deletions libcxx/include/__type_traits/is_void.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,21 @@

#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
#endif

_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

0 comments on commit 37e2fac

Please sign in to comment.