1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright 2012 Eric Niebler
4
5  Distributed under the Boost
6  Software License, Version 1.0. (See accompanying
7  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8  -->
9<header name="boost/proto/context/null.hpp">
10  <para>
11    Definintion of
12    <computeroutput><classname alt="boost::proto::context::null_context">proto::context::null_context&lt;&gt;</classname></computeroutput>,
13    an evaluation context for
14    <computeroutput><functionname alt="boost::proto::eval">proto::eval()</functionname></computeroutput>
15    that simply evaluates each child expression, doesn't combine the results at all, and returns void.
16  </para>
17  <namespace name="boost">
18    <namespace name="proto">
19      <namespace name="context">
20        <struct name="null_eval">
21          <template>
22            <template-type-parameter name="Expr"/>
23            <template-type-parameter name="Context"/>
24          </template>
25          <typedef name="result_type">
26            <type>void</type>
27          </typedef>
28          <method-group name="public member functions">
29            <method name="operator()" cv="const">
30              <type>void</type>
31              <parameter name="expr">
32                <paramtype>Expr &amp;</paramtype>
33              </parameter>
34              <parameter name="context">
35                <paramtype>Context &amp;</paramtype>
36              </parameter>
37              <description>
38                <para>
39                  For <computeroutput>N</computeroutput> in <computeroutput>[0,Expr arity)</computeroutput>,
40                  evaluate:
41                  <programlisting><functionname>proto::eval</functionname>(<functionname>proto::child_c</functionname>&lt;N&gt;(expr), context)</programlisting>
42                </para>
43              </description>
44            </method>
45          </method-group>
46        </struct>
47
48        <struct name="null_context">
49          <purpose>An evaluation context for <functionname alt="proto::eval">proto::eval()</functionname> that simply evaluates
50              each child expression, doesn't combine the results at all, and returns void.</purpose>
51          <struct name="eval">
52            <template>
53              <template-type-parameter name="Expr"/>
54              <template-type-parameter name="ThisContext">
55                <default>null_context const</default>
56              </template-type-parameter>
57            </template>
58            <inherit><classname>proto::context::null_eval</classname>&lt; Expr, ThisContext &gt;</inherit>
59          </struct>
60        </struct>
61      </namespace>
62    </namespace>
63  </namespace>
64</header>
65