]>
Commit | Line | Data |
---|---|---|
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/args.hpp"> | |
10 | <para> | |
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. | |
15 | class templates. | |
16 | </para> | |
17 | ||
18 | <namespace name="boost"> | |
19 | <namespace name="proto"> | |
20 | ||
21 | <!-- proto::term<> --> | |
22 | <struct name="term"> | |
23 | <template> | |
24 | <template-type-parameter name="T"/> | |
25 | </template> | |
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> | |
30 | <description> | |
31 | <para> | |
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. | |
36 | </para> | |
37 | </description> | |
38 | <data-member name="arity" specifiers="static"> | |
39 | <purpose><computeroutput>= 0;</computeroutput></purpose> | |
40 | <type>const long</type> | |
41 | </data-member> | |
42 | <typedef name="child0"> | |
43 | <type>T</type> | |
44 | </typedef> | |
45 | </struct> | |
46 | ||
47 | <!-- proto::list1<>, proto::list2<> ... --> | |
48 | <struct name="listN"> | |
49 | <template> | |
50 | <template-type-parameter name="Arg" pack="1"/> | |
51 | </template> | |
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> | |
56 | <description> | |
57 | <para> | |
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 | |
63 | a set of types named | |
64 | <computeroutput>proto::list1<></computeroutput>, | |
65 | <computeroutput>proto::list2<></computeroutput>, etc. | |
66 | </para> | |
67 | </description> | |
68 | <data-member name="arity" specifiers="static"> | |
69 | <purpose><computeroutput>= N;</computeroutput></purpose> | |
70 | <type>const long</type> | |
71 | </data-member> | |
72 | <typedef name="childM"> | |
73 | <purpose>For each <replaceable>M</replaceable> in <replaceable>[0,N)</replaceable></purpose> | |
74 | <type>Arg<replaceable>M</replaceable></type> | |
75 | </typedef> | |
76 | </struct> | |
77 | ||
78 | </namespace> | |
79 | </namespace> | |
80 | </header> |