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

Front Page / Iterators / Concepts

Concepts

All iterators in MPL are classified into three iterator concepts, or categories, named according to the type of traversal provided. The categories are: Forward Iterator, Bidirectional Iterator, and Random Access Iterator. The concepts are hierarchical: Random Access Iterator is a refinement of Bidirectional Iterator, which, in its turn, is a refinement of Forward Iterator.

Because of the inherently immutable nature of the value access, MPL iterators escape the problems of the traversal-only categorization discussed at length in [n1550].

[n1550]http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1550.htm