25
Iterators library
[iterators]
25.3
Iterator requirements
[iterator.requirements]
25.3.5
C++17 iterator requirements
[iterator.cpp17]
25.3.5.6
Bidirectional iterators
[bidirectional.iterators]
Table 90:
Cpp17BidirectionalIterator
requirements (in addition to
Cpp17ForwardIterator
)
[tab:bidirectionaliterator]
🔗
Expression
Return type
Operational
Assertion/note
🔗
semantics
pre-/post-condition
🔗
-
-
r
X
&
Preconditions
: there exists
s
such that
r
=
=
+
+
s
.
Postconditions
:
r
is dereferenceable
.
-
-
(
+
+
r
)
=
=
r
.
-
-
r
=
=
-
-
s
implies
r
=
=
s
.
addressof
(
r
)
=
=
addressof
(
-
-
r
)
.
🔗
r
-
-
convertible to
const
X
&
{
X tmp
=
r;
-
-
r;
return
tmp;
}
🔗
*
r
-
-
reference