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 for
indirectly_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
>
;