26 Ranges library [ranges]

26.7 Range adaptors [range.adaptors]

26.7.28 Slide view [range.slide]

26.7.28.4 Class slide_­view​::​sentinel [range.slide.sentinel]

namespace std::ranges { template<forward_­range V> requires view<V> class slide_view<V>::sentinel { sentinel_t<V> end_ = sentinel_t<V>(); // exposition only constexpr explicit sentinel(sentinel_t<V> end); // exposition only public: sentinel() = default; friend constexpr bool operator==(const iterator<false>& x, const sentinel& y); friend constexpr range_difference_t<V> operator-(const iterator<false>& x, const sentinel& y) requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>; friend constexpr range_difference_t<V> operator-(const sentinel& y, const iterator<false>& x) requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>; }; }
[Note 1:
sentinel is used only when slide-caches-first<V> is true.
— end note]
constexpr explicit sentinel(sentinel_t<V> end);
Effects: Initializes end_­ with end.
friend constexpr bool operator==(const iterator<false>& x, const sentinel& y);
Returns: x.last_­ele_­ == y.end_­.
friend constexpr range_difference_t<V> operator-(const iterator<false>& x, const sentinel& y) requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>;
Returns: x.last_­ele_­ - y.end_­.
friend constexpr range_difference_t<V> operator-(const sentinel& y, const iterator<false>& x) requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>;
Returns: y.end_­ - x.last_­ele_­.