23
Iterators library
[iterators]
23.5
Iterator adaptors
[predef.iterators]
23.5.1
Reverse iterators
[reverse.iterators]
23.5.1.2
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]
)
.