forked from boostorg/preprocessor
set -> seq
[SVN r16150]
This commit is contained in:
@ -5,11 +5,13 @@
|
|||||||
<base target="desc">
|
<base target="desc">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h4>Data Types <small><a href="contents.html" target="index">[back]</a></small></h4>
|
<h4>
|
||||||
|
Data Types <small><a href="contents.html" target="index">[back]</a></small>
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="data/arrays.html">arrays</a></li>
|
<li><a href="data/arrays.html">arrays</a></li>
|
||||||
<li><a href="data/lists.html">lists</a></li>
|
<li><a href="data/lists.html">lists</a></li>
|
||||||
<li><a href="data/sets.html">sets</a></li>
|
<li><a href="data/sequences.html">sequences</a></li>
|
||||||
<li><a href="data/tuples.html">tuples</a></li>
|
<li><a href="data/tuples.html">tuples</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,57 +1,64 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>sets.html</title>
|
<title>seqs.html</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h4>Sets</h4>
|
<h4>
|
||||||
|
Sets
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
A <i>set</i> is a group of adjacent parenthesized elements.
|
A <i>seq</i> is a group of adjacent parenthesized elements. For example,
|
||||||
For example,
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
(<i>a</i>)(<i>b</i>)(<i>c</i>)
|
(<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
...is a <i>set</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
...is a <i>seq</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<i>Sets</i> are data structures that merge the properties of both <i>lists</i> and <i>tuples</i>
|
<i>Sets</i> are data structures that merge the properties of both <i>lists</i> and
|
||||||
with the exception that <i>sets</i> cannot be empty.
|
<i>tuples</i> with the exception that <i>seqs</i> cannot be empty.
|
||||||
Therefore, an "empty" <i>set</i> is considered a special case scenario that must be handled separately in C++.
|
Therefore, an "empty" <i>seq</i> is considered a special case scenario that
|
||||||
|
must be handled separately in C++.
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
#define SET (x)(y)(z)
|
<pre>
|
||||||
|
#define SEQ (x)(y)(z)
|
||||||
#define REVERSE(s, state, elem) (elem) state
|
#define REVERSE(s, state, elem) (elem) state
|
||||||
// append to head ^
|
// append to head ^
|
||||||
|
|
||||||
BOOST_PP_SET_FOLD_LEFT(REVERSE, BOOST_PP_EMPTY, SET)()
|
BOOST_PP_SEQ_FOLD_LEFT(REVERSE, BOOST_PP_EMPTY, SEQ)()
|
||||||
// #1 #2
|
// #1 #2
|
||||||
// 1) placeholder for "empty" set
|
// 1) placeholder for "empty" seq
|
||||||
// 2) remove placeholder
|
// 2) remove placeholder
|
||||||
|
|
||||||
#define SET_B (1)(2)(3)
|
#define SEQ_B (1)(2)(3)
|
||||||
#define INC(s, state, elem) state (BOOST_PP_INC(elem))
|
#define INC(s, state, elem) state (BOOST_PP_INC(elem))
|
||||||
// append to tail ^
|
// append to tail ^
|
||||||
|
|
||||||
BOOST_PP_SET_FOLD_RIGHT(INC, BOOST_PP_SET_NIL, SET)
|
BOOST_PP_SEQ_FOLD_RIGHT(INC, BOOST_PP_SEQ_NIL, SEQ)
|
||||||
// ^
|
// ^
|
||||||
// special placeholder that will be "eaten"
|
// special placeholder that will be "eaten"
|
||||||
// by appending to the tail
|
// by appending to the tail
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
<i>Sets</i> are extremely efficient.
|
|
||||||
Element access speed approaches random access--even with <i>sets</i> of up to <i>256</i> elements.
|
|
||||||
This is because element access (among other things) is implemented iteratively rather than recursively.
|
|
||||||
Therefore, elements can be accessed at extremely high indices even on preprocessors with low maximum expansion depths.
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Elements of a <i>set</i> can be extracted with
|
<i>Sets</i> are extremely efficient. Element access speed approaches
|
||||||
<b>BOOST_PP_SET_ELEM</b>.
|
random access--even with <i>seqs</i> of up to <i>256</i> elements. This
|
||||||
|
is because element access (among other things) is implemented iteratively
|
||||||
|
rather than recursively. Therefore, elements can be accessed at extremely
|
||||||
|
high indices even on preprocessors with low maximum expansion depths.
|
||||||
</div>
|
</div>
|
||||||
<h4>Primitives</h4>
|
<div>
|
||||||
|
Elements of a <i>seq</i> can be extracted with <b>BOOST_PP_SEQ_ELEM</b>.
|
||||||
|
</div>
|
||||||
|
<h4>
|
||||||
|
Primitives
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../ref/set_elem.html">BOOST_PP_SET_ELEM</a></li>
|
<li>
|
||||||
|
<a href="../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
562
doc/headers.html
562
doc/headers.html
@ -8,194 +8,382 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h4>Headers <small><a href="contents.html" target="index">[back]</a></small></h4>
|
<h4>
|
||||||
|
Headers <small><a href="contents.html" target="index">[back]</a></small>
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>../</li>
|
<li>
|
||||||
<li class="ps"><a href="headers/preprocessor.hpp.html">preprocessor.hpp</a></li>
|
../</li>
|
||||||
<li><a href="headers/arithmetic.hpp.html">arithmetic.hpp</a></li>
|
<li class="ps">
|
||||||
<li>arithmetic/</li>
|
<a href="headers/preprocessor.hpp.html">preprocessor.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/arithmetic/add.hpp.html">add.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/arithmetic/dec.hpp.html">dec.hpp</a></li>
|
<a href="headers/arithmetic.hpp.html">arithmetic.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/arithmetic/div.hpp.html">div.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/arithmetic/inc.hpp.html">inc.hpp</a></li>
|
arithmetic/</li>
|
||||||
<li class="ps"><a href="headers/arithmetic/mod.hpp.html">mod.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/arithmetic/mul.hpp.html">mul.hpp</a></li>
|
<a href="headers/arithmetic/add.hpp.html">add.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/arithmetic/sub.hpp.html">sub.hpp</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/array.hpp.html">array.hpp</a></li>
|
<a href="headers/arithmetic/dec.hpp.html">dec.hpp</a></li>
|
||||||
<li>array/</li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/array/data.hpp.html">data.hpp</a></li>
|
<a href="headers/arithmetic/div.hpp.html">div.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/array/elem.hpp.html">elem.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/array/insert.hpp.html">insert.hpp</a></li>
|
<a href="headers/arithmetic/inc.hpp.html">inc.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/array/pop_back.hpp.html">pop_back.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/array/pop_front.hpp.html">pop_front.hpp</a></li>
|
<a href="headers/arithmetic/mod.hpp.html">mod.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/array/push_back.hpp.html">push_back.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/array/push_front.hpp.html">push_front.hpp</a></li>
|
<a href="headers/arithmetic/mul.hpp.html">mul.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/array/remove.hpp.html">remove.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/array/replace.hpp.html">replace.hpp</a></li>
|
<a href="headers/arithmetic/sub.hpp.html">sub.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/array/reverse.hpp.html">reverse.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/array/size.hpp.html">size.hpp</a></li>
|
<a href="headers/array.hpp.html">array.hpp</a></li>
|
||||||
<li><a href="headers/assert_msg.hpp.html">assert_msg.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/cat.hpp.html">cat.hpp</a></li>
|
array/</li>
|
||||||
<li><a href="headers/comma.hpp.html">comma.hpp*</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/comma_if.hpp.html">comma_if.hpp*</a></li>
|
<a href="headers/array/data.hpp.html">data.hpp</a></li>
|
||||||
<li><a href="headers/comparison.hpp.html">comparison.hpp</a></li>
|
<li class="ps">
|
||||||
<li>comparison/</li>
|
<a href="headers/array/elem.hpp.html">elem.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/comparison/equal.hpp.html">equal.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/comparison/greater.hpp.html">greater.hpp</a></li>
|
<a href="headers/array/insert.hpp.html">insert.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/comparison/greater_equal.hpp.html">greater_equal.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/comparison/less.hpp.html">less.hpp</a></li>
|
<a href="headers/array/pop_back.hpp.html">pop_back.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/comparison/less_equal.hpp.html">less_equal.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/comparison/not_equal.hpp.html">not_equal.hpp</a></li>
|
<a href="headers/array/pop_front.hpp.html">pop_front.hpp</a></li>
|
||||||
<li>config/</li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/config/limits.hpp.html">limits.hpp</a></li>
|
<a href="headers/array/push_back.hpp.html">push_back.hpp</a></li>
|
||||||
<li><a href="headers/control.hpp.html">control.hpp</a></li>
|
<li class="ps">
|
||||||
<li>control/</li>
|
<a href="headers/array/push_front.hpp.html">push_front.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/control/deduce_d.hpp.html">deduce_d.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/control/expr_if.hpp.html">expr_if.hpp</a></li>
|
<a href="headers/array/remove.hpp.html">remove.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/control/expr_iif.hpp.html">expr_iif.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/control/if.hpp.html">if.hpp</a></li>
|
<a href="headers/array/replace.hpp.html">replace.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/control/iif.hpp.html">iif.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/control/while.hpp.html">while.hpp</a></li>
|
<a href="headers/array/reverse.hpp.html">reverse.hpp</a></li>
|
||||||
<li><a href="headers/debug.hpp.html">debug.hpp</a></li>
|
<li class="ps">
|
||||||
<li>debug/</li>
|
<a href="headers/array/size.hpp.html">size.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/debug/assert.hpp.html">assert.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/debug/line.hpp.html">line.hpp</a></li>
|
<a href="headers/assert_msg.hpp.html">assert_msg.hpp*</a></li>
|
||||||
<li><a href="headers/dec.hpp.html">dec.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/empty.hpp.html">empty.hpp*</a></li>
|
<a href="headers/cat.hpp.html">cat.hpp</a></li>
|
||||||
<li><a href="headers/enum.hpp.html">enum.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/enum_params.hpp.html">enum_params.hpp*</a></li>
|
<a href="headers/comma.hpp.html">comma.hpp*</a></li>
|
||||||
<li><a href="headers/enum_params_with_a_default.hpp.html">enum_params_with_a_default.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/enum_params_with_defaults.hpp.html">enum_params_with_defaults.hpp*</a></li>
|
<a href="headers/comma_if.hpp.html">comma_if.hpp*</a></li>
|
||||||
<li><a href="headers/enum_shifted.hpp.html">enum_shifted.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/enum_shifted_params.hpp.html">enum_shifted_params.hpp*</a></li>
|
<a href="headers/comparison.hpp.html">comparison.hpp</a></li>
|
||||||
<li><a href="headers/expand.hpp.html">expand.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/expr_if.hpp.html">expr_if.hpp*</a></li>
|
comparison/</li>
|
||||||
<li><a href="headers/facilities.hpp.html">facilities.hpp</a></li>
|
<li class="ps">
|
||||||
<li>facilities/</li>
|
<a href="headers/comparison/equal.hpp.html">equal.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/facilities/apply.hpp.html">apply.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/facilities/empty.hpp.html">empty.hpp</a></li>
|
<a href="headers/comparison/greater.hpp.html">greater.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/facilities/expand.hpp.html">expand.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/facilities/identity.hpp.html">identity.hpp</a></li>
|
<a href="headers/comparison/greater_equal.hpp.html">greater_equal.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/facilities/intercept.hpp.html">intercept.hpp</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/for.hpp.html">for.hpp*</a></li>
|
<a href="headers/comparison/less.hpp.html">less.hpp</a></li>
|
||||||
<li><a href="headers/identity.hpp.html">identity.hpp*</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/if.hpp.html">if.hpp*</a></li>
|
<a href="headers/comparison/less_equal.hpp.html">less_equal.hpp</a></li>
|
||||||
<li><a href="headers/inc.hpp.html">inc.hpp*</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/iterate.hpp.html">iterate.hpp*</a></li>
|
<a href="headers/comparison/not_equal.hpp.html">not_equal.hpp</a></li>
|
||||||
<li><a href="headers/iteration.hpp.html">iteration.hpp</a></li>
|
<li>
|
||||||
<li>iteration/</li>
|
config/</li>
|
||||||
<li class="ps"><a href="headers/iteration/iterate.hpp.html">iterate.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/iteration/local.hpp.html">local.hpp</a></li>
|
<a href="headers/config/limits.hpp.html">limits.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/iteration/self.hpp.html">self.hpp</a></li>
|
<li>
|
||||||
<li><a href="headers/library.hpp.html">library.hpp</a></li>
|
<a href="headers/control.hpp.html">control.hpp</a></li>
|
||||||
<li><a href="headers/limits.hpp.html">limits.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/list.hpp.html">list.hpp</a></li>
|
control/</li>
|
||||||
<li>list/</li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/adt.hpp.html">adt.hpp</a></li>
|
<a href="headers/control/deduce_d.hpp.html">deduce_d.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/append.hpp.html">append.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/at.hpp.html">at.hpp</a></li>
|
<a href="headers/control/expr_if.hpp.html">expr_if.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/cat.hpp.html">cat.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/enum.hpp.html">enum.hpp</a></li>
|
<a href="headers/control/expr_iif.hpp.html">expr_iif.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/filter.hpp.html">filter.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/first_n.hpp.html">first_n.hpp</a></li>
|
<a href="headers/control/if.hpp.html">if.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/fold_left.hpp.html">fold_left.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/fold_right.hpp.html">fold_right.hpp</a></li>
|
<a href="headers/control/iif.hpp.html">iif.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/for_each.hpp.html">for_each.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/for_each_i.hpp.html">for_each_i.hpp</a></li>
|
<a href="headers/control/while.hpp.html">while.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/for_each_product.hpp.html">for_each_product.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/list/rest_n.hpp.html">rest_n.hpp</a></li>
|
<a href="headers/debug.hpp.html">debug.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/list/reverse.hpp.html">reverse.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/list/size.hpp.html">size.hpp</a></li>
|
debug/</li>
|
||||||
<li class="ps"><a href="headers/list/to_tuple.hpp.html">to_tuple.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/list/transform.hpp.html">transform.hpp</a></li>
|
<a href="headers/debug/assert.hpp.html">assert.hpp</a></li>
|
||||||
<li><a href="headers/logical.hpp.html">logical.hpp</a></li>
|
<li class="ps">
|
||||||
<li>logical/</li>
|
<a href="headers/debug/line.hpp.html">line.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/logical/and.hpp.html">and.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/logical/bitand.hpp.html">bitand.hpp</a></li>
|
<a href="headers/dec.hpp.html">dec.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/logical/bitnor.hpp.html">bitnor.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/logical/bitor.hpp.html">bitor.hpp</a></li>
|
<a href="headers/empty.hpp.html">empty.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/logical/bitxor.hpp.html">bitxor.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/logical/bool.hpp.html">bool.hpp</a></li>
|
<a href="headers/enum.hpp.html">enum.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/logical/compl.hpp.html">compl.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/logical/nor.hpp.html">nor.hpp</a></li>
|
<a href="headers/enum_params.hpp.html">enum_params.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/logical/not.hpp.html">not.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/logical/or.hpp.html">or.hpp</a></li>
|
<a href="headers/enum_params_with_a_default.hpp.html">enum_params_with_a_default.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/logical/xor.hpp.html">xor.hpp</a></li>
|
<li>
|
||||||
<li><a href="headers/max.hpp.html">max.hpp*</a></li>
|
<a href="headers/enum_params_with_defaults.hpp.html">enum_params_with_defaults.hpp*</a></li>
|
||||||
<li><a href="headers/min.hpp.html">min.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/punctuation.hpp.html">punctuation.hpp</a></li>
|
<a href="headers/enum_shifted.hpp.html">enum_shifted.hpp*</a></li>
|
||||||
<li>punctuation/</li>
|
<li>
|
||||||
<li class="ps"><a href="headers/punctuation/comma.hpp.html">comma.hpp</a></li>
|
<a href="headers/enum_shifted_params.hpp.html">enum_shifted_params.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/punctuation/comma_if.hpp.html">comma_if.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/punctuation/paren.hpp.html">paren.hpp</a></li>
|
<a href="headers/expand.hpp.html">expand.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/punctuation/paren_if.hpp.html">paren_if.hpp</a></li>
|
<li>
|
||||||
<li><a href="headers/repeat.hpp.html">repeat.hpp*</a></li>
|
<a href="headers/expr_if.hpp.html">expr_if.hpp*</a></li>
|
||||||
<li><a href="headers/repeat_2nd.hpp.html">repeat_2nd.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/repeat_3rd.hpp.html">repeat_3rd.hpp*</a></li>
|
<a href="headers/facilities.hpp.html">facilities.hpp</a></li>
|
||||||
<li><a href="headers/repeat_from_to.hpp.html">repeat_from_to.hpp*</a></li>
|
<li>
|
||||||
<li><a href="headers/repeat_from_to_2nd.hpp.html">repeat_from_to_2nd.hpp*</a></li>
|
facilities/</li>
|
||||||
<li><a href="headers/repeat_from_to_3rd.hpp.html">repeat_from_to_3rd.hpp*</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/repetition.hpp.html">repetition.hpp</a></li>
|
<a href="headers/facilities/apply.hpp.html">apply.hpp</a></li>
|
||||||
<li>repetition/</li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/repetition/deduce_r.hpp.html">deduce_r.hpp</a></li>
|
<a href="headers/facilities/empty.hpp.html">empty.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/deduce_z.hpp.html">deduce_z.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/repetition/enum.hpp.html">enum.hpp</a></li>
|
<a href="headers/facilities/expand.hpp.html">expand.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_binary_params.hpp.html">enum_binary_params.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/repetition/enum_params.hpp.html">enum_params.hpp</a></li>
|
<a href="headers/facilities/identity.hpp.html">identity.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_params_with_a_default.hpp.html">enum_params_with_a_default.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/repetition/enum_params_with_defaults.hpp.html">enum_params_with_defaults.hpp</a></li>
|
<a href="headers/facilities/intercept.hpp.html">intercept.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_shifted_params.hpp.html">enum_shifted_params.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_shifted.hpp.html">enum_shifted.hpp</a></li>
|
<a href="headers/for.hpp.html">for.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_trailing.hpp.html">enum_trailing.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_trailing_binary_params.hpp.html">enum_trailing_binary_params.hpp</a></li>
|
<a href="headers/identity.hpp.html">identity.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/enum_trailing_params.hpp.html">enum_trailing_params.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/repetition/for.hpp.html">for.hpp</a></li>
|
<a href="headers/if.hpp.html">if.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/repetition/repeat.hpp.html">repeat.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/repetition/repeat_from_to.hpp.html">repeat_from_to.hpp</a></li>
|
<a href="headers/inc.hpp.html">inc.hpp*</a></li>
|
||||||
<li><a href="headers/selection.hpp.html">selection.hpp</a></li>
|
<li>
|
||||||
<li>selection/</li>
|
<a href="headers/iterate.hpp.html">iterate.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/selection/max.hpp.html">max.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/selection/min.hpp.html">min.hpp</a></li>
|
<a href="headers/iteration.hpp.html">iteration.hpp</a></li>
|
||||||
<li><a href="headers/set.hpp.html">set.hpp</a></li>
|
<li>
|
||||||
<li>set/</li>
|
iteration/</li>
|
||||||
<li class="ps"><a href="headers/set/cat.hpp.html">cat.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/elem.hpp.html">elem.hpp</a></li>
|
<a href="headers/iteration/iterate.hpp.html">iterate.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/enum.hpp.html">enum.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/filter.hpp.html">filter.hpp</a></li>
|
<a href="headers/iteration/local.hpp.html">local.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/first_n.hpp.html">first_n.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/fold_left.hpp.html">fold_left.hpp</a></li>
|
<a href="headers/iteration/self.hpp.html">self.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/fold_right.hpp.html">fold_right.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/set/for_each.hpp.html">for_each.hpp</a></li>
|
<a href="headers/library.hpp.html">library.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/for_each_i.hpp.html">for_each_i.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/set/for_each_product.hpp.html">for_each_product.hpp</a></li>
|
<a href="headers/limits.hpp.html">limits.hpp*</a></li>
|
||||||
<li class="ps"><a href="headers/set/insert.hpp.html">insert.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/set/pop_back.hpp.html">pop_back.hpp</a></li>
|
<a href="headers/list.hpp.html">list.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/pop_front.hpp.html">pop_front.hpp</a></li>
|
<li>
|
||||||
<li class="ps"><a href="headers/set/push_back.hpp.html">push_back.hpp</a></li>
|
list/</li>
|
||||||
<li class="ps"><a href="headers/set/push_front.hpp.html">push_front.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/remove.hpp.html">remove.hpp</a></li>
|
<a href="headers/list/adt.hpp.html">adt.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/replace.hpp.html">replace.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/rest_n.hpp.html">rest_n.hpp</a></li>
|
<a href="headers/list/append.hpp.html">append.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/reverse.hpp.html">reverse.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/set.hpp.html">set.hpp</a></li>
|
<a href="headers/list/at.hpp.html">at.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/size.hpp.html">size.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/subset.hpp.html">subset.hpp</a></li>
|
<a href="headers/list/cat.hpp.html">cat.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/to_array.hpp.html">to_array.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/set/to_tuple.hpp.html">to_tuple.hpp</a></li>
|
<a href="headers/list/enum.hpp.html">enum.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/set/transform.hpp.html">transform.hpp</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/slot.hpp.html">slot.hpp</a></li>
|
<a href="headers/list/filter.hpp.html">filter.hpp</a></li>
|
||||||
<li>slot/</li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/slot/slot.hpp.html">slot.hpp</a></li>
|
<a href="headers/list/first_n.hpp.html">first_n.hpp</a></li>
|
||||||
<li><a href="headers/tuple.hpp.html">tuple.hpp</a></li>
|
<li class="ps">
|
||||||
<li>tuple/</li>
|
<a href="headers/list/fold_left.hpp.html">fold_left.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/tuple/elem.hpp.html">elem.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/tuple/eat.hpp.html">eat.hpp</a></li>
|
<a href="headers/list/fold_right.hpp.html">fold_right.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/tuple/rem.hpp.html">rem.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/tuple/reverse.hpp.html">reverse.hpp</a></li>
|
<a href="headers/list/for_each.hpp.html">for_each.hpp</a></li>
|
||||||
<li class="ps"><a href="headers/tuple/to_list.hpp.html">to_list.hpp</a></li>
|
<li class="ps">
|
||||||
<li class="ps"><a href="headers/tuple/to_set.hpp.html">to_set.hpp</a></li>
|
<a href="headers/list/for_each_i.hpp.html">for_each_i.hpp</a></li>
|
||||||
<li><a href="headers/stringize.hpp.html">stringize.hpp</a></li>
|
<li class="ps">
|
||||||
<li><a href="headers/while.hpp.html">while.hpp*</a></li>
|
<a href="headers/list/for_each_product.hpp.html">for_each_product.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/list/rest_n.hpp.html">rest_n.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/list/reverse.hpp.html">reverse.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/list/size.hpp.html">size.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/list/to_tuple.hpp.html">to_tuple.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/list/transform.hpp.html">transform.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/logical.hpp.html">logical.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
logical/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/and.hpp.html">and.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/bitand.hpp.html">bitand.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/bitnor.hpp.html">bitnor.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/bitor.hpp.html">bitor.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/bitxor.hpp.html">bitxor.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/bool.hpp.html">bool.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/compl.hpp.html">compl.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/nor.hpp.html">nor.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/not.hpp.html">not.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/or.hpp.html">or.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/logical/xor.hpp.html">xor.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/max.hpp.html">max.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/min.hpp.html">min.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/punctuation.hpp.html">punctuation.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
punctuation/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/punctuation/comma.hpp.html">comma.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/punctuation/comma_if.hpp.html">comma_if.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/punctuation/paren.hpp.html">paren.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/punctuation/paren_if.hpp.html">paren_if.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat.hpp.html">repeat.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat_2nd.hpp.html">repeat_2nd.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat_3rd.hpp.html">repeat_3rd.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat_from_to.hpp.html">repeat_from_to.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat_from_to_2nd.hpp.html">repeat_from_to_2nd.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repeat_from_to_3rd.hpp.html">repeat_from_to_3rd.hpp*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/repetition.hpp.html">repetition.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
repetition/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/deduce_r.hpp.html">deduce_r.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/deduce_z.hpp.html">deduce_z.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum.hpp.html">enum.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_binary_params.hpp.html">enum_binary_params.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_params.hpp.html">enum_params.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_params_with_a_default.hpp.html">enum_params_with_a_default.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_params_with_defaults.hpp.html">enum_params_with_defaults.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_shifted_params.hpp.html">enum_shifted_params.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_shifted.hpp.html">enum_shifted.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_trailing.hpp.html">enum_trailing.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_trailing_binary_params.hpp.html">enum_trailing_binary_params.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/enum_trailing_params.hpp.html">enum_trailing_params.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/for.hpp.html">for.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/repeat.hpp.html">repeat.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/repetition/repeat_from_to.hpp.html">repeat_from_to.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/selection.hpp.html">selection.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
selection/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/selection/max.hpp.html">max.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/selection/min.hpp.html">min.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/seq.hpp.html">seq.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
seq/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/cat.hpp.html">cat.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/elem.hpp.html">elem.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/enum.hpp.html">enum.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/filter.hpp.html">filter.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/first_n.hpp.html">first_n.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/fold_left.hpp.html">fold_left.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/fold_right.hpp.html">fold_right.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/for_each.hpp.html">for_each.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/for_each_i.hpp.html">for_each_i.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/for_each_product.hpp.html">for_each_product.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/insert.hpp.html">insert.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/pop_back.hpp.html">pop_back.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/pop_front.hpp.html">pop_front.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/push_back.hpp.html">push_back.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/push_front.hpp.html">push_front.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/remove.hpp.html">remove.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/replace.hpp.html">replace.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/rest_n.hpp.html">rest_n.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/reverse.hpp.html">reverse.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/seq.hpp.html">seq.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/size.hpp.html">size.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/subseq.hpp.html">subseq.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/to_array.hpp.html">to_array.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/to_tuple.hpp.html">to_tuple.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/seq/transform.hpp.html">transform.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/slot.hpp.html">slot.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
slot/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/slot/slot.hpp.html">slot.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/tuple.hpp.html">tuple.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
tuple/</li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/elem.hpp.html">elem.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/eat.hpp.html">eat.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/rem.hpp.html">rem.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/reverse.hpp.html">reverse.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/to_list.hpp.html">to_list.hpp</a></li>
|
||||||
|
<li class="ps">
|
||||||
|
<a href="headers/tuple/to_seq.hpp.html">to_seq.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/stringize.hpp.html">stringize.hpp</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="headers/while.hpp.html">while.hpp*</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -7,23 +7,38 @@
|
|||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>config/limits.hpp</b> header defines various library limits.
|
The <b>config/limits.hpp</b> header defines various library limits.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/config/limits.hpp></b>
|
#include <b><boost/preprocessor/config/limits.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/limit_dim.html">BOOST_PP_LIMIT_DIM</a></li>
|
<li>
|
||||||
<li><a href="../../ref/limit_for.html">BOOST_PP_LIMIT_FOR</a></li>
|
<a href="../../ref/limit_dim.html">BOOST_PP_LIMIT_DIM</a></li>
|
||||||
<li><a href="../../ref/limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
|
<li>
|
||||||
<li><a href="../../ref/limit_iteration_dim.html">BOOST_PP_LIMIT_ITERATION_DIM</a></li>
|
<a href="../../ref/limit_for.html">BOOST_PP_LIMIT_FOR</a></li>
|
||||||
<li><a href="../../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
<li>
|
||||||
<li><a href="../../ref/limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
|
<a href="../../ref/limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
|
||||||
<li><a href="../../ref/limit_set.html">BOOST_PP_LIMIT_SET</a></li>
|
<li>
|
||||||
<li><a href="../../ref/limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
|
<a href="../../ref/limit_iteration_dim.html">BOOST_PP_LIMIT_ITERATION_DIM</a></li>
|
||||||
<li><a href="../../ref/limit_slot_sig.html">BOOST_PP_LIMIT_SLOT_SIG</a></li>
|
<li>
|
||||||
<li><a href="../../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
<a href="../../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||||
<li><a href="../../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
|
<li>
|
||||||
|
<a href="../../ref/limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/limit_slot_sig.html">BOOST_PP_LIMIT_SLOT_SIG</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,43 +1,72 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set.hpp</title>
|
<title>seq.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set.hpp</b> includes the headers in the <i>set</i> folder.
|
The <b>seq.hpp</b> includes the headers in the <i>seq</i> folder.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set.hpp></b>
|
#include <b><boost/preprocessor/seq.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Includes</h4>
|
<h4>
|
||||||
|
Includes
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="set/cat.hpp.html"><boost/preprocessor/set/cat.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/elem.hpp.html"><boost/preprocessor/set/elem.hpp></a></li>
|
<a href="seq/cat.hpp.html"><boost/preprocessor/seq/cat.hpp></a></li>
|
||||||
<li><a href="set/enum.hpp.html"><boost/preprocessor/set/enum.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/filter.hpp.html"><boost/preprocessor/set/filter.hpp></a></li>
|
<a href="seq/elem.hpp.html"><boost/preprocessor/seq/elem.hpp></a></li>
|
||||||
<li><a href="set/first_n.hpp.html"><boost/preprocessor/set/first_n.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/fold_left.hpp.html"><boost/preprocessor/set/fold_left.hpp></a></li>
|
<a href="seq/enum.hpp.html"><boost/preprocessor/seq/enum.hpp></a></li>
|
||||||
<li><a href="set/fold_right.hpp.html"><boost/preprocessor/set/fold_right.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/for_each.hpp.html"><boost/preprocessor/set/for_each.hpp></a></li>
|
<a href="seq/filter.hpp.html"><boost/preprocessor/seq/filter.hpp></a></li>
|
||||||
<li><a href="set/for_each_i.hpp.html"><boost/preprocessor/set/for_each_i.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/for_each_product.hpp.html"><boost/preprocessor/set/for_each_product.hpp></a></li>
|
<a href="seq/first_n.hpp.html"><boost/preprocessor/seq/first_n.hpp></a></li>
|
||||||
<li><a href="set/insert.hpp.html"><boost/preprocessor/set/insert.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/pop_back.hpp.html"><boost/preprocessor/set/pop_back.hpp></a></li>
|
<a href="seq/fold_left.hpp.html"><boost/preprocessor/seq/fold_left.hpp></a></li>
|
||||||
<li><a href="set/pop_front.hpp.html"><boost/preprocessor/set/pop_front.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/push_back.hpp.html"><boost/preprocessor/set/push_back.hpp></a></li>
|
<a href="seq/fold_right.hpp.html"><boost/preprocessor/seq/fold_right.hpp></a></li>
|
||||||
<li><a href="set/push_front.hpp.html"><boost/preprocessor/set/push_front.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/remove.hpp.html"><boost/preprocessor/set/remove.hpp></a></li>
|
<a href="seq/for_each.hpp.html"><boost/preprocessor/seq/for_each.hpp></a></li>
|
||||||
<li><a href="set/replace.hpp.html"><boost/preprocessor/set/replace.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/rest_n.hpp.html"><boost/preprocessor/set/rest_n.hpp></a></li>
|
<a href="seq/for_each_i.hpp.html"><boost/preprocessor/seq/for_each_i.hpp></a></li>
|
||||||
<li><a href="set/reverse.hpp.html"><boost/preprocessor/set/reverse.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/set.hpp.html"><boost/preprocessor/set/set.hpp></a></li>
|
<a href="seq/for_each_product.hpp.html"><boost/preprocessor/seq/for_each_product.hpp></a></li>
|
||||||
<li><a href="set/size.hpp.html"><boost/preprocessor/set/size.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/subset.hpp.html"><boost/preprocessor/set/subset.hpp></a></li>
|
<a href="seq/insert.hpp.html"><boost/preprocessor/seq/insert.hpp></a></li>
|
||||||
<li><a href="set/to_array.hpp.html"><boost/preprocessor/set/to_array.hpp></a></li>
|
<li>
|
||||||
<li><a href="set/to_tuple.hpp.html"><boost/preprocessor/set/to_tuple.hpp></a></li>
|
<a href="seq/pop_back.hpp.html"><boost/preprocessor/seq/pop_back.hpp></a></li>
|
||||||
<li><a href="set/transform.hpp.html"><boost/preprocessor/set/transform.hpp></a></li>
|
<li>
|
||||||
|
<a href="seq/pop_front.hpp.html"><boost/preprocessor/seq/pop_front.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/push_back.hpp.html"><boost/preprocessor/seq/push_back.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/push_front.hpp.html"><boost/preprocessor/seq/push_front.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/remove.hpp.html"><boost/preprocessor/seq/remove.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/replace.hpp.html"><boost/preprocessor/seq/replace.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/rest_n.hpp.html"><boost/preprocessor/seq/rest_n.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/reverse.hpp.html"><boost/preprocessor/seq/reverse.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/seq.hpp.html"><boost/preprocessor/seq/seq.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/size.hpp.html"><boost/preprocessor/seq/size.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/subseq.hpp.html"><boost/preprocessor/seq/subseq.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/to_array.hpp.html"><boost/preprocessor/seq/to_array.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/to_tuple.hpp.html"><boost/preprocessor/seq/to_tuple.hpp></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="seq/transform.hpp.html"><boost/preprocessor/seq/transform.hpp></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/cat.hpp</title>
|
<title>seq/cat.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/cat.hpp</b> header defines macros for concatenating all elements in a <i>set</i>.
|
The <b>seq/cat.hpp</b> header defines macros for concatenating all elements in
|
||||||
|
a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/cat.hpp></b>
|
#include <b><boost/preprocessor/seq/cat.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_cat.html">BOOST_PP_SET_CAT</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_cat_s.html">BOOST_PP_SET_CAT_S</a></li>
|
<a href="../../ref/seq_cat.html">BOOST_PP_SEQ_CAT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_cat_s.html">BOOST_PP_SEQ_CAT_S</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/elem.hpp</title>
|
<title>seq/elem.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/elem.hpp</b> header defines a macro to extract an element from a <i>set</i>.
|
The <b>seq/elem.hpp</b> header defines a macro to extract an element from a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/elem.hpp></b>
|
#include <b><boost/preprocessor/seq/elem.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_elem.html">BOOST_PP_SET_ELEM</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/enum.hpp</title>
|
<title>seq/enum.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/enum.hpp</b> header defines a macro to enumerate the elements in a <i>set</i>.
|
The <b>seq/enum.hpp</b> header defines a macro to enumerate the elements in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/enum.hpp></b>
|
#include <b><boost/preprocessor/seq/enum.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_enum.html">BOOST_PP_SET_ENUM</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_enum.html">BOOST_PP_SEQ_ENUM</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/filter.hpp</title>
|
<title>seq/filter.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/filter.hpp</b> header defines macros to filter a <i>set</i>.
|
The <b>seq/filter.hpp</b> header defines macros to filter a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/filter.hpp></b>
|
#include <b><boost/preprocessor/seq/filter.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_filter.html">BOOST_PP_SET_FILTER</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_filter_s.html">BOOST_PP_SET_FILTER_S</a></li>
|
<a href="../../ref/seq_filter.html">BOOST_PP_SEQ_FILTER</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_filter_s.html">BOOST_PP_SEQ_FILTER_S</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/first_n.hpp</title>
|
<title>seq/first_n.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/first_n.hpp</b> header defines a macro that returns the first <i>N</i> elements of a <i>set</i>.
|
The <b>seq/first_n.hpp</b> header defines a macro that returns the first <i>N</i>
|
||||||
|
elements of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/first_n.hpp></b>
|
#include <b><boost/preprocessor/seq/first_n.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_first_n.html">BOOST_PP_SET_FIRST_N</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/fold_left.hpp</title>
|
<title>seq/fold_left.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/fold_left.hpp</b> header defines macros for folding (or accumulating) a <i>set</i> left-to-right.
|
The <b>seq/fold_left.hpp</b> header defines macros for folding (or
|
||||||
|
accumulating) a <i>seq</i> left-to-right.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/fold_left.hpp></b>
|
#include <b><boost/preprocessor/seq/fold_left.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_fold_left.html">BOOST_PP_SET_FOLD_LEFT</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_fold_left_s.html">BOOST_PP_SET_FOLD_LEFT_<i>s</i></a></li>
|
<a href="../../ref/seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/fold_right.hpp</title>
|
<title>seq/fold_right.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/fold_right.hpp</b> header defines macros for folding (or accumulating) a <i>set</i> right-to-left.
|
The <b>seq/fold_right.hpp</b> header defines macros for folding (or
|
||||||
|
accumulating) a <i>seq</i> right-to-left.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/fold_right.hpp></b>
|
#include <b><boost/preprocessor/seq/fold_right.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_fold_right.html">BOOST_PP_SET_FOLD_RIGHT</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_fold_right_s.html">BOOST_PP_SET_FOLD_RIGHT_<i>s</i></a></li>
|
<a href="../../ref/seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_fold_right_s.html">BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/for_each.hpp</title>
|
<title>seq/for_each.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/for_each.hpp</b> header defines macros to repeat a macro for each element in a <i>set</i>.
|
The <b>seq/for_each.hpp</b> header defines macros to repeat a macro for each
|
||||||
|
element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/for_each.hpp></b>
|
#include <b><boost/preprocessor/seq/for_each.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_for_each.html">BOOST_PP_SET_FOR_EACH</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_for_each_r.html">BOOST_PP_SET_FOR_EACH_R</a></li>
|
<a href="../../ref/seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/for_each_i.hpp</title>
|
<title>seq/for_each_i.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/for_each_i.hpp</b> header defines macros to repeat a macro for each element in a <i>set</i>.
|
The <b>seq/for_each_i.hpp</b> header defines macros to repeat a macro for each
|
||||||
|
element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/for_each_i.hpp></b>
|
#include <b><boost/preprocessor/seq/for_each_i.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_for_each_i.html">BOOST_PP_SET_FOR_EACH_I</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_for_each_i_r.html">BOOST_PP_SET_FOR_EACH_I_R</a></li>
|
<a href="../../ref/seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_for_each_i_r.html">BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/for_each_product.hpp</title>
|
<title>seq/for_each_product.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/for_each_product.hpp</b> header defines macros to repeat a macro for each cartesian product of several <i>sets</i>.
|
The <b>seq/for_each_product.hpp</b> header defines macros to repeat a macro for
|
||||||
|
each cartesian product of several <i>seqs</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/for_each_product.hpp></b>
|
#include <b><boost/preprocessor/seq/for_each_product.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_for_each_product.html">BOOST_PP_SET_FOR_EACH_PRODUCT</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_for_each_product_r.html">BOOST_PP_SET_FOR_EACH_PRODUCT_R</a></li>
|
<a href="../../ref/seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/insert.hpp</title>
|
<title>seq/insert.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/insert.hpp</b> header defines a macro to insert an element into a <i>set</i>.
|
The <b>seq/insert.hpp</b> header defines a macro to insert an element into a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/insert.hpp></b>
|
#include <b><boost/preprocessor/seq/insert.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_insert.html">BOOST_PP_SET_INSERT</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_insert.html">BOOST_PP_SEQ_INSERT</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/pop_back.hpp</title>
|
<title>seq/pop_back.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/pop_back.hpp</b> header defines a macro to pop the last element off a <i>set</i>.
|
The <b>seq/pop_back.hpp</b> header defines a macro to pop the last element off
|
||||||
|
a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/pop_back.hpp></b>
|
#include <b><boost/preprocessor/seq/pop_back.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_pop_back.html">BOOST_PP_SET_POP_BACK</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/pop_front.hpp</title>
|
<title>seq/pop_front.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/pop_front.hpp</b> header defines a macro to pop the first element off a <i>set</i>.
|
The <b>seq/pop_front.hpp</b> header defines a macro to pop the first element
|
||||||
|
off a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/pop_front.hpp></b>
|
#include <b><boost/preprocessor/seq/pop_front.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_pop_front.html">BOOST_PP_SET_POP_FRONT</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/push_back.hpp</title>
|
<title>seq/push_back.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/push_back.hpp</b> header defines a macro to append an element to a <i>set</i>.
|
The <b>seq/push_back.hpp</b> header defines a macro to append an element to a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/push_back.hpp></b>
|
#include <b><boost/preprocessor/seq/push_back.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_push_back.html">BOOST_PP_SET_PUSH_BACK</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/push_front.hpp</title>
|
<title>seq/push_front.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/push_front.hpp</b> header defines a macro to prepend an element to a <i>set</i>.
|
The <b>seq/push_front.hpp</b> header defines a macro to prepend an element to a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/push_front.hpp></b>
|
#include <b><boost/preprocessor/seq/push_front.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/remove.hpp</title>
|
<title>seq/remove.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/remove.hpp</b> header defines a macro to remove an element from a <i>set</i>.
|
The <b>seq/remove.hpp</b> header defines a macro to remove an element from a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/remove.hpp></b>
|
#include <b><boost/preprocessor/seq/remove.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_remove.html">BOOST_PP_SET_REMOVE</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_remove.html">BOOST_PP_SEQ_REMOVE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/replace.hpp</title>
|
<title>seq/replace.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/replace.hpp</b> header defines a macro to replace an element in a <i>set</i>.
|
The <b>seq/replace.hpp</b> header defines a macro to replace an element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/replace.hpp></b>
|
#include <b><boost/preprocessor/seq/replace.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_replace.html">BOOST_PP_SET_REPLACE</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_replace.html">BOOST_PP_SEQ_REPLACE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/rest_n.hpp</title>
|
<title>seq/rest_n.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/rest_n.hpp</b> header defines a macro for extracting a group of elements from the end of a <i>set</i>.
|
The <b>seq/rest_n.hpp</b> header defines a macro for extracting a group of
|
||||||
|
elements from the end of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/rest_n.hpp></b>
|
#include <b><boost/preprocessor/seq/rest_n.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_rest_n.html">BOOST_PP_SET_REST_N</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_rest_n.html">BOOST_PP_SEQ_REST_N</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/reverse.hpp</title>
|
<title>seq/reverse.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/reverse.hpp</b> header defines macros to reverse a <i>set</i>.
|
The <b>seq/reverse.hpp</b> header defines macros to reverse a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/reverse.hpp></b>
|
#include <b><boost/preprocessor/seq/reverse.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_reverse.html">BOOST_PP_SET_REVERSE</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_reverse_s.html">BOOST_PP_SET_REVERSE_S</a></li>
|
<a href="../../ref/seq_reverse.html">BOOST_PP_SEQ_REVERSE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_reverse_s.html">BOOST_PP_SEQ_REVERSE_S</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,21 +1,28 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/set.hpp</title>
|
<title>seq/seq.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/set.hpp</b> header defines basic primitives for manipulating <i>sets</i>.
|
The <b>seq/seq.hpp</b> header defines basic primitives for manipulating <i>seqs</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/set.hpp></b>
|
#include <b><boost/preprocessor/seq/seq.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_head.html">BOOST_PP_SET_HEAD</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_nil.html">BOOST_PP_SET_NIL</a></li>
|
<a href="../../ref/seq_head.html">BOOST_PP_SEQ_HEAD</a></li>
|
||||||
<li><a href="../../ref/set_tail.html">BOOST_PP_SET_TAIL</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_nil.html">BOOST_PP_SEQ_NIL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_tail.html">BOOST_PP_SEQ_TAIL</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/size.hpp</title>
|
<title>seq/size.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/size.hpp</b> header defines a macro to calculate the size of a <i>set</i>.
|
The <b>seq/size.hpp</b> header defines a macro to calculate the size of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/size.hpp></b>
|
#include <b><boost/preprocessor/seq/size.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_size.html">BOOST_PP_SET_SIZE</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_size.html">BOOST_PP_SEQ_SIZE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/subset.hpp</title>
|
<title>seq/subseq.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/subset.hpp</b> header defines a macro that extracts a subset from a <i>set</i>.
|
The <b>seq/subseq.hpp</b> header defines a macro that extracts a subseq from a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/subset.hpp></b>
|
#include <b><boost/preprocessor/seq/subseq.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_subset.html">BOOST_PP_SET_SUBSET</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_subseq.html">BOOST_PP_SEQ_SUBSEQ</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/to_array.hpp</title>
|
<title>seq/to_array.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/to_array.hpp</b> header defines a macro that converts a <i>set</i> to an <i>array</i>.
|
The <b>seq/to_array.hpp</b> header defines a macro that converts a <i>seq</i> to
|
||||||
|
an <i>array</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/to_array.hpp></b>
|
#include <b><boost/preprocessor/seq/to_array.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_to_array.html">BOOST_PP_SET_TO_ARRAY</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_to_array.html">BOOST_PP_SEQ_TO_ARRAY</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/to_tuple.hpp</title>
|
<title>seq/to_tuple.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/to_tuple.hpp</b> header defines a macro that converts a <i>set</i> to an <i>tuple</i>.
|
The <b>seq/to_tuple.hpp</b> header defines a macro that converts a <i>seq</i> to
|
||||||
|
an <i>tuple</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/to_tuple.hpp></b>
|
#include <b><boost/preprocessor/seq/to_tuple.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_to_tuple.html">BOOST_PP_SET_TO_TUPLE</a></li>
|
<li>
|
||||||
|
<a href="../../ref/seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>set/transform.hpp</title>
|
<title>seq/transform.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>set/transform.hpp</b> header defines macros to transform a <i>set</i>.
|
The <b>seq/transform.hpp</b> header defines macros to transform a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/set/transform.hpp></b>
|
#include <b><boost/preprocessor/seq/transform.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/set_transform.html">BOOST_PP_SET_TRANSFORM</a></li>
|
<li>
|
||||||
<li><a href="../../ref/set_transform_s.html">BOOST_PP_SET_TRANSFORM_S</a></li>
|
<a href="../../ref/seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="../../ref/seq_transform_s.html">BOOST_PP_SEQ_TRANSFORM_S</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>tuple/to_set.hpp</title>
|
<title>tuple/to_seq.hpp</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>tuple/to_set.hpp</b> header defines a macro that converts a <i>tuple</i> to a <i>set</i>.
|
The <b>tuple/to_seq.hpp</b> header defines a macro that converts a <i>tuple</i>
|
||||||
|
to a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#include <b><boost/preprocessor/tuple/to_set.hpp></b>
|
#include <b><boost/preprocessor/tuple/to_seq.hpp></b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Contents</h4>
|
<h4>
|
||||||
|
Contents
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../ref/tuple_to_set.html">BOOST_PP_TUPLE_TO_SET</a></li>
|
<li>
|
||||||
|
<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
<frameset cols="350,*" frameborder="0" border="3">
|
<frameset cols="350,*" frameborder="0" border="3">
|
||||||
<frame name="index" src="contents.html" scrolling="auto">
|
<frame name="index" src="contents.html" scrolling="auto">
|
||||||
<frame name="desc" src="blank.html" scrolling="auto">
|
<frame name="desc" src="blank.html" scrolling="auto">
|
||||||
</frameset>
|
</frameseq>
|
||||||
<noframes>..</noframes>
|
<noframes>
|
||||||
</frameset>
|
..</noframes>
|
||||||
|
</frameseq>
|
||||||
</html>
|
</html>
|
||||||
|
721
doc/ref.html
721
doc/ref.html
@ -5,265 +5,506 @@
|
|||||||
<base target="desc">
|
<base target="desc">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h4>Reference <small><a href="contents.html" target="index">[back]</a></small></h4>
|
<h4>
|
||||||
|
Reference <small><a href="contents.html" target="index">[back]</a></small>
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<!-- A -->
|
<!-- A -->
|
||||||
<li><a href="ref/add.html">ADD</a></li>
|
<li>
|
||||||
<li><a href="ref/add_d.html">ADD_D</a></li>
|
<a href="ref/add.html">ADD</a></li>
|
||||||
<li><a href="ref/and.html">AND</a></li>
|
<li>
|
||||||
<li><a href="ref/apply.html">APPLY</a></li>
|
<a href="ref/add_d.html">ADD_D</a></li>
|
||||||
<li><a href="ref/array_data.html">ARRAY_DATA</a></li>
|
<li>
|
||||||
<li><a href="ref/array_elem.html">ARRAY_ELEM</a></li>
|
<a href="ref/and.html">AND</a></li>
|
||||||
<li><a href="ref/array_insert.html">ARRAY_INSERT</a></li>
|
<li>
|
||||||
<li><a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
|
<a href="ref/apply.html">APPLY</a></li>
|
||||||
<li><a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
|
<li>
|
||||||
<li><a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
|
<a href="ref/array_data.html">ARRAY_DATA</a></li>
|
||||||
<li><a href="ref/array_pop_front.html">ARRAY_POP_FRONT</a></li>
|
<li>
|
||||||
<li><a href="ref/array_pop_front_z.html">ARRAY_POP_FRONT_Z</a></li>
|
<a href="ref/array_elem.html">ARRAY_ELEM</a></li>
|
||||||
<li><a href="ref/array_push_back.html">ARRAY_PUSH_BACK</a></li>
|
<li>
|
||||||
<li><a href="ref/array_push_front.html">ARRAY_PUSH_FRONT</a></li>
|
<a href="ref/array_insert.html">ARRAY_INSERT</a></li>
|
||||||
<li><a href="ref/array_remove.html">ARRAY_REMOVE</a></li>
|
<li>
|
||||||
<li><a href="ref/array_remove_d.html">ARRAY_REMOVE_D</a></li>
|
<a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
|
||||||
<li><a href="ref/array_replace.html">ARRAY_REPLACE</a></li>
|
<li>
|
||||||
<li><a href="ref/array_replace_d.html">ARRAY_REPLACE_D</a></li>
|
<a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
|
||||||
<li><a href="ref/array_reverse.html">ARRAY_REVERSE</a></li>
|
<li>
|
||||||
<li><a href="ref/array_size.html">ARRAY_SIZE</a></li>
|
<a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
|
||||||
<li><a href="ref/assert.html">ASSERT</a></li>
|
<li>
|
||||||
<li><a href="ref/assert_msg.html">ASSERT_MSG</a></li>
|
<a href="ref/array_pop_front.html">ARRAY_POP_FRONT</a></li>
|
||||||
<li><a href="ref/assign_slot.html">ASSIGN_SLOT</a></li>
|
<li>
|
||||||
|
<a href="ref/array_pop_front_z.html">ARRAY_POP_FRONT_Z</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_push_back.html">ARRAY_PUSH_BACK</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_push_front.html">ARRAY_PUSH_FRONT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_remove.html">ARRAY_REMOVE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_remove_d.html">ARRAY_REMOVE_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_replace.html">ARRAY_REPLACE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_replace_d.html">ARRAY_REPLACE_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_reverse.html">ARRAY_REVERSE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/array_size.html">ARRAY_SIZE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/assert.html">ASSERT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/assert_msg.html">ASSERT_MSG</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/assign_slot.html">ASSIGN_SLOT</a></li>
|
||||||
<!-- B -->
|
<!-- B -->
|
||||||
<li><a href="ref/bitand.html">BITAND</a></li>
|
<li>
|
||||||
<li><a href="ref/bitnor.html">BITNOR</a></li>
|
<a href="ref/bitand.html">BITAND</a></li>
|
||||||
<li><a href="ref/bitor.html">BITOR</a></li>
|
<li>
|
||||||
<li><a href="ref/bitxor.html">BITXOR</a></li>
|
<a href="ref/bitnor.html">BITNOR</a></li>
|
||||||
<li><a href="ref/bool.html">BOOL</a></li>
|
<li>
|
||||||
|
<a href="ref/bitor.html">BITOR</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/bitxor.html">BITXOR</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/bool.html">BOOL</a></li>
|
||||||
<!-- C -->
|
<!-- C -->
|
||||||
<li><a href="ref/cat.html">CAT</a></li>
|
<li>
|
||||||
<li><a href="ref/comma.html">COMMA</a></li>
|
<a href="ref/cat.html">CAT</a></li>
|
||||||
<li><a href="ref/comma_if.html">COMMA_IF</a></li>
|
<li>
|
||||||
<li><a href="ref/compl.html">COMPL</a></li>
|
<a href="ref/comma.html">COMMA</a></li>
|
||||||
<li><a href="ref/config_extended_line_info.html">CONFIG_EXTENDED_LINE_INFO</a></li>
|
<li>
|
||||||
|
<a href="ref/comma_if.html">COMMA_IF</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/compl.html">COMPL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/config_extended_line_info.html">CONFIG_EXTENDED_LINE_INFO</a></li>
|
||||||
<!-- D -->
|
<!-- D -->
|
||||||
<li><a href="ref/dec.html">DEC</a></li>
|
<li>
|
||||||
<li><a href="ref/deduce_d.html">DEDUCE_D</a></li>
|
<a href="ref/dec.html">DEC</a></li>
|
||||||
<li><a href="ref/deduce_r.html">DEDUCE_R</a></li>
|
<li>
|
||||||
<li><a href="ref/deduce_z.html">DEDUCE_Z</a></li>
|
<a href="ref/deduce_d.html">DEDUCE_D</a></li>
|
||||||
<li><a href="ref/div.html">DIV</a></li>
|
<li>
|
||||||
<li><a href="ref/div_d.html">DIV_D</a></li>
|
<a href="ref/deduce_r.html">DEDUCE_R</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/deduce_z.html">DEDUCE_Z</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/div.html">DIV</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/div_d.html">DIV_D</a></li>
|
||||||
<!-- E -->
|
<!-- E -->
|
||||||
<li><a href="ref/empty.html">EMPTY</a></li>
|
<li>
|
||||||
<li><a href="ref/enum.html">ENUM</a></li>
|
<a href="ref/empty.html">EMPTY</a></li>
|
||||||
<li><a href="ref/enum_binary_params.html">ENUM_BINARY_PARAMS</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_binary_params_z.html">ENUM_BINARY_PARAMS_Z</a></li>
|
<a href="ref/enum.html">ENUM</a></li>
|
||||||
<li><a href="ref/enum_params.html">ENUM_PARAMS</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_params_with_a_default.html">ENUM_PARAMS_WITH_A_DEFAULT*</a></li>
|
<a href="ref/enum_binary_params.html">ENUM_BINARY_PARAMS</a></li>
|
||||||
<li><a href="ref/enum_params_with_defaults.html">ENUM_PARAMS_WITH_DEFAULTS*</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_params_z.html">ENUM_PARAMS_Z</a></li>
|
<a href="ref/enum_binary_params_z.html">ENUM_BINARY_PARAMS_Z</a></li>
|
||||||
<li><a href="ref/enum_shifted.html">ENUM_SHIFTED</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_shifted_params.html">ENUM_SHIFTED_PARAMS</a></li>
|
<a href="ref/enum_params.html">ENUM_PARAMS</a></li>
|
||||||
<li><a href="ref/enum_shifted_params_z.html">ENUM_SHIFTED_PARAMS_Z</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_shifted_z.html">ENUM_SHIFTED_<i>z</i></a></li>
|
<a href="ref/enum_params_with_a_default.html">ENUM_PARAMS_WITH_A_DEFAULT*</a></li>
|
||||||
<li><a href="ref/enum_trailing.html">ENUM_TRAILING</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_trailing_binary_params.html">ENUM_TRAILING_BINARY_PARAMS</a></li>
|
<a href="ref/enum_params_with_defaults.html">ENUM_PARAMS_WITH_DEFAULTS*</a></li>
|
||||||
<li><a href="ref/enum_trailing_binary_params_z.html">ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_trailing_params.html">ENUM_TRAILING_PARAMS</a></li>
|
<a href="ref/enum_params_z.html">ENUM_PARAMS_Z</a></li>
|
||||||
<li><a href="ref/enum_trailing_params_z.html">ENUM_TRAILING_PARAMS_Z</a></li>
|
<li>
|
||||||
<li><a href="ref/enum_trailing_z.html">ENUM_TRAILING_<i>z</i></a></li>
|
<a href="ref/enum_shifted.html">ENUM_SHIFTED</a></li>
|
||||||
<li><a href="ref/enum_z.html">ENUM_<i>z</i></a></li>
|
<li>
|
||||||
<li><a href="ref/equal.html">EQUAL</a></li>
|
<a href="ref/enum_shifted_params.html">ENUM_SHIFTED_PARAMS</a></li>
|
||||||
<li><a href="ref/equal_d.html">EQUAL_D*</a></li>
|
<li>
|
||||||
<li><a href="ref/expand.html">EXPAND</a></li>
|
<a href="ref/enum_shifted_params_z.html">ENUM_SHIFTED_PARAMS_Z</a></li>
|
||||||
<li><a href="ref/expr_if.html">EXPR_IF</a></li>
|
<li>
|
||||||
<li><a href="ref/expr_iif.html">EXPR_IIF</a></li>
|
<a href="ref/enum_shifted_z.html">ENUM_SHIFTED_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing.html">ENUM_TRAILING</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing_binary_params.html">ENUM_TRAILING_BINARY_PARAMS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing_binary_params_z.html">ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing_params.html">ENUM_TRAILING_PARAMS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing_params_z.html">ENUM_TRAILING_PARAMS_Z</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_trailing_z.html">ENUM_TRAILING_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/enum_z.html">ENUM_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/equal.html">EQUAL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/equal_d.html">EQUAL_D*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/expand.html">EXPAND</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/expr_if.html">EXPR_IF</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/expr_iif.html">EXPR_IIF</a></li>
|
||||||
<!-- F -->
|
<!-- F -->
|
||||||
<li><a href="ref/filename_x.html">FILENAME_<i>x</i></a></li>
|
<li>
|
||||||
<li><a href="ref/for.html">FOR</a></li>
|
<a href="ref/filename_x.html">FILENAME_<i>x</i></a></li>
|
||||||
<li><a href="ref/for_r.html">FOR_<i>r</i></a></li>
|
<li>
|
||||||
<li><a href="ref/frame_finish.html">FRAME_FINISH</a></li>
|
<a href="ref/for.html">FOR</a></li>
|
||||||
<li><a href="ref/frame_flags.html">FRAME_FLAGS</a></li>
|
<li>
|
||||||
<li><a href="ref/frame_iteration.html">FRAME_ITERATION</a></li>
|
<a href="ref/for_r.html">FOR_<i>r</i></a></li>
|
||||||
<li><a href="ref/frame_start.html">FRAME_START</a></li>
|
<li>
|
||||||
|
<a href="ref/frame_finish.html">FRAME_FINISH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/frame_flags.html">FRAME_FLAGS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/frame_iteration.html">FRAME_ITERATION</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/frame_start.html">FRAME_START</a></li>
|
||||||
<!-- G -->
|
<!-- G -->
|
||||||
<li><a href="ref/greater.html">GREATER</a></li>
|
<li>
|
||||||
<li><a href="ref/greater_d.html">GREATER_D</a></li>
|
<a href="ref/greater.html">GREATER</a></li>
|
||||||
<li><a href="ref/greater_equal.html">GREATER_EQUAL</a></li>
|
<li>
|
||||||
<li><a href="ref/greater_equal_d.html">GREATER_EQUAL_D</a></li>
|
<a href="ref/greater_d.html">GREATER_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/greater_equal.html">GREATER_EQUAL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/greater_equal_d.html">GREATER_EQUAL_D</a></li>
|
||||||
<!-- I -->
|
<!-- I -->
|
||||||
<li><a href="ref/identity.html">IDENTITY</a></li>
|
<li>
|
||||||
<li><a href="ref/if.html">IF</a></li>
|
<a href="ref/identity.html">IDENTITY</a></li>
|
||||||
<li><a href="ref/iif.html">IIF</a></li>
|
<li>
|
||||||
<li><a href="ref/inc.html">INC</a></li>
|
<a href="ref/if.html">IF</a></li>
|
||||||
<li><a href="ref/include_self.html">INCLUDE_SELF</a></li>
|
<li>
|
||||||
<li><a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
|
<a href="ref/iif.html">IIF</a></li>
|
||||||
<li><a href="ref/intercept.html">INTERCEPT</a></li>
|
<li>
|
||||||
<li><a href="ref/is_iterating.html">IS_ITERATING</a></li>
|
<a href="ref/inc.html">INC</a></li>
|
||||||
<li><a href="ref/is_selfish.html">IS_SELFISH</a></li>
|
<li>
|
||||||
<li><a href="ref/iterate.html">ITERATE</a></li>
|
<a href="ref/include_self.html">INCLUDE_SELF</a></li>
|
||||||
<li><a href="ref/iteration.html">ITERATION</a></li>
|
<li>
|
||||||
<li><a href="ref/iteration_depth.html">ITERATION_DEPTH</a></li>
|
<a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
|
||||||
<li><a href="ref/iteration_finish.html">ITERATION_FINISH</a></li>
|
<li>
|
||||||
<li><a href="ref/iteration_flags.html">ITERATION_FLAGS</a></li>
|
<a href="ref/intercept.html">INTERCEPT</a></li>
|
||||||
<li><a href="ref/iteration_limits.html">ITERATION_LIMITS</a></li>
|
<li>
|
||||||
<li><a href="ref/iteration_params_x.html">ITERATION_PARAMS_<i>x</i></a></li>
|
<a href="ref/is_iterating.html">IS_ITERATING</a></li>
|
||||||
<li><a href="ref/iteration_start.html">ITERATION_START</a></li>
|
<li>
|
||||||
|
<a href="ref/is_selfish.html">IS_SELFISH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iterate.html">ITERATE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration.html">ITERATION</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_depth.html">ITERATION_DEPTH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_finish.html">ITERATION_FINISH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_flags.html">ITERATION_FLAGS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_limits.html">ITERATION_LIMITS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_params_x.html">ITERATION_PARAMS_<i>x</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/iteration_start.html">ITERATION_START</a></li>
|
||||||
<!-- L -->
|
<!-- L -->
|
||||||
<li><a href="ref/less.html">LESS</a></li>
|
<li>
|
||||||
<li><a href="ref/less_d.html">LESS_D</a></li>
|
<a href="ref/less.html">LESS</a></li>
|
||||||
<li><a href="ref/less_equal.html">LESS_EQUAL</a></li>
|
<li>
|
||||||
<li><a href="ref/less_equal_d.html">LESS_EQUAL_D</a></li>
|
<a href="ref/less_d.html">LESS_D</a></li>
|
||||||
<li><a href="ref/limit_dim.html">LIMIT_DIM</a></li>
|
<li>
|
||||||
<li><a href="ref/limit_for.html">LIMIT_FOR</a></li>
|
<a href="ref/less_equal.html">LESS_EQUAL</a></li>
|
||||||
<li><a href="ref/limit_iteration.html">LIMIT_ITERATION</a></li>
|
<li>
|
||||||
<li><a href="ref/limit_iteration_dim.html">LIMIT_ITERATION_DIM</a></li>
|
<a href="ref/less_equal_d.html">LESS_EQUAL_D</a></li>
|
||||||
<li><a href="ref/limit_mag.html">LIMIT_MAG</a></li>
|
<li>
|
||||||
<li><a href="ref/limit_repeat.html">LIMIT_REPEAT</a></li>
|
<a href="ref/limit_dim.html">LIMIT_DIM</a></li>
|
||||||
<li><a href="ref/limit_set.html">LIMIT_SET</a></li>
|
<li>
|
||||||
<li><a href="ref/limit_slot_count.html">LIMIT_SLOT_COUNT</a></li>
|
<a href="ref/limit_for.html">LIMIT_FOR</a></li>
|
||||||
<li><a href="ref/limit_slot_sig.html">LIMIT_SLOT_SIG</a></li>
|
<li>
|
||||||
<li><a href="ref/limit_tuple.html">LIMIT_TUPLE</a></li>
|
<a href="ref/limit_iteration.html">LIMIT_ITERATION</a></li>
|
||||||
<li><a href="ref/limit_while.html">LIMIT_WHILE</a></li>
|
<li>
|
||||||
<li><a href="ref/line.html">LINE</a></li>
|
<a href="ref/limit_iteration_dim.html">LIMIT_ITERATION_DIM</a></li>
|
||||||
<li><a href="ref/list_append.html">LIST_APPEND</a></li>
|
<li>
|
||||||
<li><a href="ref/list_append_d.html">LIST_APPEND_D</a></li>
|
<a href="ref/limit_mag.html">LIMIT_MAG</a></li>
|
||||||
<li><a href="ref/list_at.html">LIST_AT</a></li>
|
<li>
|
||||||
<li><a href="ref/list_at_d.html">LIST_AT_D</a></li>
|
<a href="ref/limit_repeat.html">LIMIT_REPEAT</a></li>
|
||||||
<li><a href="ref/list_cat.html">LIST_CAT</a></li>
|
<li>
|
||||||
<li><a href="ref/list_cat_d.html">LIST_CAT_D</a></li>
|
<a href="ref/limit_seq.html">LIMIT_SEQ</a></li>
|
||||||
<li><a href="ref/list_cons.html">LIST_CONS*</a></li>
|
<li>
|
||||||
<li><a href="ref/list_enum.html">LIST_ENUM</a></li>
|
<a href="ref/limit_slot_count.html">LIMIT_SLOT_COUNT</a></li>
|
||||||
<li><a href="ref/list_enum_r.html">LIST_ENUM_R</a></li>
|
<li>
|
||||||
<li><a href="ref/list_filter.html">LIST_FILTER</a></li>
|
<a href="ref/limit_slot_sig.html">LIMIT_SLOT_SIG</a></li>
|
||||||
<li><a href="ref/list_filter_d.html">LIST_FILTER_D</a></li>
|
<li>
|
||||||
<li><a href="ref/list_first.html">LIST_FIRST</a></li>
|
<a href="ref/limit_tuple.html">LIMIT_TUPLE</a></li>
|
||||||
<li><a href="ref/list_first_n.html">LIST_FIRST_N</a></li>
|
<li>
|
||||||
<li><a href="ref/list_first_n_d.html">LIST_FIRST_N_D</a></li>
|
<a href="ref/limit_while.html">LIMIT_WHILE</a></li>
|
||||||
<li><a href="ref/list_fold_left.html">LIST_FOLD_LEFT</a></li>
|
<li>
|
||||||
<li><a href="ref/list_fold_left_2nd.html">LIST_FOLD_LEFT_2ND*</a></li>
|
<a href="ref/line.html">LINE</a></li>
|
||||||
<li><a href="ref/list_fold_left_2nd_d.html">LIST_FOLD_LEFT_2ND_D*</a></li>
|
<li>
|
||||||
<li><a href="ref/list_fold_left_d.html">LIST_FOLD_LEFT_<i>d</i></a></li>
|
<a href="ref/list_append.html">LIST_APPEND</a></li>
|
||||||
<li><a href="ref/list_fold_left_d_old.html">LIST_FOLD_LEFT_D*</a></li>
|
<li>
|
||||||
<li><a href="ref/list_fold_right.html">LIST_FOLD_RIGHT</a></li>
|
<a href="ref/list_append_d.html">LIST_APPEND_D</a></li>
|
||||||
<li><a href="ref/list_fold_right_2nd.html">LIST_FOLD_RIGHT_2ND*</a></li>
|
<li>
|
||||||
<li><a href="ref/list_fold_right_2nd_d.html">LIST_FOLD_RIGHT_2ND_D*</a></li>
|
<a href="ref/list_at.html">LIST_AT</a></li>
|
||||||
<li><a href="ref/list_fold_right_d.html">LIST_FOLD_RIGHT_<i>d</i></a></li>
|
<li>
|
||||||
<li><a href="ref/list_fold_right_d_old.html">LIST_FOLD_RIGHT_D*</a></li>
|
<a href="ref/list_at_d.html">LIST_AT_D</a></li>
|
||||||
<li><a href="ref/list_for_each.html">LIST_FOR_EACH</a></li>
|
<li>
|
||||||
<li><a href="ref/list_for_each_i.html">LIST_FOR_EACH_I</a></li>
|
<a href="ref/list_cat.html">LIST_CAT</a></li>
|
||||||
<li><a href="ref/list_for_each_i_r.html">LIST_FOR_EACH_I_R</a></li>
|
<li>
|
||||||
<li><a href="ref/list_for_each_product.html">LIST_FOR_EACH_PRODUCT</a></li>
|
<a href="ref/list_cat_d.html">LIST_CAT_D</a></li>
|
||||||
<li><a href="ref/list_for_each_product_r.html">LIST_FOR_EACH_PRODUCT_R</a></li>
|
<li>
|
||||||
<li><a href="ref/list_for_each_r.html">LIST_FOR_EACH_R</a></li>
|
<a href="ref/list_cons.html">LIST_CONS*</a></li>
|
||||||
<li><a href="ref/list_is_cons.html">LIST_IS_CONS</a></li>
|
<li>
|
||||||
<li><a href="ref/list_is_nil.html">LIST_IS_NIL</a></li>
|
<a href="ref/list_enum.html">LIST_ENUM</a></li>
|
||||||
<li><a href="ref/list_nil.html">LIST_NIL*</a></li>
|
<li>
|
||||||
<li><a href="ref/list_rest.html">LIST_REST</a></li>
|
<a href="ref/list_enum_r.html">LIST_ENUM_R</a></li>
|
||||||
<li><a href="ref/list_rest_n.html">LIST_REST_N</a></li>
|
<li>
|
||||||
<li><a href="ref/list_rest_n_d.html">LIST_REST_N_D</a></li>
|
<a href="ref/list_filter.html">LIST_FILTER</a></li>
|
||||||
<li><a href="ref/list_reverse.html">LIST_REVERSE</a></li>
|
<li>
|
||||||
<li><a href="ref/list_reverse_d.html">LIST_REVERSE_D</a></li>
|
<a href="ref/list_filter_d.html">LIST_FILTER_D</a></li>
|
||||||
<li><a href="ref/list_size.html">LIST_SIZE</a></li>
|
<li>
|
||||||
<li><a href="ref/list_size_d.html">LIST_SIZE_D</a></li>
|
<a href="ref/list_first.html">LIST_FIRST</a></li>
|
||||||
<li><a href="ref/list_to_tuple.html">LIST_TO_TUPLE</a></li>
|
<li>
|
||||||
<li><a href="ref/list_to_tuple_r.html">LIST_TO_TUPLE_R</a></li>
|
<a href="ref/list_first_n.html">LIST_FIRST_N</a></li>
|
||||||
<li><a href="ref/list_transform.html">LIST_TRANSFORM</a></li>
|
<li>
|
||||||
<li><a href="ref/list_transform_d.html">LIST_TRANSFORM_D</a></li>
|
<a href="ref/list_first_n_d.html">LIST_FIRST_N_D</a></li>
|
||||||
<li><a href="ref/local_iterate.html">LOCAL_ITERATE</a></li>
|
<li>
|
||||||
<li><a href="ref/local_limits.html">LOCAL_LIMITS</a></li>
|
<a href="ref/list_fold_left.html">LIST_FOLD_LEFT</a></li>
|
||||||
<li><a href="ref/local_macro.html">LOCAL_MACRO</a></li>
|
<li>
|
||||||
<li><a href="ref/lparen.html">LPAREN</a></li>
|
<a href="ref/list_fold_left_2nd.html">LIST_FOLD_LEFT_2ND*</a></li>
|
||||||
<li><a href="ref/lparen_if.html">LPAREN_IF</a></li>
|
<li>
|
||||||
|
<a href="ref/list_fold_left_2nd_d.html">LIST_FOLD_LEFT_2ND_D*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_left_d.html">LIST_FOLD_LEFT_<i>d</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_left_d_old.html">LIST_FOLD_LEFT_D*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_right.html">LIST_FOLD_RIGHT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_right_2nd.html">LIST_FOLD_RIGHT_2ND*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_right_2nd_d.html">LIST_FOLD_RIGHT_2ND_D*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_right_d.html">LIST_FOLD_RIGHT_<i>d</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_fold_right_d_old.html">LIST_FOLD_RIGHT_D*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each.html">LIST_FOR_EACH</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each_i.html">LIST_FOR_EACH_I</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each_i_r.html">LIST_FOR_EACH_I_R</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each_product.html">LIST_FOR_EACH_PRODUCT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each_product_r.html">LIST_FOR_EACH_PRODUCT_R</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_for_each_r.html">LIST_FOR_EACH_R</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_is_cons.html">LIST_IS_CONS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_is_nil.html">LIST_IS_NIL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_nil.html">LIST_NIL*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_rest.html">LIST_REST</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_rest_n.html">LIST_REST_N</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_rest_n_d.html">LIST_REST_N_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_reverse.html">LIST_REVERSE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_reverse_d.html">LIST_REVERSE_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_size.html">LIST_SIZE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_size_d.html">LIST_SIZE_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_to_tuple.html">LIST_TO_TUPLE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_to_tuple_r.html">LIST_TO_TUPLE_R</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_transform.html">LIST_TRANSFORM</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/list_transform_d.html">LIST_TRANSFORM_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/local_iterate.html">LOCAL_ITERATE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/local_limits.html">LOCAL_LIMITS</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/local_macro.html">LOCAL_MACRO</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/lparen.html">LPAREN</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/lparen_if.html">LPAREN_IF</a></li>
|
||||||
<!-- M -->
|
<!-- M -->
|
||||||
<li><a href="ref/max.html">MAX</a></li>
|
<li>
|
||||||
<li><a href="ref/max_d.html">MAX_D</a></li>
|
<a href="ref/max.html">MAX</a></li>
|
||||||
<li><a href="ref/min.html">MIN</a></li>
|
<li>
|
||||||
<li><a href="ref/min_d.html">MIN_D</a></li>
|
<a href="ref/max_d.html">MAX_D</a></li>
|
||||||
<li><a href="ref/mod.html">MOD</a></li>
|
<li>
|
||||||
<li><a href="ref/mod_d.html">MOD_D</a></li>
|
<a href="ref/min.html">MIN</a></li>
|
||||||
<li><a href="ref/mul.html">MUL</a></li>
|
<li>
|
||||||
<li><a href="ref/mul_d.html">MUL_D</a></li>
|
<a href="ref/min_d.html">MIN_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/mod.html">MOD</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/mod_d.html">MOD_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/mul.html">MUL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/mul_d.html">MUL_D</a></li>
|
||||||
<!-- N -->
|
<!-- N -->
|
||||||
<li><a href="ref/nil.html">NIL</a></li>
|
<li>
|
||||||
<li><a href="ref/nor.html">NOR</a></li>
|
<a href="ref/nil.html">NIL</a></li>
|
||||||
<li><a href="ref/not.html">NOT</a></li>
|
<li>
|
||||||
<li><a href="ref/not_equal.html">NOT_EQUAL</a></li>
|
<a href="ref/nor.html">NOR</a></li>
|
||||||
<li><a href="ref/not_equal_d.html">NOT_EQUAL_D*</a></li>
|
<li>
|
||||||
|
<a href="ref/not.html">NOT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/not_equal.html">NOT_EQUAL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/not_equal_d.html">NOT_EQUAL_D*</a></li>
|
||||||
<!-- O -->
|
<!-- O -->
|
||||||
<li><a href="ref/or.html">OR</a></li>
|
<li>
|
||||||
|
<a href="ref/or.html">OR</a></li>
|
||||||
<!-- R -->
|
<!-- R -->
|
||||||
<li><a href="ref/relative_finish.html">RELATIVE_FINISH</a></li>
|
<li>
|
||||||
<li><a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
|
<a href="ref/relative_finish.html">RELATIVE_FINISH</a></li>
|
||||||
<li><a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
|
<li>
|
||||||
<li><a href="ref/relative_start.html">RELATIVE_START</a></li>
|
<a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
|
||||||
<li><a href="ref/repeat.html">REPEAT</a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
|
<a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
|
||||||
<li><a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_3rd.html">REPEAT_3RD*</a></li>
|
<a href="ref/relative_start.html">RELATIVE_START</a></li>
|
||||||
<li><a href="ref/repeat_from_to.html">REPEAT_FROM_TO</a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_from_to_1st.html">REPEAT_FROM_TO_1ST*</a></li>
|
<a href="ref/repeat.html">REPEAT</a></li>
|
||||||
<li><a href="ref/repeat_from_to_2nd.html">REPEAT_FROM_TO_2ND*</a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_from_to_3rd.html">REPEAT_FROM_TO_3RD*</a></li>
|
<a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
|
||||||
<li><a href="ref/repeat_from_to_d.html">REPEAT_FROM_TO_D</a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_from_to_d_z.html">REPEAT_FROM_TO_D_<i>z</i></a></li>
|
<a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
|
||||||
<li><a href="ref/repeat_from_to_z.html">REPEAT_FROM_TO_<i>z</i></a></li>
|
<li>
|
||||||
<li><a href="ref/repeat_z.html">REPEAT_<i>z</i></a></li>
|
<a href="ref/repeat_3rd.html">REPEAT_3RD*</a></li>
|
||||||
<li><a href="ref/rparen.html">RPAREN</a></li>
|
<li>
|
||||||
<li><a href="ref/rparen_if.html">RPAREN_IF</a></li>
|
<a href="ref/repeat_from_to.html">REPEAT_FROM_TO</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_1st.html">REPEAT_FROM_TO_1ST*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_2nd.html">REPEAT_FROM_TO_2ND*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_3rd.html">REPEAT_FROM_TO_3RD*</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_d.html">REPEAT_FROM_TO_D</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_d_z.html">REPEAT_FROM_TO_D_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_from_to_z.html">REPEAT_FROM_TO_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/repeat_z.html">REPEAT_<i>z</i></a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/rparen.html">RPAREN</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/rparen_if.html">RPAREN_IF</a></li>
|
||||||
<!-- S -->
|
<!-- S -->
|
||||||
<li><a href="ref/set_cat.html">SET_CAT</a></li>
|
<li>
|
||||||
<li><a href="ref/set_cat_s.html">SET_CAT_S</a></li>
|
<a href="ref/seq_cat.html">SEQ_CAT</a></li>
|
||||||
<li><a href="ref/set_elem.html">SET_ELEM</a></li>
|
<li>
|
||||||
<li><a href="ref/set_enum.html">SET_ENUM</a></li>
|
<a href="ref/seq_cat_s.html">SEQ_CAT_S</a></li>
|
||||||
<li><a href="ref/set_filter.html">SET_FILTER</a></li>
|
<li>
|
||||||
<li><a href="ref/set_filter_s.html">SET_FILTER_S</a></li>
|
<a href="ref/seq_elem.html">SEQ_ELEM</a></li>
|
||||||
<li><a href="ref/set_first_n.html">SET_FIRST_N</a></li>
|
<li>
|
||||||
<li><a href="ref/set_fold_left.html">SET_FOLD_LEFT</a></li>
|
<a href="ref/seq_enum.html">SEQ_ENUM</a></li>
|
||||||
<li><a href="ref/set_fold_left_s.html">SET_FOLD_LEFT_<i>s</i></a></li>
|
<li>
|
||||||
<li><a href="ref/set_fold_right.html">SET_FOLD_RIGHT</a></li>
|
<a href="ref/seq_filter.html">SEQ_FILTER</a></li>
|
||||||
<li><a href="ref/set_fold_right_s.html">SET_FOLD_RIGHT_<i>s</i></a></li>
|
<li>
|
||||||
<li><a href="ref/set_for_each.html">SET_FOR_EACH</a></li>
|
<a href="ref/seq_filter_s.html">SEQ_FILTER_S</a></li>
|
||||||
<li><a href="ref/set_for_each_i.html">SET_FOR_EACH_I</a></li>
|
<li>
|
||||||
<li><a href="ref/set_for_each_i_r.html">SET_FOR_EACH_I_R</a></li>
|
<a href="ref/seq_first_n.html">SEQ_FIRST_N</a></li>
|
||||||
<li><a href="ref/set_for_each_product.html">SET_FOR_EACH_PRODUCT</a></li>
|
<li>
|
||||||
<li><a href="ref/set_for_each_product_r.html">SET_FOR_EACH_PRODUCT_R</a></li>
|
<a href="ref/seq_fold_left.html">SEQ_FOLD_LEFT</a></li>
|
||||||
<li><a href="ref/set_for_each_r.html">SET_FOR_EACH_R</a></li>
|
<li>
|
||||||
<li><a href="ref/set_head.html">SET_HEAD</a></li>
|
<a href="ref/seq_fold_left_s.html">SEQ_FOLD_LEFT_<i>s</i></a></li>
|
||||||
<li><a href="ref/set_insert.html">SET_INSERT</a></li>
|
<li>
|
||||||
<li><a href="ref/set_nil.html">SET_NIL</a></li>
|
<a href="ref/seq_fold_right.html">SEQ_FOLD_RIGHT</a></li>
|
||||||
<li><a href="ref/set_pop_back.html">SET_POP_BACK</a></li>
|
<li>
|
||||||
<li><a href="ref/set_pop_front.html">SET_POP_FRONT</a></li>
|
<a href="ref/seq_fold_right_s.html">SEQ_FOLD_RIGHT_<i>s</i></a></li>
|
||||||
<li><a href="ref/set_push_back.html">SET_PUSH_BACK</a></li>
|
<li>
|
||||||
<li><a href="ref/set_push_front.html">SET_PUSH_FRONT</a></li>
|
<a href="ref/seq_for_each.html">SEQ_FOR_EACH</a></li>
|
||||||
<li><a href="ref/set_remove.html">SET_REMOVE</a></li>
|
<li>
|
||||||
<li><a href="ref/set_replace.html">SET_REPLACE</a></li>
|
<a href="ref/seq_for_each_i.html">SEQ_FOR_EACH_I</a></li>
|
||||||
<li><a href="ref/set_rest_n.html">SET_REST_N</a></li>
|
<li>
|
||||||
<li><a href="ref/set_reverse.html">SET_REVERSE</a></li>
|
<a href="ref/seq_for_each_i_r.html">SEQ_FOR_EACH_I_R</a></li>
|
||||||
<li><a href="ref/set_reverse_s.html">SET_REVERSE_S</a></li>
|
<li>
|
||||||
<li><a href="ref/set_size.html">SET_SIZE</a></li>
|
<a href="ref/seq_for_each_product.html">SEQ_FOR_EACH_PRODUCT</a></li>
|
||||||
<li><a href="ref/set_subset.html">SET_SUBSET</a></li>
|
<li>
|
||||||
<li><a href="ref/set_tail.html">SET_TAIL</a></li>
|
<a href="ref/seq_for_each_product_r.html">SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||||
<li><a href="ref/set_to_array.html">SET_TO_ARRAY</a></li>
|
<li>
|
||||||
<li><a href="ref/set_to_tuple.html">SET_TO_TUPLE</a></li>
|
<a href="ref/seq_for_each_r.html">SEQ_FOR_EACH_R</a></li>
|
||||||
<li><a href="ref/set_transform.html">SET_TRANSFORM</a></li>
|
<li>
|
||||||
<li><a href="ref/set_transform_s.html">SET_TRANSFORM_S</a></li>
|
<a href="ref/seq_head.html">SEQ_HEAD</a></li>
|
||||||
<li><a href="ref/slot.html">SLOT</a></li>
|
<li>
|
||||||
<li><a href="ref/stringize.html">STRINGIZE</a></li>
|
<a href="ref/seq_insert.html">SEQ_INSERT</a></li>
|
||||||
<li><a href="ref/sub.html">SUB</a></li>
|
<li>
|
||||||
<li><a href="ref/sub_d.html">SUB_D</a></li>
|
<a href="ref/seq_nil.html">SEQ_NIL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_pop_back.html">SEQ_POP_BACK</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_pop_front.html">SEQ_POP_FRONT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_push_back.html">SEQ_PUSH_BACK</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_push_front.html">SEQ_PUSH_FRONT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_remove.html">SEQ_REMOVE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_replace.html">SEQ_REPLACE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_rest_n.html">SEQ_REST_N</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_reverse.html">SEQ_REVERSE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_reverse_s.html">SEQ_REVERSE_S</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_size.html">SEQ_SIZE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_subseq.html">SEQ_SUBSEQ</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_tail.html">SEQ_TAIL</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_to_array.html">SEQ_TO_ARRAY</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_to_tuple.html">SEQ_TO_TUPLE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_transform.html">SEQ_TRANSFORM</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/seq_transform_s.html">SEQ_TRANSFORM_S</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/slot.html">SLOT</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/stringize.html">STRINGIZE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/sub.html">SUB</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/sub_d.html">SUB_D</a></li>
|
||||||
<!-- T -->
|
<!-- T -->
|
||||||
<li><a href="ref/tuple_eat.html">TUPLE_EAT</a></li>
|
<li>
|
||||||
<li><a href="ref/tuple_elem.html">TUPLE_ELEM</a></li>
|
<a href="ref/tuple_eat.html">TUPLE_EAT</a></li>
|
||||||
<li><a href="ref/tuple_rem.html">TUPLE_REM</a></li>
|
<li>
|
||||||
<li><a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a></li>
|
<a href="ref/tuple_elem.html">TUPLE_ELEM</a></li>
|
||||||
<li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a></li>
|
<li>
|
||||||
<li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a></li>
|
<a href="ref/tuple_rem.html">TUPLE_REM</a></li>
|
||||||
<li><a href="ref/tuple_to_set.html">TUPLE_TO_SET</a></li>
|
<li>
|
||||||
|
<a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/tuple_reverse.html">TUPLE_REVERSE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a></li>
|
||||||
<!-- V -->
|
<!-- V -->
|
||||||
<li><a href="ref/value.html">VALUE</a></li>
|
<li>
|
||||||
|
<a href="ref/value.html">VALUE</a></li>
|
||||||
<!-- W -->
|
<!-- W -->
|
||||||
<li><a href="ref/while.html">WHILE</a></li>
|
<li>
|
||||||
<li><a href="ref/while_d.html">WHILE_<i>d</i></a></li>
|
<a href="ref/while.html">WHILE</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="ref/while_d.html">WHILE_<i>d</i></a></li>
|
||||||
<!-- X -->
|
<!-- X -->
|
||||||
<li><a href="ref/xor.html">XOR</a></li>
|
<li>
|
||||||
|
<a href="ref/xor.html">XOR</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -2,32 +2,42 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</title>
|
<title>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
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>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
#define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> <i>n</i>
|
#define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> <i>n</i>
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>n</dt>
|
<dt>n</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The value that determines if <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i> information.
|
The value that determines if <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i>
|
||||||
This value must be <i>0</i> or <i>1</i>.
|
information. This value must be <i>0</i> or <i>1</i>.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
If <i>n</i> is <i>1</i>, <b>BOOST_PP_LINE</b> will output extended data.
|
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>.
|
By default, this macro is seq to <i>0</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="line.html">BOOST_PP_LINE</a></li>
|
<li>
|
||||||
|
<a href="line.html">BOOST_PP_LINE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,21 +1,28 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_LIMIT_SET</title>
|
<title>BOOST_PP_LIMIT_SEQ</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_LIMIT_SET</b> macro defines the maximum <i>set</i> size supported by the library.
|
The <b>BOOST_PP_LIMIT_SEQ</b> macro defines the maximum <i>seq</i> size
|
||||||
|
supported by the library.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_LIMIT_SET</b>
|
<b>BOOST_PP_LIMIT_SEQ</b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro currently expands to <i>256</i>.
|
This macro currently expands to <i>256</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
<b>Header:</b> <a href="../headers/config/limits.hpp.html"><boost/preprocessor/config/limits.hpp></a>
|
<b>Header:</b> <a href="../headers/config/limits.hpp.html"><boost/preprocessor/config/limits.hpp></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,45 +1,60 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_CAT</title>
|
<title>BOOST_PP_SEQ_CAT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_CAT</b> macro concatenates all elements in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_CAT</b> macro concatenates all elements in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_CAT</b>(<i>list</i>)
|
<b>BOOST_PP_SEQ_CAT</b>(<i>list</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> whose elements are to be concatenated.
|
The <i>seq</i> whose elements are to be concatenated.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
Elements are concatenated left-to-right starting with index <i>0</i>.
|
Elements are concatenated left-to-right starting with index <i>0</i>.
|
||||||
</div>
|
</div>
|
||||||
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/cat.hpp.html">boost/preprocessor/set/cat.hpp</a>>
|
</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
|
<a href="seq_cat.html">BOOST_PP_SEQ_CAT</a>(SEQ) // expands to abc
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,39 +1,50 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_CAT_S</title>
|
<title>BOOST_PP_SEQ_CAT_S</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_CAT_S</b> macro concatenates all elements in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_CAT_S</b> macro concatenates all elements in a <i>seq</i>.
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_CAT_S</b>(<i>s</i>, <i>list</i>)
|
<b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>list</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> whose elements are to be concatenated.
|
The <i>seq</i> whose elements are to be concatenated.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
Elements are concatenated left-to-right starting with index <i>0</i>.
|
Elements are concatenated left-to-right starting with index <i>0</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,42 +1,54 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_ELEM</title>
|
<title>BOOST_PP_SEQ_ELEM</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_ELEM</b> macro extracts an element from a <i>set</i>.
|
The <b>BOOST_PP_SEQ_ELEM</b> macro extracts an element from a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_ELEM</b>(<i>i</i>, <i>list</i>)
|
<b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>list</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>i</dt>
|
<dt>i</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The zero-based index of the element to be extracted.
|
The zero-based index of the element to be extracted.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/elem.hpp.html">boost/preprocessor/set/elem.hpp</a>>
|
</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) \
|
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
|
||||||
(10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
|
(10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
|
||||||
(20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
|
(20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
|
||||||
@ -49,7 +61,8 @@
|
|||||||
(90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
|
(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
|
<a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(88, SEQ) // expands to 88
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,42 +1,55 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_ENUM</title>
|
<title>BOOST_PP_SEQ_ENUM</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_ENUM</b> macro enumerates the elements in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_ENUM</b> macro enumerates the elements in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_ENUM</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_ENUM</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> from whose elements are to be enumerated.
|
The <i>seq</i> from whose elements are to be enumerated.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro expands to a comma-separated list of the elements in <i>set</i>.
|
This macro expands to a comma-separated list of the elements in <i>seq</i>.
|
||||||
For example, <b>BOOST_PP_SET_ENUM</b>((<i>x</i>)(<i>y</i>)(<i>z</i>)) expands to...
|
For example, <b>BOOST_PP_SEQ_ENUM</b>((<i>x</i>)(<i>y</i>)(<i>z</i>)) expands
|
||||||
|
to...
|
||||||
<div>
|
<div>
|
||||||
<i>x</i>, <i>y</i>, <i>z</i>
|
<i>x</i>, <i>y</i>, <i>z</i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/enum.hpp.html">boost/preprocessor/set/enum.hpp</a>>
|
</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
|
<a href="seq_enum.html">BOOST_PP_SEQ_ENUM</a>(SEQ) // expands to B, O, O, S, T
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,63 +1,82 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FILTER</title>
|
<title>BOOST_PP_SEQ_FILTER</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_FILTER</b> macro filters a <i>set</i> according to a supplied criterion.
|
The <b>BOOST_PP_SEQ_FILTER</b> macro filters a <i>seq</i> according to a
|
||||||
|
supplied criterion.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FILTER</b>(<i>pred</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FILTER</b>(<i>pred</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>pred</dt>
|
<dt>pred</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</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_SET_FILTER</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
|
||||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>,
|
||||||
This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
and the current element in <i>seq</i>. This macro must return a integral
|
||||||
If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>set</i>.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>pred</i>.
|
Auxiliary data passed to <i>pred</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be filtered.
|
The <i>seq</i> to be filtered.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro expands <i>pred</i> for each element in <i>set</i>.
|
This macro expands <i>pred</i> for each element in <i>seq</i>. It builds
|
||||||
It builds a new <i>set</i> out of each element for which <i>pred</i> returns non-zero.
|
a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
|
||||||
</div>
|
</div>
|
||||||
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
<li>
|
||||||
<li><a href="set_filter_s.html">BOOST_PP_SET_FILTER_S</a></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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
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/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)
|
#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)
|
// expands to (1)(3)(2)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,53 +1,68 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FILTER_S</title>
|
<title>BOOST_PP_SEQ_FILTER_S</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_FILTER_S</b> macro filters a <i>set</i> according to a supplied criterion.
|
The <b>BOOST_PP_SEQ_FILTER_S</b> macro filters a <i>seq</i> according to a
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
supplied criterion. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with
|
||||||
|
maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FILTER_S</b>(<i>s</i>, <i>pred</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FILTER_S</b>(<i>s</i>, <i>pred</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>pred</dt>
|
<dt>pred</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</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_SET_FILTER</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
|
||||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>,
|
||||||
This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
and the current element in <i>seq</i>. This macro must return a integral
|
||||||
If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>set</i>.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>pred</i>.
|
Auxiliary data passed to <i>pred</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be filtered.
|
The <i>seq</i> to be filtered.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro expands <i>pred</i> for each element in <i>set</i>.
|
This macro expands <i>pred</i> for each element in <i>seq</i>. It builds
|
||||||
It builds a new <i>set</i> out of each element for which <i>pred</i> returns non-zero.
|
a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
<li>
|
||||||
<li><a href="set_filter.html">BOOST_PP_SET_FILTER</a></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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,17 +1,22 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FIRST_N</title>
|
<title>BOOST_PP_SEQ_FIRST_N</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
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>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FIRST_N</b>(<i>n</i>, <i>list</i>)
|
<b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>list</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>n</dt>
|
<dt>n</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -19,28 +24,40 @@
|
|||||||
</dd>
|
</dd>
|
||||||
<dt>list</dt>
|
<dt>list</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> from which the elements are extracted.
|
The <i>seq</i> from which the elements are extracted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/first_n.hpp.html">boost/preprocessor/set/first_n.hpp</a>>
|
</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)
|
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>(2, SEQ) // expands to (a)(b)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,62 +1,79 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOLD_LEFT</title>
|
<title>BOOST_PP_SEQ_FOLD_LEFT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_FOLD_LEFT</b> macro folds (or accumulates) the elements of
|
||||||
|
a <i>seq</i> left-to-right.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
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 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_SET_FOLD_LEFT</b> with the next available fold step,
|
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next
|
||||||
the current <i>state</i>, and the current element.
|
available fold step, the current <i>state</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>state</dt>
|
<dt>state</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The initial state of the fold.
|
The initial state of the fold.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be folded.
|
The <i>seq</i> to be folded.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
<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>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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)
|
#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
|
<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>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,68 +1,85 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOLD_LEFT_s</title>
|
<title>BOOST_PP_SEQ_FOLD_LEFT_s</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></b> macro folds (or accumulates) the
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
elements of a <i>seq</i> left-to-right. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
|
||||||
|
with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOLD_LEFT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOLD_LEFT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
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 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_SET_FOLD_LEFT</b> with the next available fold step,
|
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next
|
||||||
the current <i>state</i>, and the current element.
|
available fold step, the current <i>state</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>state</dt>
|
<dt>state</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The initial state of the fold.
|
The initial state of the fold.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be folded.
|
The <i>seq</i> to be folded.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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>>
|
||||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||||
|
|
||||||
#define S1 (a)(b)(c)
|
#define S1 (a)(b)(c)
|
||||||
#define S2 (S1)(S1)(S1)
|
#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)
|
#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)
|
// expands to (_abc)(_abc)(_abc)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,64 +1,81 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOLD_RIGHT</title>
|
<title>BOOST_PP_SEQ_FOLD_RIGHT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_FOLD_RIGHT</b> macro folds (or accumulates) the elements of
|
||||||
|
a <i>seq</i> right-to-left.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
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 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_SET_FOLD_RIGHT</b> with the next available fold step,
|
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next
|
||||||
the current <i>state</i>, and the current element.
|
available fold step, the current <i>state</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>state</dt>
|
<dt>state</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The initial state of the fold.
|
The initial state of the fold.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be folded.
|
The <i>seq</i> to be folded.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
<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>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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/seq/elem.hpp.html">boost/preprocessor/seq/elem.hpp</a>>
|
||||||
#include <<a href="../headers/set/fold_right.hpp.html">boost/preprocessor/set/fold_right.hpp</a>>
|
#include <<a href="../headers/seq/fold_right.hpp.html">boost/preprocessor/seq/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/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)
|
#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
|
<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>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,69 +1,86 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOLD_RIGHT_s</title>
|
<title>BOOST_PP_SEQ_FOLD_RIGHT_s</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></b> macro folds (or accumulates) the
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_RIGHT</b> with maximum efficiency.
|
elements of a <i>seq</i> right-to-left. It reenters <b>BOOST_PP_SEQ_FOLD_RIGHT</b>
|
||||||
|
with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOLD_RIGHT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOLD_RIGHT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).
|
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 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_SET_FOLD_RIGHT</b> with the next available fold step,
|
This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next
|
||||||
the current <i>state</i>, and the current element.
|
available fold step, the current <i>state</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>state</dt>
|
<dt>state</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The initial state of the fold.
|
The initial state of the fold.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be folded.
|
The <i>seq</i> to be folded.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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>>
|
||||||
#include <<a href="../headers/set/fold_right.hpp.html">boost/preprocessor/set/fold_right.hpp</a>>
|
#include <<a href="../headers/seq/fold_right.hpp.html">boost/preprocessor/seq/fold_right.hpp</a>>
|
||||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
#include <<a href="../headers/seq/seq.hpp.html">boost/preprocessor/seq/seq.hpp</a>>
|
||||||
|
|
||||||
#define S1 (a)(b)(c)
|
#define S1 (a)(b)(c)
|
||||||
#define S2 (S1)(S1)(S1)
|
#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)
|
#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)
|
// expands to (_cba)(_cba)(_cba)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,62 +1,79 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH</title>
|
<title>BOOST_PP_SEQ_FOR_EACH</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_FOR_EACH</b> macro repeats a macro for each element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
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>.
|
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.
|
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the
|
||||||
|
auxiliary <i>data</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>macro</i>.
|
Auxiliary data passed to <i>macro</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
it expands to the sequence:
|
||||||
<div>
|
<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>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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)
|
#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_
|
<a href="seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a>(MACRO, _, SEQ) // expands to w_ x_ y_ z_
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,62 +1,80 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH_I</title>
|
<title>BOOST_PP_SEQ_FOR_EACH_I</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_FOR_EACH_I</b> macro repeats a macro for each element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
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>.
|
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.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>macro</i>.
|
Auxiliary data passed to <i>macro</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
it expands to the sequence:
|
||||||
<div>
|
<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>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/cat.hpp.html">boost/preprocessor/cat.hpp</a>>
|
#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))
|
#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
|
<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>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,18 +1,22 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH_I_R</title>
|
<title>BOOST_PP_SEQ_FOR_EACH_I_R</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_FOR_EACH_I_R</b> macro repeats a macro for each element in
|
||||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
a <i>seq</i>. It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>r</dt>
|
<dt>r</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -21,33 +25,43 @@
|
|||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).
|
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>.
|
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.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>macro</i>.
|
Auxiliary data passed to <i>macro</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
it expands to the sequence:
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,73 +1,89 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH_PRODUCT</title>
|
<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b> macro repeats a macro for each
|
||||||
|
cartesian product of several <i>seqs</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>sets</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>seqs</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).
|
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>). This
|
||||||
This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>sets</i>.
|
macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian
|
||||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>set</i> containing a cartesian product.
|
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>
|
</dd>
|
||||||
<dt>sets</dt>
|
<dt>seqs</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||||
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>),
|
and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following
|
||||||
this macro will produce the following sequence:
|
sequence:
|
||||||
<div>
|
<div>
|
||||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</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>y</i>))
|
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
|
||||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \<br>
|
<br>
|
||||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>))
|
<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>y</i>))
|
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
|
||||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \<br>
|
<br>
|
||||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>))
|
<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>y</i>))
|
|
||||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/for_each_product.hpp.html">boost/preprocessor/set/for_each_product.hpp</a>>
|
</h4>
|
||||||
#include <<a href="../headers/set/to_tuple.hpp.html">boost/preprocessor/set/to_tuple.hpp</a>>
|
<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 S1 (a)(b)(c)
|
||||||
#define S2 (x)(y)(z)
|
#define S2 (x)(y)(z)
|
||||||
#define S3 (p)(q)
|
#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:
|
// expands to:
|
||||||
// (a, x, p) (a, x, q) (a, y, p) (a, y, q) (a, z, p) (a, z, q)
|
// (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)
|
// (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)
|
// (c, x, p) (c, x, q) (c, y, p) (c, y, q) (c, z, p) (c, z, q)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,18 +1,23 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH_PRODUCT_R</title>
|
<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b> macro repeats a macro for each
|
||||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
cartesian product of several <i>seqs</i>. It reenters <b>BOOST_PP_FOR</b>
|
||||||
|
with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>sets</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>seqs</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>r</dt>
|
<dt>r</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -20,39 +25,46 @@
|
|||||||
</dd>
|
</dd>
|
||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).
|
The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>). This
|
||||||
This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>sets</i>.
|
macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian
|
||||||
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>set</i> containing a cartesian product.
|
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>
|
</dd>
|
||||||
<dt>sets</dt>
|
<dt>seqs</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||||
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>),
|
and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following
|
||||||
this macro will produce the following sequence:
|
sequence:
|
||||||
<div>
|
<div>
|
||||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</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>y</i>))
|
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
|
||||||
<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \<br>
|
<br>
|
||||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>))
|
<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>y</i>))
|
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
|
||||||
<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \<br>
|
<br>
|
||||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>))
|
<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>y</i>))
|
|
||||||
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,18 +1,22 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_FOR_EACH_R</title>
|
<title>BOOST_PP_SEQ_FOR_EACH_R</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
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.
|
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>r</dt>
|
<dt>r</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -21,33 +25,42 @@
|
|||||||
<dt>macro</dt>
|
<dt>macro</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).
|
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>.
|
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.
|
It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the
|
||||||
|
auxiliary <i>data</i>, and the current element.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>macro</i>.
|
Auxiliary data passed to <i>macro</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a repetition construct.
|
This macro is a repetition construct. If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
||||||
If <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), it expands to the sequence:
|
it expands to the sequence:
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,39 +1,52 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_HEAD</title>
|
<title>BOOST_PP_SEQ_HEAD</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_HEAD</b> macro expands to the first element in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_HEAD</b> macro expands to the first element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_HEAD</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_HEAD</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> from which the first element is extracted.
|
The <i>seq</i> from which the first element is extracted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
</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="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
|
||||||
<a href="set_tail.html">BOOST_PP_SET_TAIL</a>(SET) // expands to (b)(c)
|
<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,47 +1,59 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_INSERT</title>
|
<title>BOOST_PP_SEQ_INSERT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_INSERT</b> macro inserts an element into an <i>set</i>.
|
The <b>BOOST_PP_SEQ_INSERT</b> macro inserts an element into an <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_INSERT</b>(<i>set</i>, <i>i</i>, <i>elem</i>)
|
<b>BOOST_PP_SEQ_INSERT</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>i</dt>
|
<dt>i</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The zero-based position in <i>set</i> where an element is to be inserted.
|
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_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>elem</dt>
|
<dt>elem</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The element to insert.
|
The element to insert.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/insert.hpp.html">boost/preprocessor/set/insert.hpp</a>>
|
</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)
|
<a href="seq_insert.html">BOOST_PP_SEQ_INSERT</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,69 +1,89 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_NIL</title>
|
<title>BOOST_PP_SEQ_NIL</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_NIL</b> macro is a placeholder macro for an empty <i>set</i>.
|
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 "set."
|
It is only valid if it is elements are appended to the end of this empty
|
||||||
|
"seq."
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_NIL</b>
|
<b>BOOST_PP_SEQ_NIL</b>
|
||||||
</div>
|
</div>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro is a utility macro intended as a empty starting point for appending to the tail.
|
This macro is a utility macro intended as a empty starting point for appending
|
||||||
It is <i>not</i> a nil <i>set</i>.
|
to the tail. It is <i>not</i> a nil <i>seq</i>. When an element is
|
||||||
When an element is appended to this macro, it expands on the element and to the element--thereby removing itself.
|
appended to this macro, it expands on the element and to the element--thereby
|
||||||
For example, both <b>BOOST_PP_SET_NIL</b>(<i>x</i>)
|
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>,
|
||||||
and <b>BOOST_PP_SET_PUSH_BACK</b>(<b>BOOST_PP_SET_NIL</b>, <i>x</i>) expand to <i>x</i>.
|
<i>x</i>) expand to <i>x</i>.
|
||||||
</div>
|
</div>
|
||||||
<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>,
|
If any <b>BOOST_PP_SEQ_</b>* macro (other than <b>BOOST_PP_SEQ_PUSH_BACK</b>)
|
||||||
the behavior is undefined and in most cases will result in obscure errors.
|
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>
|
||||||
<div>
|
<div>
|
||||||
The closest thing available to <b>BOOST_PP_SET_NIL</b> for appending to the head is <b>BOOST_PP_EMPTY</b>.
|
The closest thing available to <b>BOOST_PP_SEQ_NIL</b> for appending to the
|
||||||
After all the elements have been prepended, empty parenthesis can be invoked on the tail to remove the <b>BOOST_PP_EMPTY</b>.
|
head is <b>BOOST_PP_EMPTY</b>. After all the elements have been
|
||||||
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.
|
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>
|
||||||
<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>
|
||||||
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="empty.html">BOOST_PP_EMPTY</a></li>
|
<li>
|
||||||
|
<a href="empty.html">BOOST_PP_EMPTY</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/facilities/empty.hpp.html">boost/preprocessor/facilities/empty.hpp</a>>
|
#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/seq/push_back.hpp.html">boost/preprocessor/seq/push_back.hpp</a>>
|
||||||
#include <<a href="../headers/set/push_front.hpp.html">boost/preprocessor/set/push_front.hpp</a>>
|
#include <<a href="../headers/seq/push_front.hpp.html">boost/preprocessor/seq/push_front.hpp</a>>
|
||||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.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 SEQ_L <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>
|
||||||
#define SET_R <a href="empty.html">BOOST_PP_EMPTY</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="seq_push_back.html">BOOST_PP_SEQ_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>(SEQ_L, a), b
|
||||||
)
|
)
|
||||||
|
|
||||||
// expands to (a)(b)
|
// expands to (a)(b)
|
||||||
|
|
||||||
<a href="set_push_front.html">BOOST_PP_SET_PUSH_FRONT</a>(
|
<a href="seq_push_front.html">BOOST_PP_SEQ_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>(SEQ_R, a), b
|
||||||
)()
|
)()
|
||||||
|
|
||||||
// expands to (b)(a)
|
// expands to (b)(a)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,42 +1,57 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_POP_BACK</title>
|
<title>BOOST_PP_SEQ_POP_BACK</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_POP_BACK</b> macro pops an element from the end of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_POP_BACK</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_POP_BACK</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to pop an element from.
|
The <i>seq</i> to pop an element from.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro returns <i>set</i> after removing the last element.
|
This macro returns <i>seq</i> after removing the last element.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/pop_back.hpp.html">boost/preprocessor/set/pop_back.hpp</a>>
|
</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)
|
<a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a>(SEQ) // expands to (a)(b)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,42 +1,57 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_POP_FRONT</title>
|
<title>BOOST_PP_SEQ_POP_FRONT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_POP_FRONT</b> macro pops an element from the beginning of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_POP_FRONT</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_POP_FRONT</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to pop an element from.
|
The <i>seq</i> to pop an element from.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro returns <i>set</i> after removing the first element.
|
This macro returns <i>seq</i> after removing the first element.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/pop_front.hpp.html">boost/preprocessor/set/pop_front.hpp</a>>
|
</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)
|
<a href="seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a>(SEQ) // expands to (b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,50 +1,65 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_PUSH_BACK</title>
|
<title>BOOST_PP_SEQ_PUSH_BACK</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_PUSH_BACK</b> macro pushes an element onto the end of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_PUSH_BACK</b>(<i>set</i>, <i>elem</i>)
|
<b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>elem</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> onto which <i>elem</i> is pushed.
|
The <i>seq</i> onto which <i>elem</i> is pushed.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>elem</dt>
|
<dt>elem</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The element to push onto the end of <i>set</i>.
|
The element to push onto the end of <i>seq</i>.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
||||||
<div>
|
<div>
|
||||||
This macro is an explicit form of directly appending an element.
|
This macro is an explicit form of directly appending an element. In other
|
||||||
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>).
|
words, <b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>x</i>) is equivalent to <i>seq</i>(<i>x</i>).
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/push_back.hpp.html">boost/preprocessor/set/push_back.hpp</a>>
|
</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)
|
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ, c) // expands to (a)(b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,50 +1,67 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_PUSH_FRONT</title>
|
<title>BOOST_PP_SEQ_PUSH_FRONT</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_PUSH_FRONT</b> macro pushes an element onto the beginning
|
||||||
|
of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_PUSH_FRONT</b>(<i>set</i>, <i>elem</i>)
|
<b>BOOST_PP_SEQ_PUSH_FRONT</b>(<i>seq</i>, <i>elem</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> onto which <i>elem</i> is pushed.
|
The <i>seq</i> onto which <i>elem</i> is pushed.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>elem</dt>
|
<dt>elem</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The element to push onto the beginning of <i>set</i>.
|
The element to push onto the beginning of <i>seq</i>.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
||||||
<div>
|
<div>
|
||||||
This macro is an explicit form of directly prepending an element.
|
This macro is an explicit form of directly prepending an element. In
|
||||||
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>.
|
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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/push_front.hpp.html">boost/preprocessor/set/push_front.hpp</a>>
|
</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)
|
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ, a) // expands to (a)(b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,43 +1,55 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_REMOVE</title>
|
<title>BOOST_PP_SEQ_REMOVE</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_REMOVE</b> macro removes an element from a <i>set</i>.
|
The <b>BOOST_PP_SEQ_REMOVE</b> macro removes an element from a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_REMOVE</b>(<i>set</i>, <i>i</i>)
|
<b>BOOST_PP_SEQ_REMOVE</b>(<i>seq</i>, <i>i</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>i</dt>
|
<dt>i</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The zero-based position in <i>set</i> of the element to be removed.
|
The zero-based position in <i>seq</i> of the element to be removed. Valid
|
||||||
Valid values range from <i>0</i> to <b>BOOST_PP_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/remove.hpp.html">boost/preprocessor/set/remove.hpp</a>>
|
</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)
|
<a href="seq_remove.html">BOOST_PP_SEQ_REMOVE</a>(SEQ, 2) // expands to (a)(b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,47 +1,60 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_REPLACE</title>
|
<title>BOOST_PP_SEQ_REPLACE</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_REPLACE</b> macro replaces an element in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_REPLACE</b> macro replaces an element in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_RPLACE</b>(<i>set</i>, <i>i</i>, <i>elem</i>)
|
<b>BOOST_PP_SEQ_RPLACE</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>i</dt>
|
<dt>i</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The zero-based position in <i>set</i> of the element to be replaced.
|
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_SET_SIZE</b>(<i>set</i>) - <i>1</i>.
|
Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>elem</dt>
|
<dt>elem</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/replace.hpp.html">boost/preprocessor/set/replace.hpp</a>>
|
</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)
|
<a href="seq_replace.html">BOOST_PP_SEQ_REPLACE</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,17 +1,22 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_REST_N</title>
|
<title>BOOST_PP_SEQ_REST_N</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
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>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_REST_N</b>(<i>n</i>, <i>list</i>)
|
<b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>list</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>n</dt>
|
<dt>n</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -19,28 +24,39 @@
|
|||||||
</dd>
|
</dd>
|
||||||
<dt>list</dt>
|
<dt>list</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/arithmetic/inc.hpp.html">boost/preprocessor/arithmetic/inc.hpp</a>>
|
#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/seq/elem.hpp.html">boost/preprocessor/seq/elem.hpp</a>>
|
||||||
#include <<a href="../headers/set/first_n.hpp.html">boost/preprocessor/set/first_n.hpp</a>>
|
#include <<a href="../headers/seq/first_n.hpp.html">boost/preprocessor/seq/first_n.hpp</a>>
|
||||||
#include <<a href="../headers/set/rest_n.hpp.html">boost/preprocessor/set/rest_n.hpp</a>>
|
#include <<a href="../headers/seq/rest_n.hpp.html">boost/preprocessor/seq/rest_n.hpp</a>>
|
||||||
#include <<a href="../headers/set/size.hpp.html">boost/preprocessor/set/size.hpp</a>>
|
#include <<a href="../headers/seq/size.hpp.html">boost/preprocessor/seq/size.hpp</a>>
|
||||||
|
|
||||||
#define NUMBERS \
|
#define NUMBERS \
|
||||||
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
|
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
|
||||||
@ -71,15 +87,15 @@
|
|||||||
(250)(251)(252)(253)(254)(255)(256) \
|
(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
|
SUPER_ADD(100, 100) // expands to 200
|
||||||
|
|
||||||
#define SUPER_SUB(x, y) \
|
#define SUPER_SUB(x, y) \
|
||||||
<a href="set_size.html">BOOST_PP_SET_SIZE</a>( \
|
<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \
|
||||||
<a href="set_rest_n.html">BOOST_PP_SET_REST_N</a>( \
|
<a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \
|
||||||
<a href="inc.html">BOOST_PP_INC</a>(y), \
|
<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 \
|
<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
|
SUPER_SUB(67, 25) // expands to 42
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,42 +1,57 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_REVERSE</title>
|
<title>BOOST_PP_SEQ_REVERSE</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_REVERSE</b> macro reverses a <i>set</i>.
|
The <b>BOOST_PP_SEQ_REVERSE</b> macro reverses a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_REVERSE</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_REVERSE</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be reversed.
|
The <i>seq</i> to be reversed.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
For maximum efficiency, use <b>BOOST_PP_SET_REVERSE_S</b>.
|
For maximum efficiency, use <b>BOOST_PP_SEQ_REVERSE_S</b>.
|
||||||
</div>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/reverse.hpp.html">boost/preprocessor/set/reverse.hpp</a>>
|
</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)
|
<a href="seq_reverse.html">BOOST_PP_SEQ_REVERSE</a>(SEQ) // expands to (3)(2)(1)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,35 +1,44 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_REVERSE_S</title>
|
<title>BOOST_PP_SEQ_REVERSE_S</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_REVERSE_S</b> macro reverses a <i>set</i>.
|
The <b>BOOST_PP_SEQ_REVERSE_S</b> macro reverses a <i>seq</i>. It
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_REVERSE_S</b>(<i>s</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_REVERSE_S</b>(<i>s</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be reversed.
|
The <i>seq</i> to be reversed.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,34 +1,44 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_SIZE</title>
|
<title>BOOST_PP_SEQ_SIZE</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_SIZE</b> macro expands to the size of a <i>set</i>.
|
The <b>BOOST_PP_SEQ_SIZE</b> macro expands to the size of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_SIZE</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> whose size is to be calculated.
|
The <i>seq</i> whose size is to be calculated.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/size.hpp.html">boost/preprocessor/set/size.hpp</a>>
|
</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
|
<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>(SEQ) // expands to 3
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,46 +1,58 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_SUBSET</title>
|
<title>BOOST_PP_SEQ_SUBSEQ</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_SUBSET</b> macro expands to a subset of elements in a <i>set</i>.
|
The <b>BOOST_PP_SEQ_SUBSEQ</b> macro expands to a subseq of elements in a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_SUBSET</b>(<i>set</i>, <i>i</i>, <i>len</i>)
|
<b>BOOST_PP_SEQ_SUBSEQ</b>(<i>seq</i>, <i>i</i>, <i>len</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> whose size is to be calculated.
|
The <i>seq</i> whose size is to be calculated.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>i</dt>
|
<dt>i</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>len</dt>
|
<dt>len</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The length of the subset to be extracted.
|
The length of the subseq to be extracted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/subset.hpp.html">boost/preprocessor/set/subset.hpp</a>>
|
</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)
|
<a href="seq_subseq.html">BOOST_PP_SEQ_SUBSEQ</a>(SEQ, 2, 3) // expands to (2)(3)(4)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,39 +1,52 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_TAIL</title>
|
<title>BOOST_PP_SEQ_TAIL</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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>.
|
The <b>BOOST_PP_SEQ_HEAD</b> macro expands to all but the first element of a <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_TAIL</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_TAIL</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> from which the tail is extracted.
|
The <i>seq</i> from which the tail is extracted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/set.hpp.html">boost/preprocessor/set/set.hpp</a>>
|
</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="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
|
||||||
<a href="set_tail.html">BOOST_PP_SET_TAIL</a>(SET) // expands to (b)(c)
|
<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,34 +1,44 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_TO_ARRAY</title>
|
<title>BOOST_PP_SEQ_TO_ARRAY</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_TO_ARRAY</b> macro converts a <i>set</i> to an <i>array</i>.
|
The <b>BOOST_PP_SEQ_TO_ARRAY</b> macro converts a <i>seq</i> to an <i>array</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_TO_ARRAY</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_TO_ARRAY</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be converted.
|
The <i>seq</i> to be converted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/to_array.hpp.html">boost/preprocessor/set/to_array.hpp</a>>
|
</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))
|
<a href="seq_to_array.html">BOOST_PP_SEQ_TO_ARRAY</a>(SEQ) // expands to (3, (a, b, c))
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,34 +1,44 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_TO_TUPLE</title>
|
<title>BOOST_PP_SEQ_TO_TUPLE</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_SET_TO_TUPLE</b> macro converts a <i>set</i> to an <i>tuple</i>.
|
The <b>BOOST_PP_SEQ_TO_TUPLE</b> macro converts a <i>seq</i> to an <i>tuple</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_TO_TUPLE</b>(<i>set</i>)
|
<b>BOOST_PP_SEQ_TO_TUPLE</b>(<i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be converted.
|
The <i>seq</i> to be converted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/set/to_tuple.hpp.html">boost/preprocessor/set/to_tuple.hpp</a>>
|
</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)
|
<a href="seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a>(SEQ) // expands to (a, b, c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,65 +1,82 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_TRANSFORM</title>
|
<title>BOOST_PP_SEQ_TRANSFORM</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_TRANSFORM</b> macro transforms each element in a <i>seq</i>
|
||||||
|
according to a supplied transformation.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</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_SET_TRANSFORM</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each
|
||||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>pred</i>.
|
Auxiliary data passed to <i>pred</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be transformed.
|
The <i>seq</i> to be transformed.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro expands <i>op</i> for each element in <i>set</i>.
|
This macro expands <i>op</i> for each element in <i>seq</i>. It builds a
|
||||||
It builds a new <i>set</i> out of the results of each call.
|
new <i>seq</i> out of the results of each call. If, for example, <i>seq</i>
|
||||||
If, for example, <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
|
||||||
this macro expands to...
|
|
||||||
<div>
|
<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>
|
</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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
<pre>
|
||||||
#include <<a href="../headers/arithmetic/dec.hpp.html">boost/preprocessor/arithmetic/dec.hpp</a>>
|
#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)
|
#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)
|
// expands to (0)(2)(1)(4)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,55 +1,68 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_SET_TRANSFORM_S</title>
|
<title>BOOST_PP_SEQ_TRANSFORM_S</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<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.
|
The <b>BOOST_PP_SEQ_TRANSFORM_S</b> macro transforms each element in a <i>seq</i>
|
||||||
It reenters <b>BOOST_PP_SET_FOLD_LEFT</b> with maximum efficiency.
|
according to a supplied transformation. It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
|
||||||
|
with maximum efficiency.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_SET_TRANSFORM_S</b>(<i>s</i>, <i>op</i>, <i>data</i>, <i>set</i>)
|
<b>BOOST_PP_SEQ_TRANSFORM_S</b>(<i>s</i>, <i>op</i>, <i>data</i>, <i>seq</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>s</dt>
|
<dt>s</dt>
|
||||||
<dd>
|
<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>
|
</dd>
|
||||||
<dt>op</dt>
|
<dt>op</dt>
|
||||||
<dd>
|
<dd>
|
||||||
A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</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_SET_TRANSFORM</b> for each element in <i>set</i> with the next available <b>BOOST_PP_SET_FOLD_LEFT</b> fold step,
|
This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each
|
||||||
the auxiliary <i>data</i>, and the current element in <i>set</i>.
|
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>
|
</dd>
|
||||||
<dt>data</dt>
|
<dt>data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Auxiliary data passed to <i>pred</i>.
|
Auxiliary data passed to <i>pred</i>.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>set</dt>
|
<dt>seq</dt>
|
||||||
<dd>
|
<dd>
|
||||||
The <i>set</i> to be transformed.
|
The <i>seq</i> to be transformed.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Remarks</h4>
|
<h4>
|
||||||
|
Remarks
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This macro expands <i>op</i> for each element in <i>set</i>.
|
This macro expands <i>op</i> for each element in <i>seq</i>. It builds a
|
||||||
It builds a new <i>set</i> out of the results of each call.
|
new <i>seq</i> out of the results of each call. If, for example, <i>seq</i>
|
||||||
If, for example, <i>set</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>),
|
is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
|
||||||
this macro expands to...
|
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>BOOST_PP_TUPLE_TO_SET</title>
|
<title>BOOST_PP_TUPLE_TO_SEQ</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin-left: 0px;">
|
<div style="margin-left: 0px;">
|
||||||
The <b>BOOST_PP_TUPLE_TO_SET</b> macro converts a <i>tuple</i> to an <i>set</i>.
|
The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro converts a <i>tuple</i> to an <i>seq</i>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Usage</h4>
|
<h4>
|
||||||
|
Usage
|
||||||
|
</h4>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
<b>BOOST_PP_TUPLE_TO_SET</b>(<i>size</i>, <i>tuple</i>)
|
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)
|
||||||
</div>
|
</div>
|
||||||
<h4>Arguments</h4>
|
<h4>
|
||||||
|
Arguments
|
||||||
|
</h4>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>size</dt>
|
<dt>size</dt>
|
||||||
<dd>
|
<dd>
|
||||||
@ -22,15 +26,21 @@
|
|||||||
The <i>tuple</i> to be converted.
|
The <i>tuple</i> to be converted.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h4>Requirements</h4>
|
<h4>
|
||||||
|
Requirements
|
||||||
|
</h4>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<h4>Sample Code</h4>
|
<h4>
|
||||||
<div><pre>
|
Sample Code
|
||||||
#include <<a href="../headers/tuple/to_set.hpp.html">boost/preprocessor/tuple/to_set.hpp</a>>
|
</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)
|
<a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
18
doc/top.html
18
doc/top.html
@ -3,23 +3,19 @@
|
|||||||
<title>top.html</title>
|
<title>top.html</title>
|
||||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||||
<style>
|
<style>
|
||||||
td {
|
td { height: 60px; width: 100%; text-align: center; vertical-align: middle;
|
||||||
height: 60px;
|
margin: 0px; padding: 0px; font-weight: bold; }
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="margin: 0px; padding: 0px;">
|
<body style="margin: 0px; padding: 0px;">
|
||||||
<table style="width: 100%;">
|
<table style="width: 100%;">
|
||||||
<tr align="center">
|
<tr align="center">
|
||||||
<td>
|
<td>
|
||||||
The <a href="../../../index.htm" target="_parent"><font color="blue"><b>Boost</b></font></a> Library<br>
|
The <a href="../../../index.htm" target="_parent"><font color="blue"><b>Boost</b></font></a>
|
||||||
<a href="index.html" target="_parent"><font color="green"><b>Preprocessor</b></font></a> Subset for <font color="red">C/C++</font>
|
Library
|
||||||
|
<br>
|
||||||
|
<a href="index.html" target="_parent"><font color="green"><b>Preprocessor</b></font></a>
|
||||||
|
Subseq for <font color="red">C/C++</font>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -4,155 +4,193 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h4>File Iteration</h4>
|
<h4>
|
||||||
|
File Iteration
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
File iteration is a complex, but powerful, vertical repetition construct.
|
File iteration is a complex, but powerful, vertical repetition construct.
|
||||||
It repeatedly includes a <i>file</i> for each number in a user-specified range.
|
It repeatedly includes a <i>file</i> for each number in a user-specified range.
|
||||||
</div>
|
</div>
|
||||||
<h4>Tutorial</h4>
|
<h4>
|
||||||
|
Tutorial
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
This mechanism requires two pieces of information to operate:
|
This mechanism requires two pieces of information to operate: a range to
|
||||||
a range to iterate over and a file to include on each iteration.
|
iterate over and a file to include on each iteration. It can optionally
|
||||||
It can optionally take a third piece of information that represents flags used to discriminate between
|
take a third piece of information that represents flags used to discriminate
|
||||||
different iterations of the same file.
|
between different iterations of the same file. This information is
|
||||||
This information is obtained by the mechanism through one or two <i>named external arguments</i>.
|
obtained by the mechanism through one or two <i>named external arguments</i>.
|
||||||
These arguments are specified as user-defined macros named <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>
|
These arguments are specified as user-defined macros named <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>
|
||||||
or the combination of <b>BOOST_PP_FILENAME_<i>x</i></b> and <b>BOOST_PP_ITERATION_LIMITS</b>.
|
or the combination of <b>BOOST_PP_FILENAME_<i>x</i></b> and <b>BOOST_PP_ITERATION_LIMITS</b>.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<b>BOOST_PP_ITERATION_LIMITS</b> specifies the range of values to iterate over.
|
<b>BOOST_PP_ITERATION_LIMITS</b> specifies the range of values to iterate
|
||||||
It <i>must</i> expand to a <i>tuple</i> containing two elements--a lower and upper bound.
|
over. It <i>must</i> expand to a <i>tuple</i> containing two elements--a
|
||||||
Both the upper and lower bounds must be numeric values in the range of <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
|
lower and upper bound. Both the upper and lower bounds must be numeric
|
||||||
For example, if the user wishes a file to be included for numbers ranging from <i>0</i> to <i>10</i>,
|
values in the range of <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>. For
|
||||||
<b>BOOST_PP_ITERATION_LIMITS</b> would be defined like this:
|
example, if the user wishes a file to be included for numbers ranging from <i>0</i>
|
||||||
|
to <i>10</i>, <b>BOOST_PP_ITERATION_LIMITS</b> would be defined like this:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_ITERATION_LIMITS (0, 10)
|
#define BOOST_PP_ITERATION_LIMITS (0, 10)
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Note that there is whitespace after the name of the macro.
|
Note that there is whitespace after the name of the macro. The macro <i>does
|
||||||
The macro <i>does not</i> take <i>two</i> arguments.
|
not</i> take <i>two</i> arguments. In the case above, if there was
|
||||||
In the case above, if there was no whitespace, a preprocessing error would occur because <i>0</i> and <i>10</i>
|
no whitespace, a preprocessing error would occur because <i>0</i> and <i>10</i>
|
||||||
are invalid identifiers.
|
are invalid identifiers.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Both the upper and lower bounds specified in the <b>BOOST_PP_ITERATION_LIMITS</b> macro are <i>evaluated parameters</i>.
|
Both the upper and lower bounds specified in the <b>BOOST_PP_ITERATION_LIMITS</b>
|
||||||
This implies that they can include simple arithmetic or logical expressions.
|
macro are <i>evaluated parameters</i>. This implies that they can include
|
||||||
For instance, the above definition could easily have been written like this:
|
simple arithmetic or logical expressions. For instance, the above
|
||||||
|
definition could easily have been written like this:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define N() 5
|
#define N() 5
|
||||||
#define BOOST_PP_ITERATION_LIMITS (0, N() + 5)
|
#define BOOST_PP_ITERATION_LIMITS (0, N() + 5)
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
Because of this, if the whitespace after the macro name is elided, it is possible for the
|
|
||||||
definition to be syntactically valid:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
Because of this, if the whitespace after the macro name is elided, it is
|
||||||
|
possible for the definition to be syntactically valid:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define A 0
|
#define A 0
|
||||||
#define B 10
|
#define B 10
|
||||||
#define BOOST_PP_ITERATION_LIMITS(A, B)
|
#define BOOST_PP_ITERATION_LIMITS(A, B)
|
||||||
// note: no whitespace ^
|
// note: no whitespace ^
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
If this happens, an error will occur inside the mechanism when it attempts to use this macro.
|
|
||||||
The error messages that result may be obscure, so always remember to include the whitespace.
|
|
||||||
A <i>correct</i> version of the above looks like this:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
If this happens, an error will occur inside the mechanism when it attempts to
|
||||||
|
use this macro. The error messages that result may be obscure, so always
|
||||||
|
remember to include the whitespace. A <i>correct</i> version of the above
|
||||||
|
looks like this:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define A 0
|
#define A 0
|
||||||
#define B 10
|
#define B 10
|
||||||
#define BOOST_PP_ITERATION_LIMITS (A, B)
|
#define BOOST_PP_ITERATION_LIMITS (A, B)
|
||||||
// note: has whitespace ^
|
// note: has whitespace ^
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
<b>BOOST_PP_FILENAME_<i>x</i></b> specifies the file to iterate over.
|
|
||||||
The <i>x</i> is a placeholder for the dimension of iteration.
|
|
||||||
(For now, we'll assume this is <i>1</i>--i.e. the first dimension,
|
|
||||||
so we are actually dealing with <b>BOOST_PP_FILENAME_1</b>.)
|
|
||||||
This macro must expand to a valid filename--in quotes or in angle brackets depending on how the file is accessed:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
<b>BOOST_PP_FILENAME_<i>x</i></b> specifies the file to iterate over. The <i>x</i>
|
||||||
|
is a placeholder for the dimension of iteration. (For now, we'll assume
|
||||||
|
this is <i>1</i>--i.e. the first dimension, so we are actually dealing with <b>BOOST_PP_FILENAME_1</b>.)
|
||||||
|
This macro must expand to a valid filename--in quotes or in angle brackets
|
||||||
|
depending on how the file is accessed:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_FILENAME_1 "file.h"
|
#define BOOST_PP_FILENAME_1 "file.h"
|
||||||
// -or-
|
// -or-
|
||||||
#define BOOST_PP_FILENAME_1 <file.h>
|
#define BOOST_PP_FILENAME_1 <file.h>
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
All that we need now to perform a simple file iteration is to invoke the mechanism:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
All that we need now to perform a simple file iteration is to invoke the
|
||||||
|
mechanism:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
??=include BOOST_PP_ITERATE()
|
??=include BOOST_PP_ITERATE()
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
(The <code>??=</code> token is a trigraph for <code>#</code>.
|
|
||||||
I use the trigraph to make it clear that I am <i>including</i> a file rather than defining or expanding a macro, but it is not necessary.
|
|
||||||
Even the digraph version, <code>%:</code>, could be used.
|
|
||||||
Some compilers do not readily accept trigraphs and digraphs, so keep that in mind.
|
|
||||||
Other than that, use whichever one you prefer.)
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
So, if we wish to iterate "file.h" from <i>1</i> to <i>10</i>, we just need to put the pieces together:
|
(The <code>??=</code> token is a trigraph for <code>#</code>. I use the
|
||||||
|
trigraph to make it clear that I am <i>including</i> a file rather than
|
||||||
|
defining or expanding a macro, but it is not necessary. Even the digraph
|
||||||
|
version, <code>%:</code>, could be used. Some compilers do not readily
|
||||||
|
accept trigraphs and digraphs, so keep that in mind. Other than that, use
|
||||||
|
whichever one you prefer.)
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
So, if we wish to iterate "file.h" from <i>1</i> to <i>10</i>, we just need to
|
||||||
|
put the pieces together:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, 10)
|
#define BOOST_PP_ITERATION_LIMITS (1, 10)
|
||||||
#define BOOST_PP_FILENAME_1 "file.h"
|
#define BOOST_PP_FILENAME_1 "file.h"
|
||||||
??=include BOOST_PP_ITERATE()
|
??=include BOOST_PP_ITERATE()
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
The above code has the effect of including "file.h" ten times in succession.
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Alternately, both the range and the file to iterate over can be expressed in one macro, <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.
|
The above code has the effect of including "file.h" ten times in
|
||||||
Once again, the <i>x</i> is a placeholder for the dimension of iteration--which we'll assume is <i>1</i>.
|
succession.
|
||||||
This macro must expand to an <i>array</i> that includes the lower bound, upper bound, filename, and optional flags (in that order).
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
Alternately, both the range and the file to iterate over can be expressed in
|
||||||
|
one macro, <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>. Once again, the <i>x</i>
|
||||||
|
is a placeholder for the dimension of iteration--which we'll assume is <i>1</i>.
|
||||||
|
This macro must expand to an <i>array</i> that includes the lower bound, upper
|
||||||
|
bound, filename, and optional flags (in that order).
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, "file.h"))
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, "file.h"))
|
||||||
??=include BOOST_PP_ITERATE()
|
??=include BOOST_PP_ITERATE()
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
This has the same effect as the previous version.
|
This has the same effect as the previous version. Only one of these two
|
||||||
Only one of these two ways to specify the parameters can be used at a time.
|
ways to specify the parameters can be used at a time. (The reason that
|
||||||
(The reason that there are two different methods has to do with dimensional abstraction which I'll get to later.)
|
there are two different methods has to do with dimensional abstraction which
|
||||||
|
I'll get to later.)
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
There is nothing particularly useful about including a file ten times.
|
There is nothing particularly useful about including a file ten times.
|
||||||
The difference is that the current macro state changes each time.
|
The difference is that the current macro state changes each time. For
|
||||||
For example, the current "iteration value" is available with <b>BOOST_PP_ITERATION</b>().
|
example, the current "iteration value" is available with <b>BOOST_PP_ITERATION</b>().
|
||||||
If "file.h" is defined like this...
|
If "file.h" is defined like this...
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// file.h
|
// file.h
|
||||||
template<> struct sample<BOOST_PP_ITERATION()> { };
|
template<> struct sample<BOOST_PP_ITERATION()> { };
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
...and it is iterated as follows...
|
...and it is iterated as follows...
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
template<int> struct sample;
|
template<int> struct sample;
|
||||||
|
|
||||||
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 5, "file.h"))
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 5, "file.h"))
|
||||||
??=include BOOST_PP_ITERATE()
|
??=include BOOST_PP_ITERATE()
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
...the result is different each time:
|
...the result is different each time:
|
||||||
</div>
|
</div>
|
||||||
<div><pre>
|
<div>
|
||||||
|
<pre>
|
||||||
template<> struct sample<1> { };
|
template<> struct sample<1> { };
|
||||||
template<> struct sample<2> { };
|
template<> struct sample<2> { };
|
||||||
template<> struct sample<3> { };
|
template<> struct sample<3> { };
|
||||||
template<> struct sample<4> { };
|
template<> struct sample<4> { };
|
||||||
template<> struct sample<5> { };
|
template<> struct sample<5> { };
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
There is no reason that a file can't iterate over itself.
|
|
||||||
This has the advantage of keeping the code together.
|
|
||||||
The problem is that you have to discriminate the "regular" section of the file from the iterated section of the file.
|
|
||||||
The library provides the <b>BOOST_PP_IS_ITERATING</b> macro to help in this regard.
|
|
||||||
This macro is defined as <i>1</i> if an iteration is in progress.
|
|
||||||
For example, to merge the contents of "file.h" into the file that iterates it:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
There is no reason that a file can't iterate over itself. This has the
|
||||||
|
advantage of keeping the code together. The problem is that you have to
|
||||||
|
discriminate the "regular" section of the file from the iterated section of the
|
||||||
|
file. The library provides the <b>BOOST_PP_IS_ITERATING</b> macro to help
|
||||||
|
in this regard. This macro is defined as <i>1</i> if an iteration is in
|
||||||
|
progress. For example, to merge the contents of "file.h" into the file
|
||||||
|
that iterates it:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// sample.h
|
// sample.h
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
|
|
||||||
@ -173,14 +211,16 @@ template<> struct sample<5> { };
|
|||||||
template<> struct sample<BOOST_PP_ITERATION()> { };
|
template<> struct sample<BOOST_PP_ITERATION()> { };
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
Using the same file like this raises another issue.
|
|
||||||
What happens when a file performs two separate file iterations over itself?
|
|
||||||
This is the purpose of the optional flags parameter.
|
|
||||||
It is used to discriminate between separate iterations.
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
Using the same file like this raises another issue. What happens when a
|
||||||
|
file performs two separate file iterations over itself? This is the
|
||||||
|
purpose of the optional flags parameter. It is used to discriminate
|
||||||
|
between separate iterations.
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// sample.h
|
// sample.h
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
|
|
||||||
@ -239,19 +279,24 @@ template<> struct sample<5> { };
|
|||||||
#undef N
|
#undef N
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Notice the use of the "flags" parameter (which is accessed through <b>BOOST_PP_ITERATION_FLAGS</b>()).
|
Notice the use of the "flags" parameter (which is accessed through <b>BOOST_PP_ITERATION_FLAGS</b>()).
|
||||||
It discriminates between our recurring <code>sample</code> iteration and a typelist linearization iteration.
|
It discriminates between our recurring <code>sample</code> iteration and a
|
||||||
|
typelist linearization iteration.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The second iteration illustrates the power of the file iteration mechanism.
|
The second iteration illustrates the power of the file iteration
|
||||||
It generates typelist linearizations of the form <code>typelist<3>::args<int, double, char>::type</code>.
|
mechanism. It generates typelist linearizations of the form <code>typelist<3>::args<int,
|
||||||
|
double, char>::type</code>.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Actually, to continue the typelist example, with the help of another iteration we can <i>fully</i> linearize typelist creation....
|
Actually, to continue the typelist example, with the help of another iteration
|
||||||
|
we can <i>fully</i> linearize typelist creation....
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// extract.h
|
// extract.h
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
|
|
||||||
@ -304,68 +349,80 @@ template<> struct sample<5> { };
|
|||||||
#undef N
|
#undef N
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Now we can define a helper macro to finish the job:
|
Now we can define a helper macro to finish the job:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define TYPELIST(args) extract<typelist, void args>::type
|
#define TYPELIST(args) extract<typelist, void args>::type
|
||||||
|
|
||||||
typedef TYPELIST((int, double, incomplete<void>)) xyz;
|
typedef TYPELIST((int, double, incomplete<void>)) xyz;
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
There are two minor caveats with this result.
|
|
||||||
First, certain types like <code>void</code> can't be the type of an argument, so they have to be
|
|
||||||
wrapped with <code>incomplete<T></code>.
|
|
||||||
Second, the necessary double parenthesis is annoying.
|
|
||||||
If and when C++ gets C99's variadic macros, <code>TYPELIST</code> can be redefined:
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
There are two minor caveats with this result. First, certain types like <code>void</code>
|
||||||
|
can't be the type of an argument, so they have to be wrapped with <code>incomplete<T></code>.
|
||||||
|
Second, the necessary double parenthesis is annoying. If and when C++
|
||||||
|
gets C99's variadic macros, <code>TYPELIST</code> can be redefined:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define TYPELIST(...) extract<typelist, void (__VA_ARGS__)>::type
|
#define TYPELIST(...) extract<typelist, void (__VA_ARGS__)>::type
|
||||||
|
|
||||||
typedef TYPELIST(int, double, short) xyz;
|
typedef TYPELIST(int, double, short) xyz;
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
Note also that both the lower and upper bounds of an iteration are also accessible inside an iteration with
|
|
||||||
<b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>().
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
It is my hope that the explanation and examples presented here demonstrate the power of file iteration.
|
Note also that both the lower and upper bounds of an iteration are also
|
||||||
Even so, this is just the beginning.
|
accessible inside an iteration with <b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>().
|
||||||
The file iteration mechanism also defines a full suite of facilities to support multidimensional iteration.
|
|
||||||
</div>
|
</div>
|
||||||
<h4>Multiple Dimensions</h4>
|
|
||||||
<div>
|
<div>
|
||||||
The file iteration mechanism supports up to <b>BOOST_PP_LIMIT_ITERATION_DIM</b> dimensions.
|
It is my hope that the explanation and examples presented here demonstrate the
|
||||||
The first dimension (i.e. the outermost) we have already used above.
|
power of file iteration. Even so, this is just the beginning. The
|
||||||
In order to use the second dimension (inside the first), we simply have to replace the placeholder <i>x</i>
|
file iteration mechanism also defines a full suite of facilities to support
|
||||||
with <i>2</i> instead of <i>1</i>.
|
multidimensional iteration.
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<h4>
|
||||||
|
Multiple Dimensions
|
||||||
|
</h4>
|
||||||
|
<div>
|
||||||
|
The file iteration mechanism supports up to <b>BOOST_PP_LIMIT_ITERATION_DIM</b>
|
||||||
|
dimensions. The first dimension (i.e. the outermost) we have already used
|
||||||
|
above. In order to use the second dimension (inside the first), we simply
|
||||||
|
have to replace the placeholder <i>x</i> with <i>2</i> instead of <i>1</i>.
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_ITERATION_PARAMS_2 /* ... */
|
#define BOOST_PP_ITERATION_PARAMS_2 /* ... */
|
||||||
^
|
^
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
...or...
|
...or...
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define BOOST_PP_FILENAME_2 /* ... */
|
#define BOOST_PP_FILENAME_2 /* ... */
|
||||||
^
|
^
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Each dimension must be used <i>in order</i> starting with <i>1</i>.
|
Each dimension must be used <i>in order</i> starting with <i>1</i>.
|
||||||
Therefore, the above can <i>only</i> be valid immediately inside the first dimension.
|
Therefore, the above can <i>only</i> be valid immediately inside the first
|
||||||
|
dimension.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
At this point, further explanation is necessary regarding <b>BOOST_PP_ITERATION</b>,
|
At this point, further explanation is necessary regarding <b>BOOST_PP_ITERATION</b>,
|
||||||
<b>BOOST_PP_ITERATION_START</b>, and <b>BOOST_PP_ITERATION_FINISH</b>.
|
<b>BOOST_PP_ITERATION_START</b>, and <b>BOOST_PP_ITERATION_FINISH</b>. <b>BOOST_PP_ITERATION</b>()
|
||||||
<b>BOOST_PP_ITERATION</b>() expands to the iteration value of the <i>current</i> dimension--regardless
|
expands to the iteration value of the <i>current</i> dimension--regardless of
|
||||||
of what dimension that is.
|
what dimension that is. Likewise, <b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>()
|
||||||
Likewise, <b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>() expand to the lower
|
expand to the lower and upper bounds of the <i>current</i> dimension.
|
||||||
and upper bounds of the <i>current</i> dimension.
|
|
||||||
Using the following pseudo-code as reference:
|
Using the following pseudo-code as reference:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
for (int i = start(1); i <= finish(1); ++i) {
|
for (int i = start(1); i <= finish(1); ++i) {
|
||||||
// A
|
// A
|
||||||
for (int j = start(2); j <= finish(2); ++j) {
|
for (int j = start(2); j <= finish(2); ++j) {
|
||||||
@ -373,21 +430,25 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
}
|
}
|
||||||
// C
|
// C
|
||||||
}
|
}
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
At point <i>A</i>, <b>BOOST_PP_ITERATION</b>() refers to <code>i</code>.
|
|
||||||
<b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>()
|
|
||||||
refer to <code>start(1)</code> and <code>finish(1)</code> respectively.
|
|
||||||
At point <i>B</i>, however, <b>BOOST_PP_ITERATION</b>() refers to <code>j</code>--the <i>current</i>
|
|
||||||
iteration value at point <i>B</i>.
|
|
||||||
The same is true for <b>BOOST_PP_ITERATION_START</b>() which refers to <code>start(2)</code>, etc..
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
If separate files are used for each dimension, then there are no major problems, and using multiple dimensions is straightforward.
|
At point <i>A</i>, <b>BOOST_PP_ITERATION</b>() refers to <code>i</code>. <b>BOOST_PP_ITERATION_START</b>()
|
||||||
However, if more than one dimension is located in the same file, they need to be distinguished from one another.
|
and <b>BOOST_PP_ITERATION_FINISH</b>() refer to <code>start(1)</code> and <code>finish(1)</code>
|
||||||
The file iteration mechanism provides the macro <b>BOOST_PP_ITERATION_DEPTH</b> for this purpose:
|
respectively. At point <i>B</i>, however, <b>BOOST_PP_ITERATION</b>()
|
||||||
|
refers to <code>j</code>--the <i>current</i> iteration value at point <i>B</i>.
|
||||||
|
The same is true for <b>BOOST_PP_ITERATION_START</b>() which refers to <code>start(2)</code>,
|
||||||
|
etc..
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
If separate files are used for each dimension, then there are no major
|
||||||
|
problems, and using multiple dimensions is straightforward. However, if
|
||||||
|
more than one dimension is located in the same file, they need to be
|
||||||
|
distinguished from one another. The file iteration mechanism provides the
|
||||||
|
macro <b>BOOST_PP_ITERATION_DEPTH</b> for this purpose:
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// file.h
|
// file.h
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
|
|
||||||
@ -417,25 +478,29 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
- BOOST_PP_ITERATION()
|
- BOOST_PP_ITERATION()
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
This will result to the following:
|
This will result to the following:
|
||||||
</div>
|
</div>
|
||||||
<div><pre>
|
<div>
|
||||||
|
<pre>
|
||||||
+ 1
|
+ 1
|
||||||
- 1
|
- 1
|
||||||
- 2
|
- 2
|
||||||
+ 2
|
+ 2
|
||||||
- 1
|
- 1
|
||||||
- 2
|
- 2
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
Multiple dimensions raise another question.
|
|
||||||
How does one access the state of dimensions <i>other</i> than the current dimension?
|
|
||||||
In other words, how does one access <code>i</code> at point <i>A</i>?
|
|
||||||
Because of the preprocessor's lazy evaluation, this <i>doesn't</i> work....
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
Multiple dimensions raise another question. How does one access the state
|
||||||
|
of dimensions <i>other</i> than the current dimension? In other words,
|
||||||
|
how does one access <code>i</code> at point <i>A</i>? Because of the
|
||||||
|
preprocessor's lazy evaluation, this <i>doesn't</i> work....
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
#elif BOOST_PP_ITERATION_DEPTH() == 1
|
#elif BOOST_PP_ITERATION_DEPTH() == 1
|
||||||
@ -456,25 +521,31 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
#undef I
|
#undef I
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The problem here is that <code>I</code> refers to <b>BOOST_PP_ITERATION</b>(),
|
The problem here is that <code>I</code> refers to <b>BOOST_PP_ITERATION</b>(),
|
||||||
not to the <i>value</i> of <b>BOOST_PP_ITERATION</b>() at the point of <code>I</code>'s definition.
|
not to the <i>value</i> of <b>BOOST_PP_ITERATION</b>() at the point of <code>I</code>'s
|
||||||
|
definition.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The library provides macros to access these values in two ways--absolutely or relatively.
|
The library provides macros to access these values in two ways--absolutely or
|
||||||
The first variety accesses a value of a specific iteration frame (i.e. dimension).
|
relatively. The first variety accesses a value of a specific iteration
|
||||||
To access the iteration value of the first dimension--from <i>any</i> dimension--<b>BOOST_PP_FRAME_ITERATION</b>(<i>1</i>) is used.
|
frame (i.e. dimension). To access the iteration value of the first
|
||||||
To access the iteration value of the second dimension, <b>BOOST_PP_FRAME_ITERATION</b>(<i>2</i>) is used, and so on.
|
dimension--from <i>any</i> dimension--<b>BOOST_PP_FRAME_ITERATION</b>(<i>1</i>)
|
||||||
|
is used. To access the iteration value of the second dimension, <b>BOOST_PP_FRAME_ITERATION</b>(<i>2</i>)
|
||||||
|
is used, and so on.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
There are also frame versions to access the lower bound, the upper bound, and the flags of a dimension:
|
There are also frame versions to access the lower bound, the upper bound, and
|
||||||
<b>BOOST_PP_FRAME_START</b>, <b>BOOST_PP_FRAME_FINISH</b>, and <b>BOOST_PP_FRAME_FLAGS</b>.
|
the flags of a dimension: <b>BOOST_PP_FRAME_START</b>, <b>BOOST_PP_FRAME_FINISH</b>,
|
||||||
|
and <b>BOOST_PP_FRAME_FLAGS</b>.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
So, to fix the last example, we modify the definition of <code>I</code>....
|
So, to fix the last example, we modify the definition of <code>I</code>....
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
#elif BOOST_PP_ITERATION_DEPTH() == 1
|
#elif BOOST_PP_ITERATION_DEPTH() == 1
|
||||||
@ -482,49 +553,61 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
#define I BOOST_PP_FRAME_ITERATION(1)
|
#define I BOOST_PP_FRAME_ITERATION(1)
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
The library also provides macros to access values in dimensions <i>relative</i> to the current dimension (e.g. the <i>previous</i> dimension).
|
|
||||||
These macros take an argument that is interpreted as an offset from the current frame.
|
|
||||||
For example, <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>1</i>) always refers to the outer dimension immediately previous to the current dimension.
|
|
||||||
An argument of <i>0</i> is interpreted as an offset of <i>0</i> which causes
|
|
||||||
<b>BOOST_PP_RELATIVE_ITERATION</b>(<i>0</i>) to be equivalent to <b>BOOST_PP_ITERATION</b>().
|
|
||||||
<b>BOOST_PP_RELATIVE_ITERATION</b>(<i>2</i>) refers to the iteration value of the dimension immediately preceding
|
|
||||||
the dimension that precedes the current dimension.
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The lower and upper bounds of a dimension can be accessed in this fashion as well
|
The library also provides macros to access values in dimensions <i>relative</i>
|
||||||
with <b>BOOST_PP_RELATIVE_START</b> and <b>BOOST_PP_RELATIVE_FINISH</b>.
|
to the current dimension (e.g. the <i>previous</i> dimension). These
|
||||||
|
macros take an argument that is interpreted as an offseq from the current
|
||||||
|
frame. For example, <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>1</i>) always
|
||||||
|
refers to the outer dimension immediately previous to the current
|
||||||
|
dimension. An argument of <i>0</i> is interpreted as an offseq of <i>0</i>
|
||||||
|
which causes <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>0</i>) to be equivalent to <b>BOOST_PP_ITERATION</b>().
|
||||||
|
<b>BOOST_PP_RELATIVE_ITERATION</b>(<i>2</i>) refers to the iteration value of
|
||||||
|
the dimension immediately preceding the dimension that precedes the current
|
||||||
|
dimension.
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
The lower and upper bounds of a dimension can be accessed in this fashion as
|
||||||
|
well with <b>BOOST_PP_RELATIVE_START</b> and <b>BOOST_PP_RELATIVE_FINISH</b>.
|
||||||
The flags of a relative dimension can be accessed with <b>BOOST_PP_RELATIVE_FLAGS</b>.
|
The flags of a relative dimension can be accessed with <b>BOOST_PP_RELATIVE_FLAGS</b>.
|
||||||
</div>
|
</div>
|
||||||
<h4>Relativity</h4>
|
<h4>
|
||||||
|
Relativity
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
I mentioned earlier that there is a reason that there are two ways to parametize the mechanism.
|
I mentioned earlier that there is a reason that there are two ways to
|
||||||
The reason is dimensional abstraction.
|
parametize the mechanism. The reason is dimensional abstraction. In
|
||||||
In certain situations the dimension is unknown by the code that is being iterated--possibly
|
certain situations the dimension is unknown by the code that is being
|
||||||
because the code is reused at multiple, different dimensions.
|
iterated--possibly because the code is reused at multiple, different
|
||||||
If that code needs to iterate again, it has to define the right parameters (based on the dimension) for the mechanism to consume.
|
dimensions. If that code needs to iterate again, it has to define the
|
||||||
|
right parameters (based on the dimension) for the mechanism to consume.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
All of the macro state maintained by the mechanism can be referred to in an indirect way relative to a dimension.
|
All of the macro state maintained by the mechanism can be referred to in an
|
||||||
This is the purpose of the <b>BOOST_PP_RELATIVE_</b> accessors.
|
indirect way relative to a dimension. This is the purpose of the <b>BOOST_PP_RELATIVE_</b>
|
||||||
|
accessors.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Likewise, the user-defined <i>named external arguments</i> can be defined this way as well--<i>except</i> the name of the file to iterate.
|
Likewise, the user-defined <i>named external arguments</i> can be defined this
|
||||||
Because the lower and upper boundaries are <i>evaluated</i> by the mechanism, the implementation no longer needs
|
way as well--<i>except</i> the name of the file to iterate. Because the
|
||||||
the macro <b>BOOST_PP_ITERATION_LIMITS</b>, and the identifier can be reused for each dimension of iteration.
|
lower and upper boundaries are <i>evaluated</i> by the mechanism, the
|
||||||
|
implementation no longer needs the macro <b>BOOST_PP_ITERATION_LIMITS</b>, and
|
||||||
|
the identifier can be reused for each dimension of iteration.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Unfortunately, the filename is a different story.
|
Unfortunately, the filename is a different story. The library has no way
|
||||||
The library has no way to evaluate the quoted (or angle-bracketed) text.
|
to evaluate the quoted (or angle-bracketed) text. Therefore, it has to
|
||||||
Therefore, it has to use a different macro for each dimension.
|
use a different macro for each dimension. That is the purpose of the <b>BOOST_PP_FILENAME_<i>x</i></b>
|
||||||
That is the purpose of the <b>BOOST_PP_FILENAME_<i>x</i></b> macros.
|
macros. They exist to isolate the only non-abstractable piece of data
|
||||||
They exist to isolate the only non-abstractable piece of data required by the mechanism.
|
required by the mechanism.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
In order to define the filename in an abstract fashion, you need to do something like this:
|
In order to define the filename in an abstract fashion, you need to do
|
||||||
|
something like this:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
#define UNIQUE_TO_FILE "some_file.h"
|
#define UNIQUE_TO_FILE "some_file.h"
|
||||||
|
|
||||||
#if BOOST_PP_ITERATION_DEPTH() == 0
|
#if BOOST_PP_ITERATION_DEPTH() == 0
|
||||||
@ -537,14 +620,16 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
// ... up to BOOST_PP_LIMIT_ITERATION_DIM
|
// ... up to BOOST_PP_LIMIT_ITERATION_DIM
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The intent is to avoid having to do this for anything but the filename.
|
The intent is to avoid having to do this for anything but the filename.
|
||||||
If this needs to be done more than once in a file
|
If this needs to be done more than once in a file (<b>BOOST_PP_FILENAME_<i>x</i></b>
|
||||||
(<b>BOOST_PP_FILENAME_<i>x</i></b> is undefined by the mechanism after it is used.),
|
is undefined by the mechanism after it is used.), consider using a separate
|
||||||
consider using a separate file to make the proper definition:
|
file to make the proper definition:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
# // detail/define_file_h.h
|
# // detail/define_file_h.h
|
||||||
# ifndef FILE_H
|
# ifndef FILE_H
|
||||||
# error FILE_H is not defined
|
# error FILE_H is not defined
|
||||||
@ -563,11 +648,13 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
# else
|
# else
|
||||||
# error unsupported iteration dimension
|
# error unsupported iteration dimension
|
||||||
# endif
|
# endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
And then use it like this....
|
And then use it like this....
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// file.h
|
// file.h
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
|
|
||||||
@ -584,65 +671,83 @@ for (int i = start(1); i <= finish(1); ++i) {
|
|||||||
#else
|
#else
|
||||||
// iterated portion
|
// iterated portion
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
With a little effort like this, it is possible to maintain the abstraction without the code bloat that would
|
|
||||||
otherwise be required.
|
|
||||||
Unfortunately, this is not a completely general solution as it would need to be done for each unique filename,
|
|
||||||
but it is better than nothing.
|
|
||||||
</div>
|
</div>
|
||||||
<h4>Conclusion</h4>
|
<div>
|
||||||
|
With a little effort like this, it is possible to maintain the abstraction
|
||||||
|
without the code bloat that would otherwise be required. Unfortunately,
|
||||||
|
this is not a completely general solution as it would need to be done for each
|
||||||
|
unique filename, but it is better than nothing.
|
||||||
|
</div>
|
||||||
|
<h4>
|
||||||
|
Conclusion
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
That about covers the facilities that are available from the mechanism.
|
That about covers the facilities that are available from the mechanism.
|
||||||
Using these facilities, let's implement a <code>function_traits</code> template to demonstrate a full-fledge
|
Using these facilities, let's implement a <code>function_traits</code> template
|
||||||
use of the mechanism.
|
to demonstrate a full-fledge use of the mechanism.
|
||||||
</div>
|
</div>
|
||||||
<h4>Function Traits - An Involved Example</h4>
|
<h4>
|
||||||
|
Function Traits - An Involved Example
|
||||||
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
Implementing a comprehensive <code>function_traits</code> template metafunction requires the use
|
Implementing a comprehensive <code>function_traits</code> template metafunction
|
||||||
of every major part of the file iteration mechanism.
|
requires the use of every major part of the file iteration mechanism.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
(This example makes no attempt of work around compiler deficiencies and exists only to illustrate the mechanism.)
|
(This example makes no attempt of work around compiler deficiencies and exists
|
||||||
|
only to illustrate the mechanism.)
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The result should have the following features:
|
The result should have the following features:
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>return type</li>
|
<li>
|
||||||
<li>number and types of parameters</li>
|
return type</li>
|
||||||
<li>whether or not the type is a pointer-to-function, reference-to-function, pointer-to-member-function, or a plain function type</li>
|
<li>
|
||||||
<li>whether the type has an ellipsis</li>
|
number and types of parameters</li>
|
||||||
<li>if not a pointer-to-member-function, the equivalent pointer-to-function, reference-to-function, and function type</li>
|
<li>
|
||||||
<li>otherwise, the pointer-to-member type, the class type to which it refers, and whether it is const and/or volatile qualified</li>
|
whether or not the type is a pointer-to-function, reference-to-function,
|
||||||
|
pointer-to-member-function, or a plain function type</li>
|
||||||
|
<li>
|
||||||
|
whether the type has an ellipsis</li>
|
||||||
|
<li>
|
||||||
|
if not a pointer-to-member-function, the equivalent pointer-to-function,
|
||||||
|
reference-to-function, and function type</li>
|
||||||
|
<li>
|
||||||
|
otherwise, the pointer-to-member type, the class type to which it refers, and
|
||||||
|
whether it is const and/or volatile qualified</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
There are a myriad of ways that this can be implemented.
|
There are a myriad of ways that this can be implemented. I'll give a
|
||||||
I'll give a brief summary here of what is happening in the implementation below.
|
brief summary here of what is happening in the implementation below.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The implementation inherently has to deal with function arity.
|
The implementation inherently has to deal with function arity. Therefore,
|
||||||
Therefore, at minimum, we need to iterate over function arities and define partial specializations of
|
at minimum, we need to iterate over function arities and define partial
|
||||||
the primary template <code>function_traits</code>.
|
specializations of the primary template <code>function_traits</code>. The
|
||||||
The situation is further complicated by variadic functions (i.e. functions with an ellipsis).
|
situation is further complicated by variadic functions (i.e. functions with an
|
||||||
Therefore, for every arity, we need a variadic version as well.
|
ellipsis). Therefore, for every arity, we need a variadic version as
|
||||||
|
well.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
We also need to handle pointers-to-member-functions.
|
We also need to handle pointers-to-member-functions. This implies that we
|
||||||
This implies that we have to handle not just arity and variadics, but also cv-qualifications.
|
have to handle not just arity and variadics, but also cv-qualifications.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
For the sake of clarity, the implementation below handles function types and pointers-to-member-functions
|
For the sake of clarity, the implementation below handles function types and
|
||||||
separately.
|
pointers-to-member-functions separately. They could be merged, but the
|
||||||
They could be merged, but the result would be significantly messier.
|
result would be significantly messier.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
To handle function types, the implementation below iterates over function arities.
|
To handle function types, the implementation below iterates over function
|
||||||
For each arity, it iterates over each parameter to provide access to each individually.
|
arities. For each arity, it iterates over each parameter to provide
|
||||||
It then re-includes itself to define a variadic specialization of the same arity.
|
access to each individually. It then re-includes itself to define a
|
||||||
It performs the rough equivalent of the following pseudo-code:
|
variadic specialization of the same arity. It performs the rough
|
||||||
|
equivalent of the following pseudo-code:
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
void make_spec(int i, bool variadic) {
|
void make_spec(int i, bool variadic) {
|
||||||
:open function_traits<i, variadic>
|
:open function_traits<i, variadic>
|
||||||
for (int j = 0; j < i; ++j) {
|
for (int j = 0; j < i; ++j) {
|
||||||
@ -661,15 +766,17 @@ void function_types(int max_arity) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
The implementation of pointers-to-member-functions is a bit different.
|
The implementation of pointers-to-member-functions is a bit different.
|
||||||
First, it iterates over cv-qualifiers.
|
First, it iterates over cv-qualifiers. For each cv-qualifier, it iterates
|
||||||
For each cv-qualifier, it iterates over function arities.
|
over function arities. For each function arity, it iterates again over
|
||||||
For each function arity, it iterates again over each parameter.
|
each parameter. It then re-includes itself to define a variadic
|
||||||
It then re-includes itself to define a variadic specialization of the same arity....
|
specialization of the same arity....
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div class="code">
|
||||||
|
<pre>
|
||||||
void make_spec(int j, const char* cv, bool variadic) {
|
void make_spec(int j, const char* cv, bool variadic) {
|
||||||
:open function_traits<j, cv, variadic>
|
:open function_traits<j, cv, variadic>
|
||||||
for (int k = 0; k < j; ++k) {
|
for (int k = 0; k < j; ++k) {
|
||||||
@ -696,13 +803,15 @@ void pointers_to_members(int max_arity) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
</pre></div>
|
</pre>
|
||||||
<div>
|
|
||||||
Here is the complete implementation.
|
|
||||||
This example represents the power of the file iteration mechanism as well as the library in general,
|
|
||||||
so follow it carefully if you wish to fully understand what the mechanism does....
|
|
||||||
</div>
|
</div>
|
||||||
<div class="code"><pre>
|
<div>
|
||||||
|
Here is the complete implementation. This example represents the power of
|
||||||
|
the file iteration mechanism as well as the library in general, so follow it
|
||||||
|
carefully if you wish to fully understand what the mechanism does....
|
||||||
|
</div>
|
||||||
|
<div class="code">
|
||||||
|
<pre>
|
||||||
// function_traits.hpp
|
// function_traits.hpp
|
||||||
|
|
||||||
#if !BOOST_PP_IS_ITERATING
|
#if !BOOST_PP_IS_ITERATING
|
||||||
@ -899,23 +1008,30 @@ template<class T> struct function_traits<T&> : function_traits&l
|
|||||||
#undef X
|
#undef X
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
</pre></div>
|
</pre>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
One problem that still exists is the lack of support for <code>throw</code> specifications.
|
One problem that still exists is the lack of support for <code>throw</code> specifications.
|
||||||
There is no way that we can completely handle it anyway because we cannot partially specialize
|
There is no way that we can completely handle it anyway because we cannot
|
||||||
on <code>throw</code> specifications.
|
partially specialize on <code>throw</code> specifications. However, we
|
||||||
However, we could accurately report the "actual" function type, etc., including the <code>throw</code>
|
could accurately report the "actual" function type, etc., including the <code>throw</code>
|
||||||
specification (which the above implementation doesn't do, as it reconstructs those types).
|
specification (which the above implementation doesn't do, as it reconstructs
|
||||||
If you like, you can figure out how to do that on your own as an exercise.
|
those types). If you like, you can figure out how to do that on your own
|
||||||
|
as an exercise.
|
||||||
</div>
|
</div>
|
||||||
<!--<h4>Related Topics</h4>
|
<!--<h4>Related Topics</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="choosing_repetition.html">Choosing Between Repetition Constructs</a></li>
|
<li><a href="choosing_repetition.html">Choosing Between Repetition Constructs</a></li>
|
||||||
</ul>-->
|
</ul>-->
|
||||||
<h4>See Also</h4>
|
<h4>
|
||||||
|
See Also
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../ref/iterate.html">BOOST_PP_ITERATE</a></li>
|
<li>
|
||||||
|
<a href="../ref/iterate.html">BOOST_PP_ITERATE</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="sig">- Paul Mensonides</div>
|
<div class="sig">
|
||||||
|
- Paul Mensonides
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Reference in New Issue
Block a user