namespace std::ranges {
template<input_range V>
requires view<V>
class cache_latest_view<V>::sentinel {
sentinel_t<V> end_ = sentinel_t<V>();
constexpr explicit sentinel(cache_latest_view& parent);
public:
sentinel() = default;
constexpr sentinel_t<V> base() const;
friend constexpr bool operator==(const iterator& x, const sentinel& y);
friend constexpr range_difference_t<V> operator-(const iterator& x, const sentinel& y)
requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
friend constexpr range_difference_t<V> operator-(const sentinel& x, const iterator& y)
requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
};
}
constexpr explicit sentinel(cache_latest_view& parent);
Effects: Initializes
end_ with
ranges::end(parent.base_). constexpr sentinel_t<V> base() const;
friend constexpr bool operator==(const iterator& x, const sentinel& y);
Returns:
x.current_ == y.end_. friend constexpr range_difference_t<V> operator-(const iterator& x, const sentinel& y)
requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
Returns:
x.current_ - y.end_. friend constexpr range_difference_t<V> operator-(const sentinel& x, const iterator& y)
requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
Returns:
x.end_ - y.current_.