Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Bidirectional Traversal Concept

A class or built-in type X models the Bidirectional Traversal concept if, in addition to X meeting the requirements of Forward Traversal Iterator, the following expressions are valid and respect the stated semantics.

Bidirectional Traversal Iterator Requirements (in addition to Forward Traversal Iterator)
Expression Return Type Assertion/Semantics / Pre-/Post-condition
--r X& pre: there exists s such that r == ++s. post: s is dereferenceable. --(++r) == r. --r == --s implies r == s. &r == &--r.
r-- convertible to const X&
{
  X tmp = r;
  --r;
  return tmp;
}
iterator_traversal<X>::type Convertible to bidirectional_traversal_tag