@@ -267,7 +267,7 @@ template <class InputIterator, class OutputIterator, class BinaryPredicate>
267
267
unique_copy(InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate pred);
268
268
269
269
template <class BidirectionalIterator>
270
- void
270
+ constexpr void // constexpr in C++20
271
271
reverse(BidirectionalIterator first, BidirectionalIterator last);
272
272
273
273
template <class BidirectionalIterator, class OutputIterator>
@@ -316,7 +316,7 @@ template <class InputIterator, class Predicate>
316
316
is_partitioned(InputIterator first, InputIterator last, Predicate pred);
317
317
318
318
template <class ForwardIterator, class Predicate>
319
- ForwardIterator
319
+ constexpr ForwardIterator // constexpr in C++20
320
320
partition(ForwardIterator first, ForwardIterator last, Predicate pred);
321
321
322
322
template <class InputIterator, class OutputIterator1,
@@ -626,19 +626,19 @@ template <class InputIterator1, class InputIterator2, class Compare>
626
626
InputIterator2 first2, InputIterator2 last2, Compare comp);
627
627
628
628
template <class BidirectionalIterator>
629
- bool
629
+ constexpr bool // constexpr in C++20
630
630
next_permutation(BidirectionalIterator first, BidirectionalIterator last);
631
631
632
632
template <class BidirectionalIterator, class Compare>
633
- bool
633
+ constexpr bool // constexpr in C++20
634
634
next_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp);
635
635
636
636
template <class BidirectionalIterator>
637
- bool
637
+ constexpr bool // constexpr in C++20
638
638
prev_permutation(BidirectionalIterator first, BidirectionalIterator last);
639
639
640
640
template <class BidirectionalIterator, class Compare>
641
- bool
641
+ constexpr bool // constexpr in C++20
642
642
prev_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp);
643
643
644
644
} // std
@@ -2321,7 +2321,7 @@ unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __res
2321
2321
// reverse
2322
2322
2323
2323
template <class _BidirectionalIterator >
2324
- inline _LIBCPP_INLINE_VISIBILITY
2324
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
2325
2325
void
2326
2326
__reverse (_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag)
2327
2327
{
@@ -2335,7 +2335,7 @@ __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirec
2335
2335
}
2336
2336
2337
2337
template <class _RandomAccessIterator >
2338
- inline _LIBCPP_INLINE_VISIBILITY
2338
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
2339
2339
void
2340
2340
__reverse (_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag)
2341
2341
{
@@ -2345,7 +2345,7 @@ __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_ac
2345
2345
}
2346
2346
2347
2347
template <class _BidirectionalIterator >
2348
- inline _LIBCPP_INLINE_VISIBILITY
2348
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
2349
2349
void
2350
2350
reverse (_BidirectionalIterator __first, _BidirectionalIterator __last)
2351
2351
{
@@ -3393,7 +3393,7 @@ is_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred)
3393
3393
// partition
3394
3394
3395
3395
template <class _Predicate , class _ForwardIterator >
3396
- _ForwardIterator
3396
+ _LIBCPP_CONSTEXPR_AFTER_CXX17 _ForwardIterator
3397
3397
__partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag)
3398
3398
{
3399
3399
while (true )
@@ -3416,7 +3416,7 @@ __partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred
3416
3416
}
3417
3417
3418
3418
template <class _Predicate , class _BidirectionalIterator >
3419
- _BidirectionalIterator
3419
+ _LIBCPP_CONSTEXPR_AFTER_CXX17 _BidirectionalIterator
3420
3420
__partition (_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred,
3421
3421
bidirectional_iterator_tag)
3422
3422
{
@@ -3441,7 +3441,7 @@ __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Pred
3441
3441
}
3442
3442
3443
3443
template <class _ForwardIterator , class _Predicate >
3444
- inline _LIBCPP_INLINE_VISIBILITY
3444
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
3445
3445
_ForwardIterator
3446
3446
partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
3447
3447
{
@@ -5760,7 +5760,7 @@ lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
5760
5760
// next_permutation
5761
5761
5762
5762
template <class _Compare , class _BidirectionalIterator >
5763
- bool
5763
+ _LIBCPP_CONSTEXPR_AFTER_CXX17 bool
5764
5764
__next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
5765
5765
{
5766
5766
_BidirectionalIterator __i = __last;
@@ -5787,7 +5787,7 @@ __next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last
5787
5787
}
5788
5788
5789
5789
template <class _BidirectionalIterator , class _Compare >
5790
- inline _LIBCPP_INLINE_VISIBILITY
5790
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
5791
5791
bool
5792
5792
next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
5793
5793
{
@@ -5796,7 +5796,7 @@ next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last,
5796
5796
}
5797
5797
5798
5798
template <class _BidirectionalIterator >
5799
- inline _LIBCPP_INLINE_VISIBILITY
5799
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
5800
5800
bool
5801
5801
next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
5802
5802
{
@@ -5807,7 +5807,7 @@ next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last)
5807
5807
// prev_permutation
5808
5808
5809
5809
template <class _Compare , class _BidirectionalIterator >
5810
- bool
5810
+ _LIBCPP_CONSTEXPR_AFTER_CXX17 bool
5811
5811
__prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
5812
5812
{
5813
5813
_BidirectionalIterator __i = __last;
@@ -5834,7 +5834,7 @@ __prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last
5834
5834
}
5835
5835
5836
5836
template <class _BidirectionalIterator , class _Compare >
5837
- inline _LIBCPP_INLINE_VISIBILITY
5837
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
5838
5838
bool
5839
5839
prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
5840
5840
{
@@ -5843,7 +5843,7 @@ prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last,
5843
5843
}
5844
5844
5845
5845
template <class _BidirectionalIterator >
5846
- inline _LIBCPP_INLINE_VISIBILITY
5846
+ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
5847
5847
bool
5848
5848
prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
5849
5849
{
0 commit comments