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 | |