A LegacyBidirectionalIterator is a LegacyForwardIterator that can be moved in both directions (i.e. incremented and decremented).
If a LegacyBidirectionalIterator
it originates from a Container, then
value_type is the same as the container's, so dereferencing (
*it) obtains the container's
It satisfies LegacyBidirectionalIterator if.
b, lvalues of type
reference, the type denoted by std::iterator_traits<It>::reference
The following expressions must be valid and have their specified effects:
| || ||Preconditions:
| ||convertible to const It&||
| || |
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
where the exposition-only concept
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
|DR||Applied to||Behavior as published||Correct behavior|
| LWG 299 |
|C++98|| the return type of || the return type is required to be
|LWG 383||C++98|| ||
| specifies that a
|Iterator library||provides definitions for iterators, iterator traits, adaptors, and utility functions|
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.