...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The boost::iterators::advance
function template is an adapted
version of std::advance
for the Boost iterator traversal
concepts.
<boost/iterator/advance.hpp>
template <typename Iterator, typename Distance> constexpr void advance(Iterator& it, Distance n);
Moves it
forward by n
increments (or backward by |n|
decrements if n
is negative).
Iterator
should model Incrementable
Iterator.
Let it
i
be
the iterator obtained by incrementing (or decrementing if n
is negative) it
by i
. All the iterators it
i
for i
= 0, 1, 2, ..., |n|
should be valid.
If Iterator
does not model
Bidirectional Traversal
Iterator, n
should
be non-negative.
If Iterator
models Random Access Traversal
Iterator, it takes constant time; otherwise it takes linear time.
constexpr
only in C++14 or later.
Contributed by Michel Morin.