@@ -967,39 +967,39 @@ public:
967
967
typedef __tree_iterator<value_type, __node_pointer, difference_type> iterator;
968
968
typedef __tree_const_iterator<value_type, __node_pointer, difference_type> const_iterator;
969
969
970
- _LIBCPP_HIDE_FROM_ABI explicit __tree (const value_compare& __comp) _NOEXCEPT_(
970
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit __tree (const value_compare& __comp) _NOEXCEPT_(
971
971
is_nothrow_default_constructible<__node_allocator>::value&& is_nothrow_copy_constructible<value_compare>::value);
972
- _LIBCPP_HIDE_FROM_ABI explicit __tree (const allocator_type& __a);
973
- _LIBCPP_HIDE_FROM_ABI __tree (const value_compare& __comp, const allocator_type& __a);
974
- _LIBCPP_HIDE_FROM_ABI __tree (const __tree& __t );
975
- _LIBCPP_HIDE_FROM_ABI __tree& operator =(const __tree& __t );
972
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit __tree (const allocator_type& __a);
973
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree (const value_compare& __comp, const allocator_type& __a);
974
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree (const __tree& __t );
975
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree& operator =(const __tree& __t );
976
976
template <class _ForwardIterator >
977
- _LIBCPP_HIDE_FROM_ABI void __assign_unique (_ForwardIterator __first, _ForwardIterator __last);
977
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __assign_unique (_ForwardIterator __first, _ForwardIterator __last);
978
978
template <class _InputIterator >
979
- _LIBCPP_HIDE_FROM_ABI void __assign_multi (_InputIterator __first, _InputIterator __last);
980
- _LIBCPP_HIDE_FROM_ABI __tree (__tree&& __t ) _NOEXCEPT_(
979
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __assign_multi (_InputIterator __first, _InputIterator __last);
980
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree (__tree&& __t ) _NOEXCEPT_(
981
981
is_nothrow_move_constructible<__node_allocator>::value&& is_nothrow_move_constructible<value_compare>::value);
982
- _LIBCPP_HIDE_FROM_ABI __tree (__tree&& __t , const allocator_type& __a);
983
- _LIBCPP_HIDE_FROM_ABI __tree& operator =(__tree&& __t )
982
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree (__tree&& __t , const allocator_type& __a);
983
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree& operator =(__tree&& __t )
984
984
_NOEXCEPT_ (is_nothrow_move_assignable<value_compare>::value &&
985
985
((__node_traits::propagate_on_container_move_assignment::value &&
986
986
is_nothrow_move_assignable<__node_allocator>::value) ||
987
987
allocator_traits<__node_allocator>::is_always_equal::value));
988
988
989
- _LIBCPP_HIDE_FROM_ABI ~__tree ();
989
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 ~__tree ();
990
990
991
- _LIBCPP_HIDE_FROM_ABI iterator begin () _NOEXCEPT { return iterator (__begin_node ()); }
992
- _LIBCPP_HIDE_FROM_ABI const_iterator begin () const _NOEXCEPT { return const_iterator (__begin_node ()); }
993
- _LIBCPP_HIDE_FROM_ABI iterator end () _NOEXCEPT { return iterator (__end_node ()); }
994
- _LIBCPP_HIDE_FROM_ABI const_iterator end () const _NOEXCEPT { return const_iterator (__end_node ()); }
991
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator begin () _NOEXCEPT { return iterator (__begin_node ()); }
992
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator begin () const _NOEXCEPT { return const_iterator (__begin_node ()); }
993
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator end () _NOEXCEPT { return iterator (__end_node ()); }
994
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator end () const _NOEXCEPT { return const_iterator (__end_node ()); }
995
995
996
- _LIBCPP_HIDE_FROM_ABI size_type max_size () const _NOEXCEPT {
996
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type max_size () const _NOEXCEPT {
997
997
return std::min<size_type>(__node_traits::max_size (__node_alloc ()), numeric_limits<difference_type >::max ());
998
998
}
999
999
1000
- _LIBCPP_HIDE_FROM_ABI void clear () _NOEXCEPT;
1000
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void clear () _NOEXCEPT;
1001
1001
1002
- _LIBCPP_HIDE_FROM_ABI void swap (__tree& __t )
1002
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void swap (__tree& __t )
1003
1003
#if _LIBCPP_STD_VER <= 11
1004
1004
_NOEXCEPT_ (__is_nothrow_swappable_v<value_compare> &&
1005
1005
(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>));
@@ -1315,20 +1315,20 @@ private:
1315
1315
};
1316
1316
1317
1317
template <class _Tp , class _Compare , class _Allocator >
1318
- __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp) _NOEXCEPT_(
1318
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp) _NOEXCEPT_(
1319
1319
is_nothrow_default_constructible<__node_allocator>::value&& is_nothrow_copy_constructible<value_compare>::value)
1320
1320
: __size_(0 ), __value_comp_(__comp) {
1321
1321
__begin_node () = __end_node ();
1322
1322
}
1323
1323
1324
1324
template <class _Tp , class _Compare , class _Allocator >
1325
- __tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a)
1325
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a)
1326
1326
: __begin_node_(__iter_pointer()), __node_alloc_(__node_allocator(__a)), __size_(0 ) {
1327
1327
__begin_node () = __end_node ();
1328
1328
}
1329
1329
1330
1330
template <class _Tp , class _Compare , class _Allocator >
1331
- __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp, const allocator_type& __a)
1331
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp, const allocator_type& __a)
1332
1332
: __begin_node_(__iter_pointer()), __node_alloc_(__node_allocator(__a)), __size_(0 ), __value_comp_(__comp) {
1333
1333
__begin_node () = __end_node ();
1334
1334
}
@@ -1375,7 +1375,7 @@ __tree<_Tp, _Compare, _Allocator>::_DetachedTreeCache::__detach_next(__node_poin
1375
1375
}
1376
1376
1377
1377
template <class _Tp , class _Compare , class _Allocator >
1378
- __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator =(const __tree& __t ) {
1378
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator =(const __tree& __t ) {
1379
1379
if (this != std::addressof (__t )) {
1380
1380
value_comp () = __t .value_comp ();
1381
1381
__copy_assign_alloc (__t );
@@ -1386,7 +1386,7 @@ __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator=(
1386
1386
1387
1387
template <class _Tp , class _Compare , class _Allocator >
1388
1388
template <class _ForwardIterator >
1389
- void __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first, _ForwardIterator __last) {
1389
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 void __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first, _ForwardIterator __last) {
1390
1390
typedef iterator_traits<_ForwardIterator> _ITraits;
1391
1391
typedef typename _ITraits::value_type _ItValueType;
1392
1392
static_assert (is_same<_ItValueType, __container_value_type>::value,
@@ -1406,7 +1406,7 @@ void __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first
1406
1406
1407
1407
template <class _Tp , class _Compare , class _Allocator >
1408
1408
template <class _InputIterator >
1409
- void __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last) {
1409
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 void __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last) {
1410
1410
typedef iterator_traits<_InputIterator> _ITraits;
1411
1411
typedef typename _ITraits::value_type _ItValueType;
1412
1412
static_assert (
@@ -1426,7 +1426,7 @@ void __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _
1426
1426
}
1427
1427
1428
1428
template <class _Tp , class _Compare , class _Allocator >
1429
- __tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t )
1429
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t )
1430
1430
: __begin_node_(__iter_pointer()),
1431
1431
__node_alloc_ (__node_traits::select_on_container_copy_construction(__t .__node_alloc())),
1432
1432
__size_(0 ),
@@ -1435,7 +1435,7 @@ __tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t)
1435
1435
}
1436
1436
1437
1437
template <class _Tp , class _Compare , class _Allocator >
1438
- __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t ) _NOEXCEPT_(
1438
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t ) _NOEXCEPT_(
1439
1439
is_nothrow_move_constructible<__node_allocator>::value&& is_nothrow_move_constructible<value_compare>::value)
1440
1440
: __begin_node_(std::move(__t .__begin_node_)),
1441
1441
__end_node_ (std::move(__t .__end_node_)),
@@ -1453,7 +1453,7 @@ __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) _NOEXCEPT_(
1453
1453
}
1454
1454
1455
1455
template <class _Tp , class _Compare , class _Allocator >
1456
- __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t , const allocator_type& __a)
1456
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t , const allocator_type& __a)
1457
1457
: __node_alloc_(__node_allocator(__a)), __size_(0 ), __value_comp_(std::move(__t .value_comp())) {
1458
1458
if (__a == __t .__alloc ()) {
1459
1459
if (__t .size () == 0 )
@@ -1512,7 +1512,7 @@ void __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type) {
1512
1512
}
1513
1513
1514
1514
template <class _Tp , class _Compare , class _Allocator >
1515
- __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator =(__tree&& __t )
1515
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator =(__tree&& __t )
1516
1516
_NOEXCEPT_ (is_nothrow_move_assignable<value_compare>::value &&
1517
1517
((__node_traits::propagate_on_container_move_assignment::value &&
1518
1518
is_nothrow_move_assignable<__node_allocator>::value) ||
@@ -1522,7 +1522,7 @@ __tree<_Tp, _Compare, _Allocator>& __tree<_Tp, _Compare, _Allocator>::operator=(
1522
1522
}
1523
1523
1524
1524
template <class _Tp , class _Compare , class _Allocator >
1525
- __tree<_Tp, _Compare, _Allocator>::~__tree () {
1525
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 __tree<_Tp, _Compare, _Allocator>::~__tree () {
1526
1526
static_assert (is_copy_constructible<value_compare>::value, " Comparator must be copy-constructible." );
1527
1527
destroy (__root ());
1528
1528
}
@@ -1539,7 +1539,7 @@ void __tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT {
1539
1539
}
1540
1540
1541
1541
template <class _Tp , class _Compare , class _Allocator >
1542
- void __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t )
1542
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 void __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t )
1543
1543
#if _LIBCPP_STD_VER <= 11
1544
1544
_NOEXCEPT_ (__is_nothrow_swappable_v<value_compare> &&
1545
1545
(!__node_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<__node_allocator>))
@@ -1564,7 +1564,7 @@ void __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t)
1564
1564
}
1565
1565
1566
1566
template <class _Tp , class _Compare , class _Allocator >
1567
- void __tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT {
1567
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 void __tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT {
1568
1568
destroy (__root ());
1569
1569
size () = 0 ;
1570
1570
__begin_node () = __end_node ();
0 commit comments