[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; }