Contains the proto::eval() expression evaluator. A PolymorphicFunctionObject type for evaluating a given Proto expression with a given context. proto::callable This(Expr, Context) proto::result_of::eval< typename boost::remove_reference< Expr >::type, typename boost::remove_reference< Context >::type > typename proto::result_of::eval< Expr, Context >::type Expr & The Proto expression to evaluate. Context & The context in which the expression should be evaluated. Evaluate a given Proto expression with a given context. typename Context::template eval<Expr>()(expr, context) typename proto::result_of::eval< Expr, Context >::type Expr & Context const & This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. A metafunction for calculating the return type of proto::eval() given a certain Expr and Context types. typename Context::template eval< Expr >::result_type typename proto::result_of::eval< Expr, Context >::type Expr & The Proto expression to evaluate. Context & The context in which the expression should be evaluated. typename proto::result_of::eval< Expr, Context >::type Expr & Context const & Evaluate a given Proto expression with a given context. typename Context::template eval<Expr>()(expr, context)