Skip to content

Commit f89d707

Browse files
authored
[libc++] Accept __VA_ARGS__ in conditional _NOEXCEPT_ macro (#79877)
This prevents having to use double parentheses in common cases.
1 parent a0d266d commit f89d707

File tree

5 files changed

+38
-43
lines changed

5 files changed

+38
-43
lines changed

libcxx/include/__config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ _LIBCPP_HARDENING_MODE_DEBUG
618618
# define _ALIGNAS(x) alignas(x)
619619
# define _LIBCPP_NORETURN [[noreturn]]
620620
# define _NOEXCEPT noexcept
621-
# define _NOEXCEPT_(x) noexcept(x)
621+
# define _NOEXCEPT_(...) noexcept(__VA_ARGS__)
622622
# define _LIBCPP_CONSTEXPR constexpr
623623

624624
# else
@@ -630,7 +630,7 @@ _LIBCPP_HARDENING_MODE_DEBUG
630630
# define _LIBCPP_HAS_NO_NOEXCEPT
631631
# define nullptr __nullptr
632632
# define _NOEXCEPT throw()
633-
# define _NOEXCEPT_(x)
633+
# define _NOEXCEPT_(...)
634634
# define static_assert(...) _Static_assert(__VA_ARGS__)
635635
# define decltype(...) __decltype(__VA_ARGS__)
636636
# define _LIBCPP_CONSTEXPR

libcxx/include/__utility/pair.h

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,7 @@ struct _LIBCPP_TEMPLATE_VIS pair
187187
# endif
188188
__enable_if_t<_CheckArgs::template __enable_explicit<_U1, _U2>(), int> = 0 >
189189
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(_U1&& __u1, _U2&& __u2)
190-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1>::value &&
191-
is_nothrow_constructible<second_type, _U2>::value))
190+
_NOEXCEPT_(is_nothrow_constructible<first_type, _U1>::value&& is_nothrow_constructible<second_type, _U2>::value)
192191
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {
193192
}
194193

@@ -202,8 +201,7 @@ struct _LIBCPP_TEMPLATE_VIS pair
202201
# endif
203202
__enable_if_t<_CheckArgs::template __enable_implicit<_U1, _U2>(), int> = 0 >
204203
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(_U1&& __u1, _U2&& __u2)
205-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1>::value &&
206-
is_nothrow_constructible<second_type, _U2>::value))
204+
_NOEXCEPT_(is_nothrow_constructible<first_type, _U1>::value&& is_nothrow_constructible<second_type, _U2>::value)
207205
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {
208206
}
209207

@@ -221,28 +219,26 @@ struct _LIBCPP_TEMPLATE_VIS pair
221219
class _U2,
222220
__enable_if_t<_CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>(), int> = 0>
223221
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(pair<_U1, _U2> const& __p)
224-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1 const&>::value &&
225-
is_nothrow_constructible<second_type, _U2 const&>::value))
222+
_NOEXCEPT_(is_nothrow_constructible<first_type, _U1 const&>::value&&
223+
is_nothrow_constructible<second_type, _U2 const&>::value)
226224
: first(__p.first), second(__p.second) {}
227225

228226
template <class _U1,
229227
class _U2,
230228
__enable_if_t<_CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>(), int> = 0>
231229
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(pair<_U1, _U2> const& __p)
232-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1 const&>::value &&
233-
is_nothrow_constructible<second_type, _U2 const&>::value))
230+
_NOEXCEPT_(is_nothrow_constructible<first_type, _U1 const&>::value&&
231+
is_nothrow_constructible<second_type, _U2 const&>::value)
234232
: first(__p.first), second(__p.second) {}
235233

236234
template <class _U1, class _U2, __enable_if_t<_CheckArgs::template __enable_explicit<_U1, _U2>(), int> = 0>
237-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(pair<_U1, _U2>&& __p)
238-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1&&>::value &&
239-
is_nothrow_constructible<second_type, _U2&&>::value))
235+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit pair(pair<_U1, _U2>&& __p) _NOEXCEPT_(
236+
is_nothrow_constructible<first_type, _U1&&>::value&& is_nothrow_constructible<second_type, _U2&&>::value)
240237
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
241238

242239
template <class _U1, class _U2, __enable_if_t<_CheckArgs::template __enable_implicit<_U1, _U2>(), int> = 0>
243-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(pair<_U1, _U2>&& __p)
244-
_NOEXCEPT_((is_nothrow_constructible<first_type, _U1&&>::value &&
245-
is_nothrow_constructible<second_type, _U2&&>::value))
240+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair(pair<_U1, _U2>&& __p) _NOEXCEPT_(
241+
is_nothrow_constructible<first_type, _U1&&>::value&& is_nothrow_constructible<second_type, _U2&&>::value)
246242
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
247243

248244
# if _LIBCPP_STD_VER >= 23
@@ -276,9 +272,8 @@ struct _LIBCPP_TEMPLATE_VIS pair
276272

277273
template <class... _Args1, class... _Args2>
278274
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
279-
pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, tuple<_Args2...> __second_args)
280-
_NOEXCEPT_((is_nothrow_constructible<first_type, _Args1...>::value &&
281-
is_nothrow_constructible<second_type, _Args2...>::value))
275+
pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, tuple<_Args2...> __second_args) _NOEXCEPT_(
276+
is_nothrow_constructible<first_type, _Args1...>::value&& is_nothrow_constructible<second_type, _Args2...>::value)
282277
: pair(__pc,
283278
__first_args,
284279
__second_args,
@@ -580,7 +575,7 @@ struct common_type<pair<_T1, _T2>, pair<_U1, _U2>> {
580575

581576
template <class _T1, class _T2, __enable_if_t<__is_swappable<_T1>::value && __is_swappable<_T2>::value, int> = 0>
582577
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
583-
_NOEXCEPT_((__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value)) {
578+
_NOEXCEPT_(__is_nothrow_swappable<_T1>::value&& __is_nothrow_swappable<_T2>::value) {
584579
__x.swap(__y);
585580
}
586581

libcxx/include/string

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,7 +1123,7 @@ public:
11231123

11241124
#ifndef _LIBCPP_CXX03_LANG
11251125
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator=(basic_string&& __str)
1126-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) {
1126+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
11271127
__move_assign(__str, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());
11281128
return *this;
11291129
}
@@ -1380,7 +1380,7 @@ public:
13801380
}
13811381
#ifndef _LIBCPP_CXX03_LANG
13821382
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(basic_string&& __str)
1383-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) {
1383+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
13841384
*this = std::move(__str);
13851385
return *this;
13861386
}

libcxx/include/tuple

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ public:
341341
class = __enable_if_t<
342342
_And< _IsNotSame<__remove_cvref_t<_Tp>, __tuple_leaf>, is_constructible<_Hp, _Tp> >::value > >
343343
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit __tuple_leaf(_Tp&& __t)
344-
_NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))
344+
_NOEXCEPT_(is_nothrow_constructible<_Hp, _Tp>::value)
345345
: __value_(std::forward<_Tp>(__t)) {
346346
static_assert(__can_bind_reference<_Tp&&>(),
347347
"Attempted construction of reference element binds to a temporary whose lifetime has ended");
@@ -409,7 +409,7 @@ public:
409409
class = __enable_if_t<
410410
_And< _IsNotSame<__remove_cvref_t<_Tp>, __tuple_leaf>, is_constructible<_Hp, _Tp> >::value > >
411411
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit __tuple_leaf(_Tp&& __t)
412-
_NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))
412+
_NOEXCEPT_(is_nothrow_constructible<_Hp, _Tp>::value)
413413
: _Hp(std::forward<_Tp>(__t)) {}
414414

415415
template <class _Tp, class _Alloc>
@@ -468,8 +468,8 @@ struct _LIBCPP_DECLSPEC_EMPTY_BASES __tuple_impl<__tuple_indices<_Indx...>, _Tp.
468468
template <size_t... _Uf, class... _Tf, size_t... _Ul, class... _Tl, class... _Up>
469469
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit __tuple_impl(
470470
__tuple_indices<_Uf...>, __tuple_types<_Tf...>, __tuple_indices<_Ul...>, __tuple_types<_Tl...>, _Up&&... __u)
471-
_NOEXCEPT_((__all<is_nothrow_constructible<_Tf, _Up>::value...>::value &&
472-
__all<is_nothrow_default_constructible<_Tl>::value...>::value))
471+
_NOEXCEPT_(__all<is_nothrow_constructible<_Tf, _Up>::value...>::value&&
472+
__all<is_nothrow_default_constructible<_Tl>::value...>::value)
473473
: __tuple_leaf<_Uf, _Tf>(std::forward<_Up>(__u))..., __tuple_leaf<_Ul, _Tl>()... {}
474474

475475
template <class _Alloc, size_t... _Uf, class... _Tf, size_t... _Ul, class... _Tl, class... _Up>
@@ -616,7 +616,7 @@ public:
616616
__enable_if_t< _And< _BoolConstant<sizeof...(_Up) == sizeof...(_Tp)>, _EnableUTypesCtor<_Up...> >::value,
617617
int> = 0>
618618
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit(_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> >::value)
619-
tuple(_Up&&... __u) _NOEXCEPT_((_And<is_nothrow_constructible<_Tp, _Up>...>::value))
619+
tuple(_Up&&... __u) _NOEXCEPT_(_And<is_nothrow_constructible<_Tp, _Up>...>::value)
620620
: __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(),
621621
typename __make_tuple_types<tuple, sizeof...(_Up)>::type(),
622622
typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),
@@ -683,7 +683,7 @@ public:
683683
template <class... _Up, __enable_if_t< _And< _EnableCtorFromUTypesTuple<const tuple<_Up...>&> >::value, int> = 0>
684684
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit(
685685
_Not<_Lazy<_And, is_convertible<const _Up&, _Tp>...> >::value) tuple(const tuple<_Up...>& __t)
686-
_NOEXCEPT_((_And<is_nothrow_constructible<_Tp, const _Up&>...>::value))
686+
_NOEXCEPT_(_And<is_nothrow_constructible<_Tp, const _Up&>...>::value)
687687
: __base_(__t) {}
688688

689689
template <class... _Up,
@@ -710,7 +710,7 @@ public:
710710
// tuple(tuple<U...>&&) constructors (including allocator_arg_t variants)
711711
template <class... _Up, __enable_if_t< _And< _EnableCtorFromUTypesTuple<tuple<_Up...>&&> >::value, int> = 0>
712712
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit(_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> >::value)
713-
tuple(tuple<_Up...>&& __t) _NOEXCEPT_((_And<is_nothrow_constructible<_Tp, _Up>...>::value))
713+
tuple(tuple<_Up...>&& __t) _NOEXCEPT_(_And<is_nothrow_constructible<_Tp, _Up>...>::value)
714714
: __base_(std::move(__t)) {}
715715

716716
template <class _Alloc,
@@ -767,7 +767,7 @@ public:
767767
__enable_if_t< _And< _EnableCtorFromPair<const pair<_Up1, _Up2>&> >::value, int> = 0>
768768
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit(
769769
_Not<_BothImplicitlyConvertible<const pair<_Up1, _Up2>&> >::value) tuple(const pair<_Up1, _Up2>& __p)
770-
_NOEXCEPT_((_NothrowConstructibleFromPair<const pair<_Up1, _Up2>&>::value))
770+
_NOEXCEPT_(_NothrowConstructibleFromPair<const pair<_Up1, _Up2>&>::value)
771771
: __base_(__p) {}
772772

773773
template <class _Alloc,
@@ -805,7 +805,7 @@ public:
805805
__enable_if_t< _And< _EnableCtorFromPair<pair<_Up1, _Up2>&&> >::value, int> = 0>
806806
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit(
807807
_Not<_BothImplicitlyConvertible<pair<_Up1, _Up2>&&> >::value) tuple(pair<_Up1, _Up2>&& __p)
808-
_NOEXCEPT_((_NothrowConstructibleFromPair<pair<_Up1, _Up2>&&>::value))
808+
_NOEXCEPT_(_NothrowConstructibleFromPair<pair<_Up1, _Up2>&&>::value)
809809
: __base_(std::move(__p)) {}
810810

811811
template <class _Alloc,
@@ -840,7 +840,7 @@ public:
840840
// [tuple.assign]
841841
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple&
842842
operator=(_If<_And<is_copy_assignable<_Tp>...>::value, tuple, __nat> const& __tuple)
843-
_NOEXCEPT_((_And<is_nothrow_copy_assignable<_Tp>...>::value)) {
843+
_NOEXCEPT_(_And<is_nothrow_copy_assignable<_Tp>...>::value) {
844844
std::__memberwise_copy_assign(*this, __tuple, typename __make_tuple_indices<sizeof...(_Tp)>::type());
845845
return *this;
846846
}
@@ -864,7 +864,7 @@ public:
864864

865865
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple&
866866
operator=(_If<_And<is_move_assignable<_Tp>...>::value, tuple, __nat>&& __tuple)
867-
_NOEXCEPT_((_And<is_nothrow_move_assignable<_Tp>...>::value)) {
867+
_NOEXCEPT_(_And<is_nothrow_move_assignable<_Tp>...>::value) {
868868
std::__memberwise_forward_assign(
869869
*this, std::move(__tuple), __tuple_types<_Tp...>(), typename __make_tuple_indices<sizeof...(_Tp)>::type());
870870
return *this;
@@ -875,7 +875,7 @@ public:
875875
__enable_if_t< _And< _BoolConstant<sizeof...(_Tp) == sizeof...(_Up)>, is_assignable<_Tp&, _Up const&>... >::value,
876876
int> = 0>
877877
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(tuple<_Up...> const& __tuple)
878-
_NOEXCEPT_((_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value)) {
878+
_NOEXCEPT_(_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value) {
879879
std::__memberwise_copy_assign(*this, __tuple, typename __make_tuple_indices<sizeof...(_Tp)>::type());
880880
return *this;
881881
}
@@ -884,7 +884,7 @@ public:
884884
__enable_if_t< _And< _BoolConstant<sizeof...(_Tp) == sizeof...(_Up)>, is_assignable<_Tp&, _Up>... >::value,
885885
int> = 0>
886886
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(tuple<_Up...>&& __tuple)
887-
_NOEXCEPT_((_And<is_nothrow_assignable<_Tp&, _Up>...>::value)) {
887+
_NOEXCEPT_(_And<is_nothrow_assignable<_Tp&, _Up>...>::value) {
888888
std::__memberwise_forward_assign(
889889
*this, std::move(__tuple), __tuple_types<_Up...>(), typename __make_tuple_indices<sizeof...(_Tp)>::type());
890890
return *this;
@@ -949,15 +949,15 @@ public:
949949
class _Up2,
950950
__enable_if_t< _EnableAssignFromPair<false, pair<_Up1, _Up2> const&>::value, int> = 0>
951951
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(pair<_Up1, _Up2> const& __pair)
952-
_NOEXCEPT_((_NothrowAssignFromPair<false, pair<_Up1, _Up2> const&>::value)) {
952+
_NOEXCEPT_(_NothrowAssignFromPair<false, pair<_Up1, _Up2> const&>::value) {
953953
std::get<0>(*this) = __pair.first;
954954
std::get<1>(*this) = __pair.second;
955955
return *this;
956956
}
957957

958958
template <class _Up1, class _Up2, __enable_if_t< _EnableAssignFromPair<false, pair<_Up1, _Up2>&&>::value, int> = 0>
959959
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(pair<_Up1, _Up2>&& __pair)
960-
_NOEXCEPT_((_NothrowAssignFromPair<false, pair<_Up1, _Up2>&&>::value)) {
960+
_NOEXCEPT_(_NothrowAssignFromPair<false, pair<_Up1, _Up2>&&>::value) {
961961
std::get<0>(*this) = std::forward<_Up1>(__pair.first);
962962
std::get<1>(*this) = std::forward<_Up2>(__pair.second);
963963
return *this;
@@ -969,7 +969,7 @@ public:
969969
size_t _Np,
970970
class = __enable_if_t< _And< _BoolConstant<_Np == sizeof...(_Tp)>, is_assignable<_Tp&, _Up const&>... >::value > >
971971
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(array<_Up, _Np> const& __array)
972-
_NOEXCEPT_((_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value)) {
972+
_NOEXCEPT_(_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value) {
973973
std::__memberwise_copy_assign(*this, __array, typename __make_tuple_indices<sizeof...(_Tp)>::type());
974974
return *this;
975975
}
@@ -980,7 +980,7 @@ public:
980980
class = void,
981981
class = __enable_if_t< _And< _BoolConstant<_Np == sizeof...(_Tp)>, is_assignable<_Tp&, _Up>... >::value > >
982982
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 tuple& operator=(array<_Up, _Np>&& __array)
983-
_NOEXCEPT_((_And<is_nothrow_assignable<_Tp&, _Up>...>::value)) {
983+
_NOEXCEPT_(_And<is_nothrow_assignable<_Tp&, _Up>...>::value) {
984984
std::__memberwise_forward_assign(
985985
*this,
986986
std::move(__array),

libcxx/include/vector

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ public:
527527
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI
528528
vector(vector&& __x, const __type_identity_t<allocator_type>& __a);
529529
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI vector& operator=(vector&& __x)
530-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
530+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value);
531531

532532
template <class _InputIterator,
533533
__enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value &&
@@ -1263,7 +1263,7 @@ vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocat
12631263
template <class _Tp, class _Allocator>
12641264
_LIBCPP_CONSTEXPR_SINCE_CXX20 inline _LIBCPP_HIDE_FROM_ABI vector<_Tp, _Allocator>&
12651265
vector<_Tp, _Allocator>::operator=(vector&& __x)
1266-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) {
1266+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
12671267
__move_assign(__x, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());
12681268
return *this;
12691269
}
@@ -1952,7 +1952,7 @@ public:
19521952
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
19531953
vector(vector&& __v, const __type_identity_t<allocator_type>& __a);
19541954
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 vector& operator=(vector&& __v)
1955-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
1955+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value);
19561956

19571957
template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> = 0>
19581958
void _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 assign(_InputIterator __first, _InputIterator __last);
@@ -2499,7 +2499,7 @@ vector<bool, _Allocator>::vector(vector&& __v, const __type_identity_t<allocator
24992499
template <class _Allocator>
25002500
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 vector<bool, _Allocator>&
25012501
vector<bool, _Allocator>::operator=(vector&& __v)
2502-
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) {
2502+
_NOEXCEPT_(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
25032503
__move_assign(__v, integral_constant<bool, __storage_traits::propagate_on_container_move_assignment::value>());
25042504
return *this;
25052505
}

0 commit comments

Comments
 (0)