[range.chunk.outer.value]

# 25 Ranges library [[ranges]](./#ranges)

## 25.7 Range adaptors [[range.adaptors]](range.adaptors#range.chunk.outer.value)

### 25.7.29 Chunk view [[range.chunk]](range.chunk#outer.value)

#### 25.7.29.4 Class chunk_view​::​*outer-iterator*​::​value_type [range.chunk.outer.value]

[ð](#lib:chunk_view::outer-iterator::value_type)

namespace std::ranges {template<[view](range.view#concept:view "25.4.5 Views [range.view]") V>requires [input_range](range.refinements#concept:input_range "25.4.6 Other range refinements [range.refinements]")<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() constrequires [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized_sentinel_for "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<sentinel_t<V>, iterator_t<V>>; constexpr auto reserve_hint() const noexcept; };}

[ð](#lib:chunk_view::outer-iterator::value_type,constructor)

`constexpr explicit value_type(chunk_view& parent);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L14098)

*Effects*: Initializes *parent_* with addressof(parent)[.](#1.sentence-1)

[ð](#lib:begin,chunk_view::outer-iterator::value_type)

`constexpr inner-iterator begin() const noexcept;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L14109)

*Returns*: *inner-iterator*(**parent_*)[.](#2.sentence-1)

[ð](#lib:end,chunk_view::outer-iterator::value_type)

`constexpr default_sentinel_t end() const noexcept;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L14120)

*Returns*: default_sentinel[.](#3.sentence-1)

[ð](#lib:size,chunk_view::outer-iterator::value_type)

`constexpr auto size() const
  requires [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized_sentinel_for "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<sentinel_t<V>, iterator_t<V>>;
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L14132)

*Effects*: Equivalent to:return *to-unsigned-like*(ranges::min(*parent_*->*remainder_*,
 ranges::end(*parent_*->*base_*) - **parent_*->*current_*));

[ð](#lib:reserve_hint,chunk_view::outer-iterator::value_type)

`constexpr auto reserve_hint() const noexcept;
`

[5](#5)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L14147)

*Effects*: Equivalent to:return *to-unsigned-like*(*parent_*->*remainder_*);
