C++ concepts: InputIterator

From cppreference.com

An InputIterator is an Iterator that can read from the pointed-to element.

[edit] Requirements

In addition to the above requirements, for a type It to be an InputIterator, instances a and b of It must:

Expression Return Equivalent expression Notes
 a != b bool !(a == b)
*a value_type If a == b equivalent to *b
a->m (*a).m
++a It& After this, copies of a may be invalidated
a++ ++a
*a++ value_type value_type t = *a;

++a;

return t;