#
The template parameter
Iterator
shall either meet the
Cpp17InputIterator
requirements (
[input.
iterators]
) or model
input_
iterator
(
[iterator.
concept.
input]
)
.
Additionally, if any of the bidirectional traversal functions are instantiated, the template parameter shall either meet the
Cpp17BidirectionalIterator
requirements (
[bidirectional.
iterators]
) or model
bidirectional_
iterator
(
[iterator.
concept.
bidir]
)
.
If any of the random access traversal functions are instantiated, the template parameter shall either meet the
Cpp17RandomAccessIterator
requirements (
[random.
access.
iterators]
) or model
random_
access_
iterator
(
[iterator.
concept.
random.
access]
)
.