|
5746 | 5746 | auto sz = range_difference_t<V>(size());
|
5747 | 5747 | return counted_iterator(ranges::begin(@\exposid{base_}@), sz);
|
5748 | 5748 | }
|
| 5749 | + } else if constexpr (@\libconcept{sized_sentinel_for}@<sentinel_t<V>, iterator_t<V>>) { |
| 5750 | + auto it = ranges::begin(@\exposid{base_}@); |
| 5751 | + auto sz = std::min(@\exposid{count_}@, ranges::end(@\exposid{base_}@) - it); |
| 5752 | + return counted_iterator(std::move(it), sz); |
5749 | 5753 | } else {
|
5750 | 5754 | return counted_iterator(ranges::begin(@\exposid{base_}@), @\exposid{count_}@);
|
5751 | 5755 | }
|
|
5759 | 5763 | auto sz = range_difference_t<const V>(size());
|
5760 | 5764 | return counted_iterator(ranges::begin(@\exposid{base_}@), sz);
|
5761 | 5765 | }
|
| 5766 | + } else if constexpr (@\libconcept{sized_sentinel_for}@<sentinel_t<const V>, iterator_t<const V>>) { |
| 5767 | + auto it = ranges::begin(@\exposid{base_}@); |
| 5768 | + auto sz = std::min(@\exposid{count_}@, ranges::end(@\exposid{base_}@) - it); |
| 5769 | + return counted_iterator(std::move(it), sz); |
5762 | 5770 | } else {
|
5763 | 5771 | return counted_iterator(ranges::begin(@\exposid{base_}@), @\exposid{count_}@);
|
5764 | 5772 | }
|
|
5770 | 5778 | return ranges::begin(@\exposid{base_}@) + range_difference_t<V>(size());
|
5771 | 5779 | else
|
5772 | 5780 | return default_sentinel;
|
| 5781 | + } else if constexpr (@\libconcept{sized_sentinel_for}@<sentinel_t<V>, iterator_t<V>>) { |
| 5782 | + return default_sentinel; |
5773 | 5783 | } else {
|
5774 | 5784 | return @\exposid{sentinel}@<false>{ranges::end(@\exposid{base_}@)};
|
5775 | 5785 | }
|
|
5781 | 5791 | return ranges::begin(@\exposid{base_}@) + range_difference_t<const V>(size());
|
5782 | 5792 | else
|
5783 | 5793 | return default_sentinel;
|
| 5794 | + } else if constexpr (@\libconcept{sized_sentinel_for}@<sentinel_t<const V>, iterator_t<const V>>) { |
| 5795 | + return default_sentinel; |
5784 | 5796 | } else {
|
5785 | 5797 | return @\exposid{sentinel}@<true>{ranges::end(@\exposid{base_}@)};
|
5786 | 5798 | }
|
|
0 commit comments