| <?xml version="1.0" encoding="utf-8"?> |
| <header name="boost/proto/eval.hpp"> |
| <para> |
| Contains the |
| <computeroutput> |
| <functionname alt="boost::proto::eval">proto::eval()</functionname> |
| </computeroutput> expression evaluator. |
| </para> |
| <namespace name="boost"> |
| <namespace name="proto"> |
| <namespace name="functional"> |
| <!-- proto::functional::eval--> |
| <struct name="eval"> |
| <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type for evaluating a given Proto |
| expression with a given context.</purpose> |
| <inherit> |
| <type><classname>proto::callable</classname></type> |
| </inherit> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <specialization> |
| <template-arg>This(Expr, Context)</template-arg> |
| </specialization> |
| <inherit> |
| <type> |
| <classname>proto::result_of::eval</classname>< |
| typename boost::remove_reference< Expr >::type, |
| typename boost::remove_reference< Context >::type |
| ></type> |
| </inherit> |
| </struct-specialization> |
| <method-group name="public member functions"> |
| <method name="operator()" cv="const"> |
| <type>typename <classname>proto::result_of::eval</classname>< Expr, Context >::type</type> |
| <template> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <parameter name="expr"> |
| <paramtype>Expr &</paramtype> |
| <description> |
| <para>The Proto expression to evaluate.</para> |
| </description> |
| </parameter> |
| <parameter name="context"> |
| <paramtype>Context &</paramtype> |
| <description> |
| <para>The context in which the expression should be evaluated. </para> |
| </description> |
| </parameter> |
| <purpose>Evaluate a given Proto expression with a given context. </purpose> |
| <returns> |
| <para> |
| <computeroutput>typename Context::template eval<Expr>()(expr, context)</computeroutput> |
| </para> |
| </returns> |
| </method> |
| <method name="operator()" cv="const"> |
| <type>typename <classname>proto::result_of::eval</classname>< Expr, Context >::type</type> |
| <template> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <parameter name="expr"> |
| <paramtype>Expr &</paramtype> |
| </parameter> |
| <parameter name="context"> |
| <paramtype>Context const &</paramtype> |
| </parameter> |
| <description> |
| <para> |
| This is an overloaded member function, provided for convenience. It differs from the above |
| function only in what argument(s) it accepts. |
| </para> |
| </description> |
| </method> |
| </method-group> |
| </struct> |
| </namespace> |
| <namespace name="result_of"> |
| <!-- proto::result_of::eval --> |
| <struct name="eval"> |
| <template> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <purpose>A metafunction for calculating the return type of <computeroutput> |
| <functionname alt="proto::eval">proto::eval()</functionname></computeroutput> given a |
| certain <computeroutput>Expr</computeroutput> and <computeroutput>Context</computeroutput> types.</purpose> |
| <typedef name="type"> |
| <type>typename Context::template eval< Expr >::result_type</type> |
| </typedef> |
| </struct> |
| </namespace> |
| <!-- proto::eval() --> |
| <overloaded-function name="eval"> |
| <signature> |
| <type>typename <classname>proto::result_of::eval</classname>< Expr, Context >::type</type> |
| <template> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <parameter name="expr"> |
| <paramtype>Expr &</paramtype> |
| <description> |
| <para>The Proto expression to evaluate.</para> |
| </description> |
| </parameter> |
| <parameter name="context"> |
| <paramtype>Context &</paramtype> |
| <description> |
| <para>The context in which the expression should be evaluated.</para> |
| </description> |
| </parameter> |
| </signature> |
| <signature> |
| <type>typename <classname>proto::result_of::eval</classname>< Expr, Context >::type</type> |
| <template> |
| <template-type-parameter name="Expr"/> |
| <template-type-parameter name="Context"/> |
| </template> |
| <parameter name="expr"> |
| <paramtype>Expr &</paramtype> |
| </parameter> |
| <parameter name="context"> |
| <paramtype>Context const &</paramtype> |
| </parameter> |
| </signature> |
| <purpose>Evaluate a given Proto expression with a given context. </purpose> |
| <returns> |
| <para> |
| <computeroutput>typename Context::template eval<Expr>()(expr, context)</computeroutput> |
| </para> |
| </returns> |
| </overloaded-function> |
| </namespace> |
| </namespace> |
| </header> |