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 an older version of Boost and was released in 2013. The current version is 1.90.0.
A Forward Iterator traverses a Sequence allowing movement in only one direction through it's elements, one element at a time.
Notation
Forward Iterators
Forward Iterator types
An MPL integral constant
An integral constant
A type models Forward Iterator if, in addition to being CopyConstructable, the following expressions are valid:
|
Expression |
Return type |
Runtime Complexity |
|---|---|---|
|
next(i) |
Constant |
|
|
i == j |
Convertible to bool |
Constant |
|
i != j |
Convertible to bool |
Constant |
|
advance_c<N>(i) |
Constant |
|
|
advance<M>(i) |
Constant |
|
|
distance(i, j) |
result_of::distance<I, J>::type |
Constant |
|
deref(i) |
result_of::deref<I>::type |
Constant |
|
*i |
result_of::deref<I>::type |
Constant |
|
Expression |
Compile Time Complexity |
|---|---|
|
result_of::next<I>::type |
Amortized constant time |
|
result_of::equal_to<I, J>::type |
Amortized constant time |
|
result_of::advance_c<I, N>::type |
Linear |
|
result_of::advance<I ,M>::type |
Linear |
|
result_of::distance<I ,J>::type |
Linear |
|
result_of::deref<I>::type |
Amortized constant time |
|
result_of::value_of<I>::type |
Amortized constant time |
|
Expression |
Semantics |
|---|---|
|
next(i) |
An iterator to the element following i |
|
i == j |
Iterator equality comparison |
|
i != j |
Iterator inequality comparison |
|
advance_c<N>(i) |
An iterator n elements after i in the sequence |
|
advance<M>(i) |
Equivalent to advance_c<M::value>(i) |
|
distance(i, j) |
The number of elements between i and j |
|
deref(i) |
The element at positioni |
|
*i |
Equivalent to deref(i) |
The following invariants always hold: