diff --git a/libcxx/include/__hash_table b/libcxx/include/__hash_table index a705117d0173f..ec007f28b9523 100644 --- a/libcxx/include/__hash_table +++ b/libcxx/include/__hash_table @@ -928,13 +928,12 @@ public: _LIBCPP_HIDE_FROM_ABI void swap(__hash_table& __u) #if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value && + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value || - __is_nothrow_swappable<__pointer_allocator>::value) && - (!__node_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value)); + __is_nothrow_swappable_v<__pointer_allocator>) && + (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>)); #else - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value); + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v); #endif _LIBCPP_HIDE_FROM_ABI size_type max_bucket_count() const _NOEXCEPT { return max_size(); } @@ -1985,12 +1984,12 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(const _Key& __k) c template void __hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u) #if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value && + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value || - __is_nothrow_swappable<__pointer_allocator>::value) && - (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__node_allocator>::value)) + __is_nothrow_swappable_v<__pointer_allocator>) && + (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>)) #else - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value) + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v) #endif { _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR( diff --git a/libcxx/include/__memory/compressed_pair.h b/libcxx/include/__memory/compressed_pair.h index 328849d7cc12d..40e5cfc35fb04 100644 --- a/libcxx/include/__memory/compressed_pair.h +++ b/libcxx/include/__memory/compressed_pair.h @@ -150,7 +150,7 @@ class __compressed_pair : private __compressed_pair_elem<_T1, 0>, private __comp } _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(__compressed_pair& __x) - _NOEXCEPT_(__is_nothrow_swappable<_T1>::value&& __is_nothrow_swappable<_T2>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_T1>&& __is_nothrow_swappable_v<_T2>) { using std::swap; swap(first(), __x.first()); swap(second(), __x.second()); @@ -160,7 +160,7 @@ class __compressed_pair : private __compressed_pair_elem<_T1, 0>, private __comp template inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(__compressed_pair<_T1, _T2>& __x, __compressed_pair<_T1, _T2>& __y) - _NOEXCEPT_(__is_nothrow_swappable<_T1>::value&& __is_nothrow_swappable<_T2>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_T1>&& __is_nothrow_swappable_v<_T2>) { __x.swap(__y); } diff --git a/libcxx/include/__memory/swap_allocator.h b/libcxx/include/__memory/swap_allocator.h index f2c5090563913..b17e082a43c9f 100644 --- a/libcxx/include/__memory/swap_allocator.h +++ b/libcxx/include/__memory/swap_allocator.h @@ -26,7 +26,7 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void __swap_allocator(_Alloc #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(__is_nothrow_swappable<_Alloc>::value) + _NOEXCEPT_(__is_nothrow_swappable_v<_Alloc>) #endif { using std::swap; @@ -42,7 +42,7 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void __swap_allocator #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(__is_nothrow_swappable<_Alloc>::value) + _NOEXCEPT_(__is_nothrow_swappable_v<_Alloc>) #endif { std::__swap_allocator( diff --git a/libcxx/include/__memory/unique_ptr.h b/libcxx/include/__memory/unique_ptr.h index 46d9405e31596..3bd02a7cc26aa 100644 --- a/libcxx/include/__memory/unique_ptr.h +++ b/libcxx/include/__memory/unique_ptr.h @@ -471,7 +471,7 @@ class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS unique_ptr<_Tp[], _Dp> _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 void swap(unique_ptr& __u) _NOEXCEPT { __ptr_.swap(__u.__ptr_); } }; -template ::value, int> = 0> +template , int> = 0> inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 void swap(unique_ptr<_Tp, _Dp>& __x, unique_ptr<_Tp, _Dp>& __y) _NOEXCEPT { __x.swap(__y); diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index c68349e0979c9..12e34326c92ce 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -187,7 +187,7 @@ public: _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __destruct_at_end(pointer __new_last, true_type) _NOEXCEPT; _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void swap(__split_buffer& __x) - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__alloc_rr>::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__alloc_rr>); _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool __invariants() const; @@ -409,7 +409,7 @@ __split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c) template _LIBCPP_CONSTEXPR_SINCE_CXX20 void __split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x) - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__alloc_rr>::value) { + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__alloc_rr>) { std::swap(__first_, __x.__first_); std::swap(__begin_, __x.__begin_); std::swap(__end_, __x.__end_); diff --git a/libcxx/include/__tree b/libcxx/include/__tree index 5a0d8f42a69ce..0b206b5980f77 100644 --- a/libcxx/include/__tree +++ b/libcxx/include/__tree @@ -1006,11 +1006,10 @@ public: _LIBCPP_HIDE_FROM_ABI void swap(__tree& __t) #if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_(__is_nothrow_swappable::value && - (!__node_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value)); + _NOEXCEPT_(__is_nothrow_swappable_v && + (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>)); #else - _NOEXCEPT_(__is_nothrow_swappable::value); + _NOEXCEPT_(__is_nothrow_swappable_v); #endif template @@ -1549,10 +1548,10 @@ void __tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT { template void __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t) #if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_(__is_nothrow_swappable::value && - (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__node_allocator>::value)) + _NOEXCEPT_(__is_nothrow_swappable_v && + (!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>)) #else - _NOEXCEPT_(__is_nothrow_swappable::value) + _NOEXCEPT_(__is_nothrow_swappable_v) #endif { using std::swap; diff --git a/libcxx/include/__type_traits/is_swappable.h b/libcxx/include/__type_traits/is_swappable.h index 06b59e5c25d04..0b817e6509933 100644 --- a/libcxx/include/__type_traits/is_swappable.h +++ b/libcxx/include/__type_traits/is_swappable.h @@ -11,16 +11,12 @@ #include <__config> #include <__type_traits/add_lvalue_reference.h> -#include <__type_traits/conditional.h> #include <__type_traits/enable_if.h> #include <__type_traits/is_assignable.h> #include <__type_traits/is_constructible.h> #include <__type_traits/is_nothrow_assignable.h> #include <__type_traits/is_nothrow_constructible.h> -#include <__type_traits/is_referenceable.h> -#include <__type_traits/is_same.h> -#include <__type_traits/is_void.h> -#include <__type_traits/nat.h> +#include <__type_traits/void_t.h> #include <__utility/declval.h> #include @@ -30,10 +26,17 @@ _LIBCPP_BEGIN_NAMESPACE_STD +template +inline const bool __is_swappable_with_v = false; + template -struct __is_swappable; +inline const bool __is_swappable_v = __is_swappable_with_v<_Tp&, _Tp&>; + +template > +inline const bool __is_nothrow_swappable_with_v = false; + template -struct __is_nothrow_swappable; +inline const bool __is_nothrow_swappable_v = __is_nothrow_swappable_with_v<_Tp&, _Tp&>; #ifndef _LIBCPP_CXX03_LANG template @@ -47,85 +50,52 @@ template inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __swap_result_t<_Tp> swap(_Tp& __x, _Tp& __y) _NOEXCEPT_(is_nothrow_move_constructible<_Tp>::value&& is_nothrow_move_assignable<_Tp>::value); -template ::value, int> = 0> -inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value); +template , int> = 0> +inline _LIBCPP_HIDE_FROM_ABI +_LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) _NOEXCEPT_(__is_nothrow_swappable_v<_Tp>); -namespace __detail { // ALL generic swap overloads MUST already have a declaration available at this point. -template ::value && !is_void<_Up>::value> -struct __swappable_with { - template - static decltype(swap(std::declval<_LHS>(), std::declval<_RHS>())) __test_swap(int); - template - static __nat __test_swap(long); - - // Extra parens are needed for the C++03 definition of decltype. - typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1; - typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2; - - static const bool value = _IsNotSame<__swap1, __nat>::value && _IsNotSame<__swap2, __nat>::value; -}; +template +inline const bool __is_swappable_with_v<_Tp, + _Up, + __void_t(), std::declval<_Up>())), + decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> > = true; +#ifndef _LIBCPP_CXX03_LANG // C++03 doesn't have noexcept, so things are never nothrow swappable template -struct __swappable_with<_Tp, _Up, false> : false_type {}; - -template ::value> -struct __nothrow_swappable_with { - static const bool value = -#ifndef _LIBCPP_HAS_NO_NOEXCEPT - noexcept(swap(std::declval<_Tp>(), std::declval<_Up>()))&& noexcept( - swap(std::declval<_Up>(), std::declval<_Tp>())); -#else - false; +inline const bool __is_nothrow_swappable_with_v<_Tp, _Up, true> = + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())); #endif -}; -template -struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {}; +#if _LIBCPP_STD_VER >= 17 -} // namespace __detail +template +inline constexpr bool is_swappable_with_v = __is_swappable_with_v<_Tp, _Up>; -template -struct __is_swappable : public integral_constant::value> {}; +template +struct _LIBCPP_TEMPLATE_VIS is_swappable_with : bool_constant> {}; template -struct __is_nothrow_swappable : public integral_constant::value> {}; - -#if _LIBCPP_STD_VER >= 17 - -template -struct _LIBCPP_TEMPLATE_VIS is_swappable_with - : public integral_constant::value> {}; +inline constexpr bool is_swappable_v = + is_swappable_with_v<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp>>; template -struct _LIBCPP_TEMPLATE_VIS is_swappable - : public __conditional_t<__libcpp_is_referenceable<_Tp>::value, - is_swappable_with<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp> >, - false_type> {}; +struct _LIBCPP_TEMPLATE_VIS is_swappable : bool_constant> {}; template -struct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable_with - : public integral_constant::value> {}; - -template -struct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable - : public __conditional_t<__libcpp_is_referenceable<_Tp>::value, - is_nothrow_swappable_with<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp> >, - false_type> {}; +inline constexpr bool is_nothrow_swappable_with_v = __is_nothrow_swappable_with_v<_Tp, _Up>; template -inline constexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value; +struct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable_with : bool_constant> {}; template -inline constexpr bool is_swappable_v = is_swappable<_Tp>::value; - -template -inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value; +inline constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable_with_v<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp>>; template -inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value; +struct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable : bool_constant> {}; #endif // _LIBCPP_STD_VER >= 17 diff --git a/libcxx/include/__utility/pair.h b/libcxx/include/__utility/pair.h index 3ffab2f7fe4f6..3b6e201852f07 100644 --- a/libcxx/include/__utility/pair.h +++ b/libcxx/include/__utility/pair.h @@ -409,7 +409,7 @@ struct _LIBCPP_TEMPLATE_VIS pair #endif // _LIBCPP_CXX03_LANG _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(pair& __p) - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value) { + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v) { using std::swap; swap(first, __p.first); swap(second, __p.second); @@ -417,7 +417,7 @@ struct _LIBCPP_TEMPLATE_VIS pair #if _LIBCPP_STD_VER >= 23 _LIBCPP_HIDE_FROM_ABI constexpr void swap(const pair& __p) const - noexcept(__is_nothrow_swappable::value && __is_nothrow_swappable::value) { + noexcept(__is_nothrow_swappable_v && __is_nothrow_swappable_v) { using std::swap; swap(first, __p.first); swap(second, __p.second); @@ -513,15 +513,15 @@ struct common_type, pair<_U1, _U2>> { }; #endif // _LIBCPP_STD_VER >= 23 -template ::value && __is_swappable<_T2>::value, int> = 0> +template && __is_swappable_v<_T2>, int> = 0> inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) - _NOEXCEPT_(__is_nothrow_swappable<_T1>::value&& __is_nothrow_swappable<_T2>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_T1>&& __is_nothrow_swappable_v<_T2>) { __x.swap(__y); } #if _LIBCPP_STD_VER >= 23 template - requires(__is_swappable::value && __is_swappable::value) + requires(__is_swappable_v && __is_swappable_v) _LIBCPP_HIDE_FROM_ABI constexpr void swap(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) noexcept(noexcept(__x.swap(__y))) { __x.swap(__y); diff --git a/libcxx/include/__utility/swap.h b/libcxx/include/__utility/swap.h index d678d2cba7dc9..ab88b8e0a0b53 100644 --- a/libcxx/include/__utility/swap.h +++ b/libcxx/include/__utility/swap.h @@ -44,9 +44,9 @@ inline _LIBCPP_HIDE_FROM_ABI __swap_result_t<_Tp> _LIBCPP_CONSTEXPR_SINCE_CXX20 __y = std::move(__t); } -template ::value, int> > +template , int> > inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_Tp>) { for (size_t __i = 0; __i != _Np; ++__i) { swap(__a[__i], __b[__i]); } diff --git a/libcxx/include/array b/libcxx/include/array index 6ea094deec32d..7d03d4c458219 100644 --- a/libcxx/include/array +++ b/libcxx/include/array @@ -192,8 +192,7 @@ struct _LIBCPP_TEMPLATE_VIS array { std::fill_n(data(), _Size, __u); } - _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(array& __a) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) { + _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(array& __a) _NOEXCEPT_(__is_nothrow_swappable_v<_Tp>) { std::swap_ranges(data(), data() + _Size, __a.data()); } @@ -428,7 +427,7 @@ operator<=>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { #endif // _LIBCPP_STD_VER <= 17 -template ::value, int> = 0> +template , int> = 0> inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(array<_Tp, _Size>& __x, array<_Tp, _Size>& __y) _NOEXCEPT_(noexcept(__x.swap(__y))) { __x.swap(__y); diff --git a/libcxx/include/deque b/libcxx/include/deque index 555761aae6afd..d6173bedbcf5b 100644 --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -214,6 +214,7 @@ template #include <__type_traits/is_allocator.h> #include <__type_traits/is_convertible.h> #include <__type_traits/is_same.h> +#include <__type_traits/is_swappable.h> #include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <__utility/move.h> @@ -794,7 +795,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v); #endif _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT; @@ -2452,7 +2453,7 @@ inline void deque<_Tp, _Allocator>::swap(deque& __c) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v) #endif { __map_.swap(__c.__map_); diff --git a/libcxx/include/experimental/propagate_const b/libcxx/include/experimental/propagate_const index 43648015fe80e..a30bba9effb14 100644 --- a/libcxx/include/experimental/propagate_const +++ b/libcxx/include/experimental/propagate_const @@ -266,8 +266,7 @@ public: _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR element_type& operator*() { return *get(); } - _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR void swap(propagate_const& __pt) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) { + _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR void swap(propagate_const& __pt) _NOEXCEPT_(__is_nothrow_swappable_v<_Tp>) { using std::swap; swap(__t_, __pt.__t_); } @@ -391,7 +390,7 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR bool operator>=(const _Tp& __t, const pr template _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR void swap(propagate_const<_Tp>& __pc1, propagate_const<_Tp>& __pc2) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_Tp>) { __pc1.swap(__pc2); } diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list index 363931e3f2388..8f53f036b4725 100644 --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -567,7 +567,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__node_allocator>::value); + _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>); #endif protected: @@ -618,7 +618,7 @@ inline void __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__node_allocator>::value) + _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>) #endif { std::__swap_allocator( @@ -821,7 +821,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable<__node_allocator>::value) + _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>) #endif { base::swap(__x); diff --git a/libcxx/include/list b/libcxx/include/list index 87f15e144ac8f..e87034442fea1 100644 --- a/libcxx/include/list +++ b/libcxx/include/list @@ -533,7 +533,7 @@ protected: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v); #endif _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __list_imp& __c) { @@ -639,7 +639,7 @@ void __list_imp<_Tp, _Alloc>::swap(__list_imp& __c) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v) #endif { _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR( @@ -861,8 +861,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__node_alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value) + _NOEXCEPT_(!__node_alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>) #endif { base::swap(__c); diff --git a/libcxx/include/map b/libcxx/include/map index 7efa715e84aa7..83c039fa6a52b 100644 --- a/libcxx/include/map +++ b/libcxx/include/map @@ -641,7 +641,7 @@ public: _LIBCPP_HIDE_FROM_ABI bool operator()(const _Key& __x, const _CP& __y) const { return static_cast(*this)(__x, __y.__get_value().first); } - _LIBCPP_HIDE_FROM_ABI void swap(__map_value_compare& __y) _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(__map_value_compare& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Compare>) { using std::swap; swap(static_cast<_Compare&>(*this), static_cast<_Compare&>(__y)); } @@ -679,7 +679,7 @@ public: _LIBCPP_HIDE_FROM_ABI bool operator()(const _Key& __x, const _CP& __y) const { return __comp_(__x, __y.__get_value().first); } - void swap(__map_value_compare& __y) _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value) { + void swap(__map_value_compare& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Compare>) { using std::swap; swap(__comp_, __y.__comp_); } @@ -1359,7 +1359,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(map& __m) _NOEXCEPT_(__is_nothrow_swappable<__base>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(map& __m) _NOEXCEPT_(__is_nothrow_swappable_v<__base>) { __tree_.swap(__m.__tree_); } @@ -1951,7 +1951,7 @@ public: _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT { __tree_.clear(); } - _LIBCPP_HIDE_FROM_ABI void swap(multimap& __m) _NOEXCEPT_(__is_nothrow_swappable<__base>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(multimap& __m) _NOEXCEPT_(__is_nothrow_swappable_v<__base>) { __tree_.swap(__m.__tree_); } diff --git a/libcxx/include/queue b/libcxx/include/queue index 8d6f6c667b93b..5e733f53471c0 100644 --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -411,7 +411,7 @@ public: #endif // _LIBCPP_CXX03_LANG _LIBCPP_HIDE_FROM_ABI void pop() { c.pop_front(); } - _LIBCPP_HIDE_FROM_ABI void swap(queue& __q) _NOEXCEPT_(__is_nothrow_swappable::value) { + _LIBCPP_HIDE_FROM_ABI void swap(queue& __q) _NOEXCEPT_(__is_nothrow_swappable_v) { using std::swap; swap(c, __q.c); } @@ -500,7 +500,7 @@ operator<=>(const queue<_Tp, _Container>& __x, const queue<_Tp, _Container>& __y #endif -template ::value, int> = 0> +template , int> = 0> inline _LIBCPP_HIDE_FROM_ABI void swap(queue<_Tp, _Container>& __x, queue<_Tp, _Container>& __y) _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) { __x.swap(__y); @@ -676,7 +676,7 @@ public: _LIBCPP_HIDE_FROM_ABI void pop(); _LIBCPP_HIDE_FROM_ABI void swap(priority_queue& __q) - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value); + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v); _LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI const _Container& __get_container() const { return c; } }; @@ -922,7 +922,7 @@ inline void priority_queue<_Tp, _Container, _Compare>::pop() { template inline void priority_queue<_Tp, _Container, _Compare>::swap(priority_queue& __q) - _NOEXCEPT_(__is_nothrow_swappable::value&& __is_nothrow_swappable::value) { + _NOEXCEPT_(__is_nothrow_swappable_v&& __is_nothrow_swappable_v) { using std::swap; swap(c, __q.c); swap(comp, __q.comp); @@ -931,7 +931,7 @@ inline void priority_queue<_Tp, _Container, _Compare>::swap(priority_queue& __q) template ::value && __is_swappable<_Compare>::value, int> = 0> + __enable_if_t<__is_swappable_v<_Container> && __is_swappable_v<_Compare>, int> = 0> inline _LIBCPP_HIDE_FROM_ABI void swap(priority_queue<_Tp, _Container, _Compare>& __x, priority_queue<_Tp, _Container, _Compare>& __y) _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) { diff --git a/libcxx/include/regex b/libcxx/include/regex index b3869d36de1df..373b1c6823187 100644 --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -4214,11 +4214,7 @@ public: _LIBCPP_HIDE_FROM_ABI int compare(const string_type& __s) const { return str().compare(__s); } _LIBCPP_HIDE_FROM_ABI int compare(const value_type* __s) const { return str().compare(__s); } - _LIBCPP_HIDE_FROM_ABI void swap(sub_match& __s) -#ifndef _LIBCPP_CXX03_LANG - _NOEXCEPT(__is_nothrow_swappable<_BidirectionalIterator>::value) -#endif // _LIBCPP_CXX03_LANG - { + _LIBCPP_HIDE_FROM_ABI void swap(sub_match& __s) _NOEXCEPT_(__is_nothrow_swappable_v<_BidirectionalIterator>) { this->pair<_BidirectionalIterator, _BidirectionalIterator>::swap(__s); std::swap(matched, __s.matched); } diff --git a/libcxx/include/set b/libcxx/include/set index ab3a4363499af..14b757fc8a69c 100644 --- a/libcxx/include/set +++ b/libcxx/include/set @@ -812,9 +812,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(set& __s) _NOEXCEPT_(__is_nothrow_swappable<__base>::value) { - __tree_.swap(__s.__tree_); - } + _LIBCPP_HIDE_FROM_ABI void swap(set& __s) _NOEXCEPT_(__is_nothrow_swappable_v<__base>) { __tree_.swap(__s.__tree_); } _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT { return __tree_.__alloc(); } _LIBCPP_HIDE_FROM_ABI key_compare key_comp() const { return __tree_.value_comp(); } @@ -1270,7 +1268,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(multiset& __s) _NOEXCEPT_(__is_nothrow_swappable<__base>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(multiset& __s) _NOEXCEPT_(__is_nothrow_swappable_v<__base>) { __tree_.swap(__s.__tree_); } diff --git a/libcxx/include/stack b/libcxx/include/stack index e45bfba5587ed..24cab2d6f401c 100644 --- a/libcxx/include/stack +++ b/libcxx/include/stack @@ -268,7 +268,7 @@ public: _LIBCPP_HIDE_FROM_ABI void pop() { c.pop_back(); } - _LIBCPP_HIDE_FROM_ABI void swap(stack& __s) _NOEXCEPT_(__is_nothrow_swappable::value) { + _LIBCPP_HIDE_FROM_ABI void swap(stack& __s) _NOEXCEPT_(__is_nothrow_swappable_v) { using std::swap; swap(c, __s.c); } @@ -354,7 +354,7 @@ operator<=>(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y #endif -template ::value, int> = 0> +template , int> = 0> inline _LIBCPP_HIDE_FROM_ABI void swap(stack<_Tp, _Container>& __x, stack<_Tp, _Container>& __y) _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) { __x.swap(__y); diff --git a/libcxx/include/string b/libcxx/include/string index 1db803e822d72..2f6566ef9ffdf 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -1643,7 +1643,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v); #endif _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const value_type* c_str() const _NOEXCEPT { return data(); } @@ -3350,7 +3350,7 @@ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocat #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v) #endif { _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR( diff --git a/libcxx/include/tuple b/libcxx/include/tuple index e7b43af7d13c0..f60d145aa90d7 100644 --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -279,14 +279,14 @@ class __tuple_leaf; template inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(__tuple_leaf<_Ip, _Hp, _Ep>& __x, __tuple_leaf<_Ip, _Hp, _Ep>& __y) - _NOEXCEPT_(__is_nothrow_swappable<_Hp>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<_Hp>) { swap(__x.get(), __y.get()); } template _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(const __tuple_leaf<_Ip, _Hp, _Ep>& __x, const __tuple_leaf<_Ip, _Hp, _Ep>& __y) - _NOEXCEPT_(__is_nothrow_swappable::value) { + _NOEXCEPT_(__is_nothrow_swappable_v) { swap(__x.get(), __y.get()); } @@ -362,13 +362,13 @@ public: _LIBCPP_HIDE_FROM_ABI __tuple_leaf(__tuple_leaf&& __t) = default; _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 int swap(__tuple_leaf& __t) - _NOEXCEPT_(__is_nothrow_swappable<__tuple_leaf>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<__tuple_leaf>) { std::swap(*this, __t); return 0; } _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 int swap(const __tuple_leaf& __t) const - _NOEXCEPT_(__is_nothrow_swappable::value) { + _NOEXCEPT_(__is_nothrow_swappable_v) { std::swap(*this, __t); return 0; } @@ -417,13 +417,13 @@ public: __tuple_leaf(__tuple_leaf&&) = default; _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 int swap(__tuple_leaf& __t) - _NOEXCEPT_(__is_nothrow_swappable<__tuple_leaf>::value) { + _NOEXCEPT_(__is_nothrow_swappable_v<__tuple_leaf>) { std::swap(*this, __t); return 0; } _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 int swap(const __tuple_leaf& __rhs) const - _NOEXCEPT_(__is_nothrow_swappable::value) { + _NOEXCEPT_(__is_nothrow_swappable_v) { std::swap(*this, __rhs); return 0; } @@ -496,12 +496,12 @@ struct _LIBCPP_DECLSPEC_EMPTY_BASES __tuple_impl<__tuple_indices<_Indx...>, _Tp. __tuple_impl(__tuple_impl&&) = default; _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(__tuple_impl& __t) - _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value) { + _NOEXCEPT_(__all<__is_nothrow_swappable_v<_Tp>...>::value) { std::__swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t))...); } _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void swap(const __tuple_impl& __t) const - _NOEXCEPT_(__all<__is_nothrow_swappable::value...>::value) { + _NOEXCEPT_(__all<__is_nothrow_swappable_v...>::value) { std::__swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast&>(__t))...); } }; @@ -974,7 +974,7 @@ public: // [tuple.swap] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(tuple& __t) - _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value) { + _NOEXCEPT_(__all<__is_nothrow_swappable_v<_Tp>...>::value) { __base_.swap(__t.__base_); } @@ -1031,9 +1031,9 @@ template tuple(allocator_arg_t, _Alloc, tuple<_Tp...>) -> tuple<_Tp...>; # endif -template ::value...>::value, int> = 0> +template ...>::value, int> = 0> inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(tuple<_Tp...>& __t, tuple<_Tp...>& __u) - _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value) { + _NOEXCEPT_(__all<__is_nothrow_swappable_v<_Tp>...>::value) { __t.swap(__u); } diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map index 2e25b0f050695..e565c72df92f9 100644 --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -650,7 +650,7 @@ public: return static_cast(*this)(__x); } #endif - _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_hasher& __y) _NOEXCEPT_(__is_nothrow_swappable<_Hash>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_hasher& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Hash>) { using std::swap; swap(static_cast<_Hash&>(*this), static_cast<_Hash&>(__y)); } @@ -674,7 +674,7 @@ public: return __hash_(__x); } #endif - _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_hasher& __y) _NOEXCEPT_(__is_nothrow_swappable<_Hash>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_hasher& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Hash>) { using std::swap; swap(__hash_, __y.__hash_); } @@ -725,7 +725,7 @@ public: return static_cast(*this)(__x, __y); } #endif - _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_equal& __y) _NOEXCEPT_(__is_nothrow_swappable<_Pred>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_equal& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Pred>) { using std::swap; swap(static_cast<_Pred&>(*this), static_cast<_Pred&>(__y)); } @@ -768,7 +768,7 @@ public: return __pred_(__x, __y); } #endif - _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_equal& __y) _NOEXCEPT_(__is_nothrow_swappable<_Pred>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_equal& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Pred>) { using std::swap; swap(__pred_, __y.__pred_); } @@ -1373,7 +1373,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(unordered_map& __u) _NOEXCEPT_(__is_nothrow_swappable<__table>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(unordered_map& __u) _NOEXCEPT_(__is_nothrow_swappable_v<__table>) { __table_.swap(__u.__table_); } @@ -2120,7 +2120,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(unordered_multimap& __u) _NOEXCEPT_(__is_nothrow_swappable<__table>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(unordered_multimap& __u) _NOEXCEPT_(__is_nothrow_swappable_v<__table>) { __table_.swap(__u.__table_); } diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set index c966cc8eb4df1..dfa9e780a39f1 100644 --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -828,7 +828,7 @@ public: } #endif - _LIBCPP_HIDE_FROM_ABI void swap(unordered_set& __u) _NOEXCEPT_(__is_nothrow_swappable<__table>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(unordered_set& __u) _NOEXCEPT_(__is_nothrow_swappable_v<__table>) { __table_.swap(__u.__table_); } @@ -1425,7 +1425,7 @@ public: } _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT { __table_.clear(); } - _LIBCPP_HIDE_FROM_ABI void swap(unordered_multiset& __u) _NOEXCEPT_(__is_nothrow_swappable<__table>::value) { + _LIBCPP_HIDE_FROM_ABI void swap(unordered_multiset& __u) _NOEXCEPT_(__is_nothrow_swappable_v<__table>) { __table_.swap(__u.__table_); } diff --git a/libcxx/include/vector b/libcxx/include/vector index cbfc2cefa1fd9..425f071d5d22e 100644 --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -743,7 +743,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v); #endif _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool __invariants() const; @@ -1767,7 +1767,7 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::swap(vector& __x) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v) #endif { _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR( @@ -2108,7 +2108,7 @@ public: #if _LIBCPP_STD_VER >= 14 _NOEXCEPT; #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value); + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v); #endif _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 static void swap(reference __x, reference __y) _NOEXCEPT { std::swap(__x, __y); @@ -2770,7 +2770,7 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector::swap(vector& __x) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT #else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable::value) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v) #endif { std::swap(this->__begin_, __x.__begin_); diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_include_order.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_include_order.pass.cpp index 5931e7ce7f30f..1f1709bca93c8 100644 --- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_include_order.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_include_order.pass.cpp @@ -23,22 +23,21 @@ #include "test_macros.h" -int main(int, char**) -{ - // Use a builtin type so we don't get ADL lookup. - typedef double T[17][29]; - { - LIBCPP_STATIC_ASSERT(std::__is_swappable::value, ""); +int main(int, char**) { + // Use a builtin type so we don't get ADL lookup. + typedef double T[17][29]; + { + LIBCPP_STATIC_ASSERT(std::__is_swappable_v, ""); #if TEST_STD_VER > 14 - static_assert(std::is_swappable_v, ""); + static_assert(std::is_swappable_v, ""); #endif - } - { - T t1 = {}; - T t2 = {}; - std::iter_swap(t1, t2); - std::swap_ranges(t1, t1 + 17, t2); - } + } + { + T t1 = {}; + T t2 = {}; + std::iter_swap(t1, t2); + std::swap_ranges(t1, t1 + 17, t2); + } return 0; } diff --git a/libcxx/test/support/nasty_containers.h b/libcxx/test/support/nasty_containers.h index 91e3af2e805b4..34027f0127eaf 100644 --- a/libcxx/test/support/nasty_containers.h +++ b/libcxx/test/support/nasty_containers.h @@ -123,13 +123,15 @@ class nasty_vector void resize(size_type sz) { v_.resize(sz); } void resize(size_type sz, const value_type& c) { v_.resize(sz, c); } - void swap(nasty_vector &nv) + void swap(nasty_vector& nv) #if TEST_STD_VER > 14 - noexcept(std::is_nothrow_swappable::value) + noexcept(std::is_nothrow_swappable::value) #elif defined(_LIBCPP_VERSION) - TEST_NOEXCEPT_COND(std::__is_nothrow_swappable::value) + TEST_NOEXCEPT_COND(std::__is_nothrow_swappable_v) #endif - { v_.swap(nv.v_); } + { + v_.swap(nv.v_); + } nasty_vector *operator &() { assert(false); return nullptr; } // nasty const nasty_vector *operator &() const { assert(false); return nullptr; } // nasty @@ -252,13 +254,15 @@ class nasty_list void resize(size_type n) { l_.resize(n); } void resize(size_type n, const value_type& c) { l_.resize(n, c); } - void swap(nasty_list &nl) + void swap(nasty_list& nl) #if TEST_STD_VER > 14 - noexcept(std::is_nothrow_swappable::value) + noexcept(std::is_nothrow_swappable::value) #elif defined(_LIBCPP_VERSION) - TEST_NOEXCEPT_COND(std::__is_nothrow_swappable::value) + TEST_NOEXCEPT_COND(std::__is_nothrow_swappable_v) #endif - { l_.swap(nl.l_); } + { + l_.swap(nl.l_); + } void clear() TEST_NOEXCEPT { l_.clear(); } diff --git a/libcxx/test/support/poisoned_hash_helper.h b/libcxx/test/support/poisoned_hash_helper.h index 000b08cd37beb..a073350c1470e 100644 --- a/libcxx/test/support/poisoned_hash_helper.h +++ b/libcxx/test/support/poisoned_hash_helper.h @@ -145,7 +145,7 @@ TEST_CONSTEXPR_CXX20 void test_hash_enabled(InputKey const& key) { #if TEST_STD_VER > 14 static_assert(std::is_swappable::value, ""); #elif defined(_LIBCPP_VERSION) - static_assert(std::__is_swappable::value, ""); + static_assert(std::__is_swappable_v, ""); #endif // Hashable requirements