23
Iterators library
[iterators]
23.5
Iterator adaptors
[predef.iterators]
23.5.1
Reverse iterators
[reverse.iterators]
23.5.1.3
Requirements
[reverse.iter.requirements]
1
#
The template parameter
Iterator
shall either meet the requirements of a
Cpp17BidirectionalIterator
(
[bidirectional.
iterators]
) or model
bidirectional_iterator
(
[iterator.
concept.
bidir]
)
.
2
#
Additionally,
Iterator
shall either meet the requirements of a
Cpp17RandomAccessIterator
(
[random.
access.
iterators]
) or model
random_access_iterator
(
[iterator.
concept.
random.
access]
) if the definitions of any of the members
(2.1)
operator
+
,
operator
-
,
operator
+
=
,
operator
-
=
(
[reverse.
iter.
nav]
), or
(2.2)
operator
[
]
(
[reverse.
iter.
elem]
),
or the non-member operators (
[reverse.
iter.
cmp]
)
(2.3)
operator
<
,
operator
>
,
operator
<
=
,
operator
>
=
,
operator
-
, or
operator
+
(
[reverse.
iter.
nonmember]
)
are instantiated (
[temp.
inst]
)
.