mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-06-29 22:11:04 +02:00
Compare commits
1 Commits
boost-1.56
...
boost-1.49
Author | SHA1 | Date | |
---|---|---|---|
3b1fcb773c |
@ -1,47 +1,53 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>arrays.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Arrays</h4>
|
||||
<div> An <i>array</i> is a data structure consisting of a two-element <i>tuple</i>.
|
||||
The first element is the number of elements in the <i>array</i>.
|
||||
The second element is another <i>tuple</i> of the elements in the <i>array</i>.
|
||||
For example, </div>
|
||||
<div class="code"> (<i>3</i>, (<i>a</i>, <i>b</i>, <i>c</i>)) </div>
|
||||
<div> ...is an <i>array</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
|
||||
<i>c</i>. </div>
|
||||
<div> The primary strength of <i>arrays</i> is that they store their own
|
||||
size. Because of this, access to elements does not require the
|
||||
size. It only requires that an element exists at a certain index. </div>
|
||||
<div> This allows macro parameters to be variable in size and allows data
|
||||
states to change size without the user explicitly keeping track of the
|
||||
size independently.</div>
|
||||
<div>With variadic macro support a <i>tuple </i>has all of the
|
||||
functionality as an <i>array</i>, knows its own size, and is easier
|
||||
syntactically to use. Because of that an <i>array</i> should be used, as
|
||||
opposed to a <i>tuple</i>, only if your compiler does not support
|
||||
variadic macros.<br>
|
||||
<br>
|
||||
Elements of an <i>array</i> can be extracted with <b>BOOST_PP_ARRAY_ELEM</b>,
|
||||
an <i>array's</i> size can be extracted with <b>BOOST_PP_ARRAY_SIZE</b>,
|
||||
and an <i>array</i> can be converted to the more primitive <i>tuple</i>
|
||||
data structure with <b>BOOST_PP_ARRAY_DATA</b>. </div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li>
|
||||
<li><a href="../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li>
|
||||
<li><a href="../ref/array_size.html">BOOST_PP_ARRAY_SIZE</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<title>arrays.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Arrays</h4>
|
||||
<div>
|
||||
An <i>array</i> is a data structure consisting of a two-element <i>tuple</i>.
|
||||
The first element is the number of elements in the <i>array</i>.
|
||||
The second element is another <i>tuple</i> of the elements in the <i>array</i>.
|
||||
For example,
|
||||
</div>
|
||||
<div class="code">
|
||||
(<i>3</i>, (<i>a</i>, <i>b</i>, <i>c</i>))
|
||||
</div>
|
||||
<div>
|
||||
...is an <i>array</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div>
|
||||
The primary strength of <i>arrays</i> is that they store their own size.
|
||||
Because of this, access to elements does not require the size.
|
||||
It only requires that an element exists at a certain index.
|
||||
</div>
|
||||
<div>
|
||||
This allows macro parameters to be variable in size and allows data states to change
|
||||
size without the user explicitly keeping track of the size independently.
|
||||
</div>
|
||||
<div>
|
||||
Elements of an <i>array</i> can be extracted with <b>BOOST_PP_ARRAY_ELEM</b>,
|
||||
an <i>array's</i> size can be extracted with <b>BOOST_PP_ARRAY_SIZE</b>, and
|
||||
an <i>array</i> can be converted to the more primitive <i>tuple</i> data structure
|
||||
with <b>BOOST_PP_ARRAY_DATA</b>.
|
||||
</div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li>
|
||||
<li><a href="../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li>
|
||||
<li><a href="../ref/array_size.html">BOOST_PP_ARRAY_SIZE</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,35 +1,42 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>tuples.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Tuples</h4>
|
||||
<div> A <i>tuple</i> is a simple comma-separated list of elements inside
|
||||
parenthesis. For example, </div>
|
||||
<div class="code"> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
|
||||
<div> ...is a <i>tuple</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
|
||||
<i>c</i>. </div>
|
||||
<div> <i>Tuples</i> are fast and easy to use. With variadic macro
|
||||
support it is not necessary to know the size of a <i>tuple; </i>without
|
||||
variadic macro support all access to <i>tuples</i> requires
|
||||
knowledge of its size. Use a <i>tuple </i>instead of an <i>array</i> if
|
||||
your compiler supports variadic macros, since a <i>tuple </i>has all of
|
||||
the functionality as an <i>array </i>and is easier syntactically to use.</div>
|
||||
<div> Elements of a <i>tuple</i> can be extracted with <b>BOOST_PP_TUPLE_ELEM</b>.
|
||||
</div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<title>tuples.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Tuples</h4>
|
||||
<div>
|
||||
A <i>tuple</i> is a simple comma-separated list of elements inside parenthesis.
|
||||
For example,
|
||||
</div>
|
||||
<div class="code">
|
||||
(<i>a</i>, <i>b</i>, <i>c</i>)
|
||||
</div>
|
||||
<div>
|
||||
...is a <i>tuple</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div>
|
||||
<i>Tuples</i> are fast and easy to use.
|
||||
However, all access to <i>tuples</i> requires knowledge of its size.
|
||||
</div>
|
||||
<div>
|
||||
Elements of a <i>tuple</i> can be extracted with
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>.
|
||||
</div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
471
doc/headers.html
471
doc/headers.html
@ -1,247 +1,232 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>headers.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<base target="desc">
|
||||
<style>
|
||||
<head>
|
||||
<title>headers.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<base target="desc">
|
||||
<style>
|
||||
.ps { margin-left: 30px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h4> Headers <small><a href="contents.html" target="index">[back]</a></small>
|
||||
</h4>
|
||||
<ul>
|
||||
<li>../</li>
|
||||
<li class="ps"> <a href="headers/preprocessor.html">preprocessor.hpp</a></li>
|
||||
<li><a href="headers/arithmetic.html">arithmetic.hpp</a></li>
|
||||
<li>arithmetic/</li>
|
||||
<li class="ps"><a href="headers/arithmetic/add.html">add.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/dec.html">dec.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/div.html">div.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/inc.html">inc.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/mod.html">mod.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/mul.html">mul.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/sub.html">sub.hpp</a></li>
|
||||
<li><a href="headers/array.html">array.hpp</a></li>
|
||||
<li>array/</li>
|
||||
<li class="ps"><a href="headers/array/data.html">data.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/elem.html">elem.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/insert.html">insert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/pop_back.html">pop_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/pop_front.html">pop_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/push_back.html">push_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/push_front.html">push_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/remove.html">remove.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/replace.html">replace.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_list.html">to_list.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_seq.html">to_seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li><a href="headers/assert_msg.html">assert_msg.hpp*</a></li>
|
||||
<li><a href="headers/cat.html">cat.hpp</a></li>
|
||||
<li><a href="headers/comma.html">comma.hpp*</a></li>
|
||||
<li><a href="headers/comma_if.html">comma_if.hpp*</a></li>
|
||||
<li><a href="headers/comparison.html">comparison.hpp</a></li>
|
||||
<li>comparison/</li>
|
||||
<li class="ps"><a href="headers/comparison/equal.html">equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/greater.html">greater.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/greater_equal.html">greater_equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/less.html">less.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/less_equal.html">less_equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/not_equal.html">not_equal.hpp</a></li>
|
||||
<li>config/</li>
|
||||
<li class="ps"><a href="headers/config/limits.html">limits.hpp</a></li>
|
||||
<li class="ps"><a href="headers/config/variadics.html">variadics.hpp</a></li>
|
||||
<li><a href="headers/control.html">control.hpp</a></li>
|
||||
<li>control/</li>
|
||||
<li class="ps"><a href="headers/control/deduce_d.html">deduce_d.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/expr_if.html">expr_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/expr_iif.html">expr_iif.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/if.html">if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/iif.html">iif.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/while.html">while.hpp</a></li>
|
||||
<li><a href="headers/debug.html">debug.hpp</a></li>
|
||||
<li>debug/</li>
|
||||
<li class="ps"><a href="headers/debug/assert.html">assert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/debug/line.html">line.hpp</a></li>
|
||||
<li><a href="headers/dec.html">dec.hpp*</a></li>
|
||||
<li><a href="headers/empty.html">empty.hpp*</a></li>
|
||||
<li><a href="headers/enum.html">enum.hpp*</a></li>
|
||||
<li><a href="headers/enum_params.html">enum_params.hpp*</a></li>
|
||||
<li><a href="headers/epwad.html">enum_params_with_a_default.hpp*</a></li>
|
||||
<li><a href="headers/epwd.html">enum_params_with_defaults.hpp*</a></li>
|
||||
<li><a href="headers/enum_shifted.html">enum_shifted.hpp*</a></li>
|
||||
<li><a href="headers/enum_shifted_params.html">enum_shifted_params.hpp*</a></li>
|
||||
<li><a href="headers/expand.html">expand.hpp*</a></li>
|
||||
<li><a href="headers/expr_if.html">expr_if.hpp*</a></li>
|
||||
<li><a href="headers/facilities.html">facilities.hpp</a></li>
|
||||
<li>facilities/</li>
|
||||
<li class="ps"><a href="headers/facilities/apply.html">apply.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/empty.html">empty.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/expand.html">expand.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/identity.html">identity.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/intercept.html">intercept.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/overload.html">overload.hpp</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="headers/for.html">for.hpp*</a></li>
|
||||
<li><a href="headers/identity.html">identity.hpp*</a></li>
|
||||
<li><a href="headers/if.html">if.hpp*</a></li>
|
||||
<li><a href="headers/inc.html">inc.hpp*</a></li>
|
||||
<li><a href="headers/iterate.html">iterate.hpp*</a></li>
|
||||
<li><a href="headers/iteration.html">iteration.hpp</a></li>
|
||||
<li>iteration/</li>
|
||||
<li class="ps"><a href="headers/iteration/iterate.html">iterate.hpp</a></li>
|
||||
<li class="ps"><a href="headers/iteration/local.html">local.hpp</a></li>
|
||||
<li class="ps"><a href="headers/iteration/self.html">self.hpp</a></li>
|
||||
<li><a href="headers/library.html">library.hpp</a></li>
|
||||
<li><a href="headers/limits.html">limits.hpp*</a></li>
|
||||
<li><a href="headers/list.html">list.hpp</a></li>
|
||||
<li>list/</li>
|
||||
<li class="ps"><a href="headers/list/adt.html">adt.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/append.html">append.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/at.html">at.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/cat.html">cat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/filter.html">filter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/first_n.html">first_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/fold_left.html">fold_left.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/fold_right.html">fold_right.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each.html">for_each.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each_i.html">for_each_i.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each_product.html">for_each_product.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/rest_n.html">rest_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_array.html">to_array.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_seq.html">to_seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/transform.html">transform.hpp</a></li>
|
||||
<li><a href="headers/logical.html">logical.hpp</a></li>
|
||||
<li>logical/</li>
|
||||
<li class="ps"><a href="headers/logical/and.html">and.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitand.html">bitand.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitnor.html">bitnor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitor.html">bitor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitxor.html">bitxor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bool.html">bool.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/compl.html">compl.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/nor.html">nor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/not.html">not.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/or.html">or.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/xor.html">xor.hpp</a></li>
|
||||
<li><a href="headers/max.html">max.hpp*</a></li>
|
||||
<li><a href="headers/min.html">min.hpp*</a></li>
|
||||
<li><a href="headers/punctuation.html">punctuation.hpp</a></li>
|
||||
<li>punctuation/</li>
|
||||
<li class="ps"><a href="headers/punctuation/comma.html">comma.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/comma_if.html">comma_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren.html">paren.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren_if.html">paren_if.hpp</a></li>
|
||||
<li><a href="headers/repeat.html">repeat.hpp*</a></li>
|
||||
<li><a href="headers/repeat_2nd.html">repeat_2nd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_3rd.html">repeat_3rd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to.html">repeat_from_to.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to_2nd.html">repeat_from_to_2nd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to_3rd.html">repeat_from_to_3rd.hpp*</a></li>
|
||||
<li><a href="headers/repetition.html">repetition.hpp</a></li>
|
||||
<li>repetition/</li>
|
||||
<li class="ps"><a href="headers/repetition/deduce_r.html">deduce_r.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/deduce_z.html">deduce_z.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_binary_params.html">enum_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_params.html">enum_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/epwad.html">enum_params_with_a_default.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/epwd.html">enum_params_with_defaults.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/esbp.html">enum_shifted_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_shifted_params.html">enum_shifted_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_shifted.html">enum_shifted.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_trailing.html">enum_trailing.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/etbp.html">enum_trailing_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_trailing_params.html">enum_trailing_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/for.html">for.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/repeat.html">repeat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/repeat_from_to.html">repeat_from_to.hpp</a></li>
|
||||
<li><a href="headers/selection.html">selection.hpp</a></li>
|
||||
<li>selection/</li>
|
||||
<li class="ps"><a href="headers/selection/max.html">max.hpp</a></li>
|
||||
<li class="ps"><a href="headers/selection/min.html">min.hpp</a></li>
|
||||
<li><a href="headers/seq.html">seq.hpp</a></li>
|
||||
<li>seq/</li>
|
||||
<li class="ps"><a href="headers/seq/cat.html">cat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/elem.html">elem.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/filter.html">filter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/first_n.html">first_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/fold_left.html">fold_left.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/fold_right.html">fold_right.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each.html">for_each.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each_i.html">for_each_i.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each_product.html">for_each_product.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/insert.html">insert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/pop_back.html">pop_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/pop_front.html">pop_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/push_back.html">push_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/push_front.html">push_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/remove.html">remove.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/replace.html">replace.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/rest_n.html">rest_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/seq.html">seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/subseq.html">subseq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_array.html">to_array.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_list.html">to_list.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/variadic_seq_to_seq.html">variadic_seq_to_seq.hpp</a></li>
|
||||
<li><a href="headers/slot.html">slot.hpp</a></li>
|
||||
<li>slot/</li>
|
||||
<li class="ps"><a href="headers/slot/counter.html">counter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li>
|
||||
<li><a href="headers/tuple.html">tuple.hpp</a></li>
|
||||
<li>tuple/</li>
|
||||
<li class="ps"><a href="headers/tuple/eat.html">eat.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/enum.html">enum.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/insert.html">insert.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/pop_back.html">pop_back.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/pop_front.html">pop_front.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/push_back.html">push_back.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/push_front.html">push_front.hpp</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/rem.html">rem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/remove.html">remove.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/replace.html">replace.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/reverse.html">reverse.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/to_array.html">to_array.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/to_list.html">to_list.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/tuple/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="headers/stringize.html">stringize.hpp</a></li>
|
||||
<li><a href="headers/variadic.html">variadic.hpp</a></li>
|
||||
<li>variadic/</li>
|
||||
<li class="ps"><a href="headers/variadic/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/to_array.html">to_array.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/to_list.html">to_list.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/to_tuple.html">to_tuple.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="headers/while.html">while.hpp*</a></li>
|
||||
<li><a href="headers/wstringize.html">wstringize.hpp</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002<30> Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)-->
|
||||
</body>
|
||||
</head>
|
||||
<body>
|
||||
<h4> Headers <small><a href="contents.html" target="index">[back]</a></small>
|
||||
</h4>
|
||||
<ul>
|
||||
<li>../</li>
|
||||
<li class="ps"> <a href="headers/preprocessor.html">preprocessor.hpp</a></li>
|
||||
<li><a href="headers/arithmetic.html">arithmetic.hpp</a></li>
|
||||
<li>arithmetic/</li>
|
||||
<li class="ps"><a href="headers/arithmetic/add.html">add.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/dec.html">dec.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/div.html">div.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/inc.html">inc.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/mod.html">mod.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/mul.html">mul.hpp</a></li>
|
||||
<li class="ps"><a href="headers/arithmetic/sub.html">sub.hpp</a></li>
|
||||
<li><a href="headers/array.html">array.hpp</a></li>
|
||||
<li>array/</li>
|
||||
<li class="ps"><a href="headers/array/data.html">data.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/elem.html">elem.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/insert.html">insert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/pop_back.html">pop_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/pop_front.html">pop_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/push_back.html">push_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/push_front.html">push_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/remove.html">remove.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/replace.html">replace.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_list.html">to_list.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_seq.html">to_seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/array/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li><a href="headers/assert_msg.html">assert_msg.hpp*</a></li>
|
||||
<li><a href="headers/cat.html">cat.hpp</a></li>
|
||||
<li><a href="headers/comma.html">comma.hpp*</a></li>
|
||||
<li><a href="headers/comma_if.html">comma_if.hpp*</a></li>
|
||||
<li><a href="headers/comparison.html">comparison.hpp</a></li>
|
||||
<li>comparison/</li>
|
||||
<li class="ps"><a href="headers/comparison/equal.html">equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/greater.html">greater.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/greater_equal.html">greater_equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/less.html">less.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/less_equal.html">less_equal.hpp</a></li>
|
||||
<li class="ps"><a href="headers/comparison/not_equal.html">not_equal.hpp</a></li>
|
||||
<li>config/</li>
|
||||
<li class="ps"><a href="headers/config/limits.html">limits.hpp</a></li>
|
||||
<li class="ps"><a href="headers/config/variadics.html">variadics.hpp</a></li>
|
||||
<li><a href="headers/control.html">control.hpp</a></li>
|
||||
<li>control/</li>
|
||||
<li class="ps"><a href="headers/control/deduce_d.html">deduce_d.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/expr_if.html">expr_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/expr_iif.html">expr_iif.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/if.html">if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/iif.html">iif.hpp</a></li>
|
||||
<li class="ps"><a href="headers/control/while.html">while.hpp</a></li>
|
||||
<li><a href="headers/debug.html">debug.hpp</a></li>
|
||||
<li>debug/</li>
|
||||
<li class="ps"><a href="headers/debug/assert.html">assert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/debug/line.html">line.hpp</a></li>
|
||||
<li><a href="headers/dec.html">dec.hpp*</a></li>
|
||||
<li><a href="headers/empty.html">empty.hpp*</a></li>
|
||||
<li><a href="headers/enum.html">enum.hpp*</a></li>
|
||||
<li><a href="headers/enum_params.html">enum_params.hpp*</a></li>
|
||||
<li><a href="headers/epwad.html">enum_params_with_a_default.hpp*</a></li>
|
||||
<li><a href="headers/epwd.html">enum_params_with_defaults.hpp*</a></li>
|
||||
<li><a href="headers/enum_shifted.html">enum_shifted.hpp*</a></li>
|
||||
<li><a href="headers/enum_shifted_params.html">enum_shifted_params.hpp*</a></li>
|
||||
<li><a href="headers/expand.html">expand.hpp*</a></li>
|
||||
<li><a href="headers/expr_if.html">expr_if.hpp*</a></li>
|
||||
<li><a href="headers/facilities.html">facilities.hpp</a></li>
|
||||
<li>facilities/</li>
|
||||
<li class="ps"><a href="headers/facilities/apply.html">apply.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/empty.html">empty.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/expand.html">expand.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/identity.html">identity.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/intercept.html">intercept.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/overload.html">overload.hpp</a> (v)</li>
|
||||
<li><a href="headers/for.html">for.hpp*</a></li>
|
||||
<li><a href="headers/identity.html">identity.hpp*</a></li>
|
||||
<li><a href="headers/if.html">if.hpp*</a></li>
|
||||
<li><a href="headers/inc.html">inc.hpp*</a></li>
|
||||
<li><a href="headers/iterate.html">iterate.hpp*</a></li>
|
||||
<li><a href="headers/iteration.html">iteration.hpp</a></li>
|
||||
<li>iteration/</li>
|
||||
<li class="ps"><a href="headers/iteration/iterate.html">iterate.hpp</a></li>
|
||||
<li class="ps"><a href="headers/iteration/local.html">local.hpp</a></li>
|
||||
<li class="ps"><a href="headers/iteration/self.html">self.hpp</a></li>
|
||||
<li><a href="headers/library.html">library.hpp</a></li>
|
||||
<li><a href="headers/limits.html">limits.hpp*</a></li>
|
||||
<li><a href="headers/list.html">list.hpp</a></li>
|
||||
<li>list/</li>
|
||||
<li class="ps"><a href="headers/list/adt.html">adt.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/append.html">append.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/at.html">at.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/cat.html">cat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/filter.html">filter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/first_n.html">first_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/fold_left.html">fold_left.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/fold_right.html">fold_right.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each.html">for_each.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each_i.html">for_each_i.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/for_each_product.html">for_each_product.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/rest_n.html">rest_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_array.html">to_array.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_seq.html">to_seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li class="ps"><a href="headers/list/transform.html">transform.hpp</a></li>
|
||||
<li><a href="headers/logical.html">logical.hpp</a></li>
|
||||
<li>logical/</li>
|
||||
<li class="ps"><a href="headers/logical/and.html">and.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitand.html">bitand.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitnor.html">bitnor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitor.html">bitor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bitxor.html">bitxor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/bool.html">bool.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/compl.html">compl.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/nor.html">nor.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/not.html">not.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/or.html">or.hpp</a></li>
|
||||
<li class="ps"><a href="headers/logical/xor.html">xor.hpp</a></li>
|
||||
<li><a href="headers/max.html">max.hpp*</a></li>
|
||||
<li><a href="headers/min.html">min.hpp*</a></li>
|
||||
<li><a href="headers/punctuation.html">punctuation.hpp</a></li>
|
||||
<li>punctuation/</li>
|
||||
<li class="ps"><a href="headers/punctuation/comma.html">comma.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/comma_if.html">comma_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren.html">paren.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren_if.html">paren_if.hpp</a></li>
|
||||
<li><a href="headers/repeat.html">repeat.hpp*</a></li>
|
||||
<li><a href="headers/repeat_2nd.html">repeat_2nd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_3rd.html">repeat_3rd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to.html">repeat_from_to.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to_2nd.html">repeat_from_to_2nd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_from_to_3rd.html">repeat_from_to_3rd.hpp*</a></li>
|
||||
<li><a href="headers/repetition.html">repetition.hpp</a></li>
|
||||
<li>repetition/</li>
|
||||
<li class="ps"><a href="headers/repetition/deduce_r.html">deduce_r.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/deduce_z.html">deduce_z.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_binary_params.html">enum_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_params.html">enum_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/epwad.html">enum_params_with_a_default.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/epwd.html">enum_params_with_defaults.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/esbp.html">enum_shifted_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_shifted_params.html">enum_shifted_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_shifted.html">enum_shifted.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_trailing.html">enum_trailing.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/etbp.html">enum_trailing_binary_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/enum_trailing_params.html">enum_trailing_params.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/for.html">for.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/repeat.html">repeat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/repetition/repeat_from_to.html">repeat_from_to.hpp</a></li>
|
||||
<li><a href="headers/selection.html">selection.hpp</a></li>
|
||||
<li>selection/</li>
|
||||
<li class="ps"><a href="headers/selection/max.html">max.hpp</a></li>
|
||||
<li class="ps"><a href="headers/selection/min.html">min.hpp</a></li>
|
||||
<li><a href="headers/seq.html">seq.hpp</a></li>
|
||||
<li>seq/</li>
|
||||
<li class="ps"><a href="headers/seq/cat.html">cat.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/elem.html">elem.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/enum.html">enum.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/filter.html">filter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/first_n.html">first_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/fold_left.html">fold_left.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/fold_right.html">fold_right.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each.html">for_each.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each_i.html">for_each_i.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/for_each_product.html">for_each_product.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/insert.html">insert.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/pop_back.html">pop_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/pop_front.html">pop_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/push_back.html">push_back.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/push_front.html">push_front.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/remove.html">remove.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/replace.html">replace.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/rest_n.html">rest_n.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/reverse.html">reverse.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/seq.html">seq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/size.html">size.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/subseq.html">subseq.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_array.html">to_array.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_list.html">to_list.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/to_tuple.html">to_tuple.hpp</a></li>
|
||||
<li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li>
|
||||
<li><a href="headers/slot.html">slot.hpp</a></li>
|
||||
<li>slot/</li>
|
||||
<li class="ps"><a href="headers/slot/counter.html">counter.hpp</a></li>
|
||||
<li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li>
|
||||
<li><a href="headers/tuple.html">tuple.hpp</a></li>
|
||||
<li>tuple/</li>
|
||||
<li class="ps"><a href="headers/tuple/eat.html">eat.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/elem.html">elem.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/enum.html">enum.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/rem.html">rem.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/reverse.html">reverse.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/size.html">size.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/to_array.html">to_array.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/to_list.html">to_list.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/tuple/to_seq.html">to_seq.hpp</a> (v)</li>
|
||||
<li><a href="headers/stringize.html">stringize.hpp</a></li>
|
||||
<li><a href="headers/variadic.html">variadic.hpp</a></li>
|
||||
<li>variadic/</li>
|
||||
<li class="ps"><a href="headers/variadic/elem.html">elem.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/variadic/size.html">size.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/variadic/to_array.html">to_array.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/variadic/to_list.html">to_list.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/variadic/to_seq.html">to_seq.hpp</a> (v)</li>
|
||||
<li class="ps"><a href="headers/variadic/to_tuple.html">to_tuple.hpp</a> (v)</li>
|
||||
<li><a href="headers/while.html">while.hpp*</a></li>
|
||||
<li><a href="headers/wstringize.html">wstringize.hpp</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002
|
||||
<EFBFBD> Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<li><a href="facilities/expand.html"><boost/preprocessor/facilities/expand.hpp></a></li>
|
||||
<li><a href="facilities/identity.html"><boost/preprocessor/facilities/identity.hpp></a></li>
|
||||
<li><a href="facilities/intercept.html"><boost/preprocessor/facilities/intercept.hpp></a></li>
|
||||
<li><a href="facilities/overload.html"><boost/preprocessor/facilities/overload.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="facilities/overload.html"><boost/preprocessor/facilities/overload.hpp></a> (v)</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
|
@ -13,11 +13,11 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/overload.html">BOOST_PP_OVERLOAD</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="../../ref/overload.html">BOOST_PP_OVERLOAD</a> (v)</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -69,8 +69,6 @@
|
||||
<a href="seq/to_tuple.html"><boost/preprocessor/seq/to_tuple.hpp></a></li>
|
||||
<li>
|
||||
<a href="seq/transform.html"><boost/preprocessor/seq/transform.hpp></a></li>
|
||||
<li>
|
||||
<a href="seq/variadic_seq_to_seq.html"><boost/preprocessor/seq/variadic_seq_to_seq.hpp></a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
|
@ -1,34 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>seq/variadic_seq_to_seq.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>seq/variadic_seq_to_seq.hpp</b> header defines a macro that converts a <i>variadic seq</i> into a <i>seq</i>.
|
||||
</div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
#include <b><boost/preprocessor/seq/variadic_seq_to_seq.hpp></b>
|
||||
</div>
|
||||
<h4>
|
||||
Contents
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="../../ref/variadic_seq_to_seq.html">BOOST_PP_VARIADIC_SEQ_TO_SEQ</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i>© Copyright Paul Mensonides 2012</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,59 +1,37 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<head>
|
||||
<title>tuple.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple.hpp</b> includes the headers
|
||||
in the <i>tuple</i> folder. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple.hpp></b> </div>
|
||||
<h4>Includes</h4>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>tuple.hpp</b> includes the headers in the <i>tuple</i> folder.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
#include <b><boost/preprocessor/tuple.hpp></b>
|
||||
</div>
|
||||
<h4>Includes<br></h4>
|
||||
<ul>
|
||||
<li><a href="tuple/eat.html"><boost/preprocessor/tuple/eat.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/elem.html"><boost/preprocessor/tuple/elem.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/enum.html"><boost/preprocessor/tuple/enum.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/insert.html"><boost/preprocessor/tuple/insert.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/pop_back.html"><boost/preprocessor/tuple/pop_back.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/pop_front.html"><boost/preprocessor/tuple/pop_front.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/push_back.html"><boost/preprocessor/tuple/push_back.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/push_front.html"><boost/preprocessor/tuple/push_front.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/remove.html"><boost/preprocessor/tuple/remove.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/replace.html"><boost/preprocessor/tuple/replace.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="tuple/reverse.html"><boost/preprocessor/tuple/reverse.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/size.html"><boost/preprocessor/tuple/size.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/to_array.html"><boost/preprocessor/tuple/to_array.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/to_list.html"><boost/preprocessor/tuple/to_list.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="tuple/to_seq.html"><boost/preprocessor/tuple/to_seq.hpp></a>
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<li><a href="tuple/eat.html"><boost/preprocessor/tuple/eat.hpp></a> (v)</li>
|
||||
<li><a href="tuple/elem.html"><boost/preprocessor/tuple/elem.hpp></a> (v)</li>
|
||||
<li><a href="tuple/enum.html"><boost/preprocessor/tuple/enum.hpp></a> (v)</li>
|
||||
<li><a href="tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a> (v)</li>
|
||||
<li><a href="tuple/reverse.html"><boost/preprocessor/tuple/reverse.hpp></a> (v)</li>
|
||||
<li><a href="tuple/size.html"><boost/preprocessor/tuple/size.hpp></a> (v)</li>
|
||||
<li><a href="tuple/to_array.html"><boost/preprocessor/tuple/to_array.hpp></a> (v)</li>
|
||||
<li><a href="tuple/to_list.html"><boost/preprocessor/tuple/to_list.hpp></a> (v)</li>
|
||||
<li><a href="tuple/to_seq.html"><boost/preprocessor/tuple/to_seq.hpp></a> (v)</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -1,27 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/insert.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/insert.hpp</b> header defines
|
||||
macros to insert an element into an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/insert.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_insert.html">BOOST_PP_TUPLE_INSERT</a> <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="../../ref/tuple_insert_d.html">BOOST_PP_TUPLE_INSERT_D</a> <a
|
||||
href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,28 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/pop_back.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/pop_back.hpp</b> header
|
||||
defines macros to pop an element from the end of an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/pop_back.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a> <a
|
||||
href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="../../ref/tuple_pop_back_z.html">BOOST_PP_TUPLE_POP_BACK_Z</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,28 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/pop_front.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/pop_front.hpp</b> header
|
||||
defines macros to pop an element from the beginning of an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/pop_front.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="../../ref/tuple_pop_front_z.html">BOOST_PP_TUPLE_POP_FRONT_Z</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,26 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/push_back.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/push_back.hpp</b> header
|
||||
defines a macro to append an element to the end of an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/push_back.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_push_back.html">BOOST_PP_TUPLE_PUSH_BACK</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,26 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/push_front.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/push_front.hpp</b> header
|
||||
defines a macro to append an element to the beginning of an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/push_front.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_push_front.html">BOOST_PP_TUPLE_PUSH_FRONT</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -9,9 +9,9 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_rem.html">BOOST_PP_TUPLE_REM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_rem.html">BOOST_PP_TUPLE_REM</a> (v)<br>
|
||||
</li>
|
||||
<li><a href="../../ref/tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -1,27 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/remove.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/remove.hpp</b> header defines
|
||||
macros to remove an element from an <i>array</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/remove.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a> <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="../../ref/tuple_remove_d.html">BOOST_PP_TUPLE_REMOVE_D</a> <a
|
||||
href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,28 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuple/replace.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>tuple/replace.hpp</b> header
|
||||
defines macros to replace an element in an <i>array</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/tuple/replace.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a> <a
|
||||
href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="../../ref/tuple_replace_d.html">BOOST_PP_TUPLE_REPLACE_D</a>
|
||||
<a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_size.html">BOOST_PP_TUPLE_SIZE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_size.html">BOOST_PP_TUPLE_SIZE</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><sup><br>
|
||||
<li><a href="../../ref/tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a> (v)<sup><br>
|
||||
</sup></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -15,7 +15,7 @@
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
|
@ -13,16 +13,16 @@
|
||||
</div>
|
||||
<h4>Includes</h4>
|
||||
<ul>
|
||||
<li><a href="variadic/elem.html"><boost/preprocessor/variadic/elem.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/size.html"><boost/preprocessor/variadic/size.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_array.html"><boost/preprocessor/variadic/to_array.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_list.html"><boost/preprocessor/variadic/to_list.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_seq.html"><boost/preprocessor/variadic/to_seq.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_tuple.html"><boost/preprocessor/variadic/to_tuple.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/elem.html"><boost/preprocessor/variadic/elem.hpp></a> (v)</li>
|
||||
<li><a href="variadic/size.html"><boost/preprocessor/variadic/size.hpp></a> (v)</li>
|
||||
<li><a href="variadic/to_array.html"><boost/preprocessor/variadic/to_array.hpp></a> (v)</li>
|
||||
<li><a href="variadic/to_list.html"><boost/preprocessor/variadic/to_list.hpp></a> (v)</li>
|
||||
<li><a href="variadic/to_seq.html"><boost/preprocessor/variadic/to_seq.hpp></a> (v)</li>
|
||||
<li><a href="variadic/to_tuple.html"><boost/preprocessor/variadic/to_tuple.hpp></a> (v)</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -14,12 +14,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadic_size.html">BOOST_PP_VARIADIC_SIZE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/variadic_size.html">BOOST_PP_VARIADIC_SIZE</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -10,12 +10,12 @@
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<li><a href="../../ref/variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -15,12 +15,12 @@
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="../../ref/variadic_to_seq.html">BOOST_PP_VARIADIC_TO_SEQ</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<a href="../../ref/variadic_to_seq.html">BOOST_PP_VARIADIC_TO_SEQ</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -16,12 +16,12 @@
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="../../ref/variadic_to_tuple.html">BOOST_PP_VARIADIC_TO_TUPLE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
|
||||
<a href="../../ref/variadic_to_tuple.html">BOOST_PP_VARIADIC_TO_TUPLE</a> (v)<br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
608
doc/ref.html
608
doc/ref.html
@ -1,316 +1,304 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>ref.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<base target="desc">
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<base target="desc">
|
||||
</head>
|
||||
<body>
|
||||
<h4> Reference <small><a href="contents.html" target="index">[back]</a></small>
|
||||
</h4>
|
||||
<ul>
|
||||
<!-- A -->
|
||||
<li><a href="ref/add.html">ADD</a></li>
|
||||
<li><a href="ref/add_d.html">ADD_D</a></li>
|
||||
<li><a href="ref/and.html">AND</a></li>
|
||||
<li><a href="ref/apply.html">APPLY</a></li>
|
||||
<li><a href="ref/array_data.html">ARRAY_DATA</a></li>
|
||||
<li><a href="ref/array_elem.html">ARRAY_ELEM</a></li>
|
||||
<li><a href="ref/array_enum.html">ARRAY_ENUM</a></li>
|
||||
<li><a href="ref/array_insert.html">ARRAY_INSERT</a></li>
|
||||
<li><a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
|
||||
<li><a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
|
||||
<li><a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
|
||||
<li><a href="ref/array_pop_front.html">ARRAY_POP_FRONT</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/array_to_list.html">ARRAY_TO_LIST</a></li>
|
||||
<li><a href="ref/array_to_seq.html">ARRAY_TO_SEQ</a></li>
|
||||
<li><a href="ref/array_to_tuple.html">ARRAY_TO_TUPLE</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 -->
|
||||
<li><a href="ref/bitand.html">BITAND</a></li>
|
||||
<li><a href="ref/bitnor.html">BITNOR</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 -->
|
||||
<li><a href="ref/cat.html">CAT</a></li>
|
||||
<li><a href="ref/comma.html">COMMA</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>
|
||||
<li><a href="ref/counter.html">COUNTER</a></li>
|
||||
<!-- D -->
|
||||
<li><a href="ref/dec.html">DEC</a></li>
|
||||
<li><a href="ref/deduce_d.html">DEDUCE_D</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/empty.html">EMPTY</a></li>
|
||||
<li><a href="ref/enum.html">ENUM</a></li>
|
||||
<li><a href="ref/enum_binary_params.html">ENUM_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/enum_binary_params_z.html">ENUM_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_params.html">ENUM_PARAMS</a></li>
|
||||
<li><a href="ref/enum_params_with_a_default.html">ENUM_PARAMS_WITH_A_DEFAULT*</a></li>
|
||||
<li><a href="ref/enum_params_with_defaults.html">ENUM_PARAMS_WITH_DEFAULTS*</a></li>
|
||||
<li><a href="ref/enum_params_z.html">ENUM_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_shifted.html">ENUM_SHIFTED</a></li>
|
||||
<li><a href="ref/esbp.html">ENUM_SHIFTED_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/esbpz.html">ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_shifted_params.html">ENUM_SHIFTED_PARAMS</a></li>
|
||||
<li><a href="ref/enum_shifted_params_z.html">ENUM_SHIFTED_PARAMS_Z</a></li>
|
||||
<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/etbp.html">ENUM_TRAILING_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/etbpz.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 -->
|
||||
<li><a href="ref/filename_x.html">FILENAME_<i>x</i></a></li>
|
||||
<li><a href="ref/for.html">FOR</a></li>
|
||||
<li><a href="ref/for_r.html">FOR_<i>r</i></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 -->
|
||||
<li><a href="ref/greater.html">GREATER</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/identity.html">IDENTITY</a></li>
|
||||
<li><a href="ref/if.html">IF</a></li>
|
||||
<li><a href="ref/iif.html">IIF</a></li>
|
||||
<li><a href="ref/inc.html">INC</a></li>
|
||||
<li><a href="ref/include_self.html">INCLUDE_SELF</a></li>
|
||||
<li><a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
|
||||
<li><a href="ref/intercept.html">INTERCEPT</a></li>
|
||||
<li><a href="ref/is_iterating.html">IS_ITERATING</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 -->
|
||||
<li><a href="ref/less.html">LESS</a></li>
|
||||
<li><a href="ref/less_d.html">LESS_D</a></li>
|
||||
<li><a href="ref/less_equal.html">LESS_EQUAL</a></li>
|
||||
<li><a href="ref/less_equal_d.html">LESS_EQUAL_D</a></li>
|
||||
<li><a href="ref/limit_dim.html">LIMIT_DIM</a></li>
|
||||
<li><a href="ref/limit_for.html">LIMIT_FOR</a></li>
|
||||
<li><a href="ref/limit_iteration.html">LIMIT_ITERATION</a></li>
|
||||
<li><a href="ref/limit_iteration_dim.html">LIMIT_ITERATION_DIM</a></li>
|
||||
<li><a href="ref/limit_mag.html">LIMIT_MAG</a></li>
|
||||
<li><a href="ref/limit_repeat.html">LIMIT_REPEAT</a></li>
|
||||
<li><a href="ref/limit_seq.html">LIMIT_SEQ</a></li>
|
||||
<li><a href="ref/limit_slot_count.html">LIMIT_SLOT_COUNT</a></li>
|
||||
<li><a href="ref/limit_slot_sig.html">LIMIT_SLOT_SIG</a></li>
|
||||
<li><a href="ref/limit_tuple.html">LIMIT_TUPLE</a></li>
|
||||
<li><a href="ref/limit_variadic.html">LIMIT_VARIADIC</a></li>
|
||||
<li><a href="ref/limit_while.html">LIMIT_WHILE</a></li>
|
||||
<li><a href="ref/line.html">LINE</a></li>
|
||||
<li><a href="ref/list_append.html">LIST_APPEND</a></li>
|
||||
<li><a href="ref/list_append_d.html">LIST_APPEND_D</a></li>
|
||||
<li><a href="ref/list_at.html">LIST_AT</a></li>
|
||||
<li><a href="ref/list_at_d.html">LIST_AT_D</a></li>
|
||||
<li><a href="ref/list_cat.html">LIST_CAT</a></li>
|
||||
<li><a href="ref/list_cat_d.html">LIST_CAT_D</a></li>
|
||||
<li><a href="ref/list_cons.html">LIST_CONS*</a></li>
|
||||
<li><a href="ref/list_enum.html">LIST_ENUM</a></li>
|
||||
<li><a href="ref/list_enum_r.html">LIST_ENUM_R</a></li>
|
||||
<li><a href="ref/list_filter.html">LIST_FILTER</a></li>
|
||||
<li><a href="ref/list_filter_d.html">LIST_FILTER_D</a></li>
|
||||
<li><a href="ref/list_first.html">LIST_FIRST</a></li>
|
||||
<li><a href="ref/list_first_n.html">LIST_FIRST_N</a></li>
|
||||
<li><a href="ref/list_first_n_d.html">LIST_FIRST_N_D</a></li>
|
||||
<li><a href="ref/list_fold_left.html">LIST_FOLD_LEFT</a></li>
|
||||
<li><a href="ref/list_fold_left_2nd.html">LIST_FOLD_LEFT_2ND*</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_array.html">LIST_TO_ARRAY</a></li>
|
||||
<li><a href="ref/list_to_array_d.html">LIST_TO_ARRAY_D</a></li>
|
||||
<li><a href="ref/list_to_seq.html">LIST_TO_SEQ</a></li>
|
||||
<li><a href="ref/list_to_seq_r.html">LIST_TO_SEQ_R</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 -->
|
||||
<li><a href="ref/max.html">MAX</a></li>
|
||||
<li><a href="ref/max_d.html">MAX_D</a></li>
|
||||
<li><a href="ref/min.html">MIN</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/nil.html">NIL</a></li>
|
||||
<li><a href="ref/nor.html">NOR</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 -->
|
||||
<li><a href="ref/or.html">OR</a></li>
|
||||
<li><a href="ref/overload.html">OVERLOAD</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<!-- R -->
|
||||
<li><a href="ref/relative_finish.html">RELATIVE_FINISH</a></li>
|
||||
<li><a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
|
||||
<li><a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
|
||||
<li><a href="ref/relative_start.html">RELATIVE_START</a></li>
|
||||
<li><a href="ref/repeat.html">REPEAT</a></li>
|
||||
<li><a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
|
||||
<li><a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
|
||||
<li><a href="ref/repeat_3rd.html">REPEAT_3RD*</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/seq_cat.html">SEQ_CAT</a></li>
|
||||
<li><a href="ref/seq_cat_s.html">SEQ_CAT_S</a></li>
|
||||
<li><a href="ref/seq_elem.html">SEQ_ELEM</a></li>
|
||||
<li><a href="ref/seq_enum.html">SEQ_ENUM</a></li>
|
||||
<li><a href="ref/seq_filter.html">SEQ_FILTER</a></li>
|
||||
<li><a href="ref/seq_filter_s.html">SEQ_FILTER_S</a></li>
|
||||
<li><a href="ref/seq_first_n.html">SEQ_FIRST_N</a></li>
|
||||
<li><a href="ref/seq_fold_left.html">SEQ_FOLD_LEFT</a></li>
|
||||
<li><a href="ref/seq_fold_left_s.html">SEQ_FOLD_LEFT_<i>s</i></a></li>
|
||||
<li><a href="ref/seq_fold_right.html">SEQ_FOLD_RIGHT</a></li>
|
||||
<li><a href="ref/seq_fold_right_s.html">SEQ_FOLD_RIGHT_<i>s</i></a></li>
|
||||
<li><a href="ref/seq_for_each.html">SEQ_FOR_EACH</a></li>
|
||||
<li><a href="ref/seq_for_each_i.html">SEQ_FOR_EACH_I</a></li>
|
||||
<li><a href="ref/seq_for_each_i_r.html">SEQ_FOR_EACH_I_R</a></li>
|
||||
<li><a href="ref/seq_for_each_product.html">SEQ_FOR_EACH_PRODUCT</a></li>
|
||||
<li><a href="ref/seq_for_each_product_r.html">SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||
<li><a href="ref/seq_for_each_r.html">SEQ_FOR_EACH_R</a></li>
|
||||
<li><a href="ref/seq_head.html">SEQ_HEAD</a></li>
|
||||
<li><a href="ref/seq_insert.html">SEQ_INSERT</a></li>
|
||||
<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_list.html">SEQ_TO_LIST</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 -->
|
||||
<li><a href="ref/tuple_eat.html">TUPLE_EAT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_elem.html">TUPLE_ELEM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_enum.html">TUPLE_ENUM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><span style="color: gray;"></span><a href="ref/tuple_insert.html">TUPLE_INSERT</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_insert_d.html">TUPLE_INSERT_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_pop_back.html">TUPLE_POP_BACK</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_pop_back_z.html">TUPLE_POP_BACK_Z</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_pop_front.html">TUPLE_POP_FRONT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_pop_front_z.html">TUPLE_POP_FRONT_Z</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_push_back.html">TUPLE_PUSH_BACK</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_push_front.html">TUPLE_PUSH_FRONT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_rem.html">TUPLE_REM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_remove.html">TUPLE_REMOVE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_remove_d.html">TUPLE_REMOVE_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_replace.html">TUPLE_REPLACE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_replace_d.html">TUPLE_REPLACE_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_size.html">TUPLE_SIZE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_to_array.html">TUPLE_TO_ARRAY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<!-- U -->
|
||||
<li><a href="ref/update_counter.html">UPDATE_COUNTER</a></li>
|
||||
<!-- V -->
|
||||
<li><a href="ref/value.html">VALUE</a></li>
|
||||
<li><a href="ref/variadics.html">VARIADICS</a></li>
|
||||
<li><a href="ref/variadic_elem.html">VARIADIC_ELEM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_seq_to_seq.html">VARIADIC_SEQ_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_size.html">VARIADIC_SIZE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_to_array.html">VARIADIC_TO_ARRAY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_to_list.html">VARIADIC_TO_LIST</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_to_seq.html">VARIADIC_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_to_tuple.html">VARIADIC_TO_TUPLE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<!-- W -->
|
||||
<li><a href="ref/while.html">WHILE</a></li>
|
||||
<li><a href="ref/while_d.html">WHILE_<i>d</i></a></li>
|
||||
<li><a href="ref/wstringize.html">WSTRINGIZE</a></li>
|
||||
<!-- X -->
|
||||
<li><a href="ref/xor.html">XOR</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
© Copyright Housemarque Oy 2002© Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)-->
|
||||
<h4> Reference <small><a href="contents.html" target="index">[back]</a></small>
|
||||
</h4>
|
||||
<ul>
|
||||
<!-- A -->
|
||||
<li><a href="ref/add.html">ADD</a></li>
|
||||
<li><a href="ref/add_d.html">ADD_D</a></li>
|
||||
<li><a href="ref/and.html">AND</a></li>
|
||||
<li><a href="ref/apply.html">APPLY</a></li>
|
||||
<li><a href="ref/array_data.html">ARRAY_DATA</a></li>
|
||||
<li><a href="ref/array_elem.html">ARRAY_ELEM</a></li>
|
||||
<li><a href="ref/array_enum.html">ARRAY_ENUM</a></li>
|
||||
<li><a href="ref/array_insert.html">ARRAY_INSERT</a></li>
|
||||
<li><a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
|
||||
<li><a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
|
||||
<li><a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
|
||||
<li><a href="ref/array_pop_front.html">ARRAY_POP_FRONT</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/array_to_list.html">ARRAY_TO_LIST</a></li>
|
||||
<li><a href="ref/array_to_seq.html">ARRAY_TO_SEQ</a></li>
|
||||
<li><a href="ref/array_to_tuple.html">ARRAY_TO_TUPLE</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 -->
|
||||
<li><a href="ref/bitand.html">BITAND</a></li>
|
||||
<li><a href="ref/bitnor.html">BITNOR</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 -->
|
||||
<li><a href="ref/cat.html">CAT</a></li>
|
||||
<li><a href="ref/comma.html">COMMA</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>
|
||||
<li><a href="ref/counter.html">COUNTER</a></li>
|
||||
<!-- D -->
|
||||
<li><a href="ref/dec.html">DEC</a></li>
|
||||
<li><a href="ref/deduce_d.html">DEDUCE_D</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/empty.html">EMPTY</a></li>
|
||||
<li><a href="ref/enum.html">ENUM</a></li>
|
||||
<li><a href="ref/enum_binary_params.html">ENUM_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/enum_binary_params_z.html">ENUM_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_params.html">ENUM_PARAMS</a></li>
|
||||
<li><a href="ref/enum_params_with_a_default.html">ENUM_PARAMS_WITH_A_DEFAULT*</a></li>
|
||||
<li><a href="ref/enum_params_with_defaults.html">ENUM_PARAMS_WITH_DEFAULTS*</a></li>
|
||||
<li><a href="ref/enum_params_z.html">ENUM_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_shifted.html">ENUM_SHIFTED</a></li>
|
||||
<li><a href="ref/esbp.html">ENUM_SHIFTED_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/esbpz.html">ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="ref/enum_shifted_params.html">ENUM_SHIFTED_PARAMS</a></li>
|
||||
<li><a href="ref/enum_shifted_params_z.html">ENUM_SHIFTED_PARAMS_Z</a></li>
|
||||
<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/etbp.html">ENUM_TRAILING_BINARY_PARAMS</a></li>
|
||||
<li><a href="ref/etbpz.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 -->
|
||||
<li><a href="ref/filename_x.html">FILENAME_<i>x</i></a></li>
|
||||
<li><a href="ref/for.html">FOR</a></li>
|
||||
<li><a href="ref/for_r.html">FOR_<i>r</i></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 -->
|
||||
<li><a href="ref/greater.html">GREATER</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/identity.html">IDENTITY</a></li>
|
||||
<li><a href="ref/if.html">IF</a></li>
|
||||
<li><a href="ref/iif.html">IIF</a></li>
|
||||
<li><a href="ref/inc.html">INC</a></li>
|
||||
<li><a href="ref/include_self.html">INCLUDE_SELF</a></li>
|
||||
<li><a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
|
||||
<li><a href="ref/intercept.html">INTERCEPT</a></li>
|
||||
<li><a href="ref/is_iterating.html">IS_ITERATING</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 -->
|
||||
<li><a href="ref/less.html">LESS</a></li>
|
||||
<li><a href="ref/less_d.html">LESS_D</a></li>
|
||||
<li><a href="ref/less_equal.html">LESS_EQUAL</a></li>
|
||||
<li><a href="ref/less_equal_d.html">LESS_EQUAL_D</a></li>
|
||||
<li><a href="ref/limit_dim.html">LIMIT_DIM</a></li>
|
||||
<li><a href="ref/limit_for.html">LIMIT_FOR</a></li>
|
||||
<li><a href="ref/limit_iteration.html">LIMIT_ITERATION</a></li>
|
||||
<li><a href="ref/limit_iteration_dim.html">LIMIT_ITERATION_DIM</a></li>
|
||||
<li><a href="ref/limit_mag.html">LIMIT_MAG</a></li>
|
||||
<li><a href="ref/limit_repeat.html">LIMIT_REPEAT</a></li>
|
||||
<li><a href="ref/limit_seq.html">LIMIT_SEQ</a></li>
|
||||
<li><a href="ref/limit_slot_count.html">LIMIT_SLOT_COUNT</a></li>
|
||||
<li><a href="ref/limit_slot_sig.html">LIMIT_SLOT_SIG</a></li>
|
||||
<li><a href="ref/limit_tuple.html">LIMIT_TUPLE</a></li>
|
||||
<li><a href="ref/limit_variadic.html">LIMIT_VARIADIC</a></li>
|
||||
<li><a href="ref/limit_while.html">LIMIT_WHILE</a></li>
|
||||
<li><a href="ref/line.html">LINE</a></li>
|
||||
<li><a href="ref/list_append.html">LIST_APPEND</a></li>
|
||||
<li><a href="ref/list_append_d.html">LIST_APPEND_D</a></li>
|
||||
<li><a href="ref/list_at.html">LIST_AT</a></li>
|
||||
<li><a href="ref/list_at_d.html">LIST_AT_D</a></li>
|
||||
<li><a href="ref/list_cat.html">LIST_CAT</a></li>
|
||||
<li><a href="ref/list_cat_d.html">LIST_CAT_D</a></li>
|
||||
<li><a href="ref/list_cons.html">LIST_CONS*</a></li>
|
||||
<li><a href="ref/list_enum.html">LIST_ENUM</a></li>
|
||||
<li><a href="ref/list_enum_r.html">LIST_ENUM_R</a></li>
|
||||
<li><a href="ref/list_filter.html">LIST_FILTER</a></li>
|
||||
<li><a href="ref/list_filter_d.html">LIST_FILTER_D</a></li>
|
||||
<li><a href="ref/list_first.html">LIST_FIRST</a></li>
|
||||
<li><a href="ref/list_first_n.html">LIST_FIRST_N</a></li>
|
||||
<li><a href="ref/list_first_n_d.html">LIST_FIRST_N_D</a></li>
|
||||
<li><a href="ref/list_fold_left.html">LIST_FOLD_LEFT</a></li>
|
||||
<li><a href="ref/list_fold_left_2nd.html">LIST_FOLD_LEFT_2ND*</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_array.html">LIST_TO_ARRAY</a></li>
|
||||
<li><a href="ref/list_to_array_d.html">LIST_TO_ARRAY_D</a></li>
|
||||
<li><a href="ref/list_to_seq.html">LIST_TO_SEQ</a></li>
|
||||
<li><a href="ref/list_to_seq_r.html">LIST_TO_SEQ_R</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 -->
|
||||
<li><a href="ref/max.html">MAX</a></li>
|
||||
<li><a href="ref/max_d.html">MAX_D</a></li>
|
||||
<li><a href="ref/min.html">MIN</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/nil.html">NIL</a></li>
|
||||
<li><a href="ref/nor.html">NOR</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 -->
|
||||
<li><a href="ref/or.html">OR</a></li>
|
||||
<li><a href="ref/overload.html">OVERLOAD</a> (v)</li>
|
||||
<!-- R -->
|
||||
<li><a href="ref/relative_finish.html">RELATIVE_FINISH</a></li>
|
||||
<li><a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
|
||||
<li><a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
|
||||
<li><a href="ref/relative_start.html">RELATIVE_START</a></li>
|
||||
<li><a href="ref/repeat.html">REPEAT</a></li>
|
||||
<li><a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
|
||||
<li><a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
|
||||
<li><a href="ref/repeat_3rd.html">REPEAT_3RD*</a></li>
|
||||
<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 -->
|
||||
<li><a href="ref/seq_cat.html">SEQ_CAT</a></li>
|
||||
<li><a href="ref/seq_cat_s.html">SEQ_CAT_S</a></li>
|
||||
<li><a href="ref/seq_elem.html">SEQ_ELEM</a></li>
|
||||
<li><a href="ref/seq_enum.html">SEQ_ENUM</a></li>
|
||||
<li><a href="ref/seq_filter.html">SEQ_FILTER</a></li>
|
||||
<li><a href="ref/seq_filter_s.html">SEQ_FILTER_S</a></li>
|
||||
<li><a href="ref/seq_first_n.html">SEQ_FIRST_N</a></li>
|
||||
<li><a href="ref/seq_fold_left.html">SEQ_FOLD_LEFT</a></li>
|
||||
<li><a href="ref/seq_fold_left_s.html">SEQ_FOLD_LEFT_<i>s</i></a></li>
|
||||
<li><a href="ref/seq_fold_right.html">SEQ_FOLD_RIGHT</a></li>
|
||||
<li><a href="ref/seq_fold_right_s.html">SEQ_FOLD_RIGHT_<i>s</i></a></li>
|
||||
<li><a href="ref/seq_for_each.html">SEQ_FOR_EACH</a></li>
|
||||
<li><a href="ref/seq_for_each_i.html">SEQ_FOR_EACH_I</a></li>
|
||||
<li><a href="ref/seq_for_each_i_r.html">SEQ_FOR_EACH_I_R</a></li>
|
||||
<li><a href="ref/seq_for_each_product.html">SEQ_FOR_EACH_PRODUCT</a></li>
|
||||
<li><a href="ref/seq_for_each_product_r.html">SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||
<li><a href="ref/seq_for_each_r.html">SEQ_FOR_EACH_R</a></li>
|
||||
<li><a href="ref/seq_head.html">SEQ_HEAD</a></li>
|
||||
<li><a href="ref/seq_insert.html">SEQ_INSERT</a></li>
|
||||
<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_list.html">SEQ_TO_LIST</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 -->
|
||||
<li><a href="ref/tuple_eat.html">TUPLE_EAT</a> (v)</li>
|
||||
<li><a href="ref/tuple_elem.html">TUPLE_ELEM</a> (v)</li>
|
||||
<li><a href="ref/tuple_enum.html">TUPLE_ENUM</a> (v)</li>
|
||||
<li><a href="ref/tuple_rem.html">TUPLE_REM</a> (v)</li>
|
||||
<li><a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a> (v)</li>
|
||||
<li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a> (v)</li>
|
||||
<li><a href="ref/tuple_size.html">TUPLE_SIZE</a> (v)</li>
|
||||
<li><a href="ref/tuple_to_array.html">TUPLE_TO_ARRAY</a> (v)</li>
|
||||
<li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a> (v)</li>
|
||||
<li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a> (v)</li>
|
||||
<!-- U -->
|
||||
<li><a href="ref/update_counter.html">UPDATE_COUNTER</a></li>
|
||||
<!-- V -->
|
||||
<li><a href="ref/value.html">VALUE</a></li>
|
||||
<li><a href="ref/variadics.html">VARIADICS</a></li>
|
||||
<li><a href="ref/variadic_elem.html">VARIADIC_ELEM</a> (v)</li>
|
||||
<li><a href="ref/variadic_size.html">VARIADIC_SIZE</a> (v)</li>
|
||||
<li><a href="ref/variadic_to_array.html">VARIADIC_TO_ARRAY</a> (v)</li>
|
||||
<li><a href="ref/variadic_to_list.html">VARIADIC_TO_LIST</a> (v)</li>
|
||||
<li><a href="ref/variadic_to_seq.html">VARIADIC_TO_SEQ</a> (v)</li>
|
||||
<li><a href="ref/variadic_to_tuple.html">VARIADIC_TO_TUPLE</a> (v)</li>
|
||||
<!-- W -->
|
||||
<li><a href="ref/while.html">WHILE</a></li>
|
||||
<li><a href="ref/while_d.html">WHILE_<i>d</i></a></li>
|
||||
<li><a href="ref/wstringize.html">WSTRINGIZE</a></li>
|
||||
<!-- X -->
|
||||
<li><a href="ref/xor.html">XOR</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
© Copyright Housemarque Oy 2002
|
||||
© Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
@ -1,51 +1,59 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_ARRAY_POP_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_POP_FRONT</b> macro
|
||||
pops an element from the beginning of an <i>array</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_POP_FRONT</b>(<i>array</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> to pop an element from. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro returns <i>array</i> after removing the first
|
||||
element. If <i>array</i> has no elements, the result of applying
|
||||
this macro is undefined. </div>
|
||||
<div> This macro uses <b>BOOST_PP_REPEAT</b> internally. Therefore,
|
||||
to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
|
||||
see <b>BOOST_PP_ARRAY_POP_FRONT_Z</b> </div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/pop_front.html"><boost/preprocessor/array/pop_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/pop_front.html">boost/preprocessor/array/pop_front.hpp</a>>
|
||||
<head>
|
||||
<title>BOOST_PP_ARRAY_POP_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_ARRAY_POP_FRONT</b> macro pops an element from the end of an <i>array</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_ARRAY_POP_FRONT</b>(<i>array</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd>
|
||||
The <i>array</i> to pop an element from.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro returns <i>array</i> after removing the first element.
|
||||
If <i>array</i> has no elements, the result of applying this macro is undefined.
|
||||
</div>
|
||||
<div>
|
||||
This macro uses <b>BOOST_PP_REPEAT</b> internally.
|
||||
Therefore, to use the <i>z</i> parameter passed from other macros that use
|
||||
<b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ARRAY_POP_FRONT_Z</b>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/array/pop_front.html"><boost/preprocessor/array/pop_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/array/pop_front.html">boost/preprocessor/array/pop_front.hpp</a>>
|
||||
|
||||
#define ARRAY (3, (a, b, c))
|
||||
|
||||
<a href="array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a>(ARRAY) // expands to (2, (b, c))
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,68 +1,75 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_FOR_r</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_FOR_<i>r</i></b> macro
|
||||
represents a reentry into the <b>BOOST_PP_FOR</b> repetition construct. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_FOR_</b> ## <i>r</i>(<i>state</i>, <i>pred</i>,
|
||||
<i>op</i>, <i>macro</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd> The next available <b>BOOST_PP_FOR</b> repetition. </dd>
|
||||
<dt>state</dt>
|
||||
<dd> The initial state. </dd>
|
||||
<dt>pred</dt>
|
||||
<dd> A binary predicate of the form <i>pred</i>(<i>r</i>, <i>state</i>).
|
||||
This macro must expand to an integer in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
<b>BOOST_PP_FOR</b> repeatedly expands <i>macro</i> while this
|
||||
predicate returns non-zero. This macro is called with the next
|
||||
available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd> A binary operation of the form <i>op</i>(<i>r</i>, <i>state</i>).
|
||||
This operation is expanded by <b>BOOST_PP_FOR</b> with the next
|
||||
available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
|
||||
This macro is repeatedly applied to the <i>state</i>, each time
|
||||
producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>. </dd>
|
||||
<dt>macro</dt>
|
||||
<dd> A binary macro of the form <i>macro</i>(<i>r</i>, <i>state</i>).
|
||||
This macro is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b>
|
||||
repetition and the current <i>state</i>. This macro is is
|
||||
repeated by <b>BOOST_PP_FOR</b> until <i>pred</i> returns <i>0</i>. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro expands to the sequence:
|
||||
<div> <i>macro</i>(<i>r</i>, <i>state</i>) <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>,
|
||||
<i>state</i>)) ... <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, ... <i>op</i>(<i>r</i>,
|
||||
<i>state</i>) ... )) </div>
|
||||
</div>
|
||||
<div> At certain times, it may be necessary to perform the concatenation
|
||||
with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
|
||||
operator. This happens when the <i>r</i> value is a macro
|
||||
invocation itself. It needs a delay to allow it to expand. The
|
||||
syntax in such a scenario becomes:
|
||||
<div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_FOR_</b>, <i>r</i>)(<i>state</i>,
|
||||
<i>pred</i>, <i>op</i>, <i>macro</i>) </div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="for.html">BOOST_PP_FOR</a></li>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="for_r_macros.html"><span style="color: gray;">Macros with R
|
||||
re-entrancy forms</span></a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/repetition/for.html"><boost/preprocessor/repetition/for.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>>
|
||||
<head>
|
||||
<title>BOOST_PP_FOR_r</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_FOR_<i>r</i></b> macro represents a reentry into the <b>BOOST_PP_FOR</b> repetition construct.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_FOR_</b> ## <i>r</i>(<i>state</i>, <i>pred</i>, <i>op</i>, <i>macro</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_FOR</b> repetition.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state.
|
||||
</dd>
|
||||
<dt>pred</dt>
|
||||
<dd>
|
||||
A binary predicate of the form <i>pred</i>(<i>r</i>, <i>state</i>).
|
||||
This macro must expand to an integer in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
<b>BOOST_PP_FOR</b> repeatedly expands <i>macro</i> while this predicate returns non-zero.
|
||||
This macro is called with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A binary operation of the form <i>op</i>(<i>r</i>, <i>state</i>).
|
||||
This operation is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
|
||||
This macro is repeatedly applied to the <i>state</i>, each time producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>.
|
||||
</dd>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A binary macro of the form <i>macro</i>(<i>r</i>, <i>state</i>).
|
||||
This macro is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
|
||||
This macro is is repeated by <b>BOOST_PP_FOR</b> until <i>pred</i> returns <i>0</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro expands to the sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>r</i>, <i>state</i>) <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, <i>state</i>)) ... <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, ... <i>op</i>(<i>r</i>, <i>state</i>) ... ))
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.
|
||||
This happens when the <i>r</i> value is a macro invocation itself.
|
||||
It needs a delay to allow it to expand.
|
||||
The syntax in such a scenario becomes:
|
||||
<div>
|
||||
<b>BOOST_PP_CAT</b>(<b>BOOST_PP_FOR_</b>, <i>r</i>)(<i>state</i>, <i>pred</i>, <i>op</i>, <i>macro</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="for.html">BOOST_PP_FOR</a></li>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/repetition/for.html"><boost/preprocessor/repetition/for.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>>
|
||||
#include <<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>>
|
||||
#include <<a href="../headers/comparison/not_equal.html">boost/preprocessor/comparison/not_equal.hpp</a>>
|
||||
#include <<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>>
|
||||
@ -133,17 +140,16 @@ TEMPLATE_TEMPLATE(2, 4, T)
|
||||
template<class, class, class, class> class T4
|
||||
*/
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,44 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_FOR_r_macros</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>This is a list, based on functionality, of the macros which have an
|
||||
alternate <b>_<i>r</i></b> name, representing a reentry into the <b>BOOST_PP_FOR</b>
|
||||
looping construct:
|
||||
<p>repetition</p>
|
||||
<ul>
|
||||
<li><a href="deduce_r.html">BOOST_PP_DEDUCE_R</a></li>
|
||||
</ul>
|
||||
list<br>
|
||||
<ul>
|
||||
<li><a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
|
||||
<li><a href="list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R</a></li>
|
||||
<li><a href="list_for_each_product_r.html">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></li>
|
||||
<li><a href="list_for_each_r.html">BOOST_PP_LIST_FOR_EACH_R</a></li>
|
||||
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
|
||||
<li><a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
|
||||
</ul>
|
||||
seq<br>
|
||||
<ul>
|
||||
<li><a href="seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
|
||||
<li><a href="seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
|
||||
</ul>
|
||||
base<br>
|
||||
<ul>
|
||||
<li><a href="for_r.html">BOOST_PP_FOR_R</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_OVERLOAD</b> variadic macro expands to the name of a non-variadic macro having a given number of parameters.<br>
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -36,7 +36,7 @@ a series of non-variadic macros doing very similar things.
|
||||
<pre>#include <<a href="../headers/facilities/overload.html">boost/preprocessor/facilities/overload.hpp</a>><br>#include <<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>><br>#include <<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>><br>#include <<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>><br><br>#define MACRO_1(number) MACRO_2(number,10)<br>#define MACRO_2(number1,number2) <a href="add.html">BOOST_PP_ADD</a>(number1,number2)<br><br>#define MACRO_ADD_NUMBERS(...) <a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__)<br><br>// or for Visual C++<br><br>#define MACRO_ADD_NUMBERS(...) \<br> <a href="cat.html">BOOST_PP_CAT</a>(<a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__),<a href="empty.html">BOOST_PP_EMPTY</a>())<br><br>MACRO_ADD_NUMBERS(5) // output is 15<br>MACRO_ADD_NUMBERS(3,6) // output is 9<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -1,59 +1,67 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_REPEAT_z</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_REPEAT_<i>z</i></b> macro
|
||||
represents a reentry into the <b>BOOST_PP_REPEAT</b> repetition
|
||||
construct. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_REPEAT_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>,
|
||||
<i>data</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>z</dt>
|
||||
<dd> The next available <b>BOOST_PP_REPEAT</b> dimension. </dd>
|
||||
<dt>count</dt>
|
||||
<dd> The number of repetitious calls to <i>macro</i>. Valid values
|
||||
range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>. </dd>
|
||||
<dt>macro</dt>
|
||||
<dd> A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).
|
||||
This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next
|
||||
available repetition depth, the current repetition number, and the
|
||||
auxiliary <i>data</i> argument. </dd>
|
||||
<dt>data</dt>
|
||||
<dd> Auxiliary data passed to <i>macro</i>. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro expands to the sequence:
|
||||
<div> <i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>,
|
||||
<i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>,
|
||||
<i>data</i>) </div>
|
||||
</div>
|
||||
<div> At certain times, it may be necessary to perform the concatenation
|
||||
with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
|
||||
operator. This happens when the <i>z</i> value is a macro
|
||||
invocation itself. It needs a delay to allow it to expand. The
|
||||
syntax in such a scenario becomes:
|
||||
<div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_REPEAT_</b>, <i>z</i>)(<i>count</i>,
|
||||
<i>macro</i>, <i>data</i>) </div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
|
||||
<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
|
||||
<li><a href="repeat_z_macros.html"><span style="color: gray;">Macros with
|
||||
Z re-entrancy forms</span></a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/repetition/repeat.html"><boost/preprocessor/repetition/repeat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>>
|
||||
<head>
|
||||
<title>BOOST_PP_REPEAT_z</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_REPEAT_<i>z</i></b> macro represents a reentry into the <b>BOOST_PP_REPEAT</b> repetition construct.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_REPEAT_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>, <i>data</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>z</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_REPEAT</b> dimension.
|
||||
</dd>
|
||||
<dt>count</dt>
|
||||
<dd>
|
||||
The number of repetitious calls to <i>macro</i>.
|
||||
Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
|
||||
</dd>
|
||||
<dt>macro</dt>
|
||||
<dd>
|
||||
A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).
|
||||
This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
|
||||
the current repetition number, and the auxiliary <i>data</i> argument.
|
||||
</dd>
|
||||
<dt>data</dt>
|
||||
<dd>
|
||||
Auxiliary data passed to <i>macro</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro expands to the sequence:
|
||||
<div>
|
||||
<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.
|
||||
This happens when the <i>z</i> value is a macro invocation itself.
|
||||
It needs a delay to allow it to expand.
|
||||
The syntax in such a scenario becomes:
|
||||
<div>
|
||||
<b>BOOST_PP_CAT</b>(<b>BOOST_PP_REPEAT_</b>, <i>z</i>)(<i>count</i>, <i>macro</i>, <i>data</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
|
||||
<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/repetition/repeat.html"><boost/preprocessor/repetition/repeat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>>
|
||||
#include <<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>>
|
||||
#include <<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>>
|
||||
|
||||
@ -77,17 +85,16 @@
|
||||
template<class, class, class> class T2
|
||||
*/
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,45 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_REPEAT_z_macros</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>This is a list, based on functionality, of the macros which have an
|
||||
alternate <b>_z<i></i></b> name, representing a reentry into the <b>BOOST_PP_REPEAT</b>
|
||||
looping construct:<br>
|
||||
<br>
|
||||
array<br>
|
||||
<ul>
|
||||
<li><a href="array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
|
||||
<li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
|
||||
</ul>
|
||||
repetition<br>
|
||||
<ul>
|
||||
<li><a href="deduce_z.html">BOOST_PP_DEDUCE_Z</a></li>
|
||||
<li><a href="enum_binary_params_z.html">BOOST_PP_ENUM_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a></li>
|
||||
<li><a href="esbpz.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="enum_shifted_params_z.html">BOOST_PP_ENUM_SHIFTED_PARAMS_Z</a></li>
|
||||
<li><a href="enum_shifted_z.html">BOOST_PP_ENUM_SHIFTED_<i>z</i></a></li>
|
||||
<li><a href="etbpz.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
|
||||
<li><a href="enum_trailing_params_z.html">BOOST_PP_ENUM_TRAILING_PARAMS_Z</a></li>
|
||||
<li><a href="enum_trailing_z.html">BOOST_PP_ENUM_TRAILING_<i>z</i></a></li>
|
||||
<li><a href="enum_z.html">BOOST_PP_ENUM_<i>z</i></a></li>
|
||||
<li><a href="repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></a></li>
|
||||
<li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
|
||||
</ul>
|
||||
base<br>
|
||||
<ul>
|
||||
<li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<pre></pre>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <sup>(v)</sup><b></b><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -26,7 +26,7 @@ or<br>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version. <br>
|
||||
<br>For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> the
|
||||
<br>For the variadic version <sup>(v)</sup> the
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as BOOST_PP_TUPLE_EAT(); you may get a warning from some compilers, but the
|
||||
functionality will still work. If you specify a size in the variadic
|
||||
@ -42,12 +42,12 @@ not occur.<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/eat.html"><boost/preprocessor/tuple/eat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>><br>#include <<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>><br><br>#define OP(a, b) (a b)<br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>(2))(1, 2)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a>())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>><br>#include <<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>><br><br>#define OP(a, b) (a b)<br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>(2))(1, 2)<br><br>// or for the variadic version <sup>(v)</sup><br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a>())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -49,12 +49,12 @@ or<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/elem.html"><boost/preprocessor/tuple/elem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>><br><br>#define TUPLE (a, b, c, d)<br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, TUPLE) // expands to a<br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, TUPLE) // expands to d<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(0, TUPLE) // expands to a in the variadic version<br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, TUPLE) // expands to d in the variadic version<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>><br><br>#define TUPLE (a, b, c, d)<br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, TUPLE) // expands to a<br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, TUPLE) // expands to d<br><br>// or for the variadic version <sup>(v)</sup><br><br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(0, TUPLE) // expands to a in the variadic version<br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, TUPLE) // expands to d in the variadic version<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -10,7 +10,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
@ -25,7 +25,7 @@ or<br>
|
||||
<h4> Remarks </h4>
|
||||
<div>
|
||||
<br>You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
@ -38,13 +38,13 @@ BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>><br><br>#define TUPLE (B,O,O,S,T)<br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(5,TUPLE) // expands to B, O, O, S, T<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(TUPLE) // expands to B, O, O, S, T<br></pre>
|
||||
<pre>#include <<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>><br><br>#define TUPLE (B,O,O,S,T)<br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(5,TUPLE) // expands to B, O, O, S, T<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(TUPLE) // expands to B, O, O, S, T<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
|
@ -1,54 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_INSERT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT</b> macro
|
||||
inserts an element into an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_INSERT</b>(<i>tuple</i>, <i>i</i>, <i>elem</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> into which an element is to be inserted. </dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is to be
|
||||
inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to insert. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||
</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is larger
|
||||
than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b> interally. Therefore, to
|
||||
use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
|
||||
see <b>BOOST_PP_TUPLE_INSERT_D</b>.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_insert_d.html">BOOST_PP_TUPLE_INSERT_D</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/insert.html"><boost/preprocessor/tuple/insert.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/insert.html">boost/preprocessor/tuple/insert.hpp</a>>
|
||||
|
||||
#define TUPLE (a, b, d)
|
||||
|
||||
<a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a>(TUPLE, 2, c) // expands to (a, b, c, d)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,46 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_INSERT_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT_D</b> macro
|
||||
inserts an element into a <i>tuple</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
with maximum efficiency.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_INSERT_D</b>(<i>d</i>, <i>tuple</i>,
|
||||
<i>i</i>, <i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> into which an element is to be inserted.</dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is to be
|
||||
inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to insert. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||
</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is larger
|
||||
than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/insert.html"><boost/preprocessor/tuple/insert.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,48 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_POP_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_POP_BACK</b> macro
|
||||
pops an element from the end of an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_POP_BACK</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd>The <i>tuple</i> to pop an element from.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div style="background-color: white;"> This macro returns <i>tuple</i>
|
||||
after removing the last element. If <i>tuple</i> has only a single
|
||||
element, it remains unchanged since a <i>tuple </i>must have at
|
||||
least one element.</div>
|
||||
<div> This macro uses <b>BOOST_PP_REPEAT</b> internally. Therefore,
|
||||
to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
|
||||
see <b>BOOST_PP_TUPLE_POP_BACK_Z</b> </div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_pop_back_z.html">BOOST_PP_TUPLE_POP_BACK_Z</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/pop_back.html"><boost/preprocessor/tuple/pop_back.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/pop_back.html">boost/preprocessor/tuple/pop_back.hpp</a>>
|
||||
|
||||
#define TUPLE (a, b, c)
|
||||
|
||||
<a href="tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a>(TUPLE) // expands to (a, b)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,40 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_POP_BACK_Z</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_POP_BACK_Z</b> macro
|
||||
pops an element from the end of an <i>tuple</i>. It reenters <b>BOOST_PP_REPEAT</b>
|
||||
with maximum efficiency. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_POP_BACK_Z</b>(<i>z</i>, <i>tuple</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>z</dt>
|
||||
<dd> The next available <b>BOOST_PP_REPEAT</b> dimension. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to pop an element from.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro returns <i>tuple</i> after removing the last
|
||||
element. If <i>tuple</i> has only a single element, it remains
|
||||
unchanged since a <i>tuple </i>must have at least one element.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/pop_back.html"><boost/preprocessor/tuple/pop_back.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,47 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_POP_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_POP_FRONT</b> macro
|
||||
pops an element from the beginning of a <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_POP_FRONT</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to pop an element from.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro returns <i>tuple</i> after removing the first
|
||||
element. If <i>tuple</i> has only a single element, it remains
|
||||
unchanged since a <i>tuple </i>must have at least one element.</div>
|
||||
<div> This macro uses <b>BOOST_PP_REPEAT</b> internally. Therefore,
|
||||
to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
|
||||
see <b>BOOST_PP_TUPLE_POP_FRONT_Z</b> </div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_pop_front_z.html">BOOST_PP_TUPLE_POP_FRONT_Z</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/pop_front.html"><boost/preprocessor/tuple/pop_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/pop_front.html">boost/preprocessor/tuple/pop_front.hpp</a>>
|
||||
|
||||
#define TUPLE (a, b, c)
|
||||
|
||||
<a href="tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a>(TUPLE) // expands to (b, c)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,40 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_POP_FRONT_Z</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_POP_FRONT_Z</b>
|
||||
macro pops an element from the beginning of a <i>tuple</i>. It
|
||||
reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_POP_FRONT_Z</b>(<i>z</i>, <i>tuple</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>z</dt>
|
||||
<dd> The next available <b>BOOST_PP_REPEAT</b> dimension.</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to pop an element from.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro returns <i>tuple</i> after removing the first
|
||||
element. If <i>tuple</i> has only a single element, it remains
|
||||
unchanged since a <i>tuple </i>must have at least one element.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/pop_front.html"><boost/preprocessor/tuple/pop_front.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,39 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_PUSH_BACK</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_PUSH_BACK</b> macro
|
||||
appends an element to the end of a <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_PUSH_BACK</b>(<i>tuple</i>, <i>elem</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to append an element to.</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to append. </dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/push_back.html"><boost/preprocessor/tuple/push_back.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/push_back.html">boost/preprocessor/tuple/push_back.hpp</a>>
|
||||
|
||||
#define TUPLE (a, b, c)
|
||||
|
||||
<a href="tuple_push_back.html">BOOST_PP_TUPLE_PUSH_BACK</a>(TUPLE, d) // expands to (a, b, c, d)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanyig file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,39 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_PUSH_FRONT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_PUSH_FRONT</b> macro
|
||||
appends an element to the beginning of a <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_PUSH_FRONT</b>(<i>tuple</i>, <i>elem</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to append an element to.</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to append. </dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/push_front.html"><boost/preprocessor/tuple/push_front.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/push_front.html">boost/preprocessor/tuple/push_front.hpp</a>>
|
||||
|
||||
#define TUPLE (b, c, d)
|
||||
|
||||
<a href="tuple_push_front.html">BOOST_PP_TUPLE_PUSH_FRONT</a>(TUPLE, a) // expands to (a, b, c, d)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -27,13 +27,12 @@ or<br>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version.<br>
|
||||
<br>
|
||||
For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> the
|
||||
For the variadic version <sup>(v)</sup> the
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as BOOST_PP_TUPLE_REM(); you may get a warning from some compilers, but the
|
||||
functionality will still work. If you specify a size in the variadic
|
||||
version, it will be ignored, but the warning from some compilers will
|
||||
not occur.<br>
|
||||
<br>Note: For Visual C++ 8.0 ( Visual Studio 2005 ) you must specify the correct <i>size</i> argument as in the non-variadic version.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
@ -44,12 +43,12 @@ not occur.<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>(3)(x, y, z) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>()(x, y, z) // expands to x, y, z<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>(3)(x, y, z) // expands to x, y, z<br><br>// or for the variadic version <sup>(v)</sup><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>()(x, y, z) // expands to x, y, z<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -32,7 +32,7 @@ or<br>
|
||||
The <i>size</i> argument must be the actual size of <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
@ -44,12 +44,12 @@ BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>).<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>(3, (x, y, z)) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>((x, y, z)) // expands to x, y, z<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>(3, (x, y, z)) // expands to x, y, z<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>((x, y, z)) // expands to x, y, z<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
|
@ -1,50 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_REMOVE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REMOVE</b> macro
|
||||
removes an element from a <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REMOVE</b>(<i>tuple</i>, <i>i</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> from which an element is to be removed.</dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> of the element to be
|
||||
removed. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
|
||||
- <i>1</i>. If <i>tuple</i> has only a single element, it remains
|
||||
unchanged since a <i>tuple </i>must have at least one element.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b> interally. Therefore, to
|
||||
use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
|
||||
see <b>BOOST_PP_TUPLE_REMOVE_D</b>.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_remove_d.html">BOOST_PP_TUPLE_REMOVE_D</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/remove.html"><boost/preprocessor/tuple/remove.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/remove.html">boost/preprocessor/tuple/remove.hpp</a>>
|
||||
|
||||
#define TUPLE (a, b, d)
|
||||
|
||||
<a href="tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a>(TUPLE, 2) // expands to (a, b)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,41 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_REMOVE_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REMOVE_D</b> macro
|
||||
removes an element from a <i>tuple</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
with maximum efficiency. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REMOVE_D</b>(<i>d</i>, <i>tuple</i>,
|
||||
<i>i</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> from which an element is to be removed. </dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> of the element to be
|
||||
removed. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
|
||||
- <i>1</i>. If <i>tuple</i> has only a single element, it remains
|
||||
unchanged since a <i>tuple </i>must have at least one element.</dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/remove.html"><boost/preprocessor/tuple/remove.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,51 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_REPLACE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REPLACE</b> macro
|
||||
replaces an element in a <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REPLACE</b>(<i>tuple</i>, <i>i</i>, <i>elem</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> A <i>tuple</i> to replace an element in. </dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> of the element to be
|
||||
replaced. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
|
||||
- <i>1</i>.</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The replacement element. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b> interally. Therefore, to
|
||||
use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
|
||||
see <b>BOOST_PP_TUPLE_REPLACE_D</b>.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_replace_d.html">BOOST_PP_TUPLE_REPLACE_D</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/replace.html"><boost/preprocessor/tuple/replace.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/replace.html">boost/preprocessor/tuple/replace.hpp</a>>
|
||||
|
||||
#define TUPLE (a, x, c)
|
||||
|
||||
<a href="tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a>(TUPLE, 1, b) // expands to (a, b, c))
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,42 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_REPLACE_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REPLACE_D</b> macro
|
||||
replaces an element in a <i>tuple</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
with maximum efficiency.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REPLACE_D</b>(<i>d</i>, <i>tuple</i>,
|
||||
<i>i</i>, <i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> A <i>tuple</i> to replace an element in. </dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> of the element to be
|
||||
replaced. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
|
||||
- <i>1</i>. </dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The replacement element. </dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/replace.html"><boost/preprocessor/tuple/replace.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
@ -33,7 +33,7 @@ or<br>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
@ -45,12 +45,12 @@ BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>).<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/reverse.html"><boost/preprocessor/tuple/reverse.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>(3, (x, y, z)) // expands to (z, y, x)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>((x, y, z)) // expands to (z, y, x)<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>(3, (x, y, z)) // expands to (z, y, x)<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>((x, y, z)) // expands to (z, y, x)<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_SIZE</b> macro
|
||||
expands to the size of the <i>tuple</i> passed to it. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -22,7 +22,7 @@ expands to the size of the <i>tuple</i> passed to it. </div>
|
||||
<pre>#include <<a href="../headers/tuple/size.html">boost/preprocessor/tuple/size.hpp</a>><br><br>#define TUPLE (x, y, z)<br><br><a href="tuple_size.html">BOOST_PP_TUPLE_SIZE</a>(TUPLE) // expands to 3<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -12,7 +12,7 @@ converts a <i>tuple</i> to an <i>array</i>. </div>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
@ -28,7 +28,7 @@ range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>).<a href="../headers/seq/to_array.html"></a>
|
||||
</div>
|
||||
<h4> Requirements </h4>
|
||||
@ -36,10 +36,10 @@ BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>).<a href="../headers/seq/to_arr
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>><br><br>#define TUPLE (a,b,c)<br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(3,TUPLE) // expands to (3, (a, b, c))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(TUPLE) // expands to (3, (a, b, c))<br></pre>
|
||||
<pre>#include <<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>><br><br>#define TUPLE (a,b,c)<br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(3,TUPLE) // expands to (3, (a, b, c))<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(TUPLE) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
|
@ -13,7 +13,7 @@
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -32,7 +32,7 @@ or<br>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
@ -44,12 +44,12 @@ BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>).<br>
|
||||
<b>Header:</b> <a href="../headers/tuple/to_list.html"><boost/preprocessor/tuple/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>(3, (x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>((x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre></div>
|
||||
<div><pre>#include <<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>(3, (x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>((x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
@ -11,7 +11,7 @@ converts a <i>tuple</i> to an <i>seq</i>. </div>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
@ -26,7 +26,7 @@ or<br>
|
||||
<div> The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
|
||||
invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>).<a href="../headers/tuple/to_seq.html"></a>
|
||||
</div>
|
||||
<h4>Requirements </h4>
|
||||
@ -34,13 +34,13 @@ BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>).<a href="../headers/tuple/to_seq
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>((a, b, c)) // expands to (a)(b)(c)<br></pre>
|
||||
<pre>#include <<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)<br><br>// or for the variadic version <sup>(v)<br><br></sup><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>((a, b, c)) // expands to (a)(b)(c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_ELEM</b> variadic macro
|
||||
extracts an element from <i>variadic data</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_ELEM</b>(<i>i</i>, <i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_ELEM</b>(<i>i</i>, <i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl><dt>i</dt>
|
||||
@ -32,7 +32,7 @@ extracted. Valid values range from <i>0</i> to the size of the variadic da
|
||||
<pre>#include <<a href="../headers/variadic/elem.html">boost/preprocessor/variadic/elem.hpp</a>><br><br>#define VAR_DATA a, b, c, d<br><br><a href="variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a>(0, VAR_DATA) // expands to a<br><a href="variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a>(3, VAR_DATA) // expands to d<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -1,35 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_VARIADIC_SEQ_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SEQ_TO_SEQ</b> variadic macro
|
||||
converts a <i>variadic seq</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_SEQ_TO_SEQ</b>(<i>vseq</i>)<a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>vseq<br>
|
||||
</dt>
|
||||
<dd> The <i>variadic seq</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/seq/variadic_seq_to_seq.html"><boost/preprocessor/seq/variadic_seq_to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/seq/variadic_seq_to_seq.html">boost/preprocessor/seq/variadic_seq_to_seq.hpp</a>><br><br>
|
||||
<a href="variadic_seq_to_seq.html">BOOST_PP_VARIADIC_SEQ_TO_SEQ</a>((1)(2, 3)(4, 5, 6)) // expands to ((1))((2, 3))((4, 5, 6))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i>© Copyright Paul Mensonides 2012</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SIZE</b> variadic macro
|
||||
expands to the size of the <i>variadic data </i>passed to it. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
@ -23,7 +23,7 @@ expands to the size of the <i>variadic data </i>passed to it. </div>
|
||||
<pre>#include <<a href="../headers/variadic/size.html">boost/preprocessor/variadic/size.hpp</a>><br><br>#define VAR_DATA x, y, z<br><br><a href="variadic_size.html">BOOST_PP_VARIADIC_SIZE</a>(VAR_DATA) // expands to 3<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_ARRAY</b> variadic macro
|
||||
converts <i>variadic data</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
@ -22,7 +22,7 @@ converts <i>variadic data</i> to an <i>array</i>. </div>
|
||||
<pre>#include <<a href="../headers/variadic/to_array.html">boost/preprocessor/variadic/to_array.hpp</a>><br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a>(VAR_DATA) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_LIST</b>
|
||||
variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl><dt>...</dt>
|
||||
@ -21,7 +21,7 @@ variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
|
||||
<pre>#include <<a href="../headers/variadic/to_list.html">boost/preprocessor/variadic/to_list.hpp</a>><br><br><a href="variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a>(x, y, z)<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_SEQ</b> variadic macro
|
||||
converts a <i>variadic data</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_SEQ</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_SEQ</b>(<i>...</i>) <sup>(v)</sup><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl><dt>...<br>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_TUPLE</b> variadic macro
|
||||
converts <i>variadic data </i>to a <i>tuple</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_TUPLE</b>(<i>...</i>)<a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> </div>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_TUPLE</b>(<i>...</i>)<sup> (v)</sup> </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>...<br>
|
||||
@ -22,7 +22,7 @@ converts <i>variadic data </i>to a <i>tuple</i>. </div>
|
||||
<pre>#include <<a href="../headers/variadic/to_tuple.html">boost/preprocessor/variadic/to_tuple.hpp</a>><br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_tuple.html">BOOST_PP_VARIADIC_TO_TUPLE</a>(VAR_DATA) // expands to (a, b, c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -1,66 +1,78 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_WHILE_d</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_WHILE_<i>d</i></b> macro
|
||||
represents a reentry into the <b>BOOST_PP_WHILE</b> looping construct. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_WHILE_</b> ## <i>d</i>(<i>pred</i>, <i>op</i>,
|
||||
<i>state</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
|
||||
<dt>pred</dt>
|
||||
<dd> A binary predicate of the form <i>pred</i>(<i>d</i>, <i>state</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_WHILE</b> with the next
|
||||
available iteration <i>d</i> and the current <i>state</i>. This
|
||||
predicate must expand to value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
The construct continues to loop until this predicate returns <i>0</i>.
|
||||
When this predicate returns <i>0</i>, <b>BOOST_PP_WHILE</b> returns
|
||||
the current <i>state</i>. </dd>
|
||||
<dt>op</dt>
|
||||
<dd> A binary operation of the form <i>op</i>(<i>d</i>, <i>state</i>).
|
||||
This operation is expanded by <b>BOOST_PP_WHILE</b> with the next
|
||||
available iteration <i>d</i> and the current <i>state</i>. This
|
||||
macro is repeatedly applied to the <i>state</i>, each time producing a
|
||||
new <i>state</i>, until <i>pred</i> returns <i>0</i>. </dd>
|
||||
<dt>state</dt>
|
||||
<dd> The initial state. Often this argument is a <i>tuple</i>. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro iterates <i>op</i>(<i>d</i>, <i>state</i>) while <i>pred</i>(<i>d</i>,
|
||||
<i>state</i>) is non-zero. In other words expands to:
|
||||
<div> <i>op</i>(<i>d</i>, ... <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>))
|
||||
... ). </div>
|
||||
</div>
|
||||
<div> At certain times, it may be necessary to perform the concatenation
|
||||
with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
|
||||
operator. This happens when the <i>d</i> value is a macro
|
||||
invocation itself. It needs a delay to allow it to expand. The
|
||||
syntax in such a scenario becomes:
|
||||
<div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_WHILE_</b>, <i>d</i>)(<i>pred</i>,
|
||||
<i>op</i>, <i>state</i>). </div>
|
||||
</div>
|
||||
<div> Previously, it was possible to concatenate <i>d</i> directly to <b>BOOST_PP_WHILE</b>
|
||||
(without the trailing underscore). This is no longer supported. </div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="while.html">BOOST_PP_WHILE</a></li>
|
||||
<li><a href="while_d_macros.html"><span style="color: gray;">Macros with D
|
||||
re-entrancy forms</span></a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/control/while.html"><boost/preprocessor/control/while.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>>
|
||||
<head>
|
||||
<title>BOOST_PP_WHILE_d</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_WHILE_<i>d</i></b> macro represents a reentry into the <b>BOOST_PP_WHILE</b> looping construct.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_WHILE_</b> ## <i>d</i>(<i>pred</i>, <i>op</i>, <i>state</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_WHILE</b> iteration.
|
||||
</dd>
|
||||
<dt>pred</dt>
|
||||
<dd>
|
||||
A binary predicate of the form <i>pred</i>(<i>d</i>, <i>state</i>).
|
||||
This predicate is expanded by <b>BOOST_PP_WHILE</b> with the next available
|
||||
iteration <i>d</i> and the current <i>state</i>.
|
||||
This predicate must expand to value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
The construct continues to loop until this predicate returns <i>0</i>.
|
||||
When this predicate returns <i>0</i>, <b>BOOST_PP_WHILE</b> returns the current <i>state</i>.
|
||||
</dd>
|
||||
<dt>op</dt>
|
||||
<dd>
|
||||
A binary operation of the form <i>op</i>(<i>d</i>, <i>state</i>).
|
||||
This operation is expanded by <b>BOOST_PP_WHILE</b> with the next available
|
||||
iteration <i>d</i> and the current <i>state</i>.
|
||||
This macro is repeatedly applied to the <i>state</i>, each time producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>.
|
||||
</dd>
|
||||
<dt>state</dt>
|
||||
<dd>
|
||||
The initial state.
|
||||
Often this argument is a <i>tuple</i>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro iterates <i>op</i>(<i>d</i>, <i>state</i>) while <i>pred</i>(<i>d</i>, <i>state</i>) is non-zero.
|
||||
In other words expands to:
|
||||
<div>
|
||||
<i>op</i>(<i>d</i>, ... <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>)) ... ).
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.
|
||||
This happens when the <i>d</i> value is a macro invocation itself.
|
||||
It needs a delay to allow it to expand.
|
||||
The syntax in such a scenario becomes:
|
||||
<div>
|
||||
<b>BOOST_PP_CAT</b>(<b>BOOST_PP_WHILE_</b>, <i>d</i>)(<i>pred</i>, <i>op</i>, <i>state</i>).
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
Previously, it was possible to concatenate <i>d</i> directly to <b>BOOST_PP_WHILE</b> (without the trailing underscore).
|
||||
This is no longer supported.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="cat.html">BOOST_PP_CAT</a></li>
|
||||
<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="while.html">BOOST_PP_WHILE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/control/while.html"><boost/preprocessor/control/while.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>>
|
||||
#include <<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>>
|
||||
#include <<a href="../headers/array/elem.html">boost/preprocessor/array/elem.hpp</a>>
|
||||
#include <<a href="../headers/array/size.html">boost/preprocessor/array/size.hpp</a>>
|
||||
@ -102,17 +114,16 @@
|
||||
|
||||
ACCUMULATE_D(1, ARRAY)// expands to 10
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,86 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_WHILE_d_macros</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>This is a list, based on functionality, of the macros which have an
|
||||
alternate <b>_<i>d</i></b> name, representing a reentry into the <b>BOOST_PP_WHILE</b>
|
||||
looping construct:<br>
|
||||
<br>
|
||||
arithmetic<br>
|
||||
<ul>
|
||||
<li><a href="add_d.html"><span style="color: gray;">BOOST_PP_ADD_D</span></a></li>
|
||||
<li><a href="div_d.html"><span style=" color: gray;">BOOST_PP_DIV_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/div_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="mod_d.html"><span style=" color: gray;">BOOST_PP_MOD_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/mod_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="mul_d.html"><span
|
||||
style=" color: gray;">BOOST_PP_MUL_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/mul_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="sub_d.html"><span
|
||||
style=" color: gray;">BOOST_PP_SUB_D</span></a></li>
|
||||
</ul>
|
||||
array<br>
|
||||
<ul>
|
||||
<li><a href="array_insert_d.html"><span style="color: gray;">BOOST_PP_ARRAY_INSERT_D</span></a></li>
|
||||
<li><span style=" color: gray;"><a href="array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></span></li>
|
||||
<li><a href="array_replace_d.html"><span style=" color: gray;">BOOST_PP_ARRAY_REPLACE_D</span></a></li>
|
||||
</ul>
|
||||
comparison<br>
|
||||
<ul>
|
||||
<li><a href="greater_d.html"><span style=" color: gray;">BOOST_PP_GREATER_D</span></a></li>
|
||||
<li><a href="greater_equal_d.html"><span style=" color: gray;">BOOST_PP_GREATER_EQUAL_D</span></a></li>
|
||||
<li><a href="less_d.html"><span style=" color: gray;">BOOST_PP_LESS_D</span></a></li>
|
||||
<li><a href="less_equal_d.html"><span style=" color: gray;">BOOST_PP_LESS_EQUAL_D</span></a></li>
|
||||
</ul>
|
||||
control<br>
|
||||
<ul>
|
||||
<li><a href="deduce_d.html"><span style=" color: gray;">BOOST_PP_DEDUCE_D</span></a></li>
|
||||
</ul>
|
||||
list<br>
|
||||
<ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="list_append_d.html"><span style=" color: gray;">BOOST_PP_LIST_APPEND_D</span></a></li>
|
||||
<li><a href="list_at_d.html"><span style=" color: gray;">BOOST_PP_LIST_AT_D</span></a></li>
|
||||
<li><a href="list_cat_d.html"><span style=" color: gray;">BOOST_PP_LIST_CAT_D</span></a></li>
|
||||
<li><a href="list_filter_d.html"><span style=" color: gray;">BOOST_PP_LIST_FILTER_D</span></a></li>
|
||||
<li><a href="list_first_n_d.html"><span style=" color: gray;">BOOST_PP_LIST_FIRST_N_D</span></a></li>
|
||||
<li><a href="list_fold_left_d.html"><span style=" color: gray;">BOOST_PP_LIST_FOLD_LEFT_d</span></a></li>
|
||||
<li><a href="list_fold_right_d.html"><span style=" color: gray;">BOOST_PP_LIST_FOLD_RIGHT_d</span></a></li>
|
||||
<li><a href="list_rest_n_d.html"><span style=" color: gray;">BOOST_PP_LIST_REST_N_D</span></a></li>
|
||||
<li><a href="list_reverse_d.html"><span style=" color: gray;">BOOST_PP_LIST_REVERSE_D</span></a></li>
|
||||
<li><a href="list_to_array_d.html"><span style=" color: gray;">BOOST_PP_LIST_TO_ARRAY_D</span></a></li>
|
||||
<li><a href="list_transform_d.html"><span style=" color: gray;">BOOST_PP_LIST_TRANSFORM_D</span></a></li>
|
||||
</ul>
|
||||
selection<br>
|
||||
<ul>
|
||||
<li><a href="max_d.html"><span style=" color: gray;">BOOST_PP_MAX_D</span></a></li>
|
||||
<li><a href="min_d.html"><span style=" color: gray;">BOOST_PP_MIN_D</span></a></li>
|
||||
</ul>
|
||||
repetition<br>
|
||||
<ul>
|
||||
<li><a href="repeat_from_to_d.html"><span style=" color: gray;">BOOST_PP_REPEAT_FROM_TO_D</span></a></li>
|
||||
<li><a href="repeat_from_to_d_z.html"><span style=" color: gray;">BOOST_PP_REPEAT_FROM_TO_D_z</span></a></li>
|
||||
</ul>
|
||||
tuple<br>
|
||||
<ul>
|
||||
<li><a href="tuple_insert_d.html"><span style=" color: gray;">BOOST_PP_TUPLE_INSERT_D</span></a></li>
|
||||
<li><a href="tuple_remove_d.html"><span style=" color: gray;">BOOST_PP_TUPLE_REMOVE_D</span></a></li>
|
||||
<li><a href="tuple_replace_d.html"><span style=" color: gray;">BOOST_PP_TUPLE_REPLACE_D</span></a></li>
|
||||
</ul>
|
||||
base<br>
|
||||
<ul>
|
||||
<li><a href="while_d.html"><span style=" color: gray;">BOOST_PP_WHILE_D</span></a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,25 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>title.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Introduction</h4>
|
||||
<div> The Boost Preprocessing library is a library of macros, with support
|
||||
for preprocessor metaprogramming. The library supports both C++ and C
|
||||
compilation. It does not depend on any other Boost libraries and therefore
|
||||
may be used as a standalone library. </div>
|
||||
<div> An excerpt from <i>C++ Template Metaprogramming: Concepts, Tools, and
|
||||
Techniques from Boost and Beyond</i> by Dave Abrahams and Aleksey
|
||||
Gurtovoy has been made available <a href="http://www.boostpro.com/mplbook/preprocessor.html"
|
||||
target="_top"><font color="blue"><b><u><i>online</i></u></b></font></a>.
|
||||
This excerpt contains a basic introduction to the Preprocessor library and
|
||||
preprocessor metaprogramming which may help users new to the library and
|
||||
users interested in seeing some of the facilities offered by the library.
|
||||
</div>
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002<30> Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)-->
|
||||
</body>
|
||||
<head>
|
||||
<title>title.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Introduction</h4>
|
||||
<div>
|
||||
An excerpt from <i>C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond</i> by Dave Abrahams and Aleksey Gurtovoy has been made available <a href="http://www.boostpro.com/mplbook/preprocessor.html" target="_top"><font color="blue"><b><u><i>online</i></u></font></b></a>.
|
||||
This excerpt contains a basic introduction to the Preprocessor library and preprocessor metaprogramming which may help users new to the library and users interested in seeing some of the facilities offered by the library.
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002
|
||||
<EFBFBD> Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -7,250 +7,236 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h4>Variadic Macros</h4>
|
||||
<div> Variadic macros are supported by a number of compilers.
|
||||
They are
|
||||
macros of the form:
|
||||
</div>
|
||||
<div class="code">
|
||||
<pre>#define SOME_MACRO(ZeroOrMoreParameters,...) macro expansion possible specifying __VA_ARGS__</pre>
|
||||
</div>
|
||||
<div> The '...' in the parameter list represents the variadic
|
||||
data when the macro is invoked and the __VA_ARGS__ in the expansion
|
||||
represents the variadic data in the expansion of the macro. Variadic
|
||||
data is of the form of 1 or more preprocessor tokens separated by
|
||||
commas.<br>
|
||||
<br>
|
||||
The '...' must be the last parameter in the macro definition and there
|
||||
may be 0 or more non-variadic parameters preceding it.<br>
|
||||
<br>
|
||||
In the expansion of the macro __VA_ARGS__ may be specified 0 or more
|
||||
times to represent the variadic data. The variadic data in the
|
||||
expansion is a comma separated list of preprocessor tokens representing
|
||||
the variadic data which the invoker of the macro enters as the last
|
||||
arguments to the macro.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Creating and invoking a variadic macro.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define INITIALIZE_INT_ARRAY(array_name,...) \ <br> static int array_name[] = { __VA_ARGS__ }; \ <br> /**/<br><br> INITIALIZE_INT_ARRAY(myname,45,789,33510,9346,2)</pre>
|
||||
</div>
|
||||
<u> <span style="font-weight: bold;">Preprocessor
|
||||
Library Support<br>
|
||||
</span></u>
|
||||
<div>The library offers support for variadic macros for those
|
||||
compilers
|
||||
which support the feature. The library can automatically detect whether
|
||||
a compiler supports variadic macros and sets the macro
|
||||
BOOST_PP_VARIADICS accordingly to 1 if the compiler supports variadic
|
||||
macros or 0 if the compiler does not support variadic macros.<br>
|
||||
<br>
|
||||
The end-user can #define BOOST_PP_VARIADICS to 1 or 0 himself in a
|
||||
translation unit, before including any preprocessor header files, to
|
||||
prevent the library from attempting to detect whether the compiler
|
||||
supports variadic macros. This has the effect of manually turning on or
|
||||
off variadic macro support in the library. Of course if one manually
|
||||
turns on variadic macro support in the library, and one's compiler does
|
||||
not support variadic macros, functionality in the library which uses
|
||||
variadic macros will fail with error messages from the compiler.<br>
|
||||
<br>
|
||||
When BOOST_PP_VARIADICS is 1, the library offers some extended
|
||||
functionality
|
||||
by using variadic macros, and also offers extended support for working
|
||||
with variadic data.<br>
|
||||
<br>
|
||||
Support for working with variadic
|
||||
data is largely centered on being able to convert variadic data to
|
||||
other library data types, since the
|
||||
functionality for working with those Boost preprocessor library data
|
||||
types is much greater than that for working with variadic data directly.<br>
|
||||
</div>
|
||||
<a name="VNotation"></a>
|
||||
<h4>Notation For Variadic Macros<br>
|
||||
</h4>
|
||||
<div>In the documentation, headers which have variadic macros,
|
||||
and
|
||||
variadic macros themselves, have a notation of '(v)' appended to them.
|
||||
For the variadic macros themselves this signifies that
|
||||
BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable.
|
||||
For variadic macros which have a non-variadic equivalent, the
|
||||
non-variadic equivalent will be used if BOOST_PP_VARIADICS is set to 0.
|
||||
</div>
|
||||
<h4>Extended Functionality Using Variadic Macros<br>
|
||||
</h4>
|
||||
<div>Some macros in the library offer extended
|
||||
functionality through the use of variadic macros.<br>
|
||||
<br>
|
||||
The variadic macro version offers the same functionality
|
||||
as the non-variadic version, but because of the ability of the variadic
|
||||
parameters to encompass a variable number of arguments, it also offers
|
||||
an enhanced syntax using the same macro name.<br>
|
||||
<br>
|
||||
The macros in the library which offer this enhanced functionality are
|
||||
all
|
||||
centered on <i>tuple</i> manipulation. With variadic
|
||||
macros it is
|
||||
possible to
|
||||
manipulate tuples without having to know the size of the tuple. So
|
||||
while the invoker can still specify the size when using tuple macro
|
||||
functionality, there are variadic versions of each of the tuple macros,
|
||||
with the exact same name as the non-variadic macro, where the size need
|
||||
not be specified.<br>
|
||||
</div>
|
||||
<h4>Extended Support For Variadic Data</h4>
|
||||
<div>The library offers extended support for working with
|
||||
variadic data
|
||||
which goes beyond the functionality offered by the C++ specification
|
||||
for variadic macros. It does this through preprocessor programming and
|
||||
by using some of the other functionality in the library itself. Header
|
||||
and macro names
|
||||
in the library which offer extended support for working with variadic
|
||||
data, and need the compiler to support variadic macros, are marked with
|
||||
a (v)<sup> </sup>to indicate a variadic macro.<br>
|
||||
<br>
|
||||
The form of the functionality which the library offers is centered on
|
||||
two macros which work with variadic data itself, and a set of macros
|
||||
which convert between variadic data and other library data
|
||||
types.<br>
|
||||
<br>
|
||||
The two macros are BOOST_PP_VARIADIC_ELEM and BOOST_PP_VARIADIC_SIZE,
|
||||
which respectively return a particular token of variadic data and the
|
||||
number of tokens of variadic data.<br>
|
||||
<br>
|
||||
The macros for converting variadic data to the library's data types are
|
||||
BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
|
||||
BOOST_PP_VARIADIC_TO_SEQ, and BOOST_PP_VARIADIC_TO_TUPLE.<br>
|
||||
<br>
|
||||
All of these macros need compiler support for variadic data and only
|
||||
exist if BOOST_PP_VARIADICS is 1. <br>
|
||||
<br>
|
||||
The remaining four macros, which convert from a library data type
|
||||
to comma-separated preprocessor tokens, which is the form of
|
||||
variadic data, do not need compiler support for variadic
|
||||
macros. These functions are BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM,
|
||||
BOOST_PP_SEQ_ENUM, and BOOST_PP_TUPLE_ENUM. However if one wishes to
|
||||
use this variadic data reliably as arguments to other macros, one needs
|
||||
variadic macro support.<br>
|
||||
</div>
|
||||
<u style="font-weight: bold;"> Using a Tuple Instead of an Array<br>
|
||||
</u>
|
||||
<div>An array as a preprocessor data type is a two-element tuple where the
|
||||
first element is the array size and the second element is a tuple which
|
||||
constitutes the array data. Because a tuple knows its own size when the
|
||||
compiler supports variadic macros, there is no reason to use the array preprocessor
|
||||
data type as opposed to the tuple preprocessor data type; the tuple data
|
||||
type now has all of the functionality which the array data type has and is
|
||||
syntactically easier to use. With variadic macro support, which is now
|
||||
officially part of the latest C++ standard, the preprocessor array data
|
||||
type is essentially obsolete for conforming C++ compilers. Only if your
|
||||
compiler does not support variadic macros is the preprocessor array data
|
||||
type still useful.</div>
|
||||
<u style="font-weight: bold;">Using Variadic Data</u>
|
||||
<div>Variadic data exists in the
|
||||
form of comma-separated preprocessor tokens. This is the case whether
|
||||
the variadic data comes from the __VA_ARGS__ of a variadic macro, from
|
||||
the conversion of a library's data type to variadic data, or the
|
||||
manual construction of comma-separated preprocessing tokens by the
|
||||
programmer writing a macro.<br>
|
||||
<br>
|
||||
The easiest way to work with
|
||||
variadic data internally is to convert it to a library data type.
|
||||
Library data types, whether an <i>array</i>, <i>list</i>,
|
||||
<i>sequence</i>,
|
||||
or <i>tuple</i>, have a rich set of functionality for
|
||||
manipulating
|
||||
data whereas
|
||||
variadic data functionality in the library only allows one to access
|
||||
the variadic data as a whole or to access a single token of the
|
||||
variadic data at a time.<br>
|
||||
<br>
|
||||
The user of the library still may
|
||||
choose to pass variadic data back into internal macros rather than
|
||||
convert it to other library data types. There is no problem passing
|
||||
variadic data as a whole to variadic macros as the last parameter of
|
||||
the macro. However: <br>
|
||||
<br>
|
||||
<span style="font-weight: bold;">Attempting to pass
|
||||
variadic data as a
|
||||
whole directly into a non-variadic macro is not guaranteed to work and
|
||||
may fail.<br>
|
||||
</span><br>
|
||||
This occurs because of a preprocessor weakness in a number
|
||||
of compilers, currently most notably Visual C++. Even passing variadic
|
||||
data as arguments to a non-variadic macro, when it is not represented
|
||||
in
|
||||
the form of __VA_ARGS__, may fail with certain compilers.<br>
|
||||
<br>
|
||||
What follows are very simple examples, showing how variadic data can be
|
||||
passed to a non-variadic macro.<br>
|
||||
<br>
|
||||
First an example of what NOT to do.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to a
|
||||
non-variadic
|
||||
macro. DO NOT DO.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span
|
||||
style="font-weight: bold;"><span style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));</pre>
|
||||
</div>
|
||||
<div> There are two ways to pass variadic data to a non-variadic
|
||||
macro.
|
||||
The
|
||||
first of these is to pass the individual tokens of the variadic data
|
||||
separately to the non-variadic macro using the BOOST_PP_VARIADIC_ELEM
|
||||
macro in the library.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing individual variadic data tokens to
|
||||
a
|
||||
non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = MACRO_ARG_2<br> (<br> BOOST_PP_VARIADIC_ELEM(0,VAR_MACRO(2,3)),<br> BOOST_PP_VARIADIC_ELEM(1,VAR_MACRO(2,3))<br> );</pre>
|
||||
</div>
|
||||
<div>The second way is to use a macro in the library called
|
||||
BOOST_PP_OVERLOAD.
|
||||
This macro allows one to "overload" a variadic macro to non-variadic
|
||||
macros of different numbers of parameters, using a common prefix.
|
||||
</div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to
|
||||
BOOST_PP_OVERLOAD
|
||||
and on to a non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++ it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
|
||||
</div>
|
||||
<br>
|
||||
<div>Although these techniques will work when passing variadic
|
||||
data to
|
||||
non-variadic macros, it is much better and less problematical to
|
||||
work internally with the existing library data types and to only use
|
||||
variadic
|
||||
macros as an interface for end-users when there is a need to have a
|
||||
macro which takes a
|
||||
variable number of parameters.<br>
|
||||
</div>
|
||||
<b>See</b> <b>Also</b><br>
|
||||
<ul>
|
||||
<li><a href="../ref/variadics.html">BOOST_PP_VARIADICS</a></li>
|
||||
<li><a href="../headers/tuple.html">Tuple Macros</a><br>
|
||||
</li>
|
||||
<li><a href="../headers/variadic.html">Variadic
|
||||
Macros<br>
|
||||
</a></li>
|
||||
<li><a href="../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
|
||||
<li><a href="../ref/list_enum_r.html">BOOST_PP_LIST_ENUM</a></li>
|
||||
<li><a href="../ref/seq_enum.html">BOOST_PP_SEQ_ENUM</a></li>
|
||||
<li><a href="../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a></li>
|
||||
<li><a href="../ref/overload.html">BOOST_PP_OVERLOAD</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright
|
||||
Edward Diener
|
||||
2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License,
|
||||
Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<h4>Variadic Macros</h4>
|
||||
<div> Variadic macros are supported by a number of compilers.
|
||||
They are
|
||||
macros of the form:
|
||||
</div>
|
||||
<div class="code">
|
||||
<pre>#define SOME_MACRO(ZeroOrMoreParameters,...) macro expansion possible specifying __VA_ARGS__<br></pre>
|
||||
</div>
|
||||
<div> The '...' in the parameter list represents the variadic
|
||||
data when the macro is invoked and the __VA_ARGS__ in the expansion
|
||||
represents the variadic data in the expansion of the macro. Variadic
|
||||
data is of the form of 1 or more preprocessor tokens separated by
|
||||
commas.<br>
|
||||
<br>
|
||||
The '...' must be the last parameter in the macro definition and there
|
||||
may be 0 or more non-variadic parameters preceding it.<br>
|
||||
<br>
|
||||
In the expansion of the macro __VA_ARGS__ may be specified 0 or more
|
||||
times to represent the variadic data. The variadic data in the
|
||||
expansion is a comma separated list of preprocessor tokens representing
|
||||
the variadic data which the invoker of the macro enters as the last
|
||||
arguments to the macro.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Creating and invoking a variadic macro.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define INITIALIZE_INT_ARRAY(array_name,...) \ <br> static int array_name[] = { __VA_ARGS__ }; \ <br> /**/<br><br> INITIALIZE_INT_ARRAY(myname,45,789,33510,9346,2)<br></pre>
|
||||
</div>
|
||||
<u> <span style="font-weight: bold;">Preprocessor
|
||||
Library Support<br>
|
||||
</span></u>
|
||||
<div>The library offers support for variadic macros for those
|
||||
compilers
|
||||
which support the feature. The library can automatically detect whether
|
||||
a compiler supports variadic macros and sets the macro
|
||||
BOOST_PP_VARIADICS accordingly to 1 if the compiler supports variadic
|
||||
macros or 0 if the compiler does not support variadic macros.<br>
|
||||
<br>
|
||||
The end-user can #define BOOST_PP_VARIADICS to 1 or 0 himself in a
|
||||
translation unit, before including any preprocessor header files, to
|
||||
prevent the library from attempting to detect whether the compiler
|
||||
supports variadic macros. This has the effect of manually turning on or
|
||||
off variadic macro support in the library. Of course if one manually
|
||||
turns on variadic macro support in the library, and one's compiler does
|
||||
not support variadic macros, functionality in the library which uses
|
||||
variadic macros will fail with error messages from the compiler.<br>
|
||||
<br>
|
||||
When BOOST_PP_VARIADICS is 1, the library offers some extended
|
||||
functionality
|
||||
by using variadic macros, and also offers extended support for working
|
||||
with variadic data.<br>
|
||||
<br>
|
||||
Support for working with variadic
|
||||
data is largely centered on being able to convert variadic data to
|
||||
other library data types, since the
|
||||
functionality for working with those Boost preprocessor library data
|
||||
types is much greater than that for working with variadic data directly.<br>
|
||||
</div>
|
||||
<h4>Notation For Variadic Macros<br>
|
||||
</h4>
|
||||
<div>In the documentation, headers which have variadic macros,
|
||||
and
|
||||
variadic macros themselves, have a notation of '(v)' appended to them.
|
||||
For the variadic macros themselves this signifies that
|
||||
BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable.
|
||||
For variadic macros which have a non-variadic equivalent, the
|
||||
non-variadic equivalent will be used if BOOST_PP_VARIADICS is set to 0
|
||||
and the non-variadic version of the
|
||||
macro does not have a '(v)' appended to its name in the documentation.
|
||||
</div>
|
||||
<h4>Extended Functionality Using Variadic Macros<br>
|
||||
</h4>
|
||||
<div>Some macros in the library offer extended
|
||||
functionality through the use of variadic macros.<br>
|
||||
<br>
|
||||
The variadic macro version offers the same functionality
|
||||
as the non-variadic version, but because of the ability of the variadic
|
||||
parameters to encompass a variable number of arguments, it also offers
|
||||
an enhanced syntax using the same macro name.<br>
|
||||
<br>
|
||||
The macros in the library which offer this enhanced functionality are
|
||||
all
|
||||
centered on <i>tuple</i> manipulation. With variadic
|
||||
macros it is
|
||||
possible to
|
||||
manipulate tuples without having to know the size of the tuple. So
|
||||
while the invoker can still specify the size when using tuple macro
|
||||
functionality, there are variadic versions of each of the tuple macros,
|
||||
with the exact same name as the non-variadic macro, where the size need
|
||||
not be specified.<br>
|
||||
</div>
|
||||
<h4>Extended Support For Variadic Data</h4>
|
||||
<div>The library offers extended support for working with
|
||||
variadic data
|
||||
which goes beyond the functionality offered by the C++ specification
|
||||
for variadic macros. It does this through preprocessor programming and
|
||||
by using some of the other functionality in the library itself. Header
|
||||
and macro names
|
||||
in the library which offer extended support for working with variadic
|
||||
data, and need the compiler to support variadic macros, are marked with
|
||||
a (v)<sup> </sup>to indicate a variadic macro.<br>
|
||||
<br>
|
||||
The form of the functionality which the library offers is centered on
|
||||
two macros which work with variadic data itself, and a set of macros
|
||||
which convert between variadic data and other library data
|
||||
types.<br>
|
||||
<br>
|
||||
The two macros are BOOST_PP_VARIADIC_ELEM and BOOST_PP_VARIADIC_SIZE,
|
||||
which respectively return a particular token of variadic data and the
|
||||
number of tokens of variadic data.<br>
|
||||
<br>
|
||||
The macros for converting variadic data to the library's data types are
|
||||
BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
|
||||
BOOST_PP_VARIADIC_TO_SEQ, and BOOST_PP_VARIADIC_TO_TUPLE.<br>
|
||||
<br>
|
||||
All of these macros need compiler support for variadic data and only
|
||||
exist if BOOST_PP_VARIADICS is 1. <br>
|
||||
<br>
|
||||
The remaining four macros, which convert from a library data type
|
||||
to comma-separated preprocessor tokens, which is the form of
|
||||
variadic data, do not need compiler support for variadic
|
||||
macros. These functions are BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM,
|
||||
BOOST_PP_SEQ_ENUM, and BOOST_PP_TUPLE_ENUM. However if one wishes to
|
||||
use this variadic data reliably as arguments to other macros, one needs
|
||||
variadic macro support.<br>
|
||||
</div>
|
||||
<u style="font-weight: bold;"> Using Variadic Data</u>
|
||||
<div>Variadic data exists in the
|
||||
form of comma-separated preprocessor tokens. This is the case whether
|
||||
the variadic data comes from the __VA_ARGS__ of a variadic macro, from
|
||||
the conversion of a library's data type to variadic data, or the
|
||||
manual construction of comma-separated preprocessing tokens by the
|
||||
programmer writing a macro.<br>
|
||||
<br>
|
||||
The easiest way to work with
|
||||
variadic data internally is to convert it to a library data type.
|
||||
Library data types, whether an <i>array</i>, <i>list</i>,
|
||||
<i>sequence</i>,
|
||||
or <i>tuple</i>, have a rich set of functionality for
|
||||
manipulating
|
||||
data whereas
|
||||
variadic data functionality in the library only allows one to access
|
||||
the variadic data as a whole or to access a single token of the
|
||||
variadic data at a time.<br>
|
||||
<br>
|
||||
The user of the library still may
|
||||
choose to pass variadic data back into internal macros rather than
|
||||
convert it to other library data types. There is no problem passing
|
||||
variadic data as a whole to variadic macros as the last parameter of
|
||||
the macro. However: <br>
|
||||
<br>
|
||||
<span style="font-weight: bold;">Attempting to pass
|
||||
variadic data as a
|
||||
whole directly into a non-variadic macro is not guaranteed to work and
|
||||
may fail.<br>
|
||||
</span><br>
|
||||
This occurs because of a preprocessor weakness in a number
|
||||
of compilers, currently most notably Visual C++. Even passing variadic
|
||||
data as arguments to a non-variadic macro, when it is not represented
|
||||
in
|
||||
the form of __VA_ARGS__, may fail with certain compilers.<br>
|
||||
<br>
|
||||
What follows are very simple examples, showing how variadic data can be
|
||||
passed to a non-variadic macro.<br>
|
||||
<br>
|
||||
First an example of what NOT to do.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to a
|
||||
non-variadic
|
||||
macro. DO NOT DO.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span style="font-weight: bold;"><span style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));<br></pre>
|
||||
</div>
|
||||
<div> There are two ways to pass variadic data to a non-variadic
|
||||
macro.
|
||||
The
|
||||
first of these is to pass the individual tokens of the variadic data
|
||||
separately to the non-variadic macro using the BOOST_PP_VARIADIC_ELEM
|
||||
macro in the library.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing individual variadic data tokens to
|
||||
a
|
||||
non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = MACRO_ARG_2<br> (<br> BOOST_PP_VARIADIC_ELEM(0,VAR_MACRO(2,3)),<br> BOOST_PP_VARIADIC_ELEM(1,VAR_MACRO(2,3))<br> );</pre>
|
||||
</div>
|
||||
<div>The second way is to use a macro in the library called
|
||||
BOOST_PP_OVERLOAD.
|
||||
This macro allows one to "overload" a variadic macro to non-variadic
|
||||
macros of different numbers of parameters, using a common prefix.
|
||||
</div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to
|
||||
BOOST_PP_OVERLOAD
|
||||
and on to a non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++ it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
|
||||
</div><br>
|
||||
<div>Although these techniques will work when passing variadic
|
||||
data to
|
||||
non-variadic macros, it is much better and less problematical to
|
||||
work internally with the existing library data types and to only use
|
||||
variadic
|
||||
macros as an interface for end-users when there is a need to have a
|
||||
macro which takes a
|
||||
variable number of parameters.<br>
|
||||
</div>
|
||||
<b>See</b> <b>Also</b><br>
|
||||
<ul>
|
||||
<li><a href="../ref/variadics.html">BOOST_PP_VARIADICS</a></li>
|
||||
<li><a href="../headers/tuple.html">Tuple Macros</a><br>
|
||||
</li>
|
||||
<li><a href="../headers/variadic.html">Variadic
|
||||
Macros<br>
|
||||
</a></li>
|
||||
<li><a href="../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
|
||||
<li><a href="../ref/list_enum_r.html">BOOST_PP_LIST_ENUM</a></li>
|
||||
<li><a href="../ref/seq_enum.html">BOOST_PP_SEQ_ENUM</a></li>
|
||||
<li><a href="../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a></li>
|
||||
<li><a href="../ref/overload.html">BOOST_PP_OVERLOAD</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright
|
||||
Edward Diener
|
||||
2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License,
|
||||
Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
@ -7,7 +7,7 @@
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
#
|
||||
# /* See http://www.boost.org/libs/preprocessor for documentation. */
|
||||
#
|
||||
|
@ -45,7 +45,7 @@
|
||||
# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
|
||||
# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
|
||||
# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC())
|
||||
# elif defined(_MSC_VER) && !defined(__clang__)
|
||||
# elif defined(_MSC_VER)
|
||||
# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
|
||||
# else
|
||||
# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
|
||||
@ -72,15 +72,16 @@
|
||||
#
|
||||
# if !defined BOOST_PP_VARIADICS
|
||||
# /* variadic support explicitly disabled for all untested compilers */
|
||||
# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
|
||||
# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
|
||||
# define BOOST_PP_VARIADICS 0
|
||||
# /* Clang, all versions */
|
||||
# elif defined __clang__
|
||||
# define BOOST_PP_VARIADICS 1
|
||||
# /* VC++ (C/C++) */
|
||||
# elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
|
||||
# define BOOST_PP_VARIADICS 1
|
||||
# define BOOST_PP_VARIADICS_MSVC 1
|
||||
# if _MSC_VER >= 1400
|
||||
# define BOOST_PP_VARIADICS 1
|
||||
# define BOOST_PP_VARIADICS_MSVC 1
|
||||
# else
|
||||
# define BOOST_PP_VARIADICS 0
|
||||
# endif
|
||||
# /* Wave (C/C++), GCC (C++) */
|
||||
# elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
|
||||
# define BOOST_PP_VARIADICS 1
|
||||
|
@ -39,6 +39,5 @@
|
||||
# include <boost/preprocessor/seq/to_list.hpp>
|
||||
# include <boost/preprocessor/seq/to_tuple.hpp>
|
||||
# include <boost/preprocessor/seq/transform.hpp>
|
||||
# include <boost/preprocessor/seq/variadic_seq_to_seq.hpp>
|
||||
#
|
||||
# endif
|
||||
|
@ -1,28 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2012. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP
|
||||
# define BOOST_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP
|
||||
#
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# /* BOOST_PP_VARIADIC_SEQ_TO_SEQ */
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
# define BOOST_PP_VARIADIC_SEQ_TO_SEQ(vseq) BOOST_PP_CAT(BOOST_PP_VARIADIC_SEQ_TO_SEQ_A vseq, 0)
|
||||
# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_A(...) ((__VA_ARGS__)) BOOST_PP_VARIADIC_SEQ_TO_SEQ_B
|
||||
# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_B(...) ((__VA_ARGS__)) BOOST_PP_VARIADIC_SEQ_TO_SEQ_A
|
||||
# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_A0
|
||||
# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_B0
|
||||
# endif
|
||||
#
|
||||
# endif
|
@ -8,7 +8,7 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2011,2013) */
|
||||
# /* Revised by Edward Diener (2011) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
@ -18,14 +18,7 @@
|
||||
# include <boost/preprocessor/tuple/eat.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# include <boost/preprocessor/tuple/enum.hpp>
|
||||
# include <boost/preprocessor/tuple/insert.hpp>
|
||||
# include <boost/preprocessor/tuple/pop_back.hpp>
|
||||
# include <boost/preprocessor/tuple/pop_front.hpp>
|
||||
# include <boost/preprocessor/tuple/push_back.hpp>
|
||||
# include <boost/preprocessor/tuple/push_front.hpp>
|
||||
# include <boost/preprocessor/tuple/rem.hpp>
|
||||
# include <boost/preprocessor/tuple/remove.hpp>
|
||||
# include <boost/preprocessor/tuple/replace.hpp>
|
||||
# include <boost/preprocessor/tuple/reverse.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
|
@ -1,37 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_INSERT_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_INSERT_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/insert.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_INSERT */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_INSERT(tuple, i, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
|
||||
/**/
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_INSERT_D */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_INSERT_D(d, tuple, i, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
|
||||
/**/
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_INSERT_HPP
|
@ -1,64 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/pop_back.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/comparison/greater.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_POP_BACK */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK(tuple) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \
|
||||
BOOST_PP_TUPLE_POP_BACK_EXEC, \
|
||||
BOOST_PP_TUPLE_POP_BACK_RETURN \
|
||||
) \
|
||||
(tuple) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK_EXEC(tuple) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK_RETURN(tuple) tuple
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_POP_BACK_Z */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK_Z(z, tuple) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \
|
||||
BOOST_PP_TUPLE_POP_BACK_Z_EXEC, \
|
||||
BOOST_PP_TUPLE_POP_BACK_Z_RETURN \
|
||||
) \
|
||||
(z, tuple) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK_Z_EXEC(z, tuple) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_BACK_Z_RETURN(z, tuple) tuple
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP
|
@ -1,65 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/pop_front.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/comparison/greater.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_POP_FRONT */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT(tuple) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \
|
||||
BOOST_PP_TUPLE_POP_FRONT_EXEC, \
|
||||
BOOST_PP_TUPLE_POP_FRONT_RETURN \
|
||||
) \
|
||||
(tuple) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT_EXEC(tuple) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_POP_FRONT_Z */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT_Z(z, tuple) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \
|
||||
BOOST_PP_TUPLE_POP_FRONT_Z_EXEC, \
|
||||
BOOST_PP_TUPLE_POP_FRONT_Z_RETURN \
|
||||
) \
|
||||
(z, tuple) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP
|
@ -1,31 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/push_back.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_PUSH_BACK */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_PUSH_BACK(tuple, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \
|
||||
/**/
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
|
@ -1,32 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/push_front.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_PUSH_FRONT */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_PUSH_FRONT(tuple, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \
|
||||
/**/
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
|
@ -1,7 +1,7 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002-2011. *
|
||||
# * (C) Copyright Edward Diener 2011,2013. *
|
||||
# * (C) Copyright Edward Diener 2011. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
@ -27,10 +27,7 @@
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REM */
|
||||
#
|
||||
/*
|
||||
VC++8.0 cannot handle the variadic version of BOOST_PP_TUPLE_REM(size)
|
||||
*/
|
||||
# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER == 1400)
|
||||
# if BOOST_PP_VARIADICS
|
||||
# define BOOST_PP_TUPLE_REM(size) BOOST_PP_REM
|
||||
# else
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
@ -41,7 +38,6 @@
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_REM_0()
|
||||
# define BOOST_PP_TUPLE_REM_1(e0) e0
|
||||
# define BOOST_PP_TUPLE_REM_2(e0, e1) e0, e1
|
||||
# define BOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
|
||||
|
@ -1,64 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/remove.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/comparison/greater.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REMOVE */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE(tuple, i) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \
|
||||
BOOST_PP_TUPLE_REMOVE_EXEC, \
|
||||
BOOST_PP_TUPLE_REMOVE_RETURN \
|
||||
) \
|
||||
(tuple, i) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE_EXEC(tuple, i) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REMOVE_D */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE_D(d, tuple, i) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_GREATER_D(d, BOOST_PP_TUPLE_SIZE(tuple), 1), \
|
||||
BOOST_PP_TUPLE_REMOVE_D_EXEC, \
|
||||
BOOST_PP_TUPLE_REMOVE_D_RETURN \
|
||||
) \
|
||||
(d, tuple, i) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \
|
||||
/**/
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP
|
@ -1,37 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2013.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP
|
||||
# define BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if BOOST_PP_VARIADICS
|
||||
#
|
||||
# include <boost/preprocessor/array/replace.hpp>
|
||||
# include <boost/preprocessor/array/to_tuple.hpp>
|
||||
# include <boost/preprocessor/tuple/to_array.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REPLACE */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REPLACE(tuple, i, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
|
||||
/**/
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REPLACE_D */
|
||||
#
|
||||
# define BOOST_PP_TUPLE_REPLACE_D(d, tuple, i, elem) \
|
||||
BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
|
||||
/**/
|
||||
#
|
||||
# endif // BOOST_PP_VARIADICS
|
||||
#
|
||||
# endif // BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP
|
@ -18,8 +18,6 @@
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/facilities/overload.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_REVERSE */
|
||||
#
|
||||
@ -28,11 +26,10 @@
|
||||
# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_TUPLE_REVERSE_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__), (__VA_ARGS__))
|
||||
# define BOOST_PP_TUPLE_REVERSE_I(m, args) BOOST_PP_TUPLE_REVERSE_II(m, args)
|
||||
# define BOOST_PP_TUPLE_REVERSE_II(m, args) BOOST_PP_CAT(m ## args,)
|
||||
# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_TUPLE_SIZE(tuple)) tuple
|
||||
# else
|
||||
# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__)(__VA_ARGS__)
|
||||
# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# define BOOST_PP_TUPLE_REVERSE_O_2(size, tuple) BOOST_PP_TUPLE_REVERSE_O_1(tuple)
|
||||
# else
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
|
@ -16,7 +16,6 @@
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/facilities/overload.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_TO_ARRAY */
|
||||
@ -26,11 +25,10 @@
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__), (__VA_ARGS__))
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_I(m, args) BOOST_PP_TUPLE_TO_ARRAY_II(m, args)
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_II(m, args) BOOST_PP_CAT(m ## args,)
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_TUPLE_SIZE(tuple), tuple)
|
||||
# else
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__)(__VA_ARGS__)
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_VARIADIC_SIZE tuple, tuple)
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_VARIADIC_SIZE tuple, tuple)
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY_2(size, tuple) (size, tuple)
|
||||
# else
|
||||
# define BOOST_PP_TUPLE_TO_ARRAY(size, tuple) (size, tuple)
|
||||
|
@ -18,7 +18,6 @@
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/facilities/overload.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_TO_LIST */
|
||||
@ -28,11 +27,10 @@
|
||||
# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
|
||||
# define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
|
||||
# define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
|
||||
# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_TUPLE_SIZE(tuple)) tuple
|
||||
# else
|
||||
# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
|
||||
# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# define BOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) BOOST_PP_TUPLE_TO_LIST_O_1(tuple)
|
||||
# else
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
|
@ -16,7 +16,6 @@
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/facilities/overload.hpp>
|
||||
# include <boost/preprocessor/tuple/size.hpp>
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
#
|
||||
# /* BOOST_PP_TUPLE_TO_SEQ */
|
||||
@ -26,11 +25,10 @@
|
||||
# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__))
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_I(m, args) BOOST_PP_TUPLE_TO_SEQ_II(m, args)
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,)
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_TUPLE_SIZE(tuple)) tuple
|
||||
# else
|
||||
# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__)
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# endif
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_VARIADIC_SIZE tuple) tuple
|
||||
# define BOOST_PP_TUPLE_TO_SEQ_O_2(size, tuple) BOOST_PP_TUPLE_TO_SEQ_O_1(tuple)
|
||||
# else
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
|
@ -9,4 +9,54 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/arithmetic.cxx>
|
||||
# include <boost/preprocessor/arithmetic.hpp>
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
/* addition */
|
||||
|
||||
BEGIN BOOST_PP_ADD(2, 3) == 5 END
|
||||
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END
|
||||
BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END
|
||||
|
||||
/* subtraction */
|
||||
|
||||
BEGIN BOOST_PP_SUB(11, 0) == 11 END
|
||||
BEGIN BOOST_PP_SUB(12, 1) == 11 END
|
||||
BEGIN BOOST_PP_SUB(3, 4) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END
|
||||
|
||||
/* multiplication */
|
||||
|
||||
BEGIN BOOST_PP_MUL(0, 1) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 0) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 1) == 1 END
|
||||
BEGIN BOOST_PP_MUL(4, 3) == 12 END
|
||||
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END
|
||||
BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END
|
||||
|
||||
/* division */
|
||||
|
||||
BEGIN BOOST_PP_DIV(2, 1) == 2 END
|
||||
BEGIN BOOST_PP_DIV(0, 5) == 0 END
|
||||
BEGIN BOOST_PP_DIV(7, 3) == 2 END
|
||||
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END
|
||||
BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END
|
||||
|
||||
/* modulus */
|
||||
|
||||
BEGIN BOOST_PP_MOD(5, 5) == 0 END
|
||||
BEGIN BOOST_PP_MOD(9, 5) == 4 END
|
||||
BEGIN BOOST_PP_MOD(7, 4) == 3 END
|
||||
|
||||
BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END
|
||||
BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END
|
||||
|
@ -9,4 +9,54 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/arithmetic.cxx>
|
||||
# include <boost/preprocessor/arithmetic.hpp>
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
// addition
|
||||
|
||||
BEGIN BOOST_PP_ADD(2, 3) == 5 END
|
||||
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END
|
||||
BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END
|
||||
|
||||
// subtraction
|
||||
|
||||
BEGIN BOOST_PP_SUB(11, 0) == 11 END
|
||||
BEGIN BOOST_PP_SUB(12, 1) == 11 END
|
||||
BEGIN BOOST_PP_SUB(3, 4) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END
|
||||
|
||||
// multiplication
|
||||
|
||||
BEGIN BOOST_PP_MUL(0, 1) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 0) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 1) == 1 END
|
||||
BEGIN BOOST_PP_MUL(4, 3) == 12 END
|
||||
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END
|
||||
BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END
|
||||
|
||||
// division
|
||||
|
||||
BEGIN BOOST_PP_DIV(2, 1) == 2 END
|
||||
BEGIN BOOST_PP_DIV(0, 5) == 0 END
|
||||
BEGIN BOOST_PP_DIV(7, 3) == 2 END
|
||||
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END
|
||||
BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END
|
||||
|
||||
// modulus
|
||||
|
||||
BEGIN BOOST_PP_MOD(5, 5) == 0 END
|
||||
BEGIN BOOST_PP_MOD(9, 5) == 4 END
|
||||
BEGIN BOOST_PP_MOD(7, 4) == 3 END
|
||||
|
||||
BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END
|
||||
BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END
|
||||
|
@ -1,82 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic.hpp>
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
/* addition */
|
||||
|
||||
BEGIN BOOST_PP_ADD(2, 3) == 5 END
|
||||
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END
|
||||
BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END
|
||||
BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END
|
||||
|
||||
/* subtraction */
|
||||
|
||||
BEGIN BOOST_PP_SUB(11, 0) == 11 END
|
||||
BEGIN BOOST_PP_SUB(12, 1) == 11 END
|
||||
BEGIN BOOST_PP_SUB(3, 4) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END
|
||||
BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END
|
||||
|
||||
/* multiplication */
|
||||
|
||||
BEGIN BOOST_PP_MUL(0, 1) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 0) == 0 END
|
||||
BEGIN BOOST_PP_MUL(1, 1) == 1 END
|
||||
BEGIN BOOST_PP_MUL(4, 3) == 12 END
|
||||
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END
|
||||
BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END
|
||||
BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END
|
||||
|
||||
/* division */
|
||||
|
||||
BEGIN BOOST_PP_DIV(2, 1) == 2 END
|
||||
BEGIN BOOST_PP_DIV(0, 5) == 0 END
|
||||
BEGIN BOOST_PP_DIV(7, 3) == 2 END
|
||||
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END
|
||||
BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END
|
||||
BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END
|
||||
|
||||
/* modulus */
|
||||
|
||||
BEGIN BOOST_PP_MOD(5, 5) == 0 END
|
||||
BEGIN BOOST_PP_MOD(9, 5) == 4 END
|
||||
BEGIN BOOST_PP_MOD(7, 4) == 3 END
|
||||
|
||||
BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END
|
||||
BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END
|
||||
|
||||
/* increment */
|
||||
|
||||
BEGIN BOOST_PP_INC(0) == 1 END
|
||||
BEGIN BOOST_PP_INC(22) == 23 END
|
||||
BEGIN BOOST_PP_INC(256) == 256 END
|
||||
|
||||
BEGIN BOOST_PP_INC(BOOST_PP_INC(0)) == 2 END
|
||||
BEGIN BOOST_PP_INC(BOOST_PP_INC(17)) == 19 END
|
||||
BEGIN BOOST_PP_INC(BOOST_PP_INC(255)) == 256 END
|
||||
|
||||
/* decrement */
|
||||
|
||||
BEGIN BOOST_PP_DEC(256) == 255 END
|
||||
BEGIN BOOST_PP_DEC(47) == 46 END
|
||||
BEGIN BOOST_PP_DEC(0) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_DEC(BOOST_PP_DEC(256)) == 254 END
|
||||
BEGIN BOOST_PP_DEC(BOOST_PP_DEC(85)) == 83 END
|
||||
BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1)) == 0 END
|
81
test/array.c
81
test/array.c
@ -11,4 +11,83 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/array.cxx>
|
||||
# include <boost/preprocessor/array.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
# include <boost/preprocessor/list/at.hpp>
|
||||
# include <boost/preprocessor/seq/elem.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# if BOOST_PP_VARIADICS
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
# include <boost/preprocessor/variadic/elem.hpp>
|
||||
# endif
|
||||
|
||||
# define ARRAY (3, (0, 1, 2))
|
||||
# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))
|
||||
# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))
|
||||
|
||||
// element access
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END
|
||||
|
||||
// size
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END
|
||||
|
||||
// enum
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END
|
||||
|
||||
# endif
|
||||
|
||||
// to_list
|
||||
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END
|
||||
|
||||
// to_seq
|
||||
|
||||
BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END
|
||||
|
||||
// to_tuple
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# else
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(64, 37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# endif
|
||||
|
@ -11,4 +11,83 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/array.cxx>
|
||||
# include <boost/preprocessor/array.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
# include <boost/preprocessor/list/at.hpp>
|
||||
# include <boost/preprocessor/seq/elem.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# if BOOST_PP_VARIADICS
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
# include <boost/preprocessor/variadic/elem.hpp>
|
||||
# endif
|
||||
|
||||
# define ARRAY (3, (0, 1, 2))
|
||||
# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))
|
||||
# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))
|
||||
|
||||
// element access
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END
|
||||
|
||||
// size
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END
|
||||
|
||||
// enum
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END
|
||||
|
||||
# endif
|
||||
|
||||
// to_list
|
||||
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END
|
||||
|
||||
// to_seq
|
||||
|
||||
BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END
|
||||
|
||||
// to_tuple
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# else
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(64, 37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# endif
|
||||
|
159
test/array.cxx
159
test/array.cxx
@ -1,159 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* Revised by Edward Diener (2011,2013) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <boost/preprocessor/array.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
# include <boost/preprocessor/list/at.hpp>
|
||||
# include <boost/preprocessor/seq/elem.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# if BOOST_PP_VARIADICS
|
||||
# include <boost/preprocessor/variadic/size.hpp>
|
||||
# include <boost/preprocessor/variadic/elem.hpp>
|
||||
# endif
|
||||
|
||||
# define ARRAY (3, (0, 1, 2))
|
||||
# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))
|
||||
# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))
|
||||
|
||||
// element access
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END
|
||||
|
||||
// size
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END
|
||||
|
||||
// enum
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END
|
||||
BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END
|
||||
BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END
|
||||
|
||||
# endif
|
||||
|
||||
// to_list
|
||||
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END
|
||||
BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END
|
||||
|
||||
// to_seq
|
||||
|
||||
BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END
|
||||
BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END
|
||||
|
||||
// to_tuple
|
||||
|
||||
# if BOOST_PP_VARIADICS
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# else
|
||||
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
|
||||
BEGIN BOOST_PP_TUPLE_ELEM(64, 37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
|
||||
|
||||
# endif
|
||||
|
||||
// insert
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY,2,40)) == 0 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 40 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 1 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 4 END
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(8, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 8 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(22, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 1000 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(26, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 25 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 34 END
|
||||
|
||||
// pop_back
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE)) == 32 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE)) == 63 END
|
||||
|
||||
// pop_front
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 63 END
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(31, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(55, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 56 END
|
||||
|
||||
// push_back
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 4 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 34 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 0 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 33 END
|
||||
|
||||
// push_front
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 4 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 666)) == 34 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 555 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 33)) == 32 END
|
||||
|
||||
// remove
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY, 1)) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 17)) == 32 END
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 27)) == 63 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REMOVE(ARRAY, 2)) == 0 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 25)) == 30 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(62, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 48)) == 63 END
|
||||
|
||||
// replace
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 27, 1000)) == 64 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY, 1, 44)) == 0 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE, 29, 999)) == 999 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 37, 1)) == 38 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(28, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 28, 1)) == 1 END
|
||||
|
||||
// reverse
|
||||
|
||||
BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 64 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY)) == 2 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE)) == 3 END
|
||||
BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 25 END
|
@ -9,5 +9,37 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/comparison.cxx>
|
||||
# include <boost/preprocessor/comparison.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
/* equality */
|
||||
|
||||
BEGIN BOOST_PP_EQUAL(2, 0) == 0 END
|
||||
BEGIN BOOST_PP_EQUAL(2, 2) == 1 END
|
||||
|
||||
/* inequality */
|
||||
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END
|
||||
|
||||
/* less */
|
||||
|
||||
BEGIN BOOST_PP_LESS(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS(1, 2) == 1 END
|
||||
|
||||
/* less_equal */
|
||||
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END
|
||||
|
||||
/* greater */
|
||||
|
||||
BEGIN BOOST_PP_GREATER(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER(1, 2) == 0 END
|
||||
|
||||
/* greater_equal */
|
||||
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END
|
||||
|
@ -9,4 +9,37 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/comparison.cxx>
|
||||
# include <boost/preprocessor/comparison.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
// equality
|
||||
|
||||
BEGIN BOOST_PP_EQUAL(2, 0) == 0 END
|
||||
BEGIN BOOST_PP_EQUAL(2, 2) == 1 END
|
||||
|
||||
// inequality
|
||||
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END
|
||||
|
||||
// less
|
||||
|
||||
BEGIN BOOST_PP_LESS(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS(1, 2) == 1 END
|
||||
|
||||
// less_equal
|
||||
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END
|
||||
|
||||
// greater
|
||||
|
||||
BEGIN BOOST_PP_GREATER(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER(1, 2) == 0 END
|
||||
|
||||
// greater_equal
|
||||
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END
|
||||
|
@ -1,45 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <boost/preprocessor/comparison.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
/* equality */
|
||||
|
||||
BEGIN BOOST_PP_EQUAL(2, 0) == 0 END
|
||||
BEGIN BOOST_PP_EQUAL(2, 2) == 1 END
|
||||
|
||||
/* inequality */
|
||||
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END
|
||||
BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END
|
||||
|
||||
/* less */
|
||||
|
||||
BEGIN BOOST_PP_LESS(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS(1, 2) == 1 END
|
||||
|
||||
/* less_equal */
|
||||
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END
|
||||
BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END
|
||||
|
||||
/* greater */
|
||||
|
||||
BEGIN BOOST_PP_GREATER(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER(1, 2) == 0 END
|
||||
|
||||
/* greater_equal */
|
||||
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END
|
||||
BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END
|
@ -9,4 +9,32 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/control.cxx>
|
||||
# include <boost/preprocessor/arithmetic/add.hpp>
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/control.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
# define TR(x) 1
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END
|
||||
BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END
|
||||
BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_IF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IF(9, 1, 0) == 1 END
|
||||
|
||||
# define PRED(d, state) state
|
||||
# define OP_1(d, state) BOOST_PP_DEC(state)
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END
|
||||
|
||||
# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state))
|
||||
# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state))
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END
|
||||
|
@ -9,4 +9,32 @@
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <libs/preprocessor/test/control.cxx>
|
||||
# include <boost/preprocessor/arithmetic/add.hpp>
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/control.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
# define TR(x) 1
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END
|
||||
BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END
|
||||
BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_IF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IF(9, 1, 0) == 1 END
|
||||
|
||||
# define PRED(d, state) state
|
||||
# define OP_1(d, state) BOOST_PP_DEC(state)
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END
|
||||
|
||||
# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state))
|
||||
# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state))
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END
|
||||
|
@ -1,40 +0,0 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/add.hpp>
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/control.hpp>
|
||||
# include <libs/preprocessor/test/test.h>
|
||||
|
||||
# define TR(x) 1
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END
|
||||
BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END
|
||||
BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END
|
||||
|
||||
BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END
|
||||
|
||||
BEGIN BOOST_PP_IF(0, 1, 0) == 0 END
|
||||
BEGIN BOOST_PP_IF(9, 1, 0) == 1 END
|
||||
|
||||
# define PRED(d, state) state
|
||||
# define OP_1(d, state) BOOST_PP_DEC(state)
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END
|
||||
|
||||
# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state))
|
||||
# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state))
|
||||
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END
|
||||
BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user