3 <title>BOOST_PP_LIST_TRANSFORM_D
</title>
4 <link rel=
"stylesheet" type=
"text/css" href=
"../styles.css">
7 <div style=
"margin-left: 0px;">
8 The
<b>BOOST_PP_LIST_TRANSFORM_D
</b> macro transforms each element in a
<i>list
</i> according to a supplied transformation.
9 It reenters
<b>BOOST_PP_WHILE
</b> with maximum efficiency.
13 <b>BOOST_PP_LIST_TRANSFORM_D
</b>(
<i>d
</i>,
<i>op
</i>,
<i>data
</i>,
<i>list
</i>)
19 The next available
<b>BOOST_PP_WHILE
</b> iteration.
23 A ternary predicate of the form
<i>op
</i>(
<i>d
</i>,
<i>data
</i>,
<i>elem
</i>).
24 This transformation is expanded by
<b>BOOST_PP_LIST_TRANSFORM
</b> for each element in
<i>list
</i> with the next available
<b>BOOST_PP_WHILE
</b> iteration,
25 the auxiliary
<i>data
</i>, and the current element in
<i>list
</i>.
29 Auxiliary data passed to
<i>pred
</i>.
33 The
<i>list
</i> to be transformed.
38 This macro expands
<i>op
</i> for each element in
<i>list
</i>.
39 It builds a new
<i>list
</i> out of the results of each call.
40 If, for example,
<i>list
</i> is (
<i>a
</i>, (
<i>b
</i>, (
<i>c
</i>,
<b>BOOST_PP_NIL
</b>))),
41 this macro expands to...
43 (
<i>op
</i>(
<i>d
</i>,
<i>data
</i>,
<i>a
</i>), (
<i>op
</i>(
<i>d
</i>,
<i>data
</i>,
<i>b
</i>), (
<i>op
</i>(
<i>d
</i>,
<i>data
</i>,
<i>c
</i>),
<b>BOOST_PP_NIL
</b>)))
48 <li><a href=
"list_transform.html">BOOST_PP_LIST_TRANSFORM
</a></li>
52 <b>Header:
</b> <a href=
"../headers/list/transform.html"><boost/preprocessor/list/transform.hpp
></a>
56 #include
<<a href=
"../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp
</a>>
57 #include
<<a href=
"../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp
</a>>
58 #include
<<a href=
"../headers/list/transform.html">boost/preprocessor/list/transform.hpp
</a>>
60 #define A (
1, (
2, (
3, (
4,
<a href=
"nil.html">BOOST_PP_NIL
</a>))))
61 #define B (A, (A, (A, (A,
<a href=
"nil.html">BOOST_PP_NIL
</a>))))
63 #define OP_T(d, data, x)
<a href=
"inc.html">BOOST_PP_INC
</a>(x)
64 #define OP(d, state, x) (
<a href=
"list_transform_d.html">BOOST_PP_LIST_TRANSFORM_D
</a>(d, OP_T,
2, x), state)
66 <a href=
"list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT
</a>(OP,
<a href=
"nil.html">BOOST_PP_NIL
</a>, B)
69 ((
2, (
3, (
4, (
5,
<a href=
"nil.html">BOOST_PP_NIL
</a>)))), ((
2, (
3, (
4, (
5,
<a href=
"nil.html">BOOST_PP_NIL
</a>)))),
70 ((
2, (
3, (
4, (
5,
<a href=
"nil.html">BOOST_PP_NIL
</a>)))), ((
2, (
3, (
4, (
5,
<a href=
"nil.html">BOOST_PP_NIL
</a>)))),
71 <a href=
"nil.html">BOOST_PP_NIL
</a>))))
75 <div style=
"margin-left: 0px;">
76 <i>© Copyright
<a href=
"http://www.housemarque.com" target=
"_top">Housemarque Oy
</a> 2002</i>
77 </br><i>© Copyright Paul Mensonides
2002</i>
79 <div style=
"margin-left: 0px;">
80 <p><small>Distributed under the Boost Software License, Version
1.0. (See
81 accompanying file
<a href=
"../../../../LICENSE_1_0.txt">LICENSE_1_0.txt
</a> or
83 "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt
</a>)
</small></p>