mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-07-15 13:36:33 +02:00
60 lines
1.7 KiB
HTML
60 lines
1.7 KiB
HTML
<html>
|
|
<head>
|
|
<title>BOOST_PP_LIST_ENUM_R</title>
|
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
|
<script language="javascript" type="text/javascript" src="../scripts.js"></script>
|
|
</head>
|
|
<body onload="init('sample');">
|
|
<div style="margin-left: 0px;">
|
|
The <b>BOOST_PP_LIST_ENUM_R</b> macro converts a <i>list</i> to a comma-separated list.
|
|
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
|
</div>
|
|
<h4>Usage</h4>
|
|
<div class="code">
|
|
<b>BOOST_PP_LIST_ENUM_R</b>(<i>r</i>, <i>list</i>)
|
|
</div>
|
|
<h4>Arguments</h4>
|
|
<dl>
|
|
<dt>r</dt>
|
|
<dd>
|
|
The next available <b>BOOST_PP_FOR</b> repetition.
|
|
</dd>
|
|
<dt>list</dt>
|
|
<dd>
|
|
The <i>list</i> to be converted.
|
|
</dd>
|
|
</dl>
|
|
<h4>Remarks</h4>
|
|
<div>
|
|
If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
|
|
this macro will produce:
|
|
<div>
|
|
<i>a</i>, <i>b</i>, <i>c</i>
|
|
</div>
|
|
</div>
|
|
<h4>See Also</h4>
|
|
<ul>
|
|
<li><a href="list_enum.html">BOOST_PP_LIST_ENUM</a></li>
|
|
</ul>
|
|
<h4>Requirements</h4>
|
|
<div>
|
|
<b>Header:</b> <a href="../headers/list/enum.hpp.html"><boost/preprocessor/list/enum.hpp></a>
|
|
</div>
|
|
<h4><a class="local" onclick="toggle('sample');" onmouseover="change(this);" onmouseout="revert(this);">Sample Code</a></h4>
|
|
<div id="sample"><pre>
|
|
#include <boost/preprocessor/list/adt.hpp>
|
|
#include <boost/preprocessor/repetition/for.hpp>
|
|
#include <boost/preprocessor/list/enum.hpp>
|
|
|
|
#define LIST (x, (y, (z, BOOST_PP_NIL)))
|
|
|
|
#define PRED(r, state) BOOST_PP_LIST_IS_CONS(state)
|
|
#define OP(r, state) BOOST_PP_LIST_REST(state)
|
|
#define MACRO(r, state) [ BOOST_PP_LIST_ENUM_R(r, state) ]
|
|
|
|
BOOST_PP_FOR(LIST, PRED, OP, MACRO)
|
|
// expands to [x, y, z] [y, z] [z]
|
|
<pre></div>
|
|
</body>
|
|
</html>
|