В Iterator требования легли в основу концепции итератора систематики; каждый итератор удовлетворяет Iterator требованиям. Этот набор требований определяет операции для разыменования и увеличения итератора. Большинство алгоритмов потребует дополнительных действий для read или write значения, или обеспечить более богатый набор итератор движений ([forward.iterators], [bidirectional.iterators], [random.access.iterators]).
Тип X удовлетворяет Iterator требованиям, если:
X удовлетворяет CopyConstructible, CopyAssignableи Destructible требования ([utility.arg.requirements]) и lvalues типа X являются swappable, и
выражения в таблице 94 действительны и имеют указанную семантику.
Выражение | Тип возврата | Оперативный | Утверждение / примечание |
семантика | до / после состояния | ||
*r | неопределенные | Requires: r разыменуемо. | |
++r | X& |