| <?xml version="1.0" encoding="utf-8"?> |
| <header name="boost/proto/repeat.hpp"> |
| <para> |
| Contains macros to ease the generation of repetitious code constructs. |
| </para> |
| |
| <macro name="BOOST_PROTO_REPEAT" kind="functionlike"> |
| <macro-parameter name="MACRO"/> |
| <purpose>Repeatedly invoke the specified macro.</purpose> |
| <description> |
| <para> |
| <computeroutput>BOOST_PROTO_REPEAT()</computeroutput> is used to generate the kind of repetitive |
| code that is typical of DSELs built with Proto. |
| <computeroutput>BOOST_PROTO_REPEAT(<replaceable>MACRO</replaceable>)</computeroutput> |
| is equivalent to: |
| </para> |
| <para> |
| <programlisting><replaceable>MACRO</replaceable>(1, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>) |
| <replaceable>MACRO</replaceable>(2, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>) |
| ... |
| <replaceable>MACRO</replaceable>(<macroname>BOOST_PROTO_MAX_ARITY</macroname>, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>)</programlisting> |
| </para> |
| <para> |
| <emphasis role="bold">Example:</emphasis> |
| </para> |
| <para> |
| See <computeroutput><macroname>BOOST_PROTO_REPEAT_FROM_TO</macroname>()</computeroutput>. |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_REPEAT_FROM_TO" kind="functionlike"> |
| <macro-parameter name="FROM"/> |
| <macro-parameter name="TO"/> |
| <macro-parameter name="MACRO"/> |
| <purpose>Repeatedly invoke the specified macro.</purpose> |
| <description> |
| <para> |
| <computeroutput>BOOST_PROTO_REPEAT_FROM_TO()</computeroutput> is used to generate the kind of repetitive |
| code that is typical of DSELs built with Proto. |
| <computeroutput>BOOST_PROTO_REPEAT_FROM_TO(<replaceable>FROM</replaceable>, <replaceable>TO</replaceable>, <replaceable>MACRO</replaceable>)</computeroutput> |
| is equivalent to: |
| </para> |
| <para> |
| <programlisting><replaceable>MACRO</replaceable>(<replaceable>FROM</replaceable>, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>) |
| <replaceable>MACRO</replaceable>(<replaceable>FROM+1</replaceable>, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>) |
| ... |
| <replaceable>MACRO</replaceable>(<replaceable>TO-1</replaceable>, <macroname>BOOST_PROTO_typename_A</macroname>, <macroname>BOOST_PROTO_A_const_ref</macroname>, <macroname>BOOST_PROTO_A_const_ref_a</macroname>, <macroname>BOOST_PROTO_ref_a</macroname>)</programlisting> |
| </para> |
| <para> |
| <emphasis role="bold">Example:</emphasis> |
| </para> |
| <para> |
| <programlisting>// Generate BOOST_PROTO_MAX_ARITY-1 overloads of the |
| // following construct() function template. |
| #define M0(N, typename_A, A_const_ref, A_const_ref_a, ref_a) \ |
| template<typename T, typename_A(N)> \ |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< \ |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> \ |
| , construct_helper<T> \ |
| , A_const_ref(N) \ |
| >::type const \ |
| construct(A_const_ref_a(N)) \ |
| { \ |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< \ |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> \ |
| >( \ |
| construct_helper<T>() \ |
| , ref_a(N) \ |
| ); \ |
| } |
| BOOST_PROTO_REPEAT_FROM_TO(1, BOOST_PROTO_MAX_ARITY, M0) |
| #undef M0</programlisting> |
| </para> |
| <para> |
| The above invocation of <computeroutput>BOOST_PROTO_REPEAT_FROM_TO()</computeroutput> |
| will generate the following code: |
| </para> |
| <para> |
| <programlisting>template<typename T, typename A0> |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| , construct_helper<T> |
| , A0 const & |
| >::type const |
| construct(A0 const & a0) |
| { |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| >( |
| construct_helper<T>() |
| , boost::ref(a0) |
| ); |
| } |
| |
| template<typename T, typename A0, typename A1> |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| , construct_helper<T> |
| , A0 const & |
| , A1 const & |
| >::type const |
| construct(A0 const & a0, A1 const & a1) |
| { |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| >( |
| construct_helper<T>() |
| , boost::ref(a0) |
| , boost::ref(a1) |
| ); |
| } |
| |
| // ... and so on, up to BOOST_PROTO_MAX_ARITY-1 arguments ...</programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_REPEAT_EX" kind="functionlike"> |
| <macro-parameter name="MACRO"/> |
| <macro-parameter name="typename_A"/> |
| <macro-parameter name="A"/> |
| <macro-parameter name="A_a"/> |
| <macro-parameter name="a"/> |
| <purpose>Repeatedly invoke the specified macro.</purpose> |
| <description> |
| <para> |
| <computeroutput>BOOST_PROTO_REPEAT_EX()</computeroutput> is used to generate the kind of repetitive |
| code that is typical of DSELs built with Proto. |
| <computeroutput>BOOST_PROTO_REPEAT_EX(<replaceable>MACRO</replaceable>, <replaceable>typename_A</replaceable>, <replaceable>A</replaceable>, <replaceable>A_a</replaceable>, <replaceable>a</replaceable>)</computeroutput> |
| is equivalent to: |
| </para> |
| <para> |
| <programlisting><replaceable>MACRO</replaceable>(1, typename_A, A, A_a, a) |
| <replaceable>MACRO</replaceable>(2, typename_A, A, A_a, a) |
| ... |
| <replaceable>MACRO</replaceable>(<macroname>BOOST_PROTO_MAX_ARITY</macroname>, typename_A, A, A_a, a)</programlisting> |
| </para> |
| <para> |
| <emphasis role="bold">Example:</emphasis> |
| </para> |
| <para> |
| See <computeroutput><macroname>BOOST_PROTO_REPEAT_FROM_TO</macroname>()</computeroutput>. |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_REPEAT_FROM_TO_EX" kind="functionlike"> |
| <macro-parameter name="FROM"/> |
| <macro-parameter name="TO"/> |
| <macro-parameter name="MACRO"/> |
| <macro-parameter name="typename_A"/> |
| <macro-parameter name="A"/> |
| <macro-parameter name="A_a"/> |
| <macro-parameter name="a"/> |
| <purpose>Repeatedly invoke the specified macro.</purpose> |
| <description> |
| <para> |
| <computeroutput>BOOST_PROTO_REPEAT_FROM_TO_EX()</computeroutput> is used to generate the kind of repetitive |
| code that is typical of DSELs built with Proto. |
| <computeroutput>BOOST_PROTO_REPEAT_FROM_TO_EX(<replaceable>FROM</replaceable>, <replaceable>TO</replaceable>, <replaceable>MACRO</replaceable>, <replaceable>typename_A</replaceable>, <replaceable>A</replaceable>, <replaceable>A_a</replaceable>, <replaceable>a</replaceable>)</computeroutput> |
| is equivalent to: |
| </para> |
| <para> |
| <programlisting><replaceable>MACRO</replaceable>(<replaceable>FROM</replaceable>, typename_A, A, A_a, a) |
| <replaceable>MACRO</replaceable>(<replaceable>FROM+1</replaceable>, typename_A, A, A_a, a) |
| ... |
| <replaceable>MACRO</replaceable>(<replaceable>TO-1</replaceable>, typename_A, A, A_a, a)</programlisting> |
| </para> |
| <para> |
| <emphasis role="bold">Example:</emphasis> |
| </para> |
| <para> |
| See <computeroutput><macroname>BOOST_PROTO_REPEAT_FROM_TO</macroname>()</computeroutput>. |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_LOCAL_ITERATE" kind="functionlike"> |
| <purpose>Vertical repetition of a user-supplied macro.</purpose> |
| <description> |
| <para> |
| <computeroutput>BOOST_PROTO_LOCAL_ITERATE()</computeroutput> is used generate the kind of repetitive code that is typical |
| of DSELs built with Proto. This macro causes the user-defined macro <computeroutput>BOOST_PROTO_LOCAL_MACRO()</computeroutput> to |
| be expanded with values in the range specified by <computeroutput>BOOST_PROTO_LOCAL_LIMITS</computeroutput>. |
| </para> |
| <para> |
| <emphasis role="bold">Usage:</emphasis> |
| </para> |
| <para> |
| <programlisting>#include BOOST_PROTO_LOCAL_ITERATE()</programlisting> |
| </para> |
| <para> |
| <emphasis role="bold">Example:</emphasis> |
| </para> |
| <para> |
| <programlisting>// Generate BOOST_PROTO_MAX_ARITY-1 overloads of the |
| // following construct() function template. |
| #define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref, A_const_ref_a, ref_a)\ |
| template<typename T, typename_A(N)> \ |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< \ |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> \ |
| , construct_helper<T> \ |
| , A_const_ref(N) \ |
| >::type const \ |
| construct(A_const_ref_a(N)) \ |
| { \ |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< \ |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> \ |
| >( \ |
| construct_helper<T>() \ |
| , ref_a(N) \ |
| ); \ |
| } |
| #define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY)) |
| #include BOOST_PROTO_LOCAL_ITERATE()</programlisting> |
| </para> |
| <para> |
| The above inclusion of <computeroutput>BOOST_PROTO_LOCAL_ITERATE()</computeroutput> |
| will generate the following code: |
| </para> |
| <para> |
| <programlisting>template<typename T, typename A0> |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| , construct_helper<T> |
| , A0 const & |
| >::type const |
| construct(A0 const & a0) |
| { |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| >( |
| construct_helper<T>() |
| , boost::ref(a0) |
| ); |
| } |
| |
| template<typename T, typename A0, typename A1> |
| typename <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| , construct_helper<T> |
| , A0 const & |
| , A1 const & |
| >::type const |
| construct(A0 const & a0, A1 const & a1) |
| { |
| return <functionname alt="boost::proto::make_expr">proto::make_expr</functionname>< |
| <classname alt="boost::proto::tag::function">proto::tag::function</classname> |
| >( |
| construct_helper<T>() |
| , boost::ref(a0) |
| , boost::ref(a1) |
| ); |
| } |
| |
| // ... and so on, up to BOOST_PROTO_MAX_ARITY-1 arguments ...</programlisting> |
| </para> |
| <para> |
| If <computeroutput>BOOST_PROTO_LOCAL_LIMITS</computeroutput> is not defined by the user, it defaults |
| to <computeroutput>(1, BOOST_PROTO_MAX_ARITY)</computeroutput>. |
| </para> |
| <para> |
| At each iteration, <computeroutput>BOOST_PROTO_LOCAL_MACRO()</computeroutput> is invoked with the current |
| iteration number and the following 4 macro parameters: |
| <itemizedlist> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_typename_A</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_A</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_A_a</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_a</computeroutput></listitem> |
| </itemizedlist> |
| If these macros are not defined by the user, they default respectively to: |
| <itemizedlist> |
| <listitem><computeroutput><macroname>BOOST_PROTO_typename_A</macroname></computeroutput></listitem> |
| <listitem><computeroutput><macroname>BOOST_PROTO_A_const_ref</macroname></computeroutput></listitem> |
| <listitem><computeroutput><macroname>BOOST_PROTO_A_const_ref_a</macroname></computeroutput></listitem> |
| <listitem><computeroutput><macroname>BOOST_PROTO_ref_a</macroname></computeroutput></listitem> |
| </itemizedlist> |
| </para> |
| <para> |
| After including <computeroutput>BOOST_PROTO_LOCAL_ITERATE()</computeroutput>, the |
| following macros are automatically undefined: |
| <itemizedlist> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_MACRO</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_LIMITS</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_typename_A</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_A</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_A_a</computeroutput></listitem> |
| <listitem><computeroutput>BOOST_PROTO_LOCAL_a</computeroutput></listitem> |
| </itemizedlist> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_typename_A" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| typename A<subscript>0</subscript>, |
| typename A<subscript>1</subscript>, ... |
| typename A<subscript>N-1</subscript> |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_typename_A(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>typename A<subscript>0</subscript>, typename A<subscript>1</subscript>, ... typename A<subscript>N-1</subscript></programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A_const_ref" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript> const &, |
| A<subscript>1</subscript> const &, ... |
| A<subscript>N-1</subscript> const & |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A_const_ref(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript> const &, A<subscript>1</subscript> const &, ... A<subscript>N-1</subscript> const &</programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A_ref" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript> &, |
| A<subscript>1</subscript> &, ... |
| A<subscript>N-1</subscript> & |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A_ref(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript> &, A<subscript>1</subscript> &, ... A<subscript>N-1</subscript> &</programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript>, |
| A<subscript>1</subscript>, ... |
| A<subscript>N-1</subscript> |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript>, A<subscript>1</subscript>, ... A<subscript>N-1</subscript></programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A_const" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript> const, |
| A<subscript>1</subscript> const, ... |
| A<subscript>N-1</subscript> const |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A_const(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript> const, A<subscript>1</subscript> const, ... A<subscript>N-1</subscript> const</programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A_const_ref_a" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript> const & a<subscript>0</subscript>, |
| A<subscript>1</subscript> const & a<subscript>1</subscript>, ... |
| A<subscript>N-1</subscript> const & a<subscript>N-1</subscript> |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A_const_ref_a(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript> const & a<subscript>0</subscript>, A<subscript>1</subscript> const & a<subscript>1</subscript>, ... A<subscript>N-1</subscript> const & a<subscript>N-1</subscript></programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_A_ref_a" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| A<subscript>0</subscript> & a<subscript>0</subscript>, |
| A<subscript>1</subscript> & a<subscript>1</subscript>, ... |
| A<subscript>N-1</subscript> & a<subscript>N-1</subscript> |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_A_ref_a(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>A<subscript>0</subscript> & a<subscript>0</subscript>, A<subscript>1</subscript> & a<subscript>1</subscript>, ... A<subscript>N-1</subscript> & a<subscript>N-1</subscript></programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_ref_a" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| boost::ref(a<subscript>0</subscript>), |
| boost::ref(a<subscript>1</subscript>), ... |
| boost::ref(a<subscript>N-1</subscript>) |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_ref_a(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>boost::ref(a<subscript>0</subscript>), boost::ref(a<subscript>1</subscript>), ... boost::ref(a<subscript>N-1</subscript>)</programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| <macro name="BOOST_PROTO_a" kind="functionlike"> |
| <macro-parameter name="N"/> |
| <purpose> |
| Generates sequences like |
| <computeroutput> |
| a<subscript>0</subscript>, |
| a<subscript>1</subscript>, ... |
| a<subscript>N-1</subscript> |
| </computeroutput>. |
| </purpose> |
| <description> |
| <para> |
| Intended for use with the <computeroutput><macroname>BOOST_PROTO_REPEAT</macroname>()</computeroutput> |
| and <computeroutput><macroname>BOOST_PROTO_LOCAL_ITERATE</macroname>()</computeroutput> macros. |
| </para> |
| <para> |
| <computeroutput>BOOST_PROTO_a(<replaceable>N</replaceable>)</computeroutput> generates sequences like: |
| </para> |
| <para> |
| <programlisting>a<subscript>0</subscript>, a<subscript>1</subscript>, ... a<subscript>N-1</subscript></programlisting> |
| </para> |
| </description> |
| </macro> |
| |
| </header> |