26 Ranges library [ranges]

26.7 Range adaptors [range.adaptors]

26.7.27 Chunk view [range.chunk]

26.7.27.4 Class chunk_­view​::​outer-iterator​::​value_­type [range.chunk.outer.value]

namespace std::ranges { template<view V> requires input_­range<V> struct chunk_view<V>::outer-iterator::value_type : view_interface<value_type> { private: chunk_view* parent_; // exposition only constexpr explicit value_type(chunk_view& parent); // exposition only public: constexpr inner-iterator begin() const noexcept; constexpr default_sentinel_t end() const noexcept; constexpr auto size() const requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>; }; }
constexpr explicit value_type(chunk_view& parent);
Effects: Initializes parent_­ with addressof(parent).
constexpr inner-iterator begin() const noexcept;
Returns: inner-iterator(*parent_­).
constexpr default_sentinel_t end() const noexcept;
Returns: default_­sentinel.
constexpr auto size() const requires sized_­sentinel_­for<sentinel_t<V>, iterator_t<V>>;
Effects: Equivalent to: return to-unsigned-like(ranges::min(parent_->remainder_, ranges::end(parent_->base_) - *parent_->current_));