Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data > Struct Template Reference

#include <fold.hpp>

Inheritance diagram for boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >:
Collaboration diagram for boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >:

Public Types

typedef remove_reference
< typename when< _, Sequence >
::template impl< Expr, State,
Data >::result_type >::type 
sequence
 A Fusion sequence. More...
 
typedef remove_reference
< typename when< _, State0 >
::template impl< Expr, State,
Data >::result_type >::type 
state0
 An initial state for the fold. More...
 
typedef detail::as_callable
< Fun, Data > 
fun
 fun(d)(e,s) == when<_,Fun>()(e,s,d) More...
 
typedef
fusion::result_of::reverse_fold
< sequence, state0, fun >
::type 
result_type
 
typedef Expr const expr
 
typedef Expr const & expr_param
 
typedef State const state
 
typedef State const & state_param
 
typedef Data const data
 
typedef Data const & data_param
 

Public Member Functions

result_type operator() (typename impl::expr_param e, typename impl::state_param s, typename impl::data_param d) const
 Let seq be when<_, Sequence>()(e, s, d), let state0 be when<_, State0>()(e, s, d), and let fun(d) be an object such that fun(d)(e, s) is equivalent to when<_, Fun>()(e, s, d). More...
 

Member Typedef Documentation

template<typename Expr, typename State, typename Data>
typedef Data const boost::proto::transform_impl< Expr, State, Data >::data
inherited
template<typename Expr, typename State, typename Data>
typedef Data const& boost::proto::transform_impl< Expr, State, Data >::data_param
inherited
template<typename Expr, typename State, typename Data>
typedef Expr const boost::proto::transform_impl< Expr, State, Data >::expr
inherited
template<typename Expr, typename State, typename Data>
typedef Expr const& boost::proto::transform_impl< Expr, State, Data >::expr_param
inherited
template<typename Sequence , typename State0 , typename Fun >
template<typename Expr, typename State, typename Data>
typedef detail::as_callable<Fun, Data> boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >::fun

fun(d)(e,s) == when<_,Fun>()(e,s,d)

template<typename Sequence , typename State0 , typename Fun >
template<typename Expr, typename State, typename Data>
typedef fusion::result_of::reverse_fold< sequence , state0 , fun >::type boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >::result_type
template<typename Sequence , typename State0 , typename Fun >
template<typename Expr, typename State, typename Data>
typedef remove_reference< typename when<_, Sequence>::template impl<Expr, State, Data>::result_type >::type boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >::sequence

A Fusion sequence.

template<typename Expr, typename State, typename Data>
typedef State const boost::proto::transform_impl< Expr, State, Data >::state
inherited
template<typename Sequence , typename State0 , typename Fun >
template<typename Expr, typename State, typename Data>
typedef remove_reference< typename when<_, State0>::template impl<Expr, State, Data>::result_type >::type boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >::state0

An initial state for the fold.

template<typename Expr, typename State, typename Data>
typedef State const& boost::proto::transform_impl< Expr, State, Data >::state_param
inherited

Member Function Documentation

template<typename Sequence , typename State0 , typename Fun >
template<typename Expr, typename State, typename Data>
result_type boost::proto::reverse_fold< Sequence, State0, Fun >::impl< Expr, State, Data >::operator() ( typename impl< Expr, State, Data >::expr_param  e,
typename impl< Expr, State, Data >::state_param  s,
typename impl< Expr, State, Data >::data_param  d 
) const
inline

Let seq be when<_, Sequence>()(e, s, d), let state0 be when<_, State0>()(e, s, d), and let fun(d) be an object such that fun(d)(e, s) is equivalent to when<_, Fun>()(e, s, d).

Then, this function returns fusion::fold(seq, state0, fun(d)).

Parameters
eThe current expression
sThe current state
dAn arbitrary data

References boost::fusion::reverse_fold().


The documentation for this struct was generated from the following file: