|
2355 | 2355 |
|
2356 | 2356 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
2357 | 2357 | class Proj = identity, class T = projected_value_t<I, Proj>> |
2358 | | - requires @\libconcept{indirect_binary_predicate}@<ranges::equal_to, projected<I, Proj>, const T*> |
| 2358 | + requires @\libconcept{permutable}@<I> && |
| 2359 | + @\libconcept{indirect_binary_predicate}@<ranges::equal_to, projected<I, Proj>, const T*> |
2359 | 2360 | subrange<I> remove(Ep&& exec, I first, S last, const T& value, |
2360 | 2361 | Proj proj = {}); // freestanding-deleted |
2361 | 2362 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
|
2377 | 2378 |
|
2378 | 2379 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
2379 | 2380 | class Proj = identity, @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred> |
| 2381 | + requires @\libconcept{permutable}@<I> |
2380 | 2382 | subrange<I> |
2381 | 2383 | remove_if(Ep&& exec, I first, S last, Pred pred, Proj proj = {}); // freestanding-deleted |
2382 | 2384 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
|
3217 | 3219 |
|
3218 | 3220 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
3219 | 3221 | class Proj = identity, @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred> |
| 3222 | + requires @\libconcept{permutable}@<I> |
3220 | 3223 | subrange<I> |
3221 | 3224 | partition(Ep&& exec, I first, S last, Pred pred, Proj proj = {}); // freestanding-deleted |
3222 | 3225 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
|
7561 | 7564 |
|
7562 | 7565 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
7563 | 7566 | class Proj = identity, class T = projected_value_t<I, Proj>> |
7564 | | - requires @\libconcept{indirect_binary_predicate}@<ranges::equal_to, projected<I, Proj>, const T*> |
| 7567 | + requires @\libconcept{permutable}@<I> && |
| 7568 | + @\libconcept{indirect_binary_predicate}@<ranges::equal_to, projected<I, Proj>, const T*> |
7565 | 7569 | subrange<I> |
7566 | 7570 | ranges::remove(Ep&& exec, I first, S last, const T& value, Proj proj = {}); |
7567 | 7571 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
|
7583 | 7587 |
|
7584 | 7588 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
7585 | 7589 | class Proj = identity, @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred> |
| 7590 | + requires @\libconcept{permutable}@<I> |
7586 | 7591 | subrange<I> |
7587 | 7592 | ranges::remove_if(Ep&& exec, I first, S last, Pred pred, Proj proj = {}); |
7588 | 7593 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
|
9696 | 9701 |
|
9697 | 9702 | template<@\exposconcept{execution-policy}@ Ep, @\libconcept{random_access_iterator}@ I, @\libconcept{sized_sentinel_for}@<I> S, |
9698 | 9703 | class Proj = identity, @\libconcept{indirect_unary_predicate}@<projected<I, Proj>> Pred> |
| 9704 | + requires @\libconcept{permutable}@<I> |
9699 | 9705 | subrange<I> ranges::partition(Ep&& exec, I first, S last, Pred pred, Proj proj = {}); |
9700 | 9706 | template<@\exposconcept{execution-policy}@ Ep, @\exposconcept{sized-random-access-range}@ R, class Proj = identity, |
9701 | 9707 | @\libconcept{indirect_unary_predicate}@<projected<iterator_t<R>, Proj>> Pred> |
|
0 commit comments