[libcxx-commits] [libcxx] 67e6f5a - [libc++][NFC] Remove some dead code in common_type
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Apr 17 10:27:16 PDT 2023
Author: Nikolas Klauser
Date: 2023-04-17T19:27:09+02:00
New Revision: 67e6f5a7968f21f5db47dfa1d6b6f40715d8fe6e
URL: https://github.com/llvm/llvm-project/commit/67e6f5a7968f21f5db47dfa1d6b6f40715d8fe6e
DIFF: https://github.com/llvm/llvm-project/commit/67e6f5a7968f21f5db47dfa1d6b6f40715d8fe6e.diff
LOG: [libc++][NFC] Remove some dead code in common_type
Reviewed By: #libc, Mordante
Spies: Mordante, libcxx-commits
Differential Revision: https://reviews.llvm.org/D148466
Added:
Modified:
libcxx/include/__type_traits/common_type.h
Removed:
################################################################################
diff --git a/libcxx/include/__type_traits/common_type.h b/libcxx/include/__type_traits/common_type.h
index afd766f05dec3..d6f73f64588c1 100644
--- a/libcxx/include/__type_traits/common_type.h
+++ b/libcxx/include/__type_traits/common_type.h
@@ -57,25 +57,10 @@ struct __common_type2_imp<_Tp, _Up, __void_t<decltype(true ? std::declval<_Tp>()
template <class, class = void>
struct __common_type_impl {};
-// Clang provides variadic templates in C++03 as an extension.
-#if !defined(_LIBCPP_CXX03_LANG) || defined(__clang__)
-# define _LIBCPP_OPTIONAL_PACK(...) , __VA_ARGS__
template <class... _Tp>
struct __common_types;
template <class... _Tp>
struct _LIBCPP_TEMPLATE_VIS common_type;
-#else
-# define _LIBCPP_OPTIONAL_PACK(...)
-struct __no_arg;
-template <class _Tp, class _Up, class = __no_arg>
-struct __common_types;
-template <class _Tp = __no_arg, class _Up = __no_arg, class _Vp = __no_arg,
- class _Unused = __no_arg>
-struct common_type {
- static_assert(sizeof(_Unused) == 0,
- "common_type accepts at most 3 arguments in C++03");
-};
-#endif // _LIBCPP_CXX03_LANG
template <class _Tp, class _Up>
struct __common_type_impl<
@@ -84,12 +69,12 @@ struct __common_type_impl<
typedef typename common_type<_Tp, _Up>::type type;
};
-template <class _Tp, class _Up, class _Vp _LIBCPP_OPTIONAL_PACK(class... _Rest)>
+template <class _Tp, class _Up, class _Vp, class... _Rest>
struct __common_type_impl<
- __common_types<_Tp, _Up, _Vp _LIBCPP_OPTIONAL_PACK(_Rest...)>,
+ __common_types<_Tp, _Up, _Vp, _Rest...>,
__void_t<typename common_type<_Tp, _Up>::type> >
: __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type,
- _Vp _LIBCPP_OPTIONAL_PACK(_Rest...)> > {
+ _Vp, _Rest...> > {
};
// bullet 1 - sizeof...(Tp) == 0
@@ -117,13 +102,11 @@ struct _LIBCPP_TEMPLATE_VIS common_type<_Tp, _Up>
// bullet 4 - sizeof...(Tp) > 2
-template <class _Tp, class _Up, class _Vp _LIBCPP_OPTIONAL_PACK(class... _Rest)>
+template <class _Tp, class _Up, class _Vp, class... _Rest>
struct _LIBCPP_TEMPLATE_VIS
- common_type<_Tp, _Up, _Vp _LIBCPP_OPTIONAL_PACK(_Rest...)>
+ common_type<_Tp, _Up, _Vp, _Rest...>
: __common_type_impl<
- __common_types<_Tp, _Up, _Vp _LIBCPP_OPTIONAL_PACK(_Rest...)> > {};
-
-#undef _LIBCPP_OPTIONAL_PACK
+ __common_types<_Tp, _Up, _Vp, _Rest...> > {};
#if _LIBCPP_STD_VER >= 14
template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type;
More information about the libcxx-commits
mailing list