|
1478 | 1478 | @\exposconcept{convertible-to-non-slicing}@<U, tuple_element_t<0, T>> &&
|
1479 | 1479 | @\libconcept{convertible_to}@<V, tuple_element_t<1, T>>;
|
1480 | 1480 |
|
1481 |
| - template<class T> |
1482 |
| - concept @\defexposconcept{iterator-sentinel-pair}@ = // \expos |
1483 |
| - !range<T> && @\exposconcept{pair-like}@<T> && |
1484 |
| - @\libconcept{sentinel_for}@<tuple_element_t<1, T>, tuple_element_t<0, T>>; |
1485 |
| - |
1486 | 1481 | template<@\libconcept{input_or_output_iterator}@ I, @\libconcept{sentinel_for}@<I> S = I, subrange_kind K =
|
1487 | 1482 | @\libconcept{sized_sentinel_for}@<S, I> ? subrange_kind::sized : subrange_kind::unsized>
|
1488 | 1483 | requires (K == subrange_kind::sized || !@\libconcept{sized_sentinel_for}@<S, I>)
|
|
1544 | 1539 | subrange(I, S, @\placeholdernc{make-unsigned-like-t}@<iter_difference_t<I>>) ->
|
1545 | 1540 | subrange<I, S, subrange_kind::sized>;
|
1546 | 1541 |
|
1547 |
| - template<@\exposconcept{iterator-sentinel-pair}@ P> |
1548 |
| - subrange(P) -> subrange<tuple_element_t<0, P>, tuple_element_t<1, P>>; |
1549 |
| - |
1550 |
| - template<@\exposconcept{iterator-sentinel-pair}@ P> |
1551 |
| - subrange(P, @\placeholdernc{make-unsigned-like-t}@<iter_difference_t<tuple_element_t<0, P>>>) -> |
1552 |
| - subrange<tuple_element_t<0, P>, tuple_element_t<1, P>, subrange_kind::sized>; |
1553 |
| - |
1554 | 1542 | template<borrowed_range R>
|
1555 | 1543 | subrange(R&&) ->
|
1556 | 1544 | subrange<iterator_t<R>, sentinel_t<R>,
|
|
0 commit comments