3 <title>BOOST_PP_ENUM_TRAILING_z
</title>
4 <link rel=
"stylesheet" type=
"text/css" href=
"../styles.css">
7 <div style=
"margin-left: 0px;">
8 The
<b>BOOST_PP_ENUM_TRAILING_
<i>z
</i></b> macro represents a reentry into the
<b>BOOST_PP_ENUM_TRAILING
</b> repetition construct.
12 <b>BOOST_PP_ENUM_TRAILING_
</b> ##
<i>z
</i>(
<i>count
</i>,
<i>macro
</i>,
<i>data
</i>)
18 The next available
<b>BOOST_PP_REPEAT
</b> dimension.
22 The number of repetitious calls to
<i>macro
</i>.
23 Valid values range from
<i>0</i> to
<b>BOOST_PP_LIMIT_REPEAT
</b>.
27 A ternary operation of the form
<i>macro
</i>(
<i>z
</i>,
<i>n
</i>,
<i>data
</i>).
28 This macro is expanded by
<b>BOOST_PP_ENUM
</b> with the next available repetition depth,
29 the current repetition number, and the auxiliary
<i>data
</i> argument.
33 Auxiliary data passed to
<i>macro
</i>.
38 This macro expands to the sequence:
40 ,
<i>macro
</i>(
<i>z
</i>,
<i>0</i>,
<i>data
</i>),
<i>macro
</i>(
<i>z
</i>,
<i>1</i>,
<i>data
</i>), ...
<i>macro
</i>(
<i>z
</i>,
<i>count
</i> -
<i>1</i>,
<i>data
</i>)
44 At certain times, it may be necessary to perform the concatenation with
<b>BOOST_PP_CAT
</b> rather than the preprocessor token-pasting operator.
45 This happens when the
<i>z
</i> value is a macro invocation itself.
46 It needs a delay to allow it to expand.
47 The syntax in such a scenario becomes:
49 <b>BOOST_PP_CAT
</b>(
<b>BOOST_PP_ENUM_TRAILING_
</b>,
<i>z
</i>)(
<i>count
</i>,
<i>macro
</i>,
<i>data
</i>)
54 <li><a href=
"cat.html">BOOST_PP_CAT
</a></li>
55 <li><a href=
"enum_trailing.html">BOOST_PP_ENUM_TRAILING
</a></li>
56 <li><a href=
"limit_repeat.html">BOOST_PP_LIMIT_REPEAT
</a></li>
60 <b>Header:
</b> <a href=
"../headers/repetition/enum_trailing.html"><boost/preprocessor/repetition/enum_trailing.hpp
></a>
64 #include
<<a href=
"../headers/repetition/enum.html">boost/preprocessor/repetition/enum.hpp
</a>>
65 #include
<<a href=
"../headers/repetition/enum_trailing.html">boost/preprocessor/repetition/enum_trailing.hpp
</a>>
67 #define TEXT(z, n, text) text
69 #define TTP(z, n, _) \
71 class
<a href=
"enum_z.html">BOOST_PP_ENUM_TRAILING_
</a> ## z(n, TEXT, class) \
76 <a href=
"enum.html">BOOST_PP_ENUM
</a>(
3, TTP, nil)
79 template
<class
> class T0,
80 template
<class, class
> class T1,
81 template
<class, class, class
> class T2
85 <div style=
"margin-left: 0px;">
86 <i>© Copyright
<a href=
"http://www.housemarque.com" target=
"_top">Housemarque Oy
</a> 2002</i>
87 </br><i>© Copyright Paul Mensonides
2002</i>
89 <div style=
"margin-left: 0px;">
90 <p><small>Distributed under the Boost Software License, Version
1.0. (See
91 accompanying file
<a href=
"../../../../LICENSE_1_0.txt">LICENSE_1_0.txt
</a> or
93 "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt
</a>)
</small></p>