Struct template when<Grammar, R(A...)>
boost::proto::when<Grammar, R(A...)> — A grammar element and a Transform that associates a
transform with the grammar.
Synopsis
template<typename Grammar, typename R, typename... A>
struct when<Grammar, R(A...)> : proto::transform< when<Grammar, R(A...)> > {
typedef typename Grammar::proto_grammar proto_grammar;
template<typename Expr, typename State, typename Data>
struct impl : proto::transform_impl< Expr, State, Data > {
typedef proto::call<R(A...)> call_;
typedef proto::make<R(A...)> make_;
typedef typename mpl::if_<proto::is_callable<R>,call_,make_>::type which;
typedef typename boost::result_of<which(Expr, State, Data)>::type result_type;
result_type operator()(typename impl::expr_param,
typename impl::state_param,
typename impl::data_param) const;
};
};