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