Contains definition of the
proto::fold<>
and
proto::reverse_fold<>
transforms.
proto::transform< fold<Sequence, State0, Fun> >
A PrimitiveTransform that invokes the
fusion::fold<> algorithm to accumulate a value.
For the complete description of the behavior of the proto::fold<>
transform, see the documentation for the nested
proto::fold::impl<>
class template.
proto::transform_impl< Expr, State, Data >
For exposition only
when<_, Sequence>
For exposition only
when<_, State0>
A Fusion sequence, for exposition only
typename boost::result_of<X(Expr, State, Data)>::type
An initial state for the fold, for exposition only
typename boost::result_of<Y(Expr, State, Data)>::type
fun(d)(s,e) == when<_,Fun>()(e,s,d)
unspecified
typename fusion::result_of::fold<seq, state0, fun>::type
result_type
typename impl::expr_param
The current expression
typename impl::state_param
The current state
typename impl::data_param
An arbitrary data
Let seq be
when<_, Sequence>()(expr, state, data),
let state0 be
when<_, State0>()(expr, state, data),
and let fun(data) be an object such that
fun(data)(state, expr) is equivalent to
when<_, Fun>()(expr, state, data). Then,
this function returns fusion::fold(seq, state0, fun(data)).
proto::fold< proto::_reverse(Sequence), State0, Fun >
A PrimitiveTransform that is the same as the proto::fold<>
transform, except that it folds back-to-front instead of front-to-back. It uses the
proto::_reverse
callable PolymorphicFunctionObject to create a
fusion::reverse_view<> of the sequence before invoking
fusion::fold<>.