[range.filter.sentinel] (original) (raw)

25 Ranges library [ranges]

25.7 Range adaptors [range.adaptors]

25.7.8 Filter view [range.filter]

25.7.8.4 Class filter_view​::​sentinel [range.filter.sentinel]

namespace std::ranges { template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred> requires view<V> && is_object_v<Pred> class filter_view<V, Pred>::sentinel { private: sentinel_t<V> end_ = sentinel_t<V>(); public: sentinel() = default;constexpr explicit sentinel(filter_view& parent);constexpr sentinel_t<V> base() const;friend constexpr bool operator==(const iterator& x, const sentinel& y);};}

constexpr explicit _sentinel_(filter_view& parent);

Effects: Initializes end_ with ranges​::​end(parent.base_).

constexpr sentinel_t<V> base() const;

Effects: Equivalent to: return end_;

friend constexpr bool operator==(const _iterator_& x, const _sentinel_& y);

Effects: Equivalent to: return x.current_ == y.end_;