cpp/experimental/ranges/iterator/BidirectionalIterator

The concept refines  by adding the ability to move an iterator backward.

A bidirectional iterator is said to be decrementable if and only if there exists some  such that. All decrementable iterators shall be in the domain of the expressions  and.

Let and  be decrementable objects of type. is satisfied only if:


 * Pre-decrement yields an lvalue that refers to the operand: ;
 * Post-decrement yields the previous value of the operand: if, then.
 * Post-decrement and pre-decrement perform the same modification on its operand: If, then after evaluating both and ,  still holds.
 * Increment and decrement are inverses of each other:
 * If is incrementable and, then.
 * If, then.