diff options
-rw-r--r-- | libcxx/include/type_traits | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits index feb90005f5a..f9f1a8c0d00 100644 --- a/libcxx/include/type_traits +++ b/libcxx/include/type_traits @@ -1947,18 +1947,18 @@ template <class _Tp> using make_unsigned_t = typename make_unsigned<_Tp>::type; #ifdef _LIBCPP_HAS_NO_VARIADICS -template <> -struct _LIBCPP_TEMPLATE_VIS common_type<void, void, void> +template <class _Tp, class _Up = void, class _Vp = void> +struct _LIBCPP_TEMPLATE_VIS common_type { public: - typedef void type; + typedef typename common_type<typename common_type<_Tp, _Up>::type, _Vp>::type type; }; -template <class _Tp, class _Up = void, class _Vp = void> -struct _LIBCPP_TEMPLATE_VIS common_type +template <> +struct _LIBCPP_TEMPLATE_VIS common_type<void, void, void> { public: - typedef typename common_type<typename common_type<_Tp, _Up>::type, _Vp>::type type; + typedef void type; }; template <class _Tp> |