| Home | Libraries | People | FAQ | More

## Struct template eval

boost::proto::context::callable_context::eval

## Synopsis

    // In header: <boost/proto/context/callable.hpp>

    template<typename Expr, typename ThisContext = Context>
    struct eval :  see-below {
    };

## Description

A BinaryFunction that accepts an `Expr` and a `Context`, and either fans out the expression and passes it to the context, or else hands off the expression to `DefaultCtx`.

If `Context` is a PolymorphicFunctionObject such that it can be invoked with the tag and children of `Expr`, as `ctx(typename Expr::proto_tag(), child_c<0>(expr),... child_c<N>(expr))`, then `eval<Expr, ThisContext>` inherits from `proto::context::callable_eval<Expr, ThisContext>`. Otherwise, `eval<Expr, ThisContext>` inherits from `DefaultCtx::eval<Expr, Context>`.