[tab:bidirectionaliterator] (original) (raw)
23 Iterators library [iterators]
23.3 Iterator requirements [iterator.requirements]
23.3.5 C++17 iterator requirements [iterator.cpp17]
23.3.5.6 Bidirectional iterators [bidirectional.iterators]
Table 88: 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 |