|
2011 | 2011 | }
|
2012 | 2012 |
|
2013 | 2013 | template<class RandomAccessIterator>
|
2014 |
| - void stable_sort(RandomAccessIterator first, RandomAccessIterator last); |
| 2014 | + constexpr void stable_sort(RandomAccessIterator first, RandomAccessIterator last); |
2015 | 2015 | template<class RandomAccessIterator, class Compare>
|
2016 |
| - void stable_sort(RandomAccessIterator first, RandomAccessIterator last, |
| 2016 | + constexpr void stable_sort(RandomAccessIterator first, RandomAccessIterator last, |
2017 | 2017 | Compare comp);
|
2018 | 2018 | template<class ExecutionPolicy, class RandomAccessIterator>
|
2019 | 2019 | void stable_sort(ExecutionPolicy&& exec, // see \ref{algorithms.parallel.overloads}
|
|
2027 | 2027 | template<@\libconcept{random_access_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Comp = ranges::less,
|
2028 | 2028 | class Proj = identity>
|
2029 | 2029 | requires @\libconcept{sortable}@<I, Comp, Proj>
|
2030 |
| - I stable_sort(I first, S last, Comp comp = {}, Proj proj = {}); |
| 2030 | + constexpr I stable_sort(I first, S last, Comp comp = {}, Proj proj = {}); |
2031 | 2031 | template<@\libconcept{random_access_range}@ R, class Comp = ranges::less, class Proj = identity>
|
2032 | 2032 | requires @\libconcept{sortable}@<iterator_t<R>, Comp, Proj>
|
2033 |
| - borrowed_iterator_t<R> |
| 2033 | + constexpr borrowed_iterator_t<R> |
2034 | 2034 | stable_sort(R&& r, Comp comp = {}, Proj proj = {});
|
2035 | 2035 | }
|
2036 | 2036 |
|
|
2311 | 2311 | }
|
2312 | 2312 |
|
2313 | 2313 | template<class BidirectionalIterator, class Predicate>
|
2314 |
| - BidirectionalIterator stable_partition(BidirectionalIterator first, |
2315 |
| - BidirectionalIterator last, |
2316 |
| - Predicate pred); |
| 2314 | + constexpr BidirectionalIterator stable_partition(BidirectionalIterator first, |
| 2315 | + BidirectionalIterator last, |
| 2316 | + Predicate pred); |
2317 | 2317 | template<class ExecutionPolicy, class BidirectionalIterator, class Predicate>
|
2318 | 2318 | BidirectionalIterator stable_partition(ExecutionPolicy&& exec, // see \ref{algorithms.parallel.overloads}
|
2319 | 2319 | BidirectionalIterator first,
|
|
2324 | 2324 | template<@\libconcept{bidirectional_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Proj = identity,
|
2325 | 2325 | @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred>
|
2326 | 2326 | requires @\libconcept{permutable}@<I>
|
2327 |
| - subrange<I> stable_partition(I first, S last, Pred pred, Proj proj = {}); |
| 2327 | + constexpr subrange<I> stable_partition(I first, S last, Pred pred, Proj proj = {}); |
2328 | 2328 | template<@\libconcept{bidirectional_range}@ R, class Proj = identity,
|
2329 | 2329 | @\libconcept{indirect_unary_predicate}@<projected<iterator_t<R>, Proj>> Pred>
|
2330 | 2330 | requires @\libconcept{permutable}@<iterator_t<R>>
|
2331 |
| - borrowed_subrange_t<R> stable_partition(R&& r, Pred pred, Proj proj = {}); |
| 2331 | + constexpr borrowed_subrange_t<R> stable_partition(R&& r, Pred pred, Proj proj = {}); |
2332 | 2332 | }
|
2333 | 2333 |
|
2334 | 2334 | template<class InputIterator, class OutputIterator1,
|
|
2427 | 2427 | }
|
2428 | 2428 |
|
2429 | 2429 | template<class BidirectionalIterator>
|
2430 |
| - void inplace_merge(BidirectionalIterator first, |
2431 |
| - BidirectionalIterator middle, |
2432 |
| - BidirectionalIterator last); |
| 2430 | + constexpr void inplace_merge(BidirectionalIterator first, |
| 2431 | + BidirectionalIterator middle, |
| 2432 | + BidirectionalIterator last); |
2433 | 2433 | template<class BidirectionalIterator, class Compare>
|
2434 |
| - void inplace_merge(BidirectionalIterator first, |
2435 |
| - BidirectionalIterator middle, |
2436 |
| - BidirectionalIterator last, Compare comp); |
| 2434 | + constexpr void inplace_merge(BidirectionalIterator first, |
| 2435 | + BidirectionalIterator middle, |
| 2436 | + BidirectionalIterator last, Compare comp); |
2437 | 2437 | template<class ExecutionPolicy, class BidirectionalIterator>
|
2438 | 2438 | void inplace_merge(ExecutionPolicy&& exec, // see \ref{algorithms.parallel.overloads}
|
2439 | 2439 | BidirectionalIterator first,
|
|
2449 | 2449 | template<@\libconcept{bidirectional_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Comp = ranges::less,
|
2450 | 2450 | class Proj = identity>
|
2451 | 2451 | requires @\libconcept{sortable}@<I, Comp, Proj>
|
2452 |
| - I inplace_merge(I first, I middle, S last, Comp comp = {}, Proj proj = {}); |
| 2452 | + constexpr I inplace_merge(I first, I middle, S last, Comp comp = {}, Proj proj = {}); |
2453 | 2453 | template<@\libconcept{bidirectional_range}@ R, class Comp = ranges::less, class Proj = identity>
|
2454 | 2454 | requires @\libconcept{sortable}@<iterator_t<R>, Comp, Proj>
|
2455 |
| - borrowed_iterator_t<R> |
| 2455 | + constexpr borrowed_iterator_t<R> |
2456 | 2456 | inplace_merge(R&& r, iterator_t<R> middle, Comp comp = {},
|
2457 | 2457 | Proj proj = {});
|
2458 | 2458 | }
|
|
6714 | 6714 | \indexlibraryglobal{stable_sort}%
|
6715 | 6715 | \begin{itemdecl}
|
6716 | 6716 | template<class RandomAccessIterator>
|
6717 |
| - void stable_sort(RandomAccessIterator first, RandomAccessIterator last); |
| 6717 | + constexpr void stable_sort(RandomAccessIterator first, RandomAccessIterator last); |
6718 | 6718 | template<class ExecutionPolicy, class RandomAccessIterator>
|
6719 | 6719 | void stable_sort(ExecutionPolicy&& exec,
|
6720 | 6720 | RandomAccessIterator first, RandomAccessIterator last);
|
6721 | 6721 |
|
6722 | 6722 | template<class RandomAccessIterator, class Compare>
|
6723 |
| - void stable_sort(RandomAccessIterator first, RandomAccessIterator last, |
6724 |
| - Compare comp); |
| 6723 | + constexpr void stable_sort(RandomAccessIterator first, RandomAccessIterator last, |
| 6724 | + Compare comp); |
6725 | 6725 | template<class ExecutionPolicy, class RandomAccessIterator, class Compare>
|
6726 | 6726 | void stable_sort(ExecutionPolicy&& exec,
|
6727 | 6727 | RandomAccessIterator first, RandomAccessIterator last,
|
|
6730 | 6730 | template<@\libconcept{random_access_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Comp = ranges::less,
|
6731 | 6731 | class Proj = identity>
|
6732 | 6732 | requires @\libconcept{sortable}@<I, Comp, Proj>
|
6733 |
| - I ranges::stable_sort(I first, S last, Comp comp = {}, Proj proj = {}); |
| 6733 | + constexpr I ranges::stable_sort(I first, S last, Comp comp = {}, Proj proj = {}); |
6734 | 6734 | template<@\libconcept{random_access_range}@ R, class Comp = ranges::less, class Proj = identity>
|
6735 | 6735 | requires @\libconcept{sortable}@<iterator_t<R>, Comp, Proj>
|
6736 |
| - borrowed_iterator_t<R> |
| 6736 | + constexpr borrowed_iterator_t<R> |
6737 | 6737 | ranges::stable_sort(R&& r, Comp comp = {}, Proj proj = {});
|
6738 | 6738 | \end{itemdecl}
|
6739 | 6739 |
|
|
7512 | 7512 | \begin{itemdecl}
|
7513 | 7513 | template<class BidirectionalIterator, class Predicate>
|
7514 | 7514 | BidirectionalIterator
|
7515 |
| - stable_partition(BidirectionalIterator first, BidirectionalIterator last, Predicate pred); |
| 7515 | + constexpr stable_partition(BidirectionalIterator first, BidirectionalIterator last, |
| 7516 | + Predicate pred); |
7516 | 7517 | template<class ExecutionPolicy, class BidirectionalIterator, class Predicate>
|
7517 | 7518 | BidirectionalIterator
|
7518 | 7519 | stable_partition(ExecutionPolicy&& exec,
|
|
7521 | 7522 | template<@\libconcept{bidirectional_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Proj = identity,
|
7522 | 7523 | @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred>
|
7523 | 7524 | requires @\libconcept{permutable}@<I>
|
7524 |
| - subrange<I> ranges::stable_partition(I first, S last, Pred pred, Proj proj = {}); |
| 7525 | + constexpr subrange<I> ranges::stable_partition(I first, S last, Pred pred, Proj proj = {}); |
7525 | 7526 | template<@\libconcept{bidirectional_range}@ R, class Proj = identity,
|
7526 | 7527 | @\libconcept{indirect_unary_predicate}@<projected<iterator_t<R>, Proj>> Pred>
|
7527 | 7528 | requires @\libconcept{permutable}@<iterator_t<R>>
|
7528 |
| - borrowed_subrange_t<R> ranges::stable_partition(R&& r, Pred pred, Proj proj = {}); |
| 7529 | + constexpr borrowed_subrange_t<R> ranges::stable_partition(R&& r, Pred pred, Proj proj = {}); |
7529 | 7530 | \end{itemdecl}
|
7530 | 7531 |
|
7531 | 7532 | \begin{itemdescr}
|
|
7792 | 7793 | \indexlibraryglobal{inplace_merge}%
|
7793 | 7794 | \begin{itemdecl}
|
7794 | 7795 | template<class BidirectionalIterator>
|
7795 |
| - void inplace_merge(BidirectionalIterator first, |
7796 |
| - BidirectionalIterator middle, |
7797 |
| - BidirectionalIterator last); |
| 7796 | + constexpr void inplace_merge(BidirectionalIterator first, |
| 7797 | + BidirectionalIterator middle, |
| 7798 | + BidirectionalIterator last); |
7798 | 7799 | template<class ExecutionPolicy, class BidirectionalIterator>
|
7799 | 7800 | void inplace_merge(ExecutionPolicy&& exec,
|
7800 | 7801 | BidirectionalIterator first,
|
7801 | 7802 | BidirectionalIterator middle,
|
7802 | 7803 | BidirectionalIterator last);
|
7803 | 7804 |
|
7804 | 7805 | template<class BidirectionalIterator, class Compare>
|
7805 |
| - void inplace_merge(BidirectionalIterator first, |
7806 |
| - BidirectionalIterator middle, |
7807 |
| - BidirectionalIterator last, Compare comp); |
| 7806 | + constexpr void inplace_merge(BidirectionalIterator first, |
| 7807 | + BidirectionalIterator middle, |
| 7808 | + BidirectionalIterator last, Compare comp); |
7808 | 7809 | template<class ExecutionPolicy, class BidirectionalIterator, class Compare>
|
7809 | 7810 | void inplace_merge(ExecutionPolicy&& exec,
|
7810 | 7811 | BidirectionalIterator first,
|
|
7814 | 7815 | template<@\libconcept{bidirectional_iterator}@ I, @\libconcept{sentinel_for}@<I> S, class Comp = ranges::less,
|
7815 | 7816 | class Proj = identity>
|
7816 | 7817 | requires @\libconcept{sortable}@<I, Comp, Proj>
|
7817 |
| - I ranges::inplace_merge(I first, I middle, S last, Comp comp = {}, Proj proj = {}); |
| 7818 | + constexpr I ranges::inplace_merge(I first, I middle, S last, Comp comp = {}, Proj proj = {}); |
7818 | 7819 | \end{itemdecl}
|
7819 | 7820 |
|
7820 | 7821 | \begin{itemdescr}
|
|
7865 | 7866 | \begin{itemdecl}
|
7866 | 7867 | template<@\libconcept{bidirectional_range}@ R, class Comp = ranges::less, class Proj = identity>
|
7867 | 7868 | requires @\libconcept{sortable}@<iterator_t<R>, Comp, Proj>
|
7868 |
| - borrowed_iterator_t<R> |
| 7869 | + constexpr borrowed_iterator_t<R> |
7869 | 7870 | ranges::inplace_merge(R&& r, iterator_t<R> middle, Comp comp = {}, Proj proj = {});
|
7870 | 7871 | \end{itemdecl}
|
7871 | 7872 |
|
|
0 commit comments