blob: 8721453c9d26427c57cb8e87bbe4391da5c20405 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<header name="boost/proto/args.hpp">
<para>
Contains definitions of the <computeroutput>
<classname alt="boost::proto::term">proto::term&lt;&gt;</classname></computeroutput>,
<computeroutput><classname alt="boost::proto::listN">proto::list1&lt;&gt;</classname></computeroutput>,
<computeroutput><classname alt="boost::proto::listN">proto::list2&lt;&gt;</classname></computeroutput>, etc.
class templates.
</para>
<namespace name="boost">
<namespace name="proto">
<!-- proto::term<> -->
<struct name="term">
<template>
<template-type-parameter name="T"/>
</template>
<purpose>A type sequence, for use as the 2<superscript>nd</superscript> parameter to the
<computeroutput><classname alt="proto::expr">proto::expr&lt;&gt;</classname></computeroutput> and
<computeroutput><classname alt="proto::basic_expr">proto::basic_expr&lt;&gt;</classname></computeroutput>
class templates.</purpose>
<description>
<para>
A type sequence with one element, for use as the 2<superscript>nd</superscript> parameter to the
<computeroutput><classname alt="proto::expr">proto::expr&lt;&gt;</classname></computeroutput> and
<computeroutput><classname alt="proto::basic_expr">proto::basic_expr&lt;&gt;</classname></computeroutput>
class templates. The sequence element represents the value of a terminal.
</para>
</description>
<data-member name="arity" specifiers="static">
<purpose><computeroutput>= 0;</computeroutput></purpose>
<type>const long</type>
</data-member>
<typedef name="child0">
<type>T</type>
</typedef>
</struct>
<!-- proto::list1<>, proto::list2<> ... -->
<struct name="listN">
<template>
<template-type-parameter name="Arg" pack="1"/>
</template>
<purpose><computeroutput>proto::list1&lt;&gt;</computeroutput>, <computeroutput>proto::list2&lt;&gt;</computeroutput>, etc.,
are type sequences for use as the 2<superscript>nd</superscript> parameter to the
<computeroutput><classname>proto::expr&lt;&gt;</classname></computeroutput> or
<computeroutput><classname>proto::basic_expr&lt;&gt;</classname></computeroutput> class templates.</purpose>
<description>
<para>
Type sequences, for use as the 2<superscript>nd</superscript> parameter to the
<computeroutput><classname>proto::expr&lt;&gt;</classname></computeroutput> or
<computeroutput><classname>proto::basic_expr&lt;&gt;</classname></computeroutput> class template. The
types in the sequence correspond to the children of a node in an expression tree.
There is no type literally named "<computeroutput>listN</computeroutput>"; rather, there is
a set of types named
<computeroutput>proto::list1&lt;&gt;</computeroutput>,
<computeroutput>proto::list2&lt;&gt;</computeroutput>, etc.
</para>
</description>
<data-member name="arity" specifiers="static">
<purpose><computeroutput>= N;</computeroutput></purpose>
<type>const long</type>
</data-member>
<typedef name="childM">
<purpose>For each <replaceable>M</replaceable> in <replaceable>[0,N)</replaceable></purpose>
<type>Arg<replaceable>M</replaceable></type>
</typedef>
</struct>
</namespace>
</namespace>
</header>