[tab:bidirectionaliterator] (original) (raw)

24 Iterators library [iterators]

24.3 Iterator requirements [iterator.requirements]

24.3.5 C++17 iterator requirements [iterator.cpp17]

24.3.5.6 Bidirectional iterators [bidirectional.iterators]

Table 82 — 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