...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A class or built-in type X models the Single Pass Iterator concept if the following expressions are valid and respect the stated semantics.
Single Pass Iterator Requirements (in addition to Incrementable Iterator and Equality Comparable) | ||
---|---|---|
Expression | Return Type | Assertion/Semantics / Pre-/Post-condition |
++r | X& | pre: r is dereferenceable; post: r is dereferenceable or r is past-the-end |
a == b | convertible to bool | == is an equivalence relation over its domain |
a != b | convertible to bool | !(a == b) |
iterator_traversal<X>::type | Convertible to single_pass_traversal_tag |