[iterator.concept.input] (original) (raw)

23 Iterators library [iterators]

23.3 Iterator requirements [iterator.requirements]

23.3.4 Iterator concepts [iterator.concepts]

23.3.4.9 Concept input_­iterator [iterator.concept.input]

1

#

The input_­iterator concept defines requirements for a type whose referenced values can be read (from the requirement forindirectly_­readable ([iterator.concept.readable])) and which can be both pre- and post-incremented.

[Note 1:

Unlike the Cpp17InputIterator requirements ([input.iterators]), the input_­iterator concept does not need equality comparison since iterators are typically compared to sentinels.

— _end note_]

template<class I> concept input_­iterator = input_­or_­output_­iterator<I> && indirectly_­readable<I> && requires { typename ITER_CONCEPT(I); } && derived_­from<_ITER_CONCEPT_(I), input_iterator_tag>;