diff --git a/libcxx/include/__charconv/from_chars_integral.h b/libcxx/include/__charconv/from_chars_integral.h --- a/libcxx/include/__charconv/from_chars_integral.h +++ b/libcxx/include/__charconv/from_chars_integral.h @@ -124,7 +124,7 @@ return __r; } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result __from_chars_atoi(const char* __first, const char* __last, _Tp& __value) { using __tx = __itoa::__traits<_Tp>; @@ -145,7 +145,7 @@ }); } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result __from_chars_atoi(const char* __first, const char* __last, _Tp& __value) { using __t = decltype(std::__to_unsigned_like(__value)); @@ -170,7 +170,7 @@ 4.321928, 4.3923173, 4.4594316, 4.523562, 4.5849624, 4.643856, 4.70044, 4.7548876, 4.807355, 4.857981, 4.9068904, 4.9541965, 5, 5.044394, 5.087463, 5.129283, 5.169925}; -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result __from_chars_integral(const char* __first, const char* __last, _Tp& __value, int __base) { if (__base == 10) @@ -211,20 +211,20 @@ __base); } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result __from_chars_integral(const char* __first, const char* __last, _Tp& __value, int __base) { using __t = decltype(std::__to_unsigned_like(__value)); return std::__sign_combinator(__first, __last, __value, __from_chars_integral<__t>, __base); } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result from_chars(const char* __first, const char* __last, _Tp& __value) { return std::__from_chars_atoi(__first, __last, __value); } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI from_chars_result from_chars(const char* __first, const char* __last, _Tp& __value, int __base) { _LIBCPP_ASSERT_UNCATEGORIZED(2 <= __base && __base <= 36, "base not in [2, 36]"); diff --git a/libcxx/include/__charconv/to_chars_integral.h b/libcxx/include/__charconv/to_chars_integral.h --- a/libcxx/include/__charconv/to_chars_integral.h +++ b/libcxx/include/__charconv/to_chars_integral.h @@ -222,23 +222,23 @@ } // namespace __itoa -template = sizeof(unsigned)), int>::type = 0> +template = sizeof(unsigned)), int> = 0> _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI int __to_chars_integral_width(_Tp __value) { return __itoa::__integral<_Base>::__width(__value); } -template ::type = 0> +template = 0> _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI int __to_chars_integral_width(_Tp __value) { return std::__to_chars_integral_width<_Base>(static_cast(__value)); } -template = sizeof(unsigned)), int>::type = 0> +template = sizeof(unsigned)), int> = 0> _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI to_chars_result __to_chars_integral(char* __first, char* __last, _Tp __value) { return __itoa::__integral<_Base>::__to_chars(__first, __last, __value); } -template ::type = 0> +template = 0> _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI to_chars_result __to_chars_integral(char* __first, char* __last, _Tp __value) { return std::__to_chars_integral<_Base>(__first, __last, static_cast(__value)); @@ -300,7 +300,7 @@ return {__last, errc(0)}; } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI to_chars_result to_chars(char* __first, char* __last, _Tp __value) { using _Type = __make_32_64_or_128_bit_t<_Tp>; @@ -308,7 +308,7 @@ return std::__to_chars_itoa(__first, __last, static_cast<_Type>(__value), is_signed<_Tp>()); } -template ::value, int>::type = 0> +template ::value, int> = 0> inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI to_chars_result to_chars(char* __first, char* __last, _Tp __value, int __base) { _LIBCPP_ASSERT_UNCATEGORIZED(2 <= __base && __base <= 36, "base not in [2, 36]"); diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h --- a/libcxx/include/__filesystem/path.h +++ b/libcxx/include/__filesystem/path.h @@ -445,8 +445,7 @@ class _LIBCPP_EXPORTED_FROM_ABI path { template - using _EnableIfPathable = - typename enable_if<__is_pathable<_SourceOrIter>::value, _Tp>::type; + using _EnableIfPathable = __enable_if_t<__is_pathable<_SourceOrIter>::value, _Tp>; template using _SourceChar = typename __is_pathable<_Tp>::__char_type; diff --git a/libcxx/include/__functional/bind.h b/libcxx/include/__functional/bind.h --- a/libcxx/include/__functional/bind.h +++ b/libcxx/include/__functional/bind.h @@ -265,12 +265,7 @@ typedef typename __make_tuple_indices::type __indices; public: template ::value && - !is_same<__libcpp_remove_reference_t<_Gp>, - __bind>::value - >::type> + __enable_if_t::value && !is_same<__libcpp_remove_reference_t<_Gp>, __bind>::value, int> = 0> _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit __bind(_Gp&& __f, _BA&& ...__bound_args) : __f_(_VSTD::forward<_Gp>(__f)), @@ -310,12 +305,7 @@ template ::value && - !is_same<__libcpp_remove_reference_t<_Gp>, - __bind_r>::value - >::type> + __enable_if_t::value && !is_same<__libcpp_remove_reference_t<_Gp>, __bind_r>::value, int> = 0> _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit __bind_r(_Gp&& __f, _BA&& ...__bound_args) : base(_VSTD::forward<_Gp>(__f), diff --git a/libcxx/include/__functional/function.h b/libcxx/include/__functional/function.h --- a/libcxx/include/__functional/function.h +++ b/libcxx/include/__functional/function.h @@ -433,8 +433,7 @@ } } - template , __value_func>::value>::type> + template , __value_func>::value, int> = 0> _LIBCPP_INLINE_VISIBILITY explicit __value_func(_Fp&& __f) : __value_func(_VSTD::forward<_Fp>(__f), allocator<_Fp>()) {} @@ -778,7 +777,7 @@ } } - template , __policy_func>::value>::type> + template , __policy_func>::value, int> = 0> _LIBCPP_INLINE_VISIBILITY explicit __policy_func(_Fp&& __f) : __policy_(__policy::__create_empty()) { typedef __default_alloc_func<_Fp, _Rp(_ArgTypes...)> _Fun; @@ -1002,7 +1001,7 @@ }; template - using _EnableIfLValueCallable = typename enable_if<__callable<_Fp&>::value>::type; + using _EnableIfLValueCallable = __enable_if_t<__callable<_Fp&>::value>; public: typedef _Rp result_type; diff --git a/libcxx/include/__functional/hash.h b/libcxx/include/__functional/hash.h --- a/libcxx/include/__functional/hash.h +++ b/libcxx/include/__functional/hash.h @@ -673,7 +673,7 @@ template using __enable_hash_helper _LIBCPP_NODEBUG = __enable_hash_helper_imp<_Type, - typename enable_if<__all<__has_enabled_hash<_Keys>::value...>::value>::type + __enable_if_t<__all<__has_enabled_hash<_Keys>::value...>::value> >; #else template diff --git a/libcxx/include/__memory/construct_at.h b/libcxx/include/__memory/construct_at.h --- a/libcxx/include/__memory/construct_at.h +++ b/libcxx/include/__memory/construct_at.h @@ -62,7 +62,7 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _ForwardIterator __destroy(_ForwardIterator, _ForwardIterator); -template ::value, int>::type = 0> +template ::value, int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __destroy_at(_Tp* __loc) { _LIBCPP_ASSERT_UNCATEGORIZED(__loc != nullptr, "null pointer given to destroy_at"); @@ -70,7 +70,7 @@ } #if _LIBCPP_STD_VER >= 20 -template ::value, int>::type = 0> +template ::value, int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __destroy_at(_Tp* __loc) { _LIBCPP_ASSERT_UNCATEGORIZED(__loc != nullptr, "null pointer given to destroy_at"); diff --git a/libcxx/include/__memory/unique_ptr.h b/libcxx/include/__memory/unique_ptr.h --- a/libcxx/include/__memory/unique_ptr.h +++ b/libcxx/include/__memory/unique_ptr.h @@ -155,29 +155,29 @@ template , _Dummy>::type> using _EnableIfDeleterDefaultConstructible _LIBCPP_NODEBUG = - typename enable_if::value && - !is_pointer<_Deleter>::value>::type; + __enable_if_t::value && + !is_pointer<_Deleter>::value>; template using _EnableIfDeleterConstructible _LIBCPP_NODEBUG = - typename enable_if::value>::type; + __enable_if_t::value>; template - using _EnableIfMoveConvertible _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfMoveConvertible _LIBCPP_NODEBUG = __enable_if_t< is_convertible::value && !is_array<_Up>::value - >::type; + >; template - using _EnableIfDeleterConvertible _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfDeleterConvertible _LIBCPP_NODEBUG = __enable_if_t< (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) - >::type; + >; template - using _EnableIfDeleterAssignable = typename enable_if< + using _EnableIfDeleterAssignable = __enable_if_t< is_assignable<_Dp&, _UDel&&>::value - >::type; + >; public: template , _Dummy>::type> using _EnableIfDeleterDefaultConstructible _LIBCPP_NODEBUG = - typename enable_if::value && - !is_pointer<_Deleter>::value>::type; + __enable_if_t::value && + !is_pointer<_Deleter>::value>; template using _EnableIfDeleterConstructible _LIBCPP_NODEBUG = - typename enable_if::value>::type; + __enable_if_t::value>; template - using _EnableIfPointerConvertible _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfPointerConvertible _LIBCPP_NODEBUG = __enable_if_t< _CheckArrayPointerConversion<_Pp>::value - >::type; + >; template - using _EnableIfMoveConvertible _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfMoveConvertible _LIBCPP_NODEBUG = __enable_if_t< is_array<_Up>::value && is_same::value && is_same::value && is_convertible<_ElemT(*)[], element_type(*)[]>::value - >::type; + >; template - using _EnableIfDeleterConvertible _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfDeleterConvertible _LIBCPP_NODEBUG = __enable_if_t< (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) - >::type; + >; template - using _EnableIfDeleterAssignable _LIBCPP_NODEBUG = typename enable_if< + using _EnableIfDeleterAssignable _LIBCPP_NODEBUG = __enable_if_t< is_assignable<_Dp&, _UDel&&>::value - >::type; + >; public: template , class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet1 = - typename enable_if::value && is_base_of<_ClassT, _DecayA0>::value >::type; + __enable_if_t::value && is_base_of<_ClassT, _DecayA0>::value>; template , class _DecayA0 = __decay_t<_A0> > using __enable_if_bullet2 = - typename enable_if::value && __is_reference_wrapper<_DecayA0>::value >::type; + __enable_if_t::value && __is_reference_wrapper<_DecayA0>::value>; template , class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet3 = - typename enable_if::value && !is_base_of<_ClassT, _DecayA0>::value && - !__is_reference_wrapper<_DecayA0>::value >::type; + __enable_if_t::value && !is_base_of<_ClassT, _DecayA0>::value && + !__is_reference_wrapper<_DecayA0>::value>; template , class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet4 = - typename enable_if::value && is_base_of<_ClassT, _DecayA0>::value >::type; + __enable_if_t::value && is_base_of<_ClassT, _DecayA0>::value>; template , class _DecayA0 = __decay_t<_A0> > using __enable_if_bullet5 = - typename enable_if::value && __is_reference_wrapper<_DecayA0>::value >::type; + __enable_if_t::value && __is_reference_wrapper<_DecayA0>::value>; template , class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet6 = - typename enable_if::value && !is_base_of<_ClassT, _DecayA0>::value && - !__is_reference_wrapper<_DecayA0>::value >::type; + __enable_if_t::value && !is_base_of<_ClassT, _DecayA0>::value && + !__is_reference_wrapper<_DecayA0>::value>; // __invoke forward declarations diff --git a/libcxx/include/__type_traits/is_swappable.h b/libcxx/include/__type_traits/is_swappable.h --- a/libcxx/include/__type_traits/is_swappable.h +++ b/libcxx/include/__type_traits/is_swappable.h @@ -37,7 +37,7 @@ #ifndef _LIBCPP_CXX03_LANG template -using __swap_result_t = typename enable_if::value && is_move_assignable<_Tp>::value>::type; +using __swap_result_t = __enable_if_t::value && is_move_assignable<_Tp>::value>; #else template using __swap_result_t = void; diff --git a/libcxx/include/__utility/pair.h b/libcxx/include/__utility/pair.h --- a/libcxx/include/__utility/pair.h +++ b/libcxx/include/__utility/pair.h @@ -165,34 +165,28 @@ using _CheckArgsDep _LIBCPP_NODEBUG = typename conditional< _MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type; - template::__enable_explicit_default() - >::type* = nullptr> + template::__enable_explicit_default(), int> = 0> explicit _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR pair() _NOEXCEPT_(is_nothrow_default_constructible::value && is_nothrow_default_constructible::value) : first(), second() {} - template::__enable_implicit_default() - >::type* = nullptr> + template::__enable_implicit_default(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR pair() _NOEXCEPT_(is_nothrow_default_constructible::value && is_nothrow_default_constructible::value) : first(), second() {} - template ::template __enable_explicit<_T1 const&, _T2 const&>() - >::type* = nullptr> + template ::template __enable_explicit<_T1 const&, _T2 const&>(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(_T1 const& __t1, _T2 const& __t2) _NOEXCEPT_(is_nothrow_copy_constructible::value && is_nothrow_copy_constructible::value) : first(__t1), second(__t2) {} - template::template __enable_implicit<_T1 const&, _T2 const&>() - >::type* = nullptr> + template::template __enable_implicit<_T1 const&, _T2 const&>(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(_T1 const& __t1, _T2 const& __t2) _NOEXCEPT_(is_nothrow_copy_constructible::value && @@ -205,7 +199,7 @@ #else class _U1, class _U2, #endif - typename enable_if<_CheckArgs::template __enable_explicit<_U1, _U2>()>::type* = nullptr + __enable_if_t<_CheckArgs::template __enable_explicit<_U1, _U2>(), int> = 0 > _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(_U1&& __u1, _U2&& __u2) @@ -219,7 +213,7 @@ #else class _U1, class _U2, #endif - typename enable_if<_CheckArgs::template __enable_implicit<_U1, _U2>()>::type* = nullptr + __enable_if_t<_CheckArgs::template __enable_implicit<_U1, _U2>(), int> = 0 > _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(_U1&& __u1, _U2&& __u2) @@ -238,36 +232,28 @@ : first(__p.first), second(__p.second) {} #endif - template() - >::type* = nullptr> + template(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(pair<_U1, _U2> const& __p) _NOEXCEPT_((is_nothrow_constructible::value && is_nothrow_constructible::value)) : first(__p.first), second(__p.second) {} - template() - >::type* = nullptr> + template(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(pair<_U1, _U2> const& __p) _NOEXCEPT_((is_nothrow_constructible::value && is_nothrow_constructible::value)) : first(__p.first), second(__p.second) {} - template() - >::type* = nullptr> + template(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(pair<_U1, _U2>&&__p) _NOEXCEPT_((is_nothrow_constructible::value && is_nothrow_constructible::value)) : first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {} - template() - >::type* = nullptr> + template(), int> = 0> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(pair<_U1, _U2>&& __p) _NOEXCEPT_((is_nothrow_constructible::value && diff --git a/libcxx/include/__utility/swap.h b/libcxx/include/__utility/swap.h --- a/libcxx/include/__utility/swap.h +++ b/libcxx/include/__utility/swap.h @@ -30,7 +30,7 @@ #ifndef _LIBCPP_CXX03_LANG template -using __swap_result_t = typename enable_if::value && is_move_assignable<_Tp>::value>::type; +using __swap_result_t = __enable_if_t::value && is_move_assignable<_Tp>::value>; #else template using __swap_result_t = void; diff --git a/libcxx/include/istream b/libcxx/include/istream --- a/libcxx/include/istream +++ b/libcxx/include/istream @@ -1388,10 +1388,8 @@ std::declval<_Stream>() >> std::declval<_Tp>(), void() )> : true_type { }; -template , - __is_istreamable<_Stream&, _Tp&&> >::value ->::type> +template , __is_istreamable<_Stream&, _Tp&&> >::value, int> = 0> _LIBCPP_INLINE_VISIBILITY _Stream&& operator>>(_Stream&& __is, _Tp&& __x) { diff --git a/libcxx/include/ostream b/libcxx/include/ostream --- a/libcxx/include/ostream +++ b/libcxx/include/ostream @@ -1074,10 +1074,9 @@ std::declval<_Stream>() << std::declval<_Tp>(), void() )> : true_type { }; -template , - __is_ostreamable<_Stream&, const _Tp&> >::value ->::type> +template , __is_ostreamable<_Stream&, const _Tp&> >::value, int> = 0> _LIBCPP_INLINE_VISIBILITY _Stream&& operator<<(_Stream&& __os, const _Tp& __x) { diff --git a/libcxx/include/regex b/libcxx/include/regex --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -3106,8 +3106,7 @@ #if _LIBCPP_STD_VER >= 17 template ::value, nullptr_t>::type -> + __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> = 0> basic_regex(_ForwardIterator, _ForwardIterator, regex_constants::syntax_option_type = regex_constants::ECMAScript) -> basic_regex::value_type>; diff --git a/libcxx/include/scoped_allocator b/libcxx/include/scoped_allocator --- a/libcxx/include/scoped_allocator +++ b/libcxx/include/scoped_allocator @@ -229,9 +229,7 @@ __scoped_allocator_storage() _NOEXCEPT {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage(_OuterA2&& __outer_alloc, const _InnerAllocs& ...__inner_allocs) _NOEXCEPT @@ -239,9 +237,7 @@ __inner_(__inner_allocs...) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage( const __scoped_allocator_storage<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT @@ -249,9 +245,7 @@ __inner_(__other.inner_allocator()) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage( __scoped_allocator_storage<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT @@ -259,9 +253,7 @@ __inner_(_VSTD::move(__other.inner_allocator())) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage(_OuterA2&& __o, const inner_allocator_type& __i) _NOEXCEPT @@ -310,26 +302,20 @@ __scoped_allocator_storage() _NOEXCEPT {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage(_OuterA2&& __outer_alloc) _NOEXCEPT : outer_allocator_type(_VSTD::forward<_OuterA2>(__outer_alloc)) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage( const __scoped_allocator_storage<_OuterA2>& __other) _NOEXCEPT : outer_allocator_type(__other.outer_allocator()) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY __scoped_allocator_storage( __scoped_allocator_storage<_OuterA2>&& __other) _NOEXCEPT @@ -454,26 +440,20 @@ _LIBCPP_INLINE_VISIBILITY scoped_allocator_adaptor() _NOEXCEPT {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY scoped_allocator_adaptor(_OuterA2&& __outer_alloc, const _InnerAllocs& ...__inner_allocs) _NOEXCEPT : base(_VSTD::forward<_OuterA2>(__outer_alloc), __inner_allocs...) {} // scoped_allocator_adaptor(const scoped_allocator_adaptor& __other) = default; template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY scoped_allocator_adaptor( const scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT : base(__other) {} template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY scoped_allocator_adaptor( scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT @@ -600,9 +580,7 @@ template ::value - >::type> + __enable_if_t::value, int> = 0> _LIBCPP_INLINE_VISIBILITY scoped_allocator_adaptor(_OuterA2&& __o, const inner_allocator_type& __i) _NOEXCEPT