[tab:inputiterator] (original) (raw)
Table 85: Cpp17InputIterator requirements (in addition to Cpp17Iterator) [tab:inputiterator]
| 🔗 | Expression | Return type | Operational | Assertion/note |
|---|---|---|---|---|
| 🔗 | semantics | pre-/post-condition | ||
| 🔗 | a != b | contextually convertible to bool | !(a == b) | Preconditions: (a, b) is in the domain of ==. |
| 🔗 | *a | reference, convertible to T | Preconditions: a is dereferenceable. The expression(void)*a, *a is equivalent to *a. If a == b and (a, b) is in the domain of == then *a is equivalent to *b. | |
| 🔗 | a->m | (*a).m | Preconditions: a is dereferenceable. | |
| 🔗 | ++r | X& | Preconditions: r is dereferenceable. Postconditions: r is dereferenceable or r is past-the-end;any copies of the previous value of r are no longer required to be dereferenceable nor to be in the domain of ==. | |
| 🔗 | (void)r++ | equivalent to (void)++r | ||
| 🔗 | *r++ | convertible to T | { T tmp = *r;++r;return tmp; } |