# Incrementable Iterator Concept

A class or built-in type `X` models the Incrementable Iterator concept if, in addition to `X` being Assignable and Copy Constructible, the following expressions are valid and respect the stated semantics.

Incrementable Iterator Requirements (in addition to Assignable, Copy Constructible)
Expression | Return Type | Assertion/Semantics
--- | --- | ---
`++r` | `X&` | `&r == &++r`
`r++` | `X` |
    {
       X tmp = r;
       ++r;
       return tmp;
    }
`iterator_traversal<X>::type` | Convertible to `incrementable_traversal_tag` |