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

#include <when.hpp>

Inheritance diagram for boost::proto::detail::when_impl< Grammar, R, Fun >::impl< Expr, State, Data >:
Collaboration diagram for boost::proto::detail::when_impl< Grammar, R, Fun >::impl< Expr, State, Data >:

Public Types

typedef mpl::if_c< is_callable
< R >::value, proto::call< Fun >
, proto::make< Fun > >::type 
which
 
typedef which::template impl
< Expr, State, Data >
::result_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

BOOST_FORCEINLINE result_type operator() (typename impl::expr_param e, typename impl::state_param s, typename impl::data_param d) const
 Evaluate R(A0,A1,...) as a transform either with call<> or with make<> depending on whether is_callable<R>value is true or false. 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 Grammar , typename R , typename Fun >
template<typename Expr, typename State, typename Data>
typedef which::template impl<Expr, State, Data>::result_type boost::proto::detail::when_impl< Grammar, R, Fun >::impl< Expr, State, Data >::result_type
template<typename Expr, typename State, typename Data>
typedef State const boost::proto::transform_impl< Expr, State, Data >::state
inherited
template<typename Expr, typename State, typename Data>
typedef State const& boost::proto::transform_impl< Expr, State, Data >::state_param
inherited
template<typename Grammar , typename R , typename Fun >
template<typename Expr, typename State, typename Data>
typedef mpl::if_c< is_callable<R>::value , proto::call<Fun> , proto::make<Fun> >::type boost::proto::detail::when_impl< Grammar, R, Fun >::impl< Expr, State, Data >::which

Member Function Documentation

template<typename Grammar , typename R , typename Fun >
template<typename Expr, typename State, typename Data>
BOOST_FORCEINLINE result_type boost::proto::detail::when_impl< Grammar, R, 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

Evaluate R(A0,A1,...) as a transform either with call<> or with make<> depending on whether is_callable<R>value is true or false.

Parameters
eThe current expression
sThe current state
dAn arbitrary data
Precondition
matches<Expr, Grammar>value is true
Returns
which()(e, s, d)

References template.


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