Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/mpl/doc/src/refmanual/fold.rst @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 2.6 KB

fold

Synopsis

template<
      typename Sequence
    , typename State
    , typename ForwardOp
    >
struct fold
{
    typedef |unspecified| type;
};

Description

Returns the result of the successive application of binary ForwardOp to the result of the previous ForwardOp invocation (State if it's the first call) and every element of the sequence in the range |begin/end<Sequence>| in order.

Parameters

Parameter Requirement Description
Sequence |Forward Sequence| A sequence to iterate.
State Any type The initial state for the first ForwardOp application.
ForwardOp Binary |Lambda Expression| The operation to be executed on forward traversal.

Expression semantics

For any |Forward Sequence| s, binary |Lambda Expression| op, and arbitrary type state:

typedef fold<s,state,op>::type t;
Return type:

A type.

Semantics:

Equivalent to

typedef iter_fold< s,state,apply<op,_1,deref<_2> > >::type t;

Complexity

Linear. Exactly size<s>::value applications of op.

Example

typedef vector<long,float,short,double,float,long,long double> types;
typedef fold<
      types
    , int_<0>
    , if_< is_float<_2>,next<_1>,_1 >
    >::type number_of_floats;
BOOST_MPL_ASSERT_RELATION( number_of_floats::value, ==, 4 );

Docutils System Messages

?????????????
Note: See TracBrowser for help on using the repository browser.