mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-07-29 19:57:14 +02:00
set -> seq
[SVN r16150]
This commit is contained in:
@ -1,33 +1,43 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> is a user-defined macro that determines whether <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i> state information.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<head>
|
||||
<title>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> is a user-defined macro that
|
||||
determines whether <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i> state
|
||||
information.
|
||||
</div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
#define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> <i>n</i>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>n</dt>
|
||||
<dd>
|
||||
The value that determines if <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i> information.
|
||||
This value must be <i>0</i> or <i>1</i>.
|
||||
The value that determines if <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i>
|
||||
information. This value must be <i>0</i> or <i>1</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
If <i>n</i> is <i>1</i>, <b>BOOST_PP_LINE</b> will output extended data.
|
||||
By default, this macro is set to <i>0</i>.
|
||||
If <i>n</i> is <i>1</i>, <b>BOOST_PP_LINE</b> will output extended data.
|
||||
By default, this macro is seq to <i>0</i>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="line.html">BOOST_PP_LINE</a></li>
|
||||
<li>
|
||||
<a href="line.html">BOOST_PP_LINE</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,23 +1,30 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_SET</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_SET</b> macro defines the maximum <i>set</i> size supported by the library.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_SET</b>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_SEQ</b> macro defines the maximum <i>seq</i> size
|
||||
supported by the library.
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_SEQ</b>
|
||||
</div>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.hpp.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,45 +1,60 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_CAT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_CAT</b> macro concatenates all elements in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_CAT</b>(<i>list</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_CAT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_CAT</b> macro concatenates all elements in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_CAT</b>(<i>list</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> whose elements are to be concatenated.
|
||||
The <i>seq</i> whose elements are to be concatenated.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
Elements are concatenated left-to-right starting with index <i>0</i>.
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_CAT_S</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_CAT_S</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_cat_s.html">BOOST_PP_SET_CAT_S</a></li>
|
||||
<li>
|
||||
<a href="seq_cat_s.html">BOOST_PP_SEQ_CAT_S</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/cat.hpp.html"><boost/preprocessor/set/cat.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/cat.hpp.html"><boost/preprocessor/seq/cat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/cat.hpp.html">boost/preprocessor/set/cat.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/cat.hpp.html">boost/preprocessor/seq/cat.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_cat.html">BOOST_PP_SET_CAT</a>(SET) // expands to abc
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_cat.html">BOOST_PP_SEQ_CAT</a>(SEQ) // expands to abc
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,39 +1,50 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_CAT_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_CAT_S</b> macro concatenates all elements in a <i>set</i>.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_CAT_S</b>(<i>s</i>, <i>list</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_CAT_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_CAT_S</b> macro concatenates all elements in a <i>seq</i>.
|
||||
It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> whose elements are to be concatenated.
|
||||
The <i>seq</i> whose elements are to be concatenated.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
Elements are concatenated left-to-right starting with index <i>0</i>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_cat.html">BOOST_PP_SET_CAT</a></li>
|
||||
<li>
|
||||
<a href="seq_cat.html">BOOST_PP_SEQ_CAT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/cat.hpp.html"><boost/preprocessor/set/cat.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/cat.hpp.html"><boost/preprocessor/seq/cat.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,42 +1,54 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_ELEM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_ELEM</b> macro extracts an element from a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_ELEM</b>(<i>i</i>, <i>list</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_ELEM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_ELEM</b> macro extracts an element from a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The zero-based index of the element to be extracted.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which an element is to be extracted.
|
||||
The <i>seq</i> from which an element is to be extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
The index <i>i</i> must be in the range of <i>0</i> to <b>BOOST_PP_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
||||
The index <i>i</i> must be in the range of <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>)
|
||||
- <i>1</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/elem.hpp.html"><boost/preprocessor/set/elem.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/elem.hpp.html"><boost/preprocessor/seq/elem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/elem.hpp.html">boost/preprocessor/set/elem.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/elem.hpp.html">boost/preprocessor/seq/elem.hpp</a>>
|
||||
|
||||
<a href="set_elem.html">BOOST_PP_SET_ELEM</a>(1, (a)(b)(c)) // expands to b
|
||||
<a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(1, (a)(b)(c)) // expands to b
|
||||
|
||||
#define SET \
|
||||
#define SEQ \
|
||||
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
|
||||
(10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
|
||||
(20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
|
||||
@ -49,7 +61,8 @@
|
||||
(90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
|
||||
/**/
|
||||
|
||||
<a href="set_elem.html">BOOST_PP_SET_ELEM</a>(88, SET) // expands to 88
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(88, SEQ) // expands to 88
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,42 +1,55 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_ENUM</b> macro enumerates the elements in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_ENUM</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_ENUM</b> macro enumerates the elements in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_ENUM</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> from whose elements are to be enumerated.
|
||||
The <i>seq</i> from whose elements are to be enumerated.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands to a comma-separated list of the elements in <i>set</i>.
|
||||
For example, <b>BOOST_PP_SET_ENUM</b>((<i>x</i>)(<i>y</i>)(<i>z</i>)) expands to...
|
||||
This macro expands to a comma-separated list of the elements in <i>seq</i>.
|
||||
For example, <b>BOOST_PP_SEQ_ENUM</b>((<i>x</i>)(<i>y</i>)(<i>z</i>)) expands
|
||||
to...
|
||||
<div>
|
||||
<i>x</i>, <i>y</i>, <i>z</i>
|
||||
</div>
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/enum.hpp.html"><boost/preprocessor/set/enum.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/enum.hpp.html"><boost/preprocessor/seq/enum.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/enum.hpp.html">boost/preprocessor/set/enum.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/enum.hpp.html">boost/preprocessor/seq/enum.hpp</a>>
|
||||
|
||||
#define SET (B)(O)(O)(S)(T)
|
||||
#define SEQ (B)(O)(O)(S)(T)
|
||||
|
||||
<a href="set_enum.html">BOOST_PP_SET_ENUM</a>(SET) // expands to B, O, O, S, T
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_enum.html">BOOST_PP_SEQ_ENUM</a>(SEQ) // expands to B, O, O, S, T
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,63 +1,82 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FILTER</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FILTER</b> macro filters a <i>set</i> according to a supplied criterion.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FILTER</b>(<i>pred</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FILTER</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FILTER</b> macro filters a <i>seq</i> according to a
|
||||
supplied criterion.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FILTER</b>(<i>pred</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>pred</dt>
|
||||
<dd>
|
||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_SET_FILTER</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
||||
This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>set</i>.
|
||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
|
||||
with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>,
|
||||
and the current element in <i>seq</i>. This macro must return a integral
|
||||
value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>. If this
|
||||
predicate expands to non-zero for a certain element, that element is included
|
||||
in the resulting <i>seq</i>.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>pred</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be filtered.
|
||||
The <i>seq</i> to be filtered.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands <i>pred</i> for each element in <i>set</i>.
|
||||
It builds a new <i>set</i> out of each element for which <i>pred</i> returns non-zero.
|
||||
This macro expands <i>pred</i> for each element in <i>seq</i>. It builds
|
||||
a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_FILTER_S</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_FILTER_S</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="set_filter_s.html">BOOST_PP_SET_FILTER_S</a></li>
|
||||
<li>
|
||||
<a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li>
|
||||
<a href="seq_filter_s.html">BOOST_PP_SEQ_FILTER_S</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/filter.hpp.html"><boost/preprocessor/set/filter.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/filter.hpp.html"><boost/preprocessor/seq/filter.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/comparison/less_equal.hpp.html">boost/preprocessor/comparison/less_equal.hpp</a>>
|
||||
#include <<a href="../headers/set/filter.hpp.html">boost/preprocessor/set/filter.hpp</a>>
|
||||
#include <<a href="../headers/seq/filter.hpp.html">boost/preprocessor/seq/filter.hpp</a>>
|
||||
|
||||
#define SET (1)(3)(2)(5)
|
||||
#define SEQ (1)(3)(2)(5)
|
||||
|
||||
#define PRED(s, data, elem) <a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(elem, data)
|
||||
|
||||
<a href="set_filter.html">BOOST_PP_SET_FILTER</a>(PRED, 3, SET)
|
||||
<a href="seq_filter.html">BOOST_PP_SEQ_FILTER</a>(PRED, 3, SEQ)
|
||||
// expands to (1)(3)(2)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,53 +1,68 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FILTER_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FILTER_S</b> macro filters a <i>set</i> according to a supplied criterion.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FILTER_S</b>(<i>s</i>, <i>pred</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FILTER_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FILTER_S</b> macro filters a <i>seq</i> according to a
|
||||
supplied criterion. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with
|
||||
maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FILTER_S</b>(<i>s</i>, <i>pred</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>pred</dt>
|
||||
<dd>
|
||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_SET_FILTER</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
||||
This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>set</i>.
|
||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
|
||||
with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>,
|
||||
and the current element in <i>seq</i>. This macro must return a integral
|
||||
value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>. If this
|
||||
predicate expands to non-zero for a certain element, that element is included
|
||||
in the resulting <i>seq</i>.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>pred</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be filtered.
|
||||
The <i>seq</i> to be filtered.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands <i>pred</i> for each element in <i>set</i>.
|
||||
It builds a new <i>set</i> out of each element for which <i>pred</i> returns non-zero.
|
||||
This macro expands <i>pred</i> for each element in <i>seq</i>. It builds
|
||||
a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="set_filter.html">BOOST_PP_SET_FILTER</a></li>
|
||||
<li>
|
||||
<a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li>
|
||||
<a href="seq_filter.html">BOOST_PP_SEQ_FILTER</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/filter.hpp.html"><boost/preprocessor/set/filter.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/filter.hpp.html"><boost/preprocessor/seq/filter.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,17 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FIRST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FIRST_N</b> macro expands to a <i>set</i> of the first <i>n</i> elements of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FIRST_N</b>(<i>n</i>, <i>list</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FIRST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FIRST_N</b> macro expands to a <i>seq</i> of the first <i>n</i>
|
||||
elements of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>n</dt>
|
||||
<dd>
|
||||
@ -19,28 +24,40 @@
|
||||
</dd>
|
||||
<dt>list</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which the elements are extracted.
|
||||
The <i>seq</i> from which the elements are extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro extracts <i>n</i> elements from the beginning of <i>set</i> and returns them as a new <i>set</i>
|
||||
This macro extracts <i>n</i> elements from the beginning of <i>seq</i> and
|
||||
returns them as a new <i>seq</i>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_rest_n.html">BOOST_PP_SET_REST_N</a></li>
|
||||
<li>
|
||||
<a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/first_n.hpp.html"><boost/preprocessor/set/first_n.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/first_n.hpp.html"><boost/preprocessor/seq/first_n.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/first_n.hpp.html">boost/preprocessor/set/first_n.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/first_n.hpp.html">boost/preprocessor/seq/first_n.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)(d)(e)
|
||||
#define SEQ (a)(b)(c)(d)(e)
|
||||
|
||||
<a href="set_first_n.html">BOOST_PP_SET_FIRST_N</a>(2, SET) // expands to (a)(b)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>(2, SEQ) // expands to (a)(b)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,62 +1,79 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOLD_LEFT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOLD_LEFT</b> macro folds (or accumulates) the elements of a <i>set</i> left-to-right.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOLD_LEFT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOLD_LEFT</b> macro folds (or accumulates) the elements of
|
||||
a <i>seq</i> left-to-right.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>set</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SET_FOLD_LEFT</b> with the next available fold step,
|
||||
the current <i>state</i>, and the current element.
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next
|
||||
available fold step, the current <i>state</i>, and the current element.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state of the fold.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be folded.
|
||||
The <i>seq</i> to be folded.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
For the <i>set</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
<div>
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>),
|
||||
<i>1</i>), <i>2</i>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, <b>BOOST_PP_SET_FOLD_LEFT</b> can be reentered with <b>BOOST_PP_SET_FOLD_LEFT_<i>s</i></b>.
|
||||
For maximum efficiency, <b>BOOST_PP_SEQ_FOLD_LEFT</b> can be reentered with <b>BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_fold_left_s.html">BOOST_PP_SET_FOLD_LEFT_<i>s</i></a></li>
|
||||
<li>
|
||||
<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/fold_left.hpp.html"><boost/preprocessor/set/fold_left.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/fold_left.hpp.html"><boost/preprocessor/seq/fold_left.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/fold_left.hpp.html">boost/preprocessor/set/fold_left.hpp</a>>
|
||||
#include <<a href="../headers/seq/fold_left.hpp.html">boost/preprocessor/seq/fold_left.hpp</a>>
|
||||
|
||||
#define SET (b)(o)(o)(s)(t)
|
||||
#define SEQ (b)(o)(o)(s)(t)
|
||||
|
||||
#define OP(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
|
||||
|
||||
<a href="set_fold_left.html">BOOST_PP_SET_FOLD_LEFT</a>(OP, <a href="set_head.html">BOOST_PP_SET_HEAD</a>(SET), <a href="set_tail.html">BOOST_PP_SET_TAIL</a>(SET)) // expands to boost
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ), <a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ)) // expands to boost
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,68 +1,85 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOLD_LEFT_s</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOLD_LEFT_<i>s</i></b> macro folds (or accumulates) the elements of a <i>set</i> left-to-right.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOLD_LEFT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOLD_LEFT_s</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></b> macro folds (or accumulates) the
|
||||
elements of a <i>seq</i> left-to-right. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
|
||||
with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOLD_LEFT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>set</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SET_FOLD_LEFT</b> with the next available fold step,
|
||||
the current <i>state</i>, and the current element.
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next
|
||||
available fold step, the current <i>state</i>, and the current element.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state of the fold.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be folded.
|
||||
The <i>seq</i> to be folded.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
For the <i>set</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
<div>
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>),
|
||||
<i>1</i>), <i>2</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_fold_left.html">BOOST_PP_SET_FOLD_LEFT</a></li>
|
||||
<li>
|
||||
<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/fold_left.hpp.html"><boost/preprocessor/set/fold_left.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/fold_left.hpp.html"><boost/preprocessor/seq/fold_left.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/fold_left.hpp.html">boost/preprocessor/set/fold_left.hpp</a>>
|
||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
||||
#include <<a href="../headers/seq/fold_left.hpp.html">boost/preprocessor/seq/fold_left.hpp</a>>
|
||||
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||
|
||||
#define S1 (a)(b)(c)
|
||||
#define S2 (S1)(S1)(S1)
|
||||
|
||||
#define OP(s, state, x) state (<a href="set_fold_left_s.html">BOOST_PP_SET_FOLD_LEFT_</a> ## s(OP_2, _, x))
|
||||
#define OP(s, state, x) state (<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_</a> ## s(OP_2, _, x))
|
||||
#define OP_2(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
|
||||
|
||||
<a href="set_fold_left.html">BOOST_PP_SET_FOLD_LEFT</a>(OP, <a href="set_nil.html">BOOST_PP_SET_NIL</a>, S2)
|
||||
<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>, S2)
|
||||
// expands to (_abc)(_abc)(_abc)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,64 +1,81 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOLD_RIGHT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOLD_RIGHT</b> macro folds (or accumulates) the elements of a <i>set</i> right-to-left.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOLD_RIGHT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOLD_RIGHT</b> macro folds (or accumulates) the elements of
|
||||
a <i>seq</i> right-to-left.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>set</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SET_FOLD_RIGHT</b> with the next available fold step,
|
||||
the current <i>state</i>, and the current element.
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next
|
||||
available fold step, the current <i>state</i>, and the current element.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state of the fold.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be folded.
|
||||
The <i>seq</i> to be folded.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
For the <i>set</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
<div>
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>), <i>1</i>), <i>0</i>)
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>),
|
||||
<i>1</i>), <i>0</i>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, <b>BOOST_PP_SET_FOLD_RIGHT</b> can be reentered with <b>BOOST_PP_SET_FOLD_RIGHT_<i>s</i></b>.
|
||||
For maximum efficiency, <b>BOOST_PP_SEQ_FOLD_RIGHT</b> can be reentered with <b>BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_fold_right_s.html">BOOST_PP_SET_FOLD_RIGHT_<i>s</i></a></li>
|
||||
<li>
|
||||
<a href="seq_fold_right_s.html">BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/fold_right.hpp.html"><boost/preprocessor/set/fold_right.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/fold_right.hpp.html"><boost/preprocessor/seq/fold_right.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/elem.hpp.html">boost/preprocessor/set/elem.hpp</a>>
|
||||
#include <<a href="../headers/set/fold_right.hpp.html">boost/preprocessor/set/fold_right.hpp</a>>
|
||||
#include <<a href="../headers/set/pop_back.hpp.html">boost/preprocessor/set/pop_back.hpp</a>>
|
||||
#include <<a href="../headers/seq/elem.hpp.html">boost/preprocessor/seq/elem.hpp</a>>
|
||||
#include <<a href="../headers/seq/fold_right.hpp.html">boost/preprocessor/seq/fold_right.hpp</a>>
|
||||
#include <<a href="../headers/seq/pop_back.hpp.html">boost/preprocessor/seq/pop_back.hpp</a>>
|
||||
|
||||
#define SET (t)(s)(o)(o)(b)
|
||||
#define SEQ (t)(s)(o)(o)(b)
|
||||
|
||||
#define OP(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
|
||||
|
||||
<a href="set_fold_right.html">BOOST_PP_SET_FOLD_RIGHT</a>(OP, <a href="set_elem.html">BOOST_PP_SET_ELEM</a>(4, SET), <a href="set_pop_back.html">BOOST_PP_SET_POP_BACK</a>(SET)) // expands to boost
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a>(OP, <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(4, SEQ), <a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a>(SEQ)) // expands to boost
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,69 +1,86 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOLD_RIGHT_s</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOLD_RIGHT_<i>s</i></b> macro folds (or accumulates) the elements of a <i>set</i> right-to-left.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_RIGHT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOLD_RIGHT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOLD_RIGHT_s</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></b> macro folds (or accumulates) the
|
||||
elements of a <i>seq</i> right-to-left. It reenters <b>BOOST_PP_SEQ_FOLD_RIGHT</b>
|
||||
with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOLD_RIGHT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>set</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SET_FOLD_RIGHT</b> with the next available fold step,
|
||||
the current <i>state</i>, and the current element.
|
||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
||||
This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.
|
||||
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next
|
||||
available fold step, the current <i>state</i>, and the current element.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state of the fold.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be folded.
|
||||
The <i>seq</i> to be folded.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
For the <i>set</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
|
||||
<div>
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>), <i>1</i>), <i>0</i>)
|
||||
<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>),
|
||||
<i>1</i>), <i>0</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_fold_right.html">BOOST_PP_SET_FOLD_RIGHT</a></li>
|
||||
<li>
|
||||
<a href="seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/fold_right.hpp.html"><boost/preprocessor/set/fold_right.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/fold_right.hpp.html"><boost/preprocessor/seq/fold_right.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/fold_left.hpp.html">boost/preprocessor/set/fold_left.hpp</a>>
|
||||
#include <<a href="../headers/set/fold_right.hpp.html">boost/preprocessor/set/fold_right.hpp</a>>
|
||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
||||
#include <<a href="../headers/seq/fold_left.hpp.html">boost/preprocessor/seq/fold_left.hpp</a>>
|
||||
#include <<a href="../headers/seq/fold_right.hpp.html">boost/preprocessor/seq/fold_right.hpp</a>>
|
||||
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||
|
||||
#define S1 (a)(b)(c)
|
||||
#define S2 (S1)(S1)(S1)
|
||||
|
||||
#define OP(s, state, x) state (<a href="set_fold_left_s.html">BOOST_PP_SET_FOLD_RIGHT_</a> ## s(OP_2, _, x))
|
||||
#define OP(s, state, x) state (<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_RIGHT_</a> ## s(OP_2, _, x))
|
||||
#define OP_2(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
|
||||
|
||||
<a href="set_fold_left.html">BOOST_PP_SET_FOLD_LEFT</a>(OP, <a href="set_nil.html">BOOST_PP_SET_NIL</a>, S2)
|
||||
<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>, S2)
|
||||
// expands to (_cba)(_cba)(_cba)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,62 +1,79 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH</b> macro repeats a macro for each element in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH</b> macro repeats a macro for each element in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SET_FOR_EACH</b> with each element in <i>set</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, and the current element.
|
||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH</b> with each element in <i>seq</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the
|
||||
auxiliary <i>data</i>, and the current element.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>macro</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> for which <i>macro</i> will be invoked on each element.
|
||||
The <i>seq</i> for which <i>macro</i> will be invoked on each element.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
||||
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
it expands to the sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
|
||||
<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
|
||||
<i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_FOR_EACH_R</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_R</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each_r.html">BOOST_PP_SET_FOR_EACH_R</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each.hpp.html"><boost/preprocessor/set/for_each.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each.hpp.html"><boost/preprocessor/seq/for_each.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/for_each.hpp.html">boost/preprocessor/set/for_each.hpp</a>>
|
||||
#include <<a href="../headers/seq/for_each.hpp.html">boost/preprocessor/seq/for_each.hpp</a>>
|
||||
|
||||
#define SET (w)(x)(y)(z)
|
||||
#define SEQ (w)(x)(y)(z)
|
||||
|
||||
#define MACRO(r, data, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, data)
|
||||
|
||||
<a href="set_for_each.html">BOOST_PP_SET_FOR_EACH</a>(MACRO, _, SET) // expands to w_ x_ y_ z_
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a>(MACRO, _, SEQ) // expands to w_ x_ y_ z_
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,62 +1,80 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH_I</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH_I</b> macro repeats a macro for each element in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH_I</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH_I</b> macro repeats a macro for each element in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SET_FOR_EACH_I</b> with each element in <i>set</i>.
|
||||
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.
|
||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH_I</b> with each element in <i>seq</i>.
|
||||
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.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>macro</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> for which <i>macro</i> will be invoked on each element.
|
||||
The <i>seq</i> for which <i>macro</i> will be invoked on each element.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
||||
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
it expands to the sequence:
|
||||
<div>
|
||||
<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>)
|
||||
<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>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_FOR_EACH_I_R</a></li>
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each_i_r.html">BOOST_PP_SET_FOR_EACH_I_R</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each_i_r.html">BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each_i.hpp.html"><boost/preprocessor/set/for_each_i.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each_i.hpp.html"><boost/preprocessor/seq/for_each_i.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
||||
#include <<a href="../headers/set/for_each_i.hpp.html">boost/preprocessor/set/for_each_i.hpp</a>>
|
||||
#include <<a href="../headers/seq/for_each_i.hpp.html">boost/preprocessor/seq/for_each_i.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)(d)
|
||||
#define SEQ (a)(b)(c)(d)
|
||||
|
||||
#define MACRO(r, data, i, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, <a href="cat.html">BOOST_PP_CAT</a>(data, i))
|
||||
|
||||
<a href="set_for_each_i.html">BOOST_PP_SET_FOR_EACH_I</a>(MACRO, _, SET) // expands to a_0 b_1 c_2 d_3
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a>(MACRO, _, SEQ) // expands to a_0 b_1 c_2 d_3
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,18 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH_I_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH_I_R</b> macro repeats a macro for each element in a <i>set</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH_I_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH_I_R</b> macro repeats a macro for each element in
|
||||
a <i>seq</i>. It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd>
|
||||
@ -20,34 +24,44 @@
|
||||
</dd>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SET_FOR_EACH_I</b> with each element in <i>set</i>.
|
||||
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.
|
||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH_I</b> with each element in <i>seq</i>.
|
||||
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.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>macro</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> for which <i>macro</i> will be invoked on each element.
|
||||
The <i>seq</i> for which <i>macro</i> will be invoked on each element.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
||||
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
it expands to the sequence:
|
||||
<div>
|
||||
<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>)
|
||||
<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>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each_i.html">BOOST_PP_SET_FOR_EACH_I</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each_i.hpp.html"><boost/preprocessor/set/for_each_i.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each_i.hpp.html"><boost/preprocessor/seq/for_each_i.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,73 +1,89 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH_PRODUCT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH_PRODUCT</b> macro repeats a macro for each cartesian product of several <i>sets</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>sets</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b> macro repeats a macro for each
|
||||
cartesian product of several <i>seqs</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>seqs</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).
|
||||
This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>sets</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>set</i> containing a cartesian product.
|
||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>). This
|
||||
macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian
|
||||
product in <i>seqs</i>. It is expanded with the next available <b>BOOST_PP_FOR</b>
|
||||
repetition and a <i>seq</i> containing a cartesian product.
|
||||
</dd>
|
||||
<dt>sets</dt>
|
||||
<dt>seqs</dt>
|
||||
<dd>
|
||||
A <i>set</i> of <i>sets</i> from which cartesian products are obtained.
|
||||
A <i>seq</i> of <i>seqs</i> from which cartesian products are obtained.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If two <i>sets</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>) and (<i>x</i>)(<i>y</i>)(<i>z</i>),
|
||||
this macro will produce the following sequence:
|
||||
This macro is a repetition construct. If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||
and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following
|
||||
sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
|
||||
<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
|
||||
<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_FOR_EACH_PRODUCT_R</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each_product_r.html">BOOST_PP_SET_FOR_EACH_PRODUCT_R</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each_product.hpp.html"><boost/preprocessor/set/for_each_product.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each_product.hpp.html"><boost/preprocessor/seq/for_each_product.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/for_each_product.hpp.html">boost/preprocessor/set/for_each_product.hpp</a>>
|
||||
#include <<a href="../headers/set/to_tuple.hpp.html">boost/preprocessor/set/to_tuple.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/for_each_product.hpp.html">boost/preprocessor/seq/for_each_product.hpp</a>>
|
||||
#include <<a href="../headers/seq/to_tuple.hpp.html">boost/preprocessor/seq/to_tuple.hpp</a>>
|
||||
|
||||
#define S1 (a)(b)(c)
|
||||
#define S2 (x)(y)(z)
|
||||
#define S3 (p)(q)
|
||||
|
||||
#define MACRO(r, product) <a href="set_to_tuple.html">BOOST_PP_SET_TO_TUPLE</a>(product)
|
||||
#define MACRO(r, product) <a href="seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a>(product)
|
||||
|
||||
<a href="set_for_each_product.html">BOOST_PP_SET_FOR_EACH_PRODUCT</a>(MACRO, (S1)(S2)(S3))
|
||||
<a href="seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a>(MACRO, (S1)(S2)(S3))
|
||||
// expands to:
|
||||
// (a, x, p) (a, x, q) (a, y, p) (a, y, q) (a, z, p) (a, z, q)
|
||||
// (b, x, p) (b, x, q) (b, y, p) (b, y, q) (b, z, p) (b, z, q)
|
||||
// (c, x, p) (c, x, q) (c, y, p) (c, y, q) (c, z, p) (c, z, q)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,18 +1,23 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH_PRODUCT_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH_PRODUCT_R</b> macro repeats a macro for each cartesian product of several <i>sets</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>sets</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b> macro repeats a macro for each
|
||||
cartesian product of several <i>seqs</i>. It reenters <b>BOOST_PP_FOR</b>
|
||||
with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>seqs</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd>
|
||||
@ -20,39 +25,46 @@
|
||||
</dd>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).
|
||||
This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>sets</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>set</i> containing a cartesian product.
|
||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>). This
|
||||
macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian
|
||||
product in <i>seqs</i>. It is expanded with the next available <b>BOOST_PP_FOR</b>
|
||||
repetition and a <i>seq</i> containing a cartesian product.
|
||||
</dd>
|
||||
<dt>sets</dt>
|
||||
<dt>seqs</dt>
|
||||
<dd>
|
||||
A <i>set</i> of <i>sets</i> from which cartesian products are obtained.
|
||||
A <i>seq</i> of <i>seqs</i> from which cartesian products are obtained.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If two <i>sets</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>) and (<i>x</i>)(<i>y</i>)(<i>z</i>),
|
||||
this macro will produce the following sequence:
|
||||
This macro is a repetition construct. If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||
and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following
|
||||
sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
|
||||
<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
|
||||
<br>
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
|
||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each_product.html">BOOST_PP_SET_FOR_EACH_PRODUCT</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each_product.hpp.html"><boost/preprocessor/set/for_each_product.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each_product.hpp.html"><boost/preprocessor/seq/for_each_product.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,18 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_FOR_EACH_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_FOR_EACH_R</b> macro repeats a macro for each element in a <i>set</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_FOR_EACH_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_FOR_EACH_R</b> macro repeats a macro for each element in a <i>seq</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd>
|
||||
@ -20,34 +24,43 @@
|
||||
</dd>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SET_FOR_EACH</b> with each element in <i>set</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, and the current element.
|
||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
||||
This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH</b> with each element in <i>seq</i>.
|
||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the
|
||||
auxiliary <i>data</i>, and the current element.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>macro</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> for which <i>macro</i> will be invoked on each element.
|
||||
The <i>seq</i> for which <i>macro</i> will be invoked on each element.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a repetition construct.
|
||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
||||
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
it expands to the sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
|
||||
<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
|
||||
<i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_for_each.html">BOOST_PP_SET_FOR_EACH</a></li>
|
||||
<li>
|
||||
<a href="seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/for_each.hpp.html"><boost/preprocessor/set/for_each.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/for_each.hpp.html"><boost/preprocessor/seq/for_each.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,39 +1,52 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_HEAD</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_HEAD</b> macro expands to the first element in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_HEAD</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_HEAD</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_HEAD</b> macro expands to the first element in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_HEAD</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which the first element is extracted.
|
||||
The <i>seq</i> from which the first element is extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_tail.html">BOOST_PP_SET_TAIL</a></li>
|
||||
<li>
|
||||
<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/set.hpp.html"><boost/preprocessor/set/set.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/seq.hpp.html"><boost/preprocessor/seq/seq.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_head.html">BOOST_PP_SET_HEAD</a>(SET) // expands to a
|
||||
<a href="set_tail.html">BOOST_PP_SET_TAIL</a>(SET) // expands to (b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
|
||||
<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,47 +1,59 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_INSERT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_INSERT</b> macro inserts an element into an <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_INSERT</b>(<i>set</i>, <i>i</i>, <i>elem</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_INSERT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_INSERT</b> macro inserts an element into an <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_INSERT</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> into which an element is to be inserted.
|
||||
The <i>seq</i> into which an element is to be inserted.
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The zero-based position in <i>set</i> where an element is to be inserted.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
||||
The zero-based position in <i>seq</i> where an element is to be inserted.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||
</dd>
|
||||
<dt>elem</dt>
|
||||
<dd>
|
||||
The element to insert.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/insert.hpp.html"><boost/preprocessor/set/insert.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/insert.hpp.html"><boost/preprocessor/seq/insert.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/insert.hpp.html">boost/preprocessor/set/insert.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/insert.hpp.html">boost/preprocessor/seq/insert.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(d)
|
||||
#define SEQ (a)(b)(d)
|
||||
|
||||
<a href="set_insert.html">BOOST_PP_SET_INSERT</a>(SET, 2, c) // expands to (a)(b)(c)(d)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_insert.html">BOOST_PP_SEQ_INSERT</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,69 +1,89 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_NIL</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_NIL</b> macro is a placeholder macro for an empty <i>set</i>.
|
||||
It is only valid if it is elements are appended to the end of this empty "set."
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_NIL</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_NIL</b> macro is a placeholder macro for an empty <i>seq</i>.
|
||||
It is only valid if it is elements are appended to the end of this empty
|
||||
"seq."
|
||||
</div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_NIL</b>
|
||||
<b>BOOST_PP_SEQ_NIL</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro is a utility macro intended as a empty starting point for appending to the tail.
|
||||
It is <i>not</i> a nil <i>set</i>.
|
||||
When an element is appended to this macro, it expands on the element and to the element--thereby removing itself.
|
||||
For example, both <b>BOOST_PP_SET_NIL</b>(<i>x</i>)
|
||||
and <b>BOOST_PP_SET_PUSH_BACK</b>(<b>BOOST_PP_SET_NIL</b>, <i>x</i>) expand to <i>x</i>.
|
||||
This macro is a utility macro intended as a empty starting point for appending
|
||||
to the tail. It is <i>not</i> a nil <i>seq</i>. When an element is
|
||||
appended to this macro, it expands on the element and to the element--thereby
|
||||
removing itself. For example, both <b>BOOST_PP_SEQ_NIL</b>(<i>x</i>) and <b>BOOST_PP_SEQ_PUSH_BACK</b>(<b>BOOST_PP_SEQ_NIL</b>,
|
||||
<i>x</i>) expand to <i>x</i>.
|
||||
</div>
|
||||
<div>
|
||||
If any <b>BOOST_PP_SET_</b>* macro (other than <b>BOOST_PP_SET_PUSH_BACK</b>) is invoked with an argument that contains <b>BOOST_PP_SET_NIL</b>,
|
||||
the behavior is undefined and in most cases will result in obscure errors.
|
||||
If any <b>BOOST_PP_SEQ_</b>* macro (other than <b>BOOST_PP_SEQ_PUSH_BACK</b>)
|
||||
is invoked with an argument that contains <b>BOOST_PP_SEQ_NIL</b>, the behavior
|
||||
is undefined and in most cases will result in obscure errors.
|
||||
</div>
|
||||
<div>
|
||||
The closest thing available to <b>BOOST_PP_SET_NIL</b> for appending to the head is <b>BOOST_PP_EMPTY</b>.
|
||||
After all the elements have been prepended, empty parenthesis can be invoked on the tail to remove the <b>BOOST_PP_EMPTY</b>.
|
||||
As with <b>BOOST_PP_SET_NIL</b>, passing an argument that contains <b>BOOST_PP_EMPTY</b> to any <b>BOOST_PP_SET_</b>* macro (other than <b>BOOST_PP_SET_PUSH_FRONT</b>) is undefined.
|
||||
The closest thing available to <b>BOOST_PP_SEQ_NIL</b> for appending to the
|
||||
head is <b>BOOST_PP_EMPTY</b>. After all the elements have been
|
||||
prepended, empty parenthesis can be invoked on the tail to remove the <b>BOOST_PP_EMPTY</b>.
|
||||
As with <b>BOOST_PP_SEQ_NIL</b>, passing an argument that contains <b>BOOST_PP_EMPTY</b>
|
||||
to any <b>BOOST_PP_SEQ_</b>* macro (other than <b>BOOST_PP_SEQ_PUSH_FRONT</b>)
|
||||
is undefined.
|
||||
</div>
|
||||
<div>
|
||||
(It is also possible to start with an extra element and pop it off when you have finished appending to it.)
|
||||
(It is also possible to start with an extra element and pop it off when you
|
||||
have finished appending to it.)
|
||||
</div>
|
||||
<div>
|
||||
In C99, neither of these macros are necessary since it is legal to pass empty arguments.
|
||||
In C99, neither of these macros are necessary since it is legal to pass empty
|
||||
arguments.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="empty.html">BOOST_PP_EMPTY</a></li>
|
||||
<li>
|
||||
<a href="empty.html">BOOST_PP_EMPTY</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/set.hpp.html"><boost/preprocessor/set/set.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/seq.hpp.html"><boost/preprocessor/seq/seq.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/facilities/empty.hpp.html">boost/preprocessor/facilities/empty.hpp</a>>
|
||||
#include <<a href="../headers/set/push_back.hpp.html">boost/preprocessor/set/push_back.hpp</a>>
|
||||
#include <<a href="../headers/set/push_front.hpp.html">boost/preprocessor/set/push_front.hpp</a>>
|
||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
||||
#include <<a href="../headers/seq/push_back.hpp.html">boost/preprocessor/seq/push_back.hpp</a>>
|
||||
#include <<a href="../headers/seq/push_front.hpp.html">boost/preprocessor/seq/push_front.hpp</a>>
|
||||
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||
|
||||
#define SET_L <a href="set_nil.html">BOOST_PP_SET_NIL</a>
|
||||
#define SET_R <a href="empty.html">BOOST_PP_EMPTY</a>
|
||||
#define SEQ_L <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>
|
||||
#define SEQ_R <a href="empty.html">BOOST_PP_EMPTY</a>
|
||||
|
||||
<a href="set_push_back.html">BOOST_PP_SET_PUSH_BACK</a>(
|
||||
<a href="set_push_back.html">BOOST_PP_SET_PUSH_BACK</a>(SET_L, a), b
|
||||
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(
|
||||
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ_L, a), b
|
||||
)
|
||||
|
||||
// expands to (a)(b)
|
||||
|
||||
<a href="set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a>(
|
||||
<a href="set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a>(SET_R, a), b
|
||||
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(
|
||||
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ_R, a), b
|
||||
)()
|
||||
|
||||
// expands to (b)(a)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,42 +1,57 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_POP_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_POP_BACK</b> macro pops an element from the end of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_POP_BACK</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_POP_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_POP_BACK</b> macro pops an element from the end of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_POP_BACK</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to pop an element from.
|
||||
The <i>seq</i> to pop an element from.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after removing the last element.
|
||||
This macro returns <i>seq</i> after removing the last element.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_pop_front.html">BOOST_PP_SET_POP_FRONT</a></li>
|
||||
<li>
|
||||
<a href="seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/pop_back.hpp.html"><boost/preprocessor/set/pop_back.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/pop_back.hpp.html"><boost/preprocessor/seq/pop_back.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/pop_back.hpp.html">boost/preprocessor/set/pop_back.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/pop_back.hpp.html">boost/preprocessor/seq/pop_back.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_pop_back.html">BOOST_PP_SET_POP_BACK</a>(SET) // expands to (a)(b)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a>(SEQ) // expands to (a)(b)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,42 +1,57 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_POP_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_POP_FRONT</b> macro pops an element from the beginning of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_POP_FRONT</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_POP_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_POP_FRONT</b> macro pops an element from the beginning of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_POP_FRONT</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to pop an element from.
|
||||
The <i>seq</i> to pop an element from.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after removing the first element.
|
||||
This macro returns <i>seq</i> after removing the first element.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_pop_back.html">BOOST_PP_SET_POP_BACK</a></li>
|
||||
<li>
|
||||
<a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/pop_front.hpp.html"><boost/preprocessor/set/pop_front.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/pop_front.hpp.html"><boost/preprocessor/seq/pop_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/pop_front.hpp.html">boost/preprocessor/set/pop_front.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/pop_front.hpp.html">boost/preprocessor/seq/pop_front.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_pop_front.html">BOOST_PP_SET_POP_FRONT</a>(SET) // expands to (b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a>(SEQ) // expands to (b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,50 +1,65 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_PUSH_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_PUSH_BACK</b> macro pushes an element onto the end of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_PUSH_BACK</b>(<i>set</i>, <i>elem</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_PUSH_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_PUSH_BACK</b> macro pushes an element onto the end of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>elem</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> onto which <i>elem</i> is pushed.
|
||||
The <i>seq</i> onto which <i>elem</i> is pushed.
|
||||
</dd>
|
||||
<dt>elem</dt>
|
||||
<dd>
|
||||
The element to push onto the end of <i>set</i>.
|
||||
The element to push onto the end of <i>seq</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after appending <i>elem</i>.
|
||||
This macro returns <i>seq</i> after appending <i>elem</i>.
|
||||
</div>
|
||||
<div>
|
||||
This macro is an explicit form of directly appending an element.
|
||||
In other words, <b>BOOST_PP_SET_PUSH_BACK</b>(<i>set</i>, <i>x</i>) is equivalent to <i>set</i>(<i>x</i>).
|
||||
This macro is an explicit form of directly appending an element. In other
|
||||
words, <b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>x</i>) is equivalent to <i>seq</i>(<i>x</i>).
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a></li>
|
||||
<li>
|
||||
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/push_back.hpp.html"><boost/preprocessor/set/push_back.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/push_back.hpp.html"><boost/preprocessor/seq/push_back.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/push_back.hpp.html">boost/preprocessor/set/push_back.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/push_back.hpp.html">boost/preprocessor/seq/push_back.hpp</a>>
|
||||
|
||||
#define SET (a)(b)
|
||||
#define SEQ (a)(b)
|
||||
|
||||
<a href="set_push_back.html">BOOST_PP_SET_PUSH_BACK</a>(SET, c) // expands to (a)(b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ, c) // expands to (a)(b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,50 +1,67 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_PUSH_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_PUSH_FRONT</b> macro pushes an element onto the beginning of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_PUSH_FRONT</b>(<i>set</i>, <i>elem</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_PUSH_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_PUSH_FRONT</b> macro pushes an element onto the beginning
|
||||
of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_PUSH_FRONT</b>(<i>seq</i>, <i>elem</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> onto which <i>elem</i> is pushed.
|
||||
The <i>seq</i> onto which <i>elem</i> is pushed.
|
||||
</dd>
|
||||
<dt>elem</dt>
|
||||
<dd>
|
||||
The element to push onto the beginning of <i>set</i>.
|
||||
The element to push onto the beginning of <i>seq</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after prepending <i>elem</i>.
|
||||
This macro returns <i>seq</i> after prepending <i>elem</i>.
|
||||
</div>
|
||||
<div>
|
||||
This macro is an explicit form of directly prepending an element.
|
||||
In other words, <b>BOOST_PP_SET_PUSH_FRONT</b>(<i>set</i>, <i>x</i>) is equivalent to (<i>x</i>)<i>set</i>.
|
||||
This macro is an explicit form of directly prepending an element. In
|
||||
other words, <b>BOOST_PP_SEQ_PUSH_FRONT</b>(<i>seq</i>, <i>x</i>) is equivalent
|
||||
to (<i>x</i>)<i>seq</i>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_push_back.html">BOOST_PP_SET_PUSH_BACK</a></li>
|
||||
<li>
|
||||
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/push_front.hpp.html"><boost/preprocessor/set/push_front.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/push_front.hpp.html"><boost/preprocessor/seq/push_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/push_front.hpp.html">boost/preprocessor/set/push_front.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/push_front.hpp.html">boost/preprocessor/seq/push_front.hpp</a>>
|
||||
|
||||
#define SET (b)(c)
|
||||
#define SEQ (b)(c)
|
||||
|
||||
<a href="set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a>(SET, a) // expands to (a)(b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ, a) // expands to (a)(b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,43 +1,55 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_REMOVE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_REMOVE</b> macro removes an element from a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_REMOVE</b>(<i>set</i>, <i>i</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REMOVE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REMOVE</b> macro removes an element from a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_REMOVE</b>(<i>seq</i>, <i>i</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which an element is to be removed.
|
||||
The <i>seq</i> from which an element is to be removed.
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The zero-based position in <i>set</i> of the element to be removed.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
||||
The zero-based position in <i>seq</i> of the element to be removed. Valid
|
||||
values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after removing the element at index <i>i</i>.
|
||||
This macro returns <i>seq</i> after removing the element at index <i>i</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/remove.hpp.html"><boost/preprocessor/set/remove.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/remove.hpp.html"><boost/preprocessor/seq/remove.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/remove.hpp.html">boost/preprocessor/set/remove.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/remove.hpp.html">boost/preprocessor/seq/remove.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(x)(c)
|
||||
#define SEQ (a)(b)(x)(c)
|
||||
|
||||
<a href="set_remove.html">BOOST_PP_SET_REMOVE</a>(SET, 2) // expands to (a)(b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_remove.html">BOOST_PP_SEQ_REMOVE</a>(SEQ, 2) // expands to (a)(b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,47 +1,60 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_REPLACE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_REPLACE</b> macro replaces an element in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_RPLACE</b>(<i>set</i>, <i>i</i>, <i>elem</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REPLACE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REPLACE</b> macro replaces an element in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_RPLACE</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> in which an element is to be replaced.
|
||||
The <i>seq</i> in which an element is to be replaced.
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The zero-based position in <i>set</i> of the element to be replaced.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
||||
The zero-based position in <i>seq</i> of the element to be replaced.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||
</dd>
|
||||
<dt>elem</dt>
|
||||
<dd>
|
||||
The element to replace the element at index <i>i</i> within <i>set</i>.
|
||||
The element to replace the element at index <i>i</i> within <i>seq</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro returns <i>set</i> after replacing the element at index <i>i</i> with <i>elem</i>.
|
||||
This macro returns <i>seq</i> after replacing the element at index <i>i</i> with
|
||||
<i>elem</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/replace.hpp.html"><boost/preprocessor/set/replace.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/replace.hpp.html"><boost/preprocessor/seq/replace.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/replace.hpp.html">boost/preprocessor/set/replace.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/replace.hpp.html">boost/preprocessor/seq/replace.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(x)(d)
|
||||
#define SEQ (a)(b)(x)(d)
|
||||
|
||||
<a href="set_replace.html">BOOST_PP_SET_REPLACE</a>(SET, 2, c) // expands to (a)(b)(c)(d)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_replace.html">BOOST_PP_SEQ_REPLACE</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,17 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_REST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_REST_N</b> macro expands to a <i>set</i> of all but the first <i>n</i> elements of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_REST_N</b>(<i>n</i>, <i>list</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REST_N</b> macro expands to a <i>seq</i> of all but the
|
||||
first <i>n</i> elements of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>n</dt>
|
||||
<dd>
|
||||
@ -19,28 +24,39 @@
|
||||
</dd>
|
||||
<dt>list</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which the elements are to be removed.
|
||||
The <i>seq</i> from which the elements are to be removed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro extracts <i>n</i> elements from the beginning of <i>set</i> and returns the remainder of <i>set</i> as a new <i>set</i>
|
||||
This macro extracts <i>n</i> elements from the beginning of <i>seq</i> and
|
||||
returns the remainder of <i>seq</i> as a new <i>seq</i>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_first_n.html">BOOST_PP_SET_FIRST_N</a></li>
|
||||
<li>
|
||||
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/rest_n.hpp.html"><boost/preprocessor/set/rest_n.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/rest_n.hpp.html"><boost/preprocessor/seq/rest_n.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/arithmetic/inc.hpp.html">boost/preprocessor/arithmetic/inc.hpp</a>>
|
||||
#include <<a href="../headers/set/elem.hpp.html">boost/preprocessor/set/elem.hpp</a>>
|
||||
#include <<a href="../headers/set/first_n.hpp.html">boost/preprocessor/set/first_n.hpp</a>>
|
||||
#include <<a href="../headers/set/rest_n.hpp.html">boost/preprocessor/set/rest_n.hpp</a>>
|
||||
#include <<a href="../headers/set/size.hpp.html">boost/preprocessor/set/size.hpp</a>>
|
||||
#include <<a href="../headers/seq/elem.hpp.html">boost/preprocessor/seq/elem.hpp</a>>
|
||||
#include <<a href="../headers/seq/first_n.hpp.html">boost/preprocessor/seq/first_n.hpp</a>>
|
||||
#include <<a href="../headers/seq/rest_n.hpp.html">boost/preprocessor/seq/rest_n.hpp</a>>
|
||||
#include <<a href="../headers/seq/size.hpp.html">boost/preprocessor/seq/size.hpp</a>>
|
||||
|
||||
#define NUMBERS \
|
||||
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
|
||||
@ -71,15 +87,15 @@
|
||||
(250)(251)(252)(253)(254)(255)(256) \
|
||||
/**/
|
||||
|
||||
#define SUPER_ADD(x, y) <a href="set_elem.html">BOOST_PP_SET_ELEM</a>(y, <a href="set_rest_n.html">BOOST_PP_SET_REST_N</a>(x, NUMBERS))
|
||||
#define SUPER_ADD(x, y) <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))
|
||||
|
||||
SUPER_ADD(100, 100) // expands to 200
|
||||
|
||||
#define SUPER_SUB(x, y) \
|
||||
<a href="set_size.html">BOOST_PP_SET_SIZE</a>( \
|
||||
<a href="set_rest_n.html">BOOST_PP_SET_REST_N</a>( \
|
||||
<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \
|
||||
<a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \
|
||||
<a href="inc.html">BOOST_PP_INC</a>(y), \
|
||||
<a href="set_first_n.html">BOOST_PP_SET_FIRST_N</a>( \
|
||||
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \
|
||||
<a href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \
|
||||
) \
|
||||
) \
|
||||
@ -87,6 +103,7 @@ SUPER_ADD(100, 100) // expands to 200
|
||||
/**/
|
||||
|
||||
SUPER_SUB(67, 25) // expands to 42
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,42 +1,57 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_REVERSE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_REVERSE</b> macro reverses a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_REVERSE</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REVERSE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REVERSE</b> macro reverses a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_REVERSE</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be reversed.
|
||||
The <i>seq</i> to be reversed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_REVERSE_S</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_REVERSE_S</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_reverse_s.html">BOOST_PP_SET_REVERSE_S</a></li>
|
||||
<li>
|
||||
<a href="seq_reverse_s.html">BOOST_PP_SEQ_REVERSE_S</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/reverse.hpp.html"><boost/preprocessor/set/reverse.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/reverse.hpp.html"><boost/preprocessor/seq/reverse.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/reverse.hpp.html">boost/preprocessor/set/reverse.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/reverse.hpp.html">boost/preprocessor/seq/reverse.hpp</a>>
|
||||
|
||||
#define SET (1)(2)(3)
|
||||
#define SEQ (1)(2)(3)
|
||||
|
||||
<a href="set_reverse.html">BOOST_PP_SET_REVERSE</a>(SET) // expands to (3)(2)(1)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_reverse.html">BOOST_PP_SEQ_REVERSE</a>(SEQ) // expands to (3)(2)(1)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,35 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_REVERSE_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_REVERSE_S</b> macro reverses a <i>set</i>.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_REVERSE_S</b>(<i>s</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REVERSE_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REVERSE_S</b> macro reverses a <i>seq</i>. It
|
||||
reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_REVERSE_S</b>(<i>s</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be reversed.
|
||||
The <i>seq</i> to be reversed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_reverse.html">BOOST_PP_SET_REVERSE</a></li>
|
||||
<li>
|
||||
<a href="seq_reverse.html">BOOST_PP_SEQ_REVERSE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/reverse.hpp.html"><boost/preprocessor/set/reverse.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/reverse.hpp.html"><boost/preprocessor/seq/reverse.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_SIZE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_SIZE</b> macro expands to the size of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_SIZE</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_SIZE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_SIZE</b> macro expands to the size of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> whose size is to be calculated.
|
||||
The <i>seq</i> whose size is to be calculated.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/size.hpp.html"><boost/preprocessor/set/size.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/size.hpp.html"><boost/preprocessor/seq/size.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/size.hpp.html">boost/preprocessor/set/size.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/size.hpp.html">boost/preprocessor/seq/size.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_size.html">BOOST_PP_SET_SIZE</a>(SET) // expands to 3
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>(SEQ) // expands to 3
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,46 +1,58 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_SUBSET</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_SUBSET</b> macro expands to a subset of elements in a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_SUBSET</b>(<i>set</i>, <i>i</i>, <i>len</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_SUBSEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_SUBSEQ</b> macro expands to a subseq of elements in a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_SUBSEQ</b>(<i>seq</i>, <i>i</i>, <i>len</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> whose size is to be calculated.
|
||||
The <i>seq</i> whose size is to be calculated.
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The index of the first element of the subset to be extracted.
|
||||
The index of the first element of the subseq to be extracted.
|
||||
</dd>
|
||||
<dt>len</dt>
|
||||
<dd>
|
||||
The length of the subset to be extracted.
|
||||
The length of the subseq to be extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands to a <i>set</i> extracted from <i>set</i>.
|
||||
This macro expands to a <i>seq</i> extracted from <i>seq</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/subset.hpp.html"><boost/preprocessor/set/subset.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/subseq.hpp.html"><boost/preprocessor/seq/subseq.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/subset.hpp.html">boost/preprocessor/set/subset.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/subseq.hpp.html">boost/preprocessor/seq/subseq.hpp</a>>
|
||||
|
||||
#define SET (0)(1)(2)(3)(4)(5)
|
||||
#define SEQ (0)(1)(2)(3)(4)(5)
|
||||
|
||||
<a href="set_subset.html">BOOST_PP_SET_SUBSET</a>(SET, 2, 3) // expands to (2)(3)(4)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_subseq.html">BOOST_PP_SEQ_SUBSEQ</a>(SEQ, 2, 3) // expands to (2)(3)(4)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,39 +1,52 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_TAIL</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_HEAD</b> macro expands to all but the first element of a <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_TAIL</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_TAIL</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_HEAD</b> macro expands to all but the first element of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_TAIL</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> from which the tail is extracted.
|
||||
The <i>seq</i> from which the tail is extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_head.html">BOOST_PP_SET_HEAD</a></li>
|
||||
<li>
|
||||
<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/set.hpp.html"><boost/preprocessor/set/set.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/seq.hpp.html"><boost/preprocessor/seq/seq.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_head.html">BOOST_PP_SET_HEAD</a>(SET) // expands to a
|
||||
<a href="set_tail.html">BOOST_PP_SET_TAIL</a>(SET) // expands to (b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
|
||||
<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_TO_ARRAY</b> macro converts a <i>set</i> to an <i>array</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_TO_ARRAY</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_TO_ARRAY</b> macro converts a <i>seq</i> to an <i>array</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_TO_ARRAY</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be converted.
|
||||
The <i>seq</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/to_array.hpp.html"><boost/preprocessor/set/to_array.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/to_array.hpp.html"><boost/preprocessor/seq/to_array.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/to_array.hpp.html">boost/preprocessor/set/to_array.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/to_array.hpp.html">boost/preprocessor/seq/to_array.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_to_array.html">BOOST_PP_SET_TO_ARRAY</a>(SET) // expands to (3, (a, b, c))
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_to_array.html">BOOST_PP_SEQ_TO_ARRAY</a>(SEQ) // expands to (3, (a, b, c))
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_TO_TUPLE</b> macro converts a <i>set</i> to an <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_TO_TUPLE</b>(<i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_TO_TUPLE</b> macro converts a <i>seq</i> to an <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_TO_TUPLE</b>(<i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be converted.
|
||||
The <i>seq</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/to_tuple.hpp.html"><boost/preprocessor/set/to_tuple.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/to_tuple.hpp.html"><boost/preprocessor/seq/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/set/to_tuple.hpp.html">boost/preprocessor/set/to_tuple.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/seq/to_tuple.hpp.html">boost/preprocessor/seq/to_tuple.hpp</a>>
|
||||
|
||||
#define SET (a)(b)(c)
|
||||
#define SEQ (a)(b)(c)
|
||||
|
||||
<a href="set_to_tuple.html">BOOST_PP_SET_TO_TUPLE</a>(SET) // expands to (a, b, c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a>(SEQ) // expands to (a, b, c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,65 +1,82 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_TRANSFORM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_TRANSFORM</b> macro transforms each element in a <i>set</i> according to a supplied transformation.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_TRANSFORM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_TRANSFORM</b> macro transforms each element in a <i>seq</i>
|
||||
according to a supplied transformation.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This transformation is expanded by <b>BOOST_PP_SET_TRANSFORM</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each
|
||||
element in <i>seq</i> with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold
|
||||
step, the auxiliary <i>data</i>, and the current element in <i>seq</i>.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>pred</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be transformed.
|
||||
The <i>seq</i> to be transformed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands <i>op</i> for each element in <i>set</i>.
|
||||
It builds a new <i>set</i> out of the results of each call.
|
||||
If, for example, <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
this macro expands to...
|
||||
This macro expands <i>op</i> for each element in <i>seq</i>. It builds a
|
||||
new <i>seq</i> out of the results of each call. If, for example, <i>seq</i>
|
||||
is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
|
||||
<div>
|
||||
(<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>))
|
||||
(<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>))
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
For maximum efficiency, use <b>BOOST_PP_SET_TRANSFORM_S</b>.
|
||||
For maximum efficiency, use <b>BOOST_PP_SEQ_TRANSFORM_S</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_transform_s.html">BOOST_PP_SET_TRANSFORM_S</a></li>
|
||||
<li>
|
||||
<a href="seq_transform_s.html">BOOST_PP_SEQ_TRANSFORM_S</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/transform.hpp.html"><boost/preprocessor/set/transform.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/transform.hpp.html"><boost/preprocessor/seq/transform.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/arithmetic/dec.hpp.html">boost/preprocessor/arithmetic/dec.hpp</a>>
|
||||
#include <<a href="../headers/set/transform.hpp.html">boost/preprocessor/set/transform.hpp</a>>
|
||||
#include <<a href="../headers/seq/transform.hpp.html">boost/preprocessor/seq/transform.hpp</a>>
|
||||
|
||||
#define SET (1)(3)(2)(5)
|
||||
#define SEQ (1)(3)(2)(5)
|
||||
|
||||
#define OP(s, data, elem) <a href="dec.html">BOOST_PP_DEC</a>(elem)
|
||||
|
||||
<a href="set_transform.html">BOOST_PP_SET_TRANSFORM</a>(OP, 3, SET)
|
||||
<a href="seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a>(OP, 3, SEQ)
|
||||
// expands to (0)(2)(1)(4)
|
||||
</pre></div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,55 +1,68 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SET_TRANSFORM_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SET_TRANSFORM_S</b> macro transforms each element in a <i>set</i> according to a supplied transformation.
|
||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SET_TRANSFORM_S</b>(<i>s</i>, <i>op</i>, <i>data</i>, <i>set</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_TRANSFORM_S</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_TRANSFORM_S</b> macro transforms each element in a <i>seq</i>
|
||||
according to a supplied transformation. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
|
||||
with maximum efficiency.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_TRANSFORM_S</b>(<i>s</i>, <i>op</i>, <i>data</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>s</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step.
|
||||
The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This transformation is expanded by <b>BOOST_PP_SET_TRANSFORM</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).
|
||||
This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each
|
||||
element in <i>seq</i> with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold
|
||||
step, the auxiliary <i>data</i>, and the current element in <i>seq</i>.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>pred</i>.
|
||||
</dd>
|
||||
<dt>set</dt>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>set</i> to be transformed.
|
||||
The <i>seq</i> to be transformed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro expands <i>op</i> for each element in <i>set</i>.
|
||||
It builds a new <i>set</i> out of the results of each call.
|
||||
If, for example, <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||
this macro expands to...
|
||||
This macro expands <i>op</i> for each element in <i>seq</i>. It builds a
|
||||
new <i>seq</i> out of the results of each call. If, for example, <i>seq</i>
|
||||
is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
|
||||
<div>
|
||||
(<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>))
|
||||
(<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>))
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="set_transform.html">BOOST_PP_SET_TRANSFORM</a></li>
|
||||
<li>
|
||||
<a href="seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/set/transform.hpp.html"><boost/preprocessor/set/transform.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/seq/transform.hpp.html"><boost/preprocessor/seq/transform.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,17 +1,21 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_TUPLE_TO_SET</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_TO_SET</b> macro converts a <i>tuple</i> to an <i>set</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_TO_SET</b>(<i>size</i>, <i>tuple</i>)
|
||||
<head>
|
||||
<title>BOOST_PP_TUPLE_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro converts a <i>tuple</i> to an <i>seq</i>.
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
@ -22,15 +26,21 @@
|
||||
The <i>tuple</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/to_set.hpp.html"><boost/preprocessor/tuple/to_set.hpp></a>
|
||||
<b>Header:</b> <a href="../headers/tuple/to_seq.hpp.html"><boost/preprocessor/tuple/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/tuple/to_set.hpp.html">boost/preprocessor/tuple/to_set.hpp</a>>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/tuple/to_seq.hpp.html">boost/preprocessor/tuple/to_seq.hpp</a>>
|
||||
|
||||
<a href="tuple_to_set.html">BOOST_PP_TUPLE_TO_SET</a>(3, (a, b, c)) // expands to (a)(b)(c)
|
||||
</pre></div>
|
||||
</body>
|
||||
<a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)
|
||||
</pre>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user