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> 81