Forward iterator and bidirectional iterator place different requirements on the result of post-increment/decrement operator. The same form should be used in each case.
Merging row from:
Table 102 -- Forward iterator requirements Table 103 -- Bidirectional iterator requirements r++ : convertible to const X& r-- : convertible to const X& *r++ : T& if X is mutable, otherwise const T& *r-- : convertible to T