3 <title>BOOST_PP_REPEAT_FROM_TO
</title>
4 <link rel=
"stylesheet" type=
"text/css" href=
"../styles.css">
7 <div style=
"margin-left: 0px;">
8 The
<b>BOOST_PP_REPEAT_FROM_TO
</b> macro represents a fast horizontal repetition construct.
12 <b>BOOST_PP_REPEAT_FROM_TO
</b>(
<i>first
</i>,
<i>last
</i>,
<i>macro
</i>,
<i>data
</i>)
18 The lower bound of the repetition.
19 Valid values range from
<i>0</i> to
<b>BOOST_PP_LIMIT_MAG
</b>.
23 The upper bound of the repetition.
24 Valid values range from
<i>0</i> to
<b>BOOST_PP_LIMIT_MAG
</b>.
28 A ternary operation of the form
<i>macro
</i>(
<i>z
</i>,
<i>n
</i>,
<i>data
</i>).
29 This macro is expanded by
<b>BOOST_PP_REPEAT
</b> with the next available repetition depth,
30 the current repetition number, and the auxiliary
<i>data
</i> argument.
34 Auxiliary data passed to
<i>macro
</i>.
39 This macro expands to the sequence:
41 <i>macro
</i>(
<i>z
</i>,
<i>first
</i>,
<i>data
</i>)
<i>macro
</i>(
<i>z
</i>,
<i>first
</i> +
<i>1</i>,
<i>data
</i>) ...
<i>macro
</i>(
<i>z
</i>,
<i>last
</i> -
<i>1</i>,
<i>data
</i>)
45 The number of repetitions (i.e.
<i>last
</i> -
<i>first
</i>) must not exceed
<b>BOOST_PP_LIMIT_REPEAT
</b>.
48 The
<i>z
</i> value that is passed to
<i>macro
</i> represents the next available repetition dimension.
49 Other macros that have
<b>_Z
</b> suffix variants internally use
<b>BOOST_PP_REPEAT
</b>--for example,
<b>BOOST_PP_ENUM_PARAMS
</b> and
<b>BOOST_PP_ENUM_PARAMS_Z
</b>.
50 Using these
<b>_Z
</b> versions is not strictly necessary, but passing the
<i>z
</i> value (that is passed to
<i>macro
</i>) to these macros allows them to reenter
<b>BOOST_PP_REPEAT
</b> with maximum efficiency.
53 To directly use this
<i>z
</i> value, rather than simply passing it to another macro, see
<b>BOOST_PP_REPEAT_FROM_TO_
<i>z
</i></b>.
56 Previously, this macro could not be used recursively inside
<b>BOOST_PP_REPEAT
</b>.
57 This limitation no longer exists, as the library can automatically detect the next available repetition depth.
60 This macro also uses
<b>BOOST_PP_WHILE
</b>.
61 Because of this, there are also two variants of this macro for ideal reentrance into
<b>BOOST_PP_WHILE
</b>,
62 <b>BOOST_PP_REPEAT_FROM_TO_D
</b> and
<b>BOOST_PP_REPEAT_FROM_TO_D_
<i>z
</i>.
66 <li><a href=
"limit_mag.html">BOOST_PP_LIMIT_MAG
</a></li>
67 <li><a href=
"limit_repeat.html">BOOST_PP_LIMIT_REPEAT
</a></li>
68 <li><a href=
"repeat_from_to_d.html">BOOST_PP_REPEAT_FROM_TO_D
</a></li>
69 <li><a href=
"repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_
<i>z
</i></a></li>
70 <li><a href=
"repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_
<i>z
</i></a></li>
74 <b>Header:
</b> <a href=
"../headers/repetition/repeat_from_to.html"><boost/preprocessor/repetition/repeat_from_to.hpp
></a>
78 #include
<<a href=
"../headers/cat.html">boost/preprocessor/cat.hpp
</a>>
79 #include
<<a href=
"../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp
</a>>
81 #define DECL(z, n, text)
<a href=
"cat.html">BOOST_PP_CAT
</a>(text, n) = n;
83 <a href=
"repeat_from_to.html">BOOST_PP_REPEAT_FROM_TO
</a>(
5,
10, DECL, int x)
86 int x5 =
5; int x6 =
6; int x7 =
7;
87 int x8 =
8; int x9 =
9;
91 <div style=
"margin-left: 0px;">
92 <i>© Copyright
<a href=
"http://www.housemarque.com" target=
"_top">Housemarque Oy
</a> 2002</i>
93 </br><i>© Copyright Paul Mensonides
2002</i>
95 <div style=
"margin-left: 0px;">
96 <p><small>Distributed under the Boost Software License, Version
1.0. (See
97 accompanying file
<a href=
"../../../../LICENSE_1_0.txt">LICENSE_1_0.txt
</a> or
99 "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt
</a>)
</small></p>