C++ named requirements: LegacyBidirectionalIterator
A LegacyBidirectionalIterator is a LegacyForwardIterator that can be moved in both directions (i.e. incremented and decremented).
It satisfies LegacyBidirectionalIterator if
- The type
b, iterators of type
reference,the type denoted by
The following expressions must be valid and have their specified effects
|a--||convertible to const It&||It temp = a;
A mutable LegacyBidirectionalIterator is a LegacyBidirectionalIterator that additionally satisfies the LegacyOutputIterator requirements.
The begin iterator is not decrementable and the behavior is undefined if --container.begin() is evaluated.
A bidirectional iterator does not have to be dereferenceable to be decrementable (in particular, the end iterator is not dereferenceable but is decrementable)
For the definition of std::iterator_traits, the following exposition-only concept is defined.
where the exposition-only concept
| specifies that a |