25
Iterators library
[iterators]
25.3
Iterator requirements
[iterator.requirements]
25.3.4
Iterator concepts
[iterator.concepts]
25.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
>
;