3 <title>BOOST_PP_LIST_FOR_EACH_I_R
</title>
4 <link rel=
"stylesheet" type=
"text/css" href=
"../styles.css">
7 <div style=
"margin-left: 0px;">
8 The
<b>BOOST_PP_LIST_FOR_EACH_I_R
</b> macro repeats a macro for each element in a
<i>list
</i>.
9 It reenters
<b>BOOST_PP_FOR
</b> with maximum efficiency.
13 <b>BOOST_PP_LIST_FOR_EACH_I_R
</b>(
<i>r
</i>,
<i>macro
</i>,
<i>data
</i>,
<i>list
</i>)
19 The next available
<b>BOOST_PP_FOR
</b> repetition.
23 A macro of the for
<i>macro
</i>(
<i>r
</i>,
<i>data
</i>,
<i>i
</i>,
<i>elem
</i>).
24 This macro is expanded by
<b>BOOST_PP_LIST_FOR_EACH_I
</b> with each element in
<i>list
</i>.
25 It is expanded with the next available
<b>BOOST_PP_FOR
</b> repetition, the auxiliary
<i>data
</i>, the index of the current element, and the current element.
29 Auxiliary data passed to
<i>macro
</i>.
33 The
<i>list
</i> for which
<i>macro
</i> will be invoked on each element.
38 This macro is a repetition construct.
39 If
<i>list
</i> is (
<i>a
</i>, (
<i>b
</i>, (
<i>c
</i>,
<b>BOOST_PP_NIL
</b>))), it expands to the sequence:
41 <i>macro
</i>(
<i>r
</i>,
<i>data
</i>,
<i>0</i>,
<i>a
</i>)
<i>macro
</i>(
<i>r
</i>,
<i>data
</i>,
<i>1</i>,
<i>b
</i>)
<i>macro
</i>(
<i>r
</i>,
<i>data
</i>,
<i>2</i>,
<i>c
</i>)
46 <li><a href=
"list_for_each_i.html">BOOST_PP_LIST_FOR_EACH_I
</a></li>
50 <b>Header:
</b> <a href=
"../headers/list/for_each_i.html"><boost/preprocessor/list/for_each_i.hpp
></a>
54 #include
<<a href=
"../headers/cat.html">boost/preprocessor/cat.hpp
</a>>
55 #include
<<a href=
"../headers/list/adt.html">boost/preprocessor/list/adt.hpp
</a>>
56 #include
<<a href=
"../headers/list/for_each_i.html">boost/preprocessor/list/for_each_i.hpp
</a>>
57 #include
<<a href=
"../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp
</a>>
59 #define LIST (x, (y, (z,
<a href=
"nil.html">BOOST_PP_NIL
</a>)))
61 #define MACRO_2(r, data, i, elem)
<a href=
"cat.html">BOOST_PP_CAT
</a>(elem, i)
63 #define PRED(r, state)
<a href=
"list_is_cons.html">BOOST_PP_LIST_IS_CONS
</a>(state)
64 #define OP(r, state)
<a href=
"list_rest.html">BOOST_PP_LIST_REST
</a>(state)
65 #define MACRO(r, state) [
<a href=
"list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R
</a>(r, MACRO_2, _, state) ]
67 <a href=
"for.html">BOOST_PP_FOR
</a>(LIST, PRED, OP, MACRO)
68 // expands to [x0 y1 z2] [y0 z1] [z0]
71 <div style=
"margin-left: 0px;">
72 <i>© Copyright
<a href=
"http://www.housemarque.com" target=
"_top">Housemarque Oy
</a> 2002</i>
73 </br><i>© Copyright Paul Mensonides
2002</i>
75 <div style=
"margin-left: 0px;">
76 <p><small>Distributed under the Boost Software License, Version
1.0. (See
77 accompanying file
<a href=
"../../../../LICENSE_1_0.txt">LICENSE_1_0.txt
</a> or
79 "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt
</a>)
</small></p>