diff --git a/libcxx/include/__tuple b/libcxx/include/__tuple index a9514c1e36f2b7d00686dc2929a3f683915c6d46..918656ed838660a25a0e8aa86f9667f2d7097c82 100644 --- a/libcxx/include/__tuple +++ b/libcxx/include/__tuple @@ -214,11 +214,7 @@ struct __tuple_convertible_imp : public false_type {}; template struct __tuple_convertible_imp, __tuple_types<_Up0, _Up...> > : public integral_constant::value && -#else is_constructible<_Up0, _Tp0>::value && -#endif __tuple_convertible_imp, __tuple_types<_Up...> >::value> {}; template <> diff --git a/libcxx/include/utility b/libcxx/include/utility index 3850f8f3524ad91a621302014f8af8d40f98594a..d0aee559a3104f85b56ed7fbdc8bf4bb29cf0585 100644 --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -227,8 +227,8 @@ struct _LIBCPP_VISIBLE pair template _LIBCPP_INLINE_VISIBILITY pair(const pair<_U1, _U2>& __p, - typename enable_if::value && - is_convertible<_U2, _T2>::value>::type* = 0) + typename enable_if::value && + is_constructible<_T2, _U2>::value>::type* = 0) : first(__p.first), second(__p.second) {} _LIBCPP_INLINE_VISIBILITY @@ -253,8 +253,8 @@ struct _LIBCPP_VISIBLE pair #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES template ::value && - is_convertible<_U2, second_type>::value>::type> + class = typename enable_if::value && + is_constructible::value>::type> _LIBCPP_INLINE_VISIBILITY pair(_U1&& __u1, _U2&& __u2) : first(_VSTD::forward<_U1>(__u1)), @@ -264,8 +264,8 @@ struct _LIBCPP_VISIBLE pair template _LIBCPP_INLINE_VISIBILITY pair(pair<_U1, _U2>&& __p, - typename enable_if::value && - is_convertible<_U2, _T2>::value>::type* = 0) + typename enable_if::value && + is_constructible<_T2, _U2>::value>::type* = 0) : first(_VSTD::forward<_U1>(__p.first)), second(_VSTD::forward<_U2>(__p.second)) {}