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

Click here to view the latest version of this page.
PrevUpHomeNext

advance

Description

Moves an iterator a specified distance.

Synopsis
template<
    typename I,
    typename M
    >
struct advance
{
    typedef unspecified type;
};

Table 1.18. Parameters

Parameter

Requirement

Description

I

Model of Forward Iterator

Iterator to move relative to

M

Model of MPL Integral Constant

Number of positions to move


Expression Semantics
result_of::advance<I,M>::type

Return type: A model of the same iterator concept as I.

Semantics: Returns an iterator a distance M from I. If I is a Bidirectional Iterator then M may be negative.

Header
#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/include/advance.hpp>
Example
typedef vector<int,double,char> vec;
typedef result_of::begin<vec>::type first;
typedef result_of::next<first>::type second;
typedef result_of::next<second>::type third;

BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));

PrevUpHomeNext