81 lines
3.7 KiB
XML
81 lines
3.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright 2012 Eric Niebler
|
|
|
|
Distributed under the Boost
|
|
Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
-->
|
|
<header name="boost/proto/args.hpp">
|
|
<para>
|
|
Contains definitions of the <computeroutput>
|
|
<classname alt="boost::proto::term">proto::term<></classname></computeroutput>,
|
|
<computeroutput><classname alt="boost::proto::listN">proto::list1<></classname></computeroutput>,
|
|
<computeroutput><classname alt="boost::proto::listN">proto::list2<></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<></classname></computeroutput> and
|
|
<computeroutput><classname alt="proto::basic_expr">proto::basic_expr<></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<></classname></computeroutput> and
|
|
<computeroutput><classname alt="proto::basic_expr">proto::basic_expr<></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<></computeroutput>, <computeroutput>proto::list2<></computeroutput>, etc.,
|
|
are type sequences for use as the 2<superscript>nd</superscript> parameter to the
|
|
<computeroutput><classname>proto::expr<></classname></computeroutput> or
|
|
<computeroutput><classname>proto::basic_expr<></classname></computeroutput> class templates.</purpose>
|
|
<description>
|
|
<para>
|
|
Type sequences, for use as the 2<superscript>nd</superscript> parameter to the
|
|
<computeroutput><classname>proto::expr<></classname></computeroutput> or
|
|
<computeroutput><classname>proto::basic_expr<></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<></computeroutput>,
|
|
<computeroutput>proto::list2<></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>
|