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

Let x be when<_, A0>()(e, s, d) and X be the type of x. More...

#include <call.hpp>

Inheritance diagram for boost::proto::call< Fun(A0)>::impl< Expr, State, Data >:
Collaboration diagram for boost::proto::call< Fun(A0)>::impl< Expr, State, Data >:

Detailed Description

template<typename Fun, typename A0>
template<typename Expr, typename State, typename Data>
struct boost::proto::call< Fun(A0)>::impl< Expr, State, Data >

Let x be when<_, A0>()(e, s, d) and X be the type of x.

If Fun is a unary PolymorphicFunctionObject that accepts x, then type is a typedef for boost::result_of<Fun(X)>::type. Otherwise, it is a typedef for boost::result_of<Fun(X, State, Data)>::type. Either call the PolymorphicFunctionObject with 1 argument: the result of applying the A0 transform; or invoke the PrimitiveTransform with 3 arguments: result of applying the A0 transform, the state, and the data.

Let x be when<_, A0>()(e, s, d). If Fun is a unary PolymorphicFunctionObject that accepts x, then return Fun()(x). Otherwise, return Fun()(x, s, d).

Parameters
eThe current expression
sThe current state
dAn arbitrary data

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