The input_­iterator concept defines requirements for a type
whose referenced values can be read (from the requirement for
readable ([iterator.concept.readable])) and which can be both pre- and
post-incremented.