The
Iterator concept forms the basis
of the iterator concept taxonomy; every iterator models
Iterator. This concept specifies operations for dereferencing and incrementing
an iterator
.
template<class I>
concept Iterator =
requires(I i) {
{ *i } -> can-reference;
} &&
WeaklyIncrementable<I>;