Expression  | Return type  | Operational  | Assertion/note  | |
semantics  | pre-/post-condition  | |||
r += n  | X&  | { difference_type m = n; if (m >= 0) while (m--) ++r; else while (m++) --r; return r; }  | ||
a + n n + a  | X  | { X tmp = a; return tmp += n; }  | a + n == n + a.  | |
r -= n  | X&  | return r += -n;  | ||
a - n  | X  | { X tmp = a; return tmp -= n; }  | ||
b - a  | difference_type  | return n  | ||
a[n]  | convertible to reference  | *(a + n)  | ||
a < b  | contextually
 convertible to bool  | b - a > 0  | < is a total ordering relation  | |
a > b  | contextually
 convertible to bool  | b < a  | ||
a >= b  | contextually
 convertible to bool  | !(a < b)  | ||
a <= b  | contextually
 convertible to bool.  | !(a > b)  |