# Forward Traversal Concept

A class or built-in type `X` models the Forward Traversal concept if, in addition to `X` meeting the requirements of Default Constructible and Single Pass Iterator, the following expressions are valid and respect the stated semantics.

Forward Traversal Iterator Requirements (in addition to Default Constructible and Single Pass Iterator)
Expression | Return Type | Assertion/Note
--- | --- | ---
`X u;` | `X&` | note: `u` may have a singular value.
`++r` | `X&` | `r == s` and `r` is dereferenceable implies `++r == ++s.`
`iterator_traits<X>::difference_type` | A signed integral type representing the distance between iterators |
`iterator_traversal<X>::type` | Convertible to `forward_traversal_tag` |