1
<?xml version=
"1.0" encoding=
"utf-8"?>
3 Copyright 2012 Eric Niebler
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)
9 <header name=
"boost/proto/args.hpp">
11 Contains definitions of the
<computeroutput>
12 <classname alt=
"boost::proto::term">proto::term
<></classname></computeroutput>,
13 <computeroutput><classname alt=
"boost::proto::listN">proto::list1
<></classname></computeroutput>,
14 <computeroutput><classname alt=
"boost::proto::listN">proto::list2
<></classname></computeroutput>, etc.
18 <namespace name=
"boost">
19 <namespace name=
"proto">
21 <!-- proto::term<> -->
24 <template-type-parameter name=
"T"/>
26 <purpose>A type sequence, for use as the
2<superscript>nd
</superscript> parameter to the
27 <computeroutput><classname alt=
"proto::expr">proto::expr
<></classname></computeroutput> and
28 <computeroutput><classname alt=
"proto::basic_expr">proto::basic_expr
<></classname></computeroutput>
29 class templates.
</purpose>
32 A type sequence with one element, for use as the
2<superscript>nd
</superscript> parameter to the
33 <computeroutput><classname alt=
"proto::expr">proto::expr
<></classname></computeroutput> and
34 <computeroutput><classname alt=
"proto::basic_expr">proto::basic_expr
<></classname></computeroutput>
35 class templates. The sequence element represents the value of a terminal.
38 <data-member name=
"arity" specifiers=
"static">
39 <purpose><computeroutput>=
0;
</computeroutput></purpose>
40 <type>const long
</type>
42 <typedef name=
"child0">
47 <!-- proto::list1<>, proto::list2<> ... -->
50 <template-type-parameter name=
"Arg" pack=
"1"/>
52 <purpose><computeroutput>proto::list1
<></computeroutput>,
<computeroutput>proto::list2
<></computeroutput>, etc.,
53 are type sequences for use as the
2<superscript>nd
</superscript> parameter to the
54 <computeroutput><classname>proto::expr
<></classname></computeroutput> or
55 <computeroutput><classname>proto::basic_expr
<></classname></computeroutput> class templates.
</purpose>
58 Type sequences, for use as the
2<superscript>nd
</superscript> parameter to the
59 <computeroutput><classname>proto::expr
<></classname></computeroutput> or
60 <computeroutput><classname>proto::basic_expr
<></classname></computeroutput> class template. The
61 types in the sequence correspond to the children of a node in an expression tree.
62 There is no type literally named
"<computeroutput>listN</computeroutput>"; rather, there is
64 <computeroutput>proto::list1
<></computeroutput>,
65 <computeroutput>proto::list2
<></computeroutput>, etc.
68 <data-member name=
"arity" specifiers=
"static">
69 <purpose><computeroutput>= N;
</computeroutput></purpose>
70 <type>const long
</type>
72 <typedef name=
"childM">
73 <purpose>For each
<replaceable>M
</replaceable> in
<replaceable>[
0,N)
</replaceable></purpose>
74 <type>Arg
<replaceable>M
</replaceable></type>