Compare commits

...

28 Commits

Author SHA1 Message Date
b287244527 Release 1.51.0
[SVN r80098]
2012-08-20 22:07:05 +00:00
c48da5375b pp-lib variadic changes merged to release branch
[SVN r75915]
2011-12-12 12:52:44 +00:00
1149d38ef4 limited variadic support
[SVN r72763]
2011-06-26 13:07:20 +00:00
c81e77bb16 Merge [43112], [62165], [65119], and [65120] from the trunk.
[SVN r71037]
2011-04-06 17:22:43 +00:00
0c87b91f95 gcc fix
[SVN r70733]
2011-03-30 01:14:17 +00:00
49142ec930 commit test
[SVN r69130]
2011-02-21 22:51:57 +00:00
c776ac0002 Avoid evaluating BOOST_PP_SEQ_HEAD when it isn't needed. Fixes #4465.
[SVN r65120]
2010-08-30 02:26:02 +00:00
568f641d8e Remove unused #include. Refs #4465.
[SVN r65119]
2010-08-30 02:24:41 +00:00
9548743659 Fix some minor documentation errors. Fixes #4224
[SVN r62165]
2010-05-23 14:44:57 +00:00
0882fe63f9 rm cmake from trunk. I'm not entirely sure this is necessary to satisfy the inspect script, but I'm not taking any chances, and it is easy to put back
[SVN r56942]
2009-10-17 02:07:38 +00:00
d674ec9d6e rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
e582010b1f Copyrights on CMakeLists.txt to keep them from clogging up the inspect
reports.  This is essentially the same commit as r55095 on the release
branch.



[SVN r55159]
2009-07-26 00:49:56 +00:00
0decc801d5 Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
6cee861d4b merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
32f92a1431 merge tests and Jamfiles for 7 libraries
[SVN r50456]
2009-01-04 05:17:02 +00:00
328bd6f995 Updating dependency information for modularized libraries.
[SVN r49628]
2008-11-07 17:05:27 +00:00
8ed342548e Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
c213502e2c Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
485db8aef5 Move preprocessor tests into canonical test subdir structure.
[SVN r44385]
2008-04-13 23:21:57 +00:00
aba62cac02 Fix typo (bug #1434)
[SVN r43112]
2008-02-05 16:07:19 +00:00
fee02ed013 EDG MS emulation
[SVN r37155]
2007-03-07 10:27:38 +00:00
d88bf38702 removed single-line comment
[SVN r36257]
2006-12-04 00:43:44 +00:00
e8937f9f13 fixed flags argument bug
[SVN r36177]
2006-11-25 23:13:08 +00:00
94ffea3b73 Fix freshly broken links, again.
[SVN r34764]
2006-07-28 16:06:08 +00:00
eb1edeed0b Fix freshly broken links.
[SVN r34734]
2006-07-26 01:19:35 +00:00
36885cddae After asking Paul... add his copyright to the docs.
[SVN r34691]
2006-07-24 04:08:25 +00:00
b14b395cec Fix various inspection errors: add missing copyright and license info.
[SVN r34683]
2006-07-23 20:45:18 +00:00
0e2bbd51ce added x-refs
[SVN r33472]
2006-03-24 21:34:52 +00:00
140 changed files with 5040 additions and 1694 deletions

View File

@ -8,7 +8,7 @@
</head>
<body>
<h4><a href="http://boost-consulting.com/tmpbook/preprocessor.html" target="_top">Introduction</a></h4>
<h4><a href="http://www.boostpro.com/mplbook/preprocessor.html" target="_top">Introduction</a></h4>
<h4><a href="topics.html">Topics</h4>
<h4><a href="terms.html">Terminology</h4>
<h4><a href="data.html">Data Types</h4>

View File

@ -8,13 +8,11 @@
</style>
</head>
<body>
<h4>
Headers <small><a href="contents.html" target="index">[back]</a></small>
<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 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>
@ -28,6 +26,7 @@
<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>
@ -37,6 +36,9 @@
<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>
@ -51,6 +53,7 @@
<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>
@ -80,6 +83,7 @@
<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>
@ -109,6 +113,8 @@
<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>
@ -185,6 +191,7 @@
<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>
@ -193,17 +200,27 @@
<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/elem.html">elem.hpp</a></li>
<li class="ps"><a href="headers/tuple/eat.html">eat.hpp</a></li>
<li class="ps"><a href="headers/tuple/rem.html">rem.hpp</a></li>
<li class="ps"><a href="headers/tuple/reverse.html">reverse.hpp</a></li>
<li class="ps"><a href="headers/tuple/to_list.html">to_list.hpp</a></li>
<li class="ps"><a href="headers/tuple/to_seq.html">to_seq.hpp</a></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
@ -211,6 +228,5 @@ 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>

View File

@ -15,6 +15,7 @@
<ul>
<li><a href="array/data.html">&lt;boost/preprocessor/array/data.hpp&gt;</a></li>
<li><a href="array/elem.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a></li>
<li><a href="array/enum.html">&lt;boost/preprocessor/array/enum.hpp&gt;</a></li>
<li><a href="array/insert.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a></li>
<li><a href="array/pop_back.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a></li>
<li><a href="array/pop_front.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a></li>
@ -24,17 +25,19 @@
<li><a href="array/replace.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a></li>
<li><a href="array/reverse.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a></li>
<li><a href="array/size.html">&lt;boost/preprocessor/array/size.hpp&gt;</a></li>
<li><a href="array/to_list.html">&lt;boost/preprocessor/array/to_list.hpp&gt;</a></li>
<li><a href="array/to_seq.html">&lt;boost/preprocessor/array/to_seq.hpp&gt;</a></li>
<li><a href="array/to_tuple.html">&lt;boost/preprocessor/array/to_tuple.hpp&gt;</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>
<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>
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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/enum.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/enum.hpp</b> header
defines a macro to convert an <i>array</i> to its comma-separated elements. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/enum.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
</ul>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_list.hpp</b> header
defines a macro that converts an <i>array</i> to a <i>list</i>. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_list.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/to_list.html">BOOST_PP_ARRAY_TO_LIST</a></li>
</ul>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_seq.hpp</b> header
defines a macro that converts an <i>array</i> to a <i>seq.</i> </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_seq.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a></li>
</ul>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_tuple.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_tuple.hpp</b> header
defines a macro that converts an <i>array </i>to a <i>tuple</i>. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_tuple.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a></li>
</ul>
<hr size="1">
<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>
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>

View File

@ -28,17 +28,17 @@
<li><a href="../../ref/limit_slot_sig.html">BOOST_PP_LIMIT_SLOT_SIG</a></li>
<li><a href="../../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
<li><a href="../../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
<li><a href="../../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</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>
<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>
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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>config/variadics.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>config/variadics.hpp</b>
header defines a macro for determining variadic macro support. The file
is automatically included when needed internally. The end-user can
include it also in order to use the macro. </div>
<h4>
Usage
</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/config/variadics.hpp&gt;</b>
</div>
<h4>
Contents
</h4>
<ul>
<li><a href="../../ref/variadics.html">BOOST_PP_VARIADICS</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>

View File

@ -18,17 +18,17 @@
<li><a href="facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</a></li>
<li><a href="facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a></li>
<li><a href="facilities/intercept.html">&lt;boost/preprocessor/facilities/intercept.hpp&gt;</a></li>
<li><a href="facilities/overload.html">&lt;boost/preprocessor/facilities/overload.hpp&gt;</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>
<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>
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>

View File

@ -0,0 +1,28 @@
<html>
<head>
<title>facilities/overload.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/overload.hpp</b> header defines variadic macros that overload non-variadic macros to accept different numbers of parameters.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/overload.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -28,19 +28,20 @@
<li><a href="list/rest_n.html">&lt;boost/preprocessor/list/rest_n.hpp&gt;</a></li>
<li><a href="list/reverse.html">&lt;boost/preprocessor/list/reverse.hpp&gt;</a></li>
<li><a href="list/size.html">&lt;boost/preprocessor/list/size.hpp&gt;</a></li>
<li><a href="list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a></li>
<li><a href="list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a></li>
<li><a href="list/to_tuple.html">&lt;boost/preprocessor/list/to_tuple.hpp&gt;</a></li>
<li><a href="list/transform.html">&lt;boost/preprocessor/list/transform.hpp&gt;</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>
<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>
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>

View File

@ -0,0 +1,29 @@
<html>
<head>
<title>list/to_array.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>list/to_array.hpp</b> header defines a macro to convert a <i>list</i> to an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/list/to_array.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a></li>
<li><a href="../../ref/list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
</ul>
<hr size="1">
<div style="margin-left: 0px;">
<i></i><i>© 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>

View File

@ -0,0 +1,25 @@
<html><head>
<title>list/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>list/to_seq.hpp</b> header defines a macro to convert a <i>list</i> to a <i>seq</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/list/to_seq.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a></li>
<li><a href="../../ref/list_to_seq.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
</ul>
<hr size="1">
<div style="margin-left: 0px;">
<i></i><i>© 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>

View File

@ -63,6 +63,8 @@
<a href="seq/subseq.html">&lt;boost/preprocessor/seq/subseq.hpp&gt;</a></li>
<li>
<a href="seq/to_array.html">&lt;boost/preprocessor/seq/to_array.hpp&gt;</a></li>
<li>
<a href="seq/to_list.html">&lt;boost/preprocessor/seq/to_list.hpp&gt;</a></li>
<li>
<a href="seq/to_tuple.html">&lt;boost/preprocessor/seq/to_tuple.hpp&gt;</a></li>
<li>
@ -71,13 +73,12 @@
<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>
<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>
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>

View File

@ -0,0 +1,30 @@
<html><head>
<title>seq/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>seq/to_list.hpp</b> header defines a macro that converts a <i>seq</i> to
a <i>list</i>.
</div>
<h4>
Usage
</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/seq/to_list.hpp&gt;</b>
</div>
<h4>
Contents
</h4>
<ul>
<li>
<a href="../../ref/seq_to_list.html">BOOST_PP_SEQ_TO_LIST</a></li>
</ul>
<hr size="1">
<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> 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>

View File

@ -11,24 +11,27 @@
<div class="code">
#include <b>&lt;boost/preprocessor/tuple.hpp&gt;</b>
</div>
<h4>Includes</h4>
<h4>Includes<br></h4>
<ul>
<li><a href="tuple/elem.html">&lt;boost/preprocessor/tuple/elem.hpp&gt;</a></li>
<li><a href="tuple/eat.html">&lt;boost/preprocessor/tuple/eat.hpp&gt;</a></li>
<li><a href="tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a></li>
<li><a href="tuple/reverse.html">&lt;boost/preprocessor/tuple/reverse.hpp&gt;</a></li>
<li><a href="tuple/to_list.html">&lt;boost/preprocessor/tuple/to_list.hpp&gt;</a></li>
<li><a href="tuple/eat.html">&lt;boost/preprocessor/tuple/eat.hpp&gt;</a> (v)</li>
<li><a href="tuple/elem.html">&lt;boost/preprocessor/tuple/elem.hpp&gt;</a> (v)</li>
<li><a href="tuple/enum.html">&lt;boost/preprocessor/tuple/enum.hpp&gt;</a> (v)</li>
<li><a href="tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a> (v)</li>
<li><a href="tuple/reverse.html">&lt;boost/preprocessor/tuple/reverse.hpp&gt;</a> (v)</li>
<li><a href="tuple/size.html">&lt;boost/preprocessor/tuple/size.hpp&gt;</a> (v)</li>
<li><a href="tuple/to_array.html">&lt;boost/preprocessor/tuple/to_array.hpp&gt;</a> (v)</li>
<li><a href="tuple/to_list.html">&lt;boost/preprocessor/tuple/to_list.hpp&gt;</a> (v)</li>
<li><a href="tuple/to_seq.html">&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</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>
<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>
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>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/eat.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/eat.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/eat.hpp</b> header defines a macro eats a <i>tuple</i>.
</div>
@ -13,18 +9,17 @@
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a></li>
<li><a href="../../ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a> (v)<br>
</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>
<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>
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>
</body></html>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/elem.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/elem.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/elem.hpp</b> header defines a macro to extract elements from a <i>tuple</i>.
</div>
@ -13,18 +9,17 @@
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a></li>
<li><a href="../../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a> (v)<br>
</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>
<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>
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>
</body></html>

View File

@ -0,0 +1,25 @@
<html><head>
<title>tuple/enum.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/enum.hpp</b> header defines a macro to onvert a <i>tuple</i> to its comma-separated elements.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/tuple/enum.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/rem.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/rem.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/rem.hpp</b> header defines a macro that removes the parentheses from a <i>tuple</i>.
</div>
@ -13,19 +9,19 @@
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/tuple_rem.html">BOOST_PP_TUPLE_REM</a></li>
<li><a href="../../ref/tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a></li>
<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> (v)<br>
</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>
<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>
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>
</body></html>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/reverse.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/reverse.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/reverse.hpp</b> header defines a macro that reverses a <i>tuple</i>.
</div>
@ -13,18 +9,17 @@
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a></li>
<li><a href="../../ref/tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a> (v)<br>
</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>
<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>
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>
</body></html>

View File

@ -0,0 +1,25 @@
<html><head>
<title>tuple/size.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/size.hpp</b> header defines a variadic macro that gives the number of elements in the <i>tuple</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/tuple/size.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -0,0 +1,25 @@
<html><head>
<title>tuple/to_array.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/to_array.hpp</b> header defines a macro that converts a <i>tuple</i> to an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/tuple/to_array.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/to_list.hpp</b> header defines a macro that converts a <i>tuple</i> to a <i>list</i>.
</div>
@ -13,18 +9,17 @@
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a></li>
<li><a href="../../ref/tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a> (v)<sup><br>
</sup></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>
<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>
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>
</body></html>

View File

@ -1,9 +1,5 @@
<html>
<head>
<title>tuple/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<html><head><title>tuple/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>tuple/to_seq.hpp</b> header defines a macro that converts a <i>tuple</i>
to a <i>seq</i>.
@ -19,18 +15,17 @@
</h4>
<ul>
<li>
<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a></li>
<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a> (v)<br>
</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>
<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>
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>
</body></html>

33
doc/headers/variadic.html Normal file
View File

@ -0,0 +1,33 @@
<html>
<head>
<title>variadic.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>variadic.hpp</b> includes the headers in the <i>variadic</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="variadic/elem.html">&lt;boost/preprocessor/variadic/elem.hpp&gt;</a> (v)</li>
<li><a href="variadic/size.html">&lt;boost/preprocessor/variadic/size.hpp&gt;</a> (v)</li>
<li><a href="variadic/to_array.html">&lt;boost/preprocessor/variadic/to_array.hpp&gt;</a> (v)</li>
<li><a href="variadic/to_list.html">&lt;boost/preprocessor/variadic/to_list.hpp&gt;</a> (v)</li>
<li><a href="variadic/to_seq.html">&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</a> (v)</li>
<li><a href="variadic/to_tuple.html">&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</a> (v)</li>
</ul>
<hr size="1">
<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> 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>

View File

@ -0,0 +1,29 @@
<html>
<head>
<title>variadic/elem.hpp
</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>variadic/elem.hpp</b> header defines a variadic macro to extract an element from <i>variadic data</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/elem.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -0,0 +1,25 @@
<html><head>
<title>variadic/size.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>variadic/size.hpp</b> header defines a variadic macro that gives the number of comma-separated elements in the <i>variadic data</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/size.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -0,0 +1,25 @@
<html><head>
<title>variadic/to_array.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>variadic/to_array.hpp</b> header defines a variadic macro that converts <i>variadic data</i> to an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/to_array.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -0,0 +1,25 @@
<html><head>
<title>variadic/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>variadic/to_list.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>list</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/to_list.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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</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>

View File

@ -0,0 +1,30 @@
<html><head>
<title>variadic/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>variadic/to_seq.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>seq</i>.
</div>
<h4>
Usage
</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</b>
</div>
<h4>
Contents
</h4>
<ul>
<li>
<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</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>

View File

@ -0,0 +1,31 @@
<html><head>
<title>variadic/to_tuple.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
<div style="margin-left: 0px;">
The <b>variadic/to_tuple.hpp</b> header defines a variadic macro that converts <i>variadic data</i>
to a <i>tuple</i>.
</div>
<h4>
Usage
</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</b>
</div>
<h4>
Contents
</h4>
<ul>
<li>
<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</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>

View File

@ -5,8 +5,7 @@
<base target="desc">
</head>
<body>
<h4>
Reference <small><a href="contents.html" target="index">[back]</a></small>
<h4> Reference <small><a href="contents.html" target="index">[back]</a></small>
</h4>
<ul>
<!-- A -->
@ -16,6 +15,7 @@
<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>
@ -30,6 +30,9 @@
<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>
@ -126,6 +129,7 @@
<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>
@ -168,6 +172,10 @@
<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>
@ -194,6 +202,7 @@
<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>
@ -247,6 +256,7 @@
<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>
@ -255,17 +265,27 @@
<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></li>
<li><a href="ref/tuple_elem.html">TUPLE_ELEM</a></li>
<li><a href="ref/tuple_rem.html">TUPLE_REM</a></li>
<li><a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a></li>
<li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a></li>
<li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a></li>
<li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a></li>
<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>
@ -273,14 +293,12 @@
<!-- X -->
<li><a href="ref/xor.html">XOR</a></li>
</ul>
<!--
<EFBFBD> Copyright Housemarque Oy 2002
<EFBFBD> Copyright Paul Mensonides 2002
© 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>

37
doc/ref/array_enum.html Normal file
View File

@ -0,0 +1,37 @@
<html>
<head>
<title>BOOST_PP_ARRAY_ENUM</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_ENUM</b> macro converts an <i>array</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>.<br>
</div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_ARRAY_ENUM</b>(<i>array</i>) </div>
<h4> Arguments </h4>
<dl>
<dt>array</dt>
<dd> The <i>array</i> whose elements are to be converted. </dd>
</dl>
<h4> Remarks </h4>
<div> This macro expands to a comma-separated list of the elements in <i>array</i>.&nbsp;
For example, <b>BOOST_PP_ARRAY_ENUM</b>((3,(<i>x,</i><i>y,</i><i>z</i>)))
expands to...
<div> <i>x</i>, <i>y</i>, <i>z</i> </div>
</div>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/array/enum.html">&lt;boost/preprocessor/array/enum.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/array/enum.html">boost/preprocessor/array/enum.hpp</a>&gt;<br><br>#define ARRAY (5,(B,O,O,S,T))<br><br><a href="array_enum.html">BOOST_PP_ARRAY_ENUM</a>(ARRAY) // expands to B, O, O, S, T<br></pre>
</div>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,33 @@
<html>
<head>
<title>BOOST_PP_ARRAY_TO_LIST</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_LIST</b>
macro converts an <i>array</i> to a <i>list</i>. </div>
<h4>Usage</h4>
<div class="code"> <b>BOOST_PP_ARRAY_TO_LIST</b>(<i>array</i>)
</div>
<h4>Arguments</h4>
<dl><dt>array</dt>
<dd> The <i>array</i> to be converted. </dd>
</dl>
<a href="limit_tuple.html"></a><ul>
</ul>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/array/to_list.html">&lt;boost/preprocessor/array/to_list.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/array/to_list.html">boost/preprocessor/array/to_list.hpp</a>&gt;<br><br><a href="array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a>((3, (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</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>

31
doc/ref/array_to_seq.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>BOOST_PP_ARRAY_TO_SEQ</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_SEQ</b> macro
converts an <i>array</i> to a <i>seq</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_ARRAY_TO_SEQ</b>(<i>array</i>)
</div>
<h4> Arguments </h4>
<dl><dt>array</dt>
<dd> The <i>array</i> to be converted. </dd>
</dl>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/array/to_seq.html">&lt;boost/preprocessor/array/to_seq.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/array/to_seq.html">boost/preprocessor/array/to_seq.hpp</a>&gt;<br><br><a href="array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a>((3, (a, b, c))) // expands to (a)(b)(c)<br></pre>
</div>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>BOOST_PP_ARRAY_TO_TUPLE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_TUPLE</b> macro
converts an <i>array</i> to an <i>tuple</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_ARRAY_TO_TUPLE</b>(<i>array</i>) </div>
<h4> Arguments </h4>
<dl>
<dt>array</dt>
<dd> The <i>array</i> to be converted. </dd>
</dl>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/array/to_tuple.html">&lt;boost/preprocessor/array/to_tuple.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/array/to_tuple.html">boost/preprocessor/array/to_tuple.hpp</a>&gt;<br><br>#define ARRAY (3,(a, b, c))<br><br><a href="array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a>(ARRAY) // expands to (a, b, c)<br></pre>
</div>
<hr size="1">
<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>
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>

View File

@ -64,10 +64,10 @@
#include &lt;<a href="../headers/repetition/epwd.html">boost/preprocessor/repetition/enum_params_with_defaults.hpp</a>&gt;
<a href="enum_params_with_defaults.html">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a>(3, class T, U)
// expands to T0 = U0, T1 = U1, T2 = U2
// expands to class T0 = U0, class T1 = U1, class T2 = U2
<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, class T, = U)
// expands to T0 = U0, T1 = U1, T2 = U2
// expands to class T0 = U0, class T1 = U1, class T2 = U2
</pre></div>
<hr size="1">
<div style="margin-left: 0px;">

View File

@ -44,7 +44,7 @@
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/control/iif.html">boost/preprocessor/control/iif.hpp</a>&gt;
#include &lt;<a href="../headers/logical/or.html">boost/preprocessor/logical/or.hpp</a>
#include &lt;<a href="../headers/logical/or.html">boost/preprocessor/logical/or.hpp</a>&gt;
#define OR_IF(p, q, t, f) <a href="iif.html">BOOST_PP_IIF</a>(<a href="or.html">BOOST_PP_OR</a>(p, q), t, f)

View File

@ -13,7 +13,7 @@
</div>
<h4>Remarks</h4>
<div>
This macro currently expands to <i>5</i>.
This macro currently expands to <i>3</i>.
</div>
<h4>Requirements</h4>
<div>

View File

@ -13,7 +13,7 @@
</div>
<h4>Remarks</h4>
<div>
This macro currently expands to <i>25</i>.
This macro currently expands to <i>64</i>.
</div>
<h4>Requirements</h4>
<div>
@ -22,13 +22,12 @@
<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>
<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>
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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>BOOST_PP_LIMIT_VARIADIC</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b> macro
defines the maximum <i>variadic data</i> size&nbsp;supported by the library. </div>
<h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
<h4>Remarks</h4>
<div> This macro currently expands to <i>64</i>. </div>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,39 @@
<html>
<head>
<title>BOOST_PP_LIST_TO_ARRAY</title>
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY</b> macro
converts a <i>list</i> to an <i>array</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY</b>(<i>list</i>) </div>
<h4> Arguments </h4>
<dl>
<dt>list</dt>
<dd> The <i>list</i> to be converted. </dd>
</dl>
<h4>Remarks</h4>
<div>
This macro uses <b>BOOST_PP_WHILE</b>.
Within <b>BOOST_PP_WHILE</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_ARRAY_D</b>.
</div>
<h4>See Also</h4>
<ul>
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
</ul>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/list/to_array.html">boost/preprocessor/list/to_array.hpp</a>&gt;<br><br>#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br><a href="list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a>(LIST) // expands to (3, (a, b, c))<br></pre>
</div>
<hr size="1">
<div style="margin-left: 0px;"> <i></i><i>© 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>

View File

@ -0,0 +1,27 @@
<html>
<head>
<title>BOOST_PP_LIST_TO_ARRAY_D</title>
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_LIST_TO_ARRAY_D</b> macro converts a <i>list</i> to an <i>array</i>.
It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
</div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY_D</b>(<i>d</i>, <i>list</i>) </div>
<h4> Arguments </h4>
<dl>
<dt>d</dt>
<dd>The next available <b>BOOST_PP_WHILE</b> iteration.</dd>
<dt>list</dt>
<dd> The <i>list</i> to be converted. </dd>
</dl>
<h4>See Also</h4>
<ul>
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY</a></li>
</ul>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a>
</div>
</body>
</html>

40
doc/ref/list_to_seq.html Normal file
View File

@ -0,0 +1,40 @@
<html>
<head>
<title>BOOST_PP_LIST_TO_SEQ</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ</b> macro
converts a <i>list</i> to a <i>seq</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ</b>(<i>list</i>)
</div>
<h4> Arguments </h4>
<dl><dt>list</dt>
<dd> The <i>list</i> to be converted. </dd>
</dl>
<h4>Remarks</h4>
<div>
This macro uses <b>BOOST_PP_FOR</b>.
Within <b>BOOST_PP_FOR</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_SEQ_R</b>.
</div>
<h4>See Also</h4>
<ul>
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
</ul>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/list/to_seq.html">boost/preprocessor/list/to_seq.hpp</a>&gt;<br><br><a href="list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a>((a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))) // expands to (a)(b)(c)<br></pre>
</div>
<hr size="1">
<div style="margin-left: 0px;"> <i></i><i>© 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>

View File

@ -0,0 +1,27 @@
<html>
<head>
<title>BOOST_PP_LIST_TO_SEQ_R</title>
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_LIST_TO_SEQ_R</b> macro converts a <i>list</i> to an <i>seq</i>.
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
</div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ_R</b>(<i>r</i>, <i>list</i>) </div>
<h4> Arguments </h4>
<dl>
<dt>d</dt>
<dd>The next available <b>BOOST_PP_FOR</b> repetition.</dd>
<dt>list</dt>
<dd> The <i>list</i> to be converted. </dd>
</dl>
<h4>See Also</h4>
<ul>
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ</a></li>
</ul>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a>
</div>
</body>
</html>

46
doc/ref/overload.html Normal file
View File

@ -0,0 +1,46 @@
<html>
<head>
<title>BOOST_PP_OVERLOAD</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>,...) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>prefix<br>
</dt><dd>
The prefix of the non-variadic macro name.
</dd><dt>...<br>
</dt><dd><i>
Variadic data</i>. The number of variadic data
elements, as determined by BOOST_PP_VARIADIC_SIZE, is appended to the
prefix to form the output non-variadic macro name.<br>
</dd>
</dl>
<h4>Remarks</h4>
<div> This macro creates a macro name which depends on the number of elements of variadic data. It should be used in the form of <br>
BOOST_PP_OVERLOAD(MACRO_NAME_,__VA_ARGS__)(__VA_ARGS__) in order to
call a non-variadic macro taking a given number of variadic data
elements as non-variadic arguments. In this way one can invoke a
variadic macro with a variable number of parameters which calls one of
a series of non-variadic macros doing very similar things.
</div><b>Requirements</b>
<div> <b>Header:</b> &nbsp;<a href="../headers/facilities/overload.html">&lt;boost/preprocessor/facilities/overload.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/facilities/overload.html">boost/preprocessor/facilities/overload.hpp</a>&gt;<br>#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;<br>#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;<br>#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;<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</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>

View File

@ -11,7 +11,7 @@
Usage
</h4>
<div class="code">
<b>BOOST_PP_SEQ_CAT</b>(<i>list</i>)
<b>BOOST_PP_SEQ_CAT</b>(<i>seq</i>)
</div>
<h4>
Arguments
@ -48,24 +48,17 @@
Sample Code
</h4>
<div>
<pre>
#include &lt;<a href="../headers/seq/cat.html">boost/preprocessor/seq/cat.hpp</a>&gt;
#define SEQ (a)(b)(c)
<a href="seq_cat.html">BOOST_PP_SEQ_CAT</a>(SEQ) // expands to abc
</pre>
<pre>#include &lt;<a href="../headers/seq/cat.html">boost/preprocessor/seq/cat.hpp</a>&gt;<br><br>#define SEQ (a)(b)(c)<br><br><a href="seq_cat.html">BOOST_PP_SEQ_CAT</a>(SEQ) // expands to abc<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</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>
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>

View File

@ -12,7 +12,7 @@
Usage
</h4>
<div class="code">
<b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>list</i>)
<b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>seq</i>)
</div>
<h4>
Arguments
@ -49,13 +49,12 @@
<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>
<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>
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>

View File

@ -11,7 +11,7 @@
Usage
</h4>
<div class="code">
<b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>list</i>)
<b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>seq</i>)
</div>
<h4>
Arguments
@ -43,37 +43,17 @@
Sample Code
</h4>
<div>
<pre>
#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;
<a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(1, (a)(b)(c)) // expands to b
#define SEQ \
(0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
(10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
(20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
(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)(65)(66)(67)(68)(69) \
(70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \
(80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \
(90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
/**/
<a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(88, SEQ) // expands to 88
</pre>
<pre>#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;<br><br><a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(1, (a)(b)(c)) // expands to b<br><br>#define SEQ \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> /**/<br><br><a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(88, SEQ) // expands to 88<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</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>
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>

View File

@ -12,7 +12,7 @@
Usage
</h4>
<div class="code">
<b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>list</i>)
<b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>seq</i>)
</div>
<h4>
Arguments
@ -22,7 +22,7 @@
<dd>
The number of elements to extract.
</dd>
<dt>list</dt>
<dt>seq</dt>
<dd>
The <i>seq</i> from which the elements are extracted.
</dd>
@ -51,24 +51,17 @@
Sample Code
</h4>
<div>
<pre>
#include &lt;<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;
#define SEQ (a)(b)(c)(d)(e)
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>(2, SEQ) // expands to (a)(b)
</pre>
<pre>#include &lt;<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;<br><br>#define SEQ (a)(b)(c)(d)(e)<br><br><a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>(2, SEQ) // expands to (a)(b)<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</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>
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>

View File

@ -6,7 +6,7 @@
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_SEQ_NIL</b> macro is a placeholder macro for an empty <i>seq</i>.&nbsp;
It is only valid if it is elements are appended to the end of this empty
It is only valid if it's elements are appended to the end of this empty
"seq."&nbsp;
</div>
<h4>
@ -63,38 +63,19 @@
Sample Code
</h4>
<div>
<pre>
#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;
#include &lt;<a href="../headers/seq/push_back.html">boost/preprocessor/seq/push_back.hpp</a>&gt;
#include &lt;<a href="../headers/seq/push_front.html">boost/preprocessor/seq/push_front.hpp</a>&gt;
#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;
#define SEQ_L <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>
<pre>#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/push_back.html">boost/preprocessor/seq/push_back.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/push_front.html">boost/preprocessor/seq/push_front.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;<br><br>#define SEQ_L <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>
#define SEQ_R <a href="empty.html">BOOST_PP_EMPTY</a>
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ_L, a), b
)
// expands to (a)(b)
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(
<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ_R, a), b
)()
// expands to (b)(a)
</pre>
<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(<br> <a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ_L, a), b<br>)<br><br>// expands to (a)(b)<br><br><a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(<br> <a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ_R, a), b<br>)()<br><br>// expands to (b)(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</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>
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>

View File

@ -12,7 +12,7 @@
Usage
</h4>
<div class="code">
<b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>list</i>)
<b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>seq</i>)
</div>
<h4>
Arguments
@ -22,7 +22,7 @@
<dd>
The number of elements to remove.
</dd>
<dt>list</dt>
<dt>seq</dt>
<dd>
The <i>seq</i> from which the elements are to be removed.
</dd>
@ -51,70 +51,17 @@
Sample Code
</h4>
<div>
<pre>
#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;
#include &lt;<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;
#include &lt;<a href="../headers/seq/rest_n.html">boost/preprocessor/seq/rest_n.hpp</a>&gt;
#include &lt;<a href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>&gt;
#define NUMBERS \
(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)(65)(66)(67)(68)(69) \
(70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \
(80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \
(90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
(100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \
(110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \
(120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \
(130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \
(140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \
(150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \
(160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \
(170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \
(180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \
(190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \
(200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \
(210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \
(220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \
(230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \
(240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \
(250)(251)(252)(253)(254)(255)(256) \
/**/
#define SUPER_ADD(x, y) <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))
SUPER_ADD(100, 100) // expands to 200
#define SUPER_SUB(x, y) \
<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \
<a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \
<a href="inc.html">BOOST_PP_INC</a>(y), \
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \
<a href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \
) \
) \
) \
/**/
SUPER_SUB(67, 25) // expands to 42
</pre>
<pre>#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/rest_n.html">boost/preprocessor/seq/rest_n.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>&gt;<br><br>#define NUMBERS \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \<br> (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \<br> (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \<br> (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \<br> (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \<br> (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \<br> (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \<br> (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \<br> (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \<br> (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \<br> (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \<br> (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \<br> (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \<br> (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \<br> (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \<br> (250)(251)(252)(253)(254)(255)(256) \<br> /**/<br><br>#define SUPER_ADD(x, y) <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))<br><br>SUPER_ADD(100, 100) // expands to 200<br><br>#define SUPER_SUB(x, y) \<br> <a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \<br> <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \<br> <a href="inc.html">BOOST_PP_INC</a>(y), \<br> <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \<br> <a href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \<br> ) \<br> ) \<br> ) \<br> /**/<br><br>SUPER_SUB(67, 25) // expands to 42<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</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>
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>

View File

@ -5,7 +5,7 @@
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_SEQ_HEAD</b> macro expands to all but the first element of a <i>seq</i>.
The <b>BOOST_PP_SEQ_TAIL</b> macro expands to all but the first element of a <i>seq</i>.
</div>
<h4>
Usage

34
doc/ref/seq_to_list.html Normal file
View File

@ -0,0 +1,34 @@
<html>
<head>
<title>BOOST_PP_SEQ_TO_LIST</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_SEQ_TO_LIST</b>
macro converts a <i>seq</i> to a <i>list</i>. </div>
<h4>Usage</h4>
<div class="code"> <b>BOOST_PP_SEQ_TO_LIST</b>(<i>seq</i>)
</div>
<h4>Arguments</h4>
<dl><dt>seq</dt>
<dd> The <i>seq</i> to be converted. </dd>
</dl><b>See Also</b>
<ul>
<li><a href="limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
</ul>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/seq/to_list.html">&lt;boost/preprocessor/seq/to_list.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/seq/to_list.html">boost/preprocessor/seq/to_list.hpp</a>&gt;<br><br><a href="seq_to_list.html">BOOST_PP_SEQ_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 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>

View File

@ -5,23 +5,33 @@
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i> of the specified size.
The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <sup>(v)</sup><b></b><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i> to be eaten.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
</dd>
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>.
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 <sup>(v)</sup>&nbsp;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
version, it will be ignored, but the warning from some compilers will
not occur.<br>
</div>
<h4>See Also</h4>
<ul>
@ -32,27 +42,17 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/eat.html">&lt;boost/preprocessor/tuple/eat.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
#include &lt;<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>&gt;
#define OP(a, b) (a b)
#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)
MACRO(0) // expands to nothing
MACRO(1) // expands to (1, 2)
</pre></div>
<div><pre>#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;<br>#include &lt;<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

View File

@ -9,14 +9,18 @@
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)
<b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)<sup></sup><br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i>.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
</dd>
<dt>i</dt>
<dd>
@ -31,7 +35,10 @@
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>,
and <i>i</i> must be less than the size of the <i>tuple</i>.
and <i>i</i> must be less than the size of the <i>tuple</i>. <br>
<br>You can
invoke the variadic version as BOOST_PP_TUPLE_ELEM(<i>i</i>,<i>tuple</i>) or
BOOST_PP_TUPLE_ELEM(<i>size</i>,<i>i</i>,<i>tuple</i>).
</div>
<h4>See Also</h4>
<ul>
@ -42,24 +49,17 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/elem.html">&lt;boost/preprocessor/tuple/elem.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
#define TUPLE (a, b, c, d)
<a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, TUPLE) // expands to a
<a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, TUPLE) // expands to d
</pre></div>
<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

55
doc/ref/tuple_enum.html Normal file
View File

@ -0,0 +1,55 @@
<html>
<head>
<title>BOOST_PP_TUPLE_ENUM</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ENUM</b> macro&nbsp;converts a <i>tuple</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_TUPLE_ENUM</b>(<i>size,tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
</div>
<h4> Arguments </h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
</dd>
<dt>tuple</dt>
<dd> The <i>tuple</i> whose elements are to be converted. </dd>
</dl>
<h4> Remarks </h4>
<div>
<br>You can
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>
<ul>
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a><br>
</li>
</ul>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/enum.html">&lt;boost/preprocessor/tuple/enum.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>&gt;<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</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>
</html>

View File

@ -5,23 +5,34 @@
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i> of the specified size.
The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
</dd>
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>.
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 <sup>(v)</sup>&nbsp;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>
</div>
<h4>See Also</h4>
<ul>
@ -32,21 +43,17 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;
<a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>(3)(x, y, z) // expands to x, y, z
</pre></div>
<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

View File

@ -5,18 +5,22 @@
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i> of the specified size.
The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
</dd>
<dt>tuple</dt>
<dd>
@ -25,7 +29,11 @@
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of <i>tuple</i>.
The <i>size</i> argument must be the actual size of <i>tuple</i>.<br>
<br>
You can
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>
<ul>
@ -36,21 +44,18 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;
<a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>(3, (x, y, z)) // expands to x, y, z
</pre></div>
<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

View File

@ -5,18 +5,23 @@
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i> of the specified size.
The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i> to be reversed.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
</dd>
<dt>tuple</dt>
<dd>
@ -25,7 +30,11 @@
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>.
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
<br>
You can
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>
<ul>
@ -36,21 +45,17 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/reverse.html">&lt;boost/preprocessor/tuple/reverse.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>&gt;
<a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>(3, (x, y, z)) // expands to (z, y, x)
</pre></div>
<div><pre>#include &lt;<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

32
doc/ref/tuple_size.html Normal file
View File

@ -0,0 +1,32 @@
<html>
<head>
<title>BOOST_PP_TUPLE_SIZE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>tuple</dt>
<dd> A <i>tuple</i> whose size is to be extracted. </dd>
</dl>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/size.html">&lt;boost/preprocessor/tuple/size.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/tuple/size.html">boost/preprocessor/tuple/size.hpp</a>&gt;<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</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>

View File

@ -0,0 +1,50 @@
<html>
<head>
<title>BOOST_PP_TUPLE_TO_ARRAY</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_ARRAY</b>
macro
converts a <i>tuple</i> to an <i>array</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>size,tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <sup>(v)</sup><br>
</div>
<h4> Arguments </h4>
<dl>
<dt>size</dt>
<dd> The size of the <i>tuple</i>.&nbsp; Valid <i>tuple</i> sizes
range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
</dd>
<dt>tuple</dt>
<dd> The <i>tuple</i> to be converted.</dd>
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
<br>
You can
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>
<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/to_array.html">&lt;boost/preprocessor/tuple/to_array.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>&gt;<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</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>

View File

@ -9,14 +9,18 @@
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>size</dt>
<dd>
The size of the <i>tuple</i> to be converted.&nbsp;
Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
</dd>
<dt>tuple</dt>
<dd>
@ -25,7 +29,11 @@
</dl>
<h4>Remarks</h4>
<div>
The <i>size</i> argument must be the actual size of the <i>tuple</i>.
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
<br>
You can
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>
<ul>
@ -36,22 +44,17 @@
<b>Header:</b> &nbsp;<a href="../headers/tuple/to_list.html">&lt;boost/preprocessor/tuple/to_list.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>&gt;
<a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>(3, (x, y, z))
// expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
</pre></div>
<div><pre>#include &lt;<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>&gt;<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</i>
<br><i><EFBFBD> Copyright Paul Mensonides 2002<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
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>
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>

View File

@ -4,54 +4,48 @@
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro converts a <i>tuple</i> to an <i>seq</i>.
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro
converts a <i>tuple</i> to an <i>seq</i>. </div>
<h4> Usage </h4>
<div class="code"> <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)<br>
<br>
or<br>
<br>
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <sup>(v)</sup><br>
</div>
<h4>
Usage
</h4>
<div class="code">
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)
</div>
<h4>
Arguments
</h4>
<h4> Arguments </h4>
<dl>
<dt>size</dt>
<dd>
The number of elements in <i>tuple</i>.
</dd>
The size of the <i>tuple</i> to be converted.&nbsp;
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp; </dd>
<dt>tuple</dt>
<dd>
The <i>tuple</i> to be converted.
</dd>
<dd> The <i>tuple</i> to be converted. </dd>
</dl>
<h4>
Requirements
</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/tuple/to_seq.html">&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</a>
<h4>Remarks</h4>
<div> The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
<br>
You can
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>
Sample Code
</h4>
<h4>Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/to_seq.html">&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>
#include &lt;<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>&gt;
<a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)
</pre>
<pre>#include &lt;<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>&gt;<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</i>
<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</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>
<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>

View File

@ -0,0 +1,42 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_ELEM</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl><dt>i</dt>
<dd> The zero-based index into the <i>variadic data</i> of the element to be
extracted.&nbsp; Valid values range from <i>0</i> to the size of the variadic data - 1.
</dd>
<dt>...<br>
</dt>
<dd> The <i>variadic data</i> from which an element is to be extracted. </dd>
</dl>
<h4>Remarks</h4>
<div>The index <i>i</i> must be less than the size of the <i>variadic data</i>. </div>
<h4>See Also</h4>
<ul>
<li><a href="limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a></li>
</ul>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/elem.html">&lt;boost/preprocessor/variadic/elem.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/elem.html">boost/preprocessor/variadic/elem.hpp</a>&gt;<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</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>

View File

@ -0,0 +1,33 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_SIZE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl>
<dt>...<br>
</dt>
<dd>&nbsp; <i>Variadic data </i>whose size is to be extracted. </dd>
</dl>
<h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/size.html">&lt;boost/preprocessor/variadic/size.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/size.html">boost/preprocessor/variadic/size.hpp</a>&gt;<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</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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_TO_ARRAY</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4> Arguments </h4>
<dl>
<dt>...</dt>
<dd> The <i>variadic data</i> to be converted. </dd>
</dl>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_array.html">&lt;boost/preprocessor/variadic/to_array.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/to_array.html">boost/preprocessor/variadic/to_array.hpp</a>&gt;<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</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_TO_LIST</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4>Arguments</h4>
<dl><dt>...</dt>
<dd> The <i>variadic data</i> to be converted.<br>
</dd>
</dl><h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_list.html">&lt;boost/preprocessor/variadic/to_list.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/to_list.html">boost/preprocessor/variadic/to_list.hpp</a>&gt;<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</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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_TO_SEQ</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>) <sup>(v)</sup><br>
</div>
<h4> Arguments </h4>
<dl><dt>...<br>
</dt>
<dd> The <i>variadic data</i> to be converted. </dd>
</dl>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_seq.html">&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/to_seq.html">boost/preprocessor/variadic/to_seq.hpp</a>&gt;<br><br><a href="variadic_to_seq.html">BOOST_PP_VARIADIC_TO_SEQ</a>(a, b, c) // expands to (a)(b)(c)<br></pre>
</div>
<hr size="1">
<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>
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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>BOOST_PP_VARIADIC_TO_TUPLE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<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>)<sup> (v)</sup> </div>
<h4> Arguments </h4>
<dl>
<dt>...<br>
</dt>
<dd> The <i>variadic data</i> to be converted. </dd>
</dl>
<h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_tuple.html">&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</a>
</div>
<h4> Sample Code </h4>
<div>
<pre>#include &lt;<a href="../headers/variadic/to_tuple.html">boost/preprocessor/variadic/to_tuple.hpp</a>&gt;<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</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>

30
doc/ref/variadics.html Normal file
View File

@ -0,0 +1,30 @@
<html>
<head>
<title>BOOST_PP_VARIADICS</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADICS </b>macro specifies whether variadic macro support exists.<br>
</div>
<h4>Usage</h4>
<div class="code"><b>BOOST_PP_VARIADICS</b><br>
</div><b>Remarks</b>
<div> The macro is an <i>object-like</i> macro. It is used in internal
code to check for the presence of variadic macro support. It can be
used by the end-user for the same purpose. The macro equals 1 if
variadic macros are supported and 0 if they are not. </div><b>Requirements</b>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/variadics.html">&lt;boost/preprocessor/config/variadics.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div>
<pre>#include &lt;<a href="../headers/config/variadics.html">boost/preprocessor/config/variadics.hpp</a>&gt;<br><br>#if <a href="variadics.html">BOOST_PP_VARIADICS</a><br>#define SOME_MACRO(...) // replacement list<br>#else<br>#define SOME_MACRO(param1,param2) // replacement list<br>#endif<br></pre>
</div>
<hr size="1">
<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>
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>

View File

@ -13,6 +13,7 @@
<br>BOOST_PP_APPLY
<br>BOOST_PP_ARRAY_DATA
<br>BOOST_PP_ARRAY_ELEM
<br>BOOST_PP_ARRAY_ENUM
<br>BOOST_PP_ARRAY_INSERT
<br>BOOST_PP_ARRAY_INSERT_D
<br>BOOST_PP_ARRAY_POP_BACK
@ -27,6 +28,9 @@
<br>BOOST_PP_ARRAY_REPLACE_D
<br>BOOST_PP_ARRAY_REVERSE
<br>BOOST_PP_ARRAY_SIZE
<br>BOOST_PP_ARRAY_TO_LIST
<br>BOOST_PP_ARRAY_TO_SEQ
<br>BOOST_PP_ARRAY_TO_TUPLE
<br>BOOST_PP_ASSERT
<br>BOOST_PP_ASSERT_MSG
<br>BOOST_PP_ASSIGN_SLOT
@ -131,6 +135,7 @@
<br>BOOST_PP_LIMIT_SLOT_COUNT
<br>BOOST_PP_LIMIT_SLOT_SIG
<br>BOOST_PP_LIMIT_TUPLE
<br>BOOST_PP_LIMIT_VARIADIC
<br>BOOST_PP_LIMIT_WHILE
<br>BOOST_PP_LINE
<br>BOOST_PP_LIST_APPEND
@ -173,6 +178,8 @@
<br>BOOST_PP_LIST_REVERSE_D
<br>BOOST_PP_LIST_SIZE
<br>BOOST_PP_LIST_SIZE_D
<br>BOOST_PP_LIST_TO_ARRAY
<br>BOOST_PP_LIST_TO_SEQ
<br>BOOST_PP_LIST_TO_TUPLE
<br>BOOST_PP_LIST_TO_TUPLE_R
<br>BOOST_PP_LIST_TRANSFORM
@ -199,6 +206,7 @@
<br>BOOST_PP_NOT_EQUAL_D
<!-- O -->
<br>BOOST_PP_OR
<br>BOOST_PP_OVERLOAD
<!-- R -->
<br>BOOST_PP_RELATIVE_FINISH
<br>BOOST_PP_RELATIVE_FLAGS
@ -252,6 +260,7 @@
<br>BOOST_PP_SEQ_SUBSEQ
<br>BOOST_PP_SEQ_TAIL
<br>BOOST_PP_SEQ_TO_ARRAY
<br>BOOST_PP_SEQ_TO_LIST
<br>BOOST_PP_SEQ_TO_TUPLE
<br>BOOST_PP_SEQ_TRANSFORM
<br>BOOST_PP_SEQ_TRANSFORM_S
@ -262,15 +271,24 @@
<!-- T -->
<br>BOOST_PP_TUPLE_EAT
<br>BOOST_PP_TUPLE_ELEM
<br>BOOST_PP_TUPLE_ENUM
<br>BOOST_PP_TUPLE_REM
<br>BOOST_PP_TUPLE_REM_CTOR
<br>BOOST_PP_TUPLE_REVERSE
<br>BOOST_PP_TUPLE_SIZE
<br>BOOST_PP_TUPLE_TO_ARRAY
<br>BOOST_PP_TUPLE_TO_LIST
<br>BOOST_PP_TUPLE_TO_SEQ
<!-- U -->
<br>BOOST_PP_UPDATE_COUNTER
<!-- V -->
<br>BOOST_PP_VALUE
<br>BOOST_PP_VARIADIC_ELEM
<br>BOOST_PP_VARIADIC_SIZE
<br>BOOST_PP_VARIADIC_TO_ARRAY
<br>BOOST_PP_VARIADIC_TO_LIST
<br>BOOST_PP_VARIADIC_TO_SEQ
<br>BOOST_PP_VARIADIC_TO_TUPLE
<!-- W -->
<br>BOOST_PP_WHILE
<br>BOOST_PP_WHILE_
@ -278,7 +296,6 @@
<!-- X -->
<br>BOOST_PP_XOR
</div>
<!--
<EFBFBD> Copyright Housemarque Oy 2002
<EFBFBD> Copyright Paul Mensonides 2002
@ -286,6 +303,5 @@ 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>

View File

@ -6,7 +6,7 @@
<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://boost-consulting.com/tmpbook/preprocessor.html" target="_top"><font color="blue"><b><u><i>online</i></u></font></b></a>.
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>

View File

@ -8,15 +8,14 @@
<h4>Topics <small><a href="contents.html" target="index">[back]</a></small></h4>
<ul>
<li><a href="topics/motivation.html">motivation</a></li>
<li><a href="topics/problems.html">known problems of the preprocessor</a></i>
<li><a href="topics/techniques.html">techniques</a></li>
<li><a href="topics/problems.html">known problems of the preprocessor</a> </li><li><a href="topics/techniques.html">techniques</a></li>
<li><a href="topics/incompatible.html">incompatibilities</a></li>
<li><a href="topics/reentrancy.html">reentrancy</a></li>
<li><a href="topics/local_iteration.html">local iteration</a></li>
<li><a href="topics/file_iteration.html">file iteration</a></li>
<li><a href="topics/evaluated_slots.html">evaluated slots</a></li>
<li><a href="topics/variadic_macros.html">variadic macros</a></li>
</ul>
<!--
<EFBFBD> Copyright Housemarque Oy 2002
<EFBFBD> Copyright Paul Mensonides 2002
@ -24,6 +23,5 @@ 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>

View File

@ -0,0 +1,242 @@
<html>
<head>
<title>variadic_macros.html</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
<style>
u { font-weight: normal; text-decoration: none; }
</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__<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&nbsp; __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>

View File

@ -1,9 +1,10 @@
# /* **************************************************************************
# * *
# * (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)
# * (C) Copyright Paul Mensonides 2002-2011. *
# * (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) *
# * *
# ************************************************************************** */
#
@ -14,6 +15,7 @@
#
# include <boost/preprocessor/array/data.hpp>
# include <boost/preprocessor/array/elem.hpp>
# include <boost/preprocessor/array/enum.hpp>
# include <boost/preprocessor/array/insert.hpp>
# include <boost/preprocessor/array/pop_back.hpp>
# include <boost/preprocessor/array/pop_front.hpp>
@ -23,5 +25,8 @@
# include <boost/preprocessor/array/replace.hpp>
# include <boost/preprocessor/array/reverse.hpp>
# include <boost/preprocessor/array/size.hpp>
# include <boost/preprocessor/array/to_list.hpp>
# include <boost/preprocessor/array/to_seq.hpp>
# include <boost/preprocessor/array/to_tuple.hpp>
#
# endif

View File

@ -0,0 +1,33 @@
# /* **************************************************************************
# * *
# * (C) Copyright Edward Diener 2011. *
# * (C) Copyright Paul Mensonides 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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_ARRAY_ENUM_HPP
# define BOOST_PREPROCESSOR_ARRAY_ENUM_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/tuple/rem.hpp>
#
# /* BOOST_PP_ARRAY_ENUM */
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(BOOST_PP_TUPLE_REM_CTOR, array)
# define BOOST_PP_ARRAY_ENUM_I(m, args) BOOST_PP_ARRAY_ENUM_II(m, args)
# define BOOST_PP_ARRAY_ENUM_II(m, args) BOOST_PP_CAT(m ## args,)
# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(array)
# define BOOST_PP_ARRAY_ENUM_I(array) BOOST_PP_TUPLE_REM_CTOR ## array
# else
# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_TUPLE_REM_CTOR array
# endif
#
# endif

View File

@ -0,0 +1,33 @@
# /* **************************************************************************
# * *
# * (C) Copyright Edward Diener 2011. *
# * (C) Copyright Paul Mensonides 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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP
# define BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/tuple/to_list.hpp>
#
# /* BOOST_PP_ARRAY_TO_LIST */
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_ARRAY_TO_LIST_I(BOOST_PP_TUPLE_TO_LIST, array)
# define BOOST_PP_ARRAY_TO_LIST_I(m, args) BOOST_PP_ARRAY_TO_LIST_II(m, args)
# define BOOST_PP_ARRAY_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_ARRAY_TO_LIST_I(array)
# define BOOST_PP_ARRAY_TO_LIST_I(array) BOOST_PP_TUPLE_TO_LIST ## array
# else
# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_TUPLE_TO_LIST array
# endif
#
# endif

View File

@ -0,0 +1,33 @@
# /* **************************************************************************
# * *
# * (C) Copyright Edward Diener 2011. *
# * (C) Copyright Paul Mensonides 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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP
# define BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/tuple/to_seq.hpp>
#
# /* BOOST_PP_ARRAY_TO_SEQ */
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_ARRAY_TO_SEQ_I(BOOST_PP_TUPLE_TO_SEQ, array)
# define BOOST_PP_ARRAY_TO_SEQ_I(m, args) BOOST_PP_ARRAY_TO_SEQ_II(m, args)
# define BOOST_PP_ARRAY_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,)
# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_ARRAY_TO_SEQ_I(array)
# define BOOST_PP_ARRAY_TO_SEQ_I(array) BOOST_PP_TUPLE_TO_SEQ ## array
# else
# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_TUPLE_TO_SEQ array
# endif
#
# endif

View File

@ -0,0 +1,22 @@
# /* **************************************************************************
# * *
# * (C) Copyright Edward Diener 2011. *
# * (C) Copyright Paul Mensonides 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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
# define BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
#
# include <boost/preprocessor/array/data.hpp>
#
# /* BOOST_PP_ARRAY_TO_TUPLE */
#
# define BOOST_PP_ARRAY_TO_TUPLE BOOST_PP_ARRAY_DATA
#
# endif

View File

@ -28,8 +28,8 @@
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_CAT_I(a, b) a ## b
# else
# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(a ## b)
# define BOOST_PP_CAT_II(res) res
# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b)
# define BOOST_PP_CAT_II(p, res) res
# endif
#
# endif

View File

@ -1,9 +1,10 @@
# /* **************************************************************************
# * *
# * (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)
# * (C) Copyright Paul Mensonides 2002-2011. *
# * (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) *
# * *
# ************************************************************************** */
#
@ -67,4 +68,38 @@
# endif
# endif
#
# /* BOOST_PP_VARIADICS */
#
# if !defined BOOST_PP_VARIADICS
# /* variadic support explicitly disabled for all untested compilers */
# 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
# /* VC++ (C/C++) */
# elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
# 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
# /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
# define BOOST_PP_VARIADICS 1
# else
# define BOOST_PP_VARIADICS 0
# endif
# elif !BOOST_PP_VARIADICS + 1 < 2
# undef BOOST_PP_VARIADICS
# define BOOST_PP_VARIADICS 1
# if defined _MSC_VER && _MSC_VER >= 1400 && !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)
# define BOOST_PP_VARIADICS_MSVC 1
# endif
# else
# undef BOOST_PP_VARIADICS
# define BOOST_PP_VARIADICS 0
# endif
#
# endif

View File

@ -8,6 +8,7 @@
# */
#
# /* Revised by Paul Mensonides (2002) */
# /* Revised by Edward Diener (2011) */
#
# /* See http://www.boost.org for most recent version. */
#
@ -15,7 +16,7 @@
# define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
#
# define BOOST_PP_LIMIT_MAG 256
# define BOOST_PP_LIMIT_TUPLE 25
# define BOOST_PP_LIMIT_TUPLE 64
# define BOOST_PP_LIMIT_DIM 3
# define BOOST_PP_LIMIT_REPEAT 256
# define BOOST_PP_LIMIT_WHILE 256

View File

@ -1,9 +1,10 @@
# /* **************************************************************************
# * *
# * (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)
# * (C) Copyright Paul Mensonides 2002-2011. *
# * (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) *
# * *
# ************************************************************************** */
#
@ -17,5 +18,6 @@
# include <boost/preprocessor/facilities/expand.hpp>
# include <boost/preprocessor/facilities/identity.hpp>
# include <boost/preprocessor/facilities/intercept.hpp>
# include <boost/preprocessor/facilities/overload.hpp>
#
# endif

View File

@ -0,0 +1,25 @@
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 2011. *
# * (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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
# define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/variadic/size.hpp>
#
# /* BOOST_PP_OVERLOAD */
#
# if BOOST_PP_VARIADICS
# define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__))
# endif
#
# endif

View File

@ -17,7 +17,7 @@
# include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
# define BOOST_PP_ITERATION_FLAGS_1 0
# define BOOST_PP_ITERATION_FLAGS_1() 0
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_1)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
@ -26,9 +26,9 @@
# include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
# define BOOST_PP_ITERATION_FLAGS_1 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
# define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
# else
# define BOOST_PP_ITERATION_FLAGS_1 0
# define BOOST_PP_ITERATION_FLAGS_1() 0
# endif
# else
# error BOOST_PP_ERROR: depth #1 iteration boundaries or filename not defined

View File

@ -17,7 +17,7 @@
# include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>
# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
# define BOOST_PP_ITERATION_FLAGS_2 0
# define BOOST_PP_ITERATION_FLAGS_2() 0
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_2)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
@ -26,9 +26,9 @@
# include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
# define BOOST_PP_ITERATION_FLAGS_2 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
# define BOOST_PP_ITERATION_FLAGS_2() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
# else
# define BOOST_PP_ITERATION_FLAGS_2 0
# define BOOST_PP_ITERATION_FLAGS_2() 0
# endif
# else
# error BOOST_PP_ERROR: depth #2 iteration boundaries or filename not defined

View File

@ -17,7 +17,7 @@
# include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>
# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
# define BOOST_PP_ITERATION_FLAGS_3 0
# define BOOST_PP_ITERATION_FLAGS_3() 0
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_3)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
@ -26,9 +26,9 @@
# include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
# define BOOST_PP_ITERATION_FLAGS_3 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
# define BOOST_PP_ITERATION_FLAGS_3() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
# else
# define BOOST_PP_ITERATION_FLAGS_3 0
# define BOOST_PP_ITERATION_FLAGS_3() 0
# endif
# else
# error BOOST_PP_ERROR: depth #3 iteration boundaries or filename not defined

View File

@ -17,7 +17,7 @@
# include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
# define BOOST_PP_ITERATION_FLAGS_4 0
# define BOOST_PP_ITERATION_FLAGS_4() 0
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_4)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
@ -26,9 +26,9 @@
# include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
# define BOOST_PP_ITERATION_FLAGS_4 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
# define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
# else
# define BOOST_PP_ITERATION_FLAGS_4 0
# define BOOST_PP_ITERATION_FLAGS_4() 0
# endif
# else
# error BOOST_PP_ERROR: depth #4 iteration boundaries or filename not defined

View File

@ -17,7 +17,7 @@
# include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>
# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
# define BOOST_PP_ITERATION_FLAGS_5 0
# define BOOST_PP_ITERATION_FLAGS_5() 0
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_5)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
@ -26,9 +26,9 @@
# include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
# define BOOST_PP_ITERATION_FLAGS_5 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
# define BOOST_PP_ITERATION_FLAGS_5() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
# else
# define BOOST_PP_ITERATION_FLAGS_5 0
# define BOOST_PP_ITERATION_FLAGS_5() 0
# endif
# else
# error BOOST_PP_ERROR: depth #5 iteration boundaries or filename not defined

View File

@ -35,7 +35,7 @@
#
# /* BOOST_PP_ITERATION_FLAGS */
#
# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())())
#
# /* BOOST_PP_FRAME_ITERATION */
#
@ -48,7 +48,7 @@
#
# /* BOOST_PP_FRAME_FLAGS */
#
# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i))
# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)())
#
# /* BOOST_PP_RELATIVE_ITERATION */
#
@ -67,7 +67,7 @@
#
# /* BOOST_PP_RELATIVE_FLAGS */
#
# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_))
# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)())
#
# /* BOOST_PP_ITERATE */
#

View File

@ -1,9 +1,10 @@
# /* **************************************************************************
# * *
# * (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)
# * (C) Copyright Paul Mensonides 2002-2011. *
# * (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) *
# * *
# ************************************************************************** */
#
@ -30,5 +31,6 @@
# include <boost/preprocessor/slot.hpp>
# include <boost/preprocessor/stringize.hpp>
# include <boost/preprocessor/tuple.hpp>
# include <boost/preprocessor/variadic.hpp>
#
# endif

View File

@ -29,6 +29,8 @@
# include <boost/preprocessor/list/rest_n.hpp>
# include <boost/preprocessor/list/reverse.hpp>
# include <boost/preprocessor/list/size.hpp>
# include <boost/preprocessor/list/to_array.hpp>
# include <boost/preprocessor/list/to_seq.hpp>
# include <boost/preprocessor/list/to_tuple.hpp>
# include <boost/preprocessor/list/transform.hpp>
#

View File

@ -0,0 +1,123 @@
# /* **************************************************************************
# * *
# * (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)
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP
# define BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP
#
# include <boost/preprocessor/arithmetic/dec.hpp>
# include <boost/preprocessor/arithmetic/inc.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/control/while.hpp>
# include <boost/preprocessor/list/adt.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
# include <boost/preprocessor/tuple/rem.hpp>
#
# /* BOOST_PP_LIST_TO_ARRAY */
#
# define BOOST_PP_LIST_TO_ARRAY(list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE, list)
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \
BOOST_PP_LIST_TO_ARRAY_II(((BOOST_PP_TUPLE_REM_CTOR( \
3, \
w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
)))) \
/**/
# define BOOST_PP_LIST_TO_ARRAY_II(p) BOOST_PP_LIST_TO_ARRAY_II_B(p)
# define BOOST_PP_LIST_TO_ARRAY_II_B(p) BOOST_PP_LIST_TO_ARRAY_II_C ## p
# define BOOST_PP_LIST_TO_ARRAY_II_C(p) BOOST_PP_LIST_TO_ARRAY_III p
# else
# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \
BOOST_PP_LIST_TO_ARRAY_II(BOOST_PP_TUPLE_REM_CTOR( \
3, \
w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
)) \
/**/
# define BOOST_PP_LIST_TO_ARRAY_II(im) BOOST_PP_LIST_TO_ARRAY_III(im)
# endif
# if BOOST_PP_VARIADICS
# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV tuple)
# define BOOST_PP_LIST_TO_ARRAY_IV(_, ...) (__VA_ARGS__)
# else
# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV_ ## size tuple)
# define BOOST_PP_LIST_TO_ARRAY_IV_2(_, e0) (e0)
# define BOOST_PP_LIST_TO_ARRAY_IV_3(_, e0, e1) (e0, e1)
# define BOOST_PP_LIST_TO_ARRAY_IV_4(_, e0, e1, e2) (e0, e1, e2)
# define BOOST_PP_LIST_TO_ARRAY_IV_5(_, e0, e1, e2, e3) (e0, e1, e2, e3)
# define BOOST_PP_LIST_TO_ARRAY_IV_6(_, e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4)
# define BOOST_PP_LIST_TO_ARRAY_IV_7(_, e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5)
# define BOOST_PP_LIST_TO_ARRAY_IV_8(_, e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6)
# define BOOST_PP_LIST_TO_ARRAY_IV_9(_, e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7)
# define BOOST_PP_LIST_TO_ARRAY_IV_10(_, e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8)
# define BOOST_PP_LIST_TO_ARRAY_IV_11(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
# define BOOST_PP_LIST_TO_ARRAY_IV_12(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
# define BOOST_PP_LIST_TO_ARRAY_IV_13(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
# define BOOST_PP_LIST_TO_ARRAY_IV_14(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
# define BOOST_PP_LIST_TO_ARRAY_IV_15(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
# define BOOST_PP_LIST_TO_ARRAY_IV_16(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
# define BOOST_PP_LIST_TO_ARRAY_IV_17(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
# define BOOST_PP_LIST_TO_ARRAY_IV_18(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
# define BOOST_PP_LIST_TO_ARRAY_IV_19(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
# define BOOST_PP_LIST_TO_ARRAY_IV_20(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
# define BOOST_PP_LIST_TO_ARRAY_IV_21(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
# define BOOST_PP_LIST_TO_ARRAY_IV_22(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
# define BOOST_PP_LIST_TO_ARRAY_IV_23(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
# define BOOST_PP_LIST_TO_ARRAY_IV_24(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
# define BOOST_PP_LIST_TO_ARRAY_IV_25(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
# define BOOST_PP_LIST_TO_ARRAY_IV_26(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
# define BOOST_PP_LIST_TO_ARRAY_IV_27(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
# define BOOST_PP_LIST_TO_ARRAY_IV_28(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
# define BOOST_PP_LIST_TO_ARRAY_IV_29(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
# define BOOST_PP_LIST_TO_ARRAY_IV_30(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
# define BOOST_PP_LIST_TO_ARRAY_IV_31(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
# define BOOST_PP_LIST_TO_ARRAY_IV_32(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
# define BOOST_PP_LIST_TO_ARRAY_IV_33(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
# define BOOST_PP_LIST_TO_ARRAY_IV_34(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
# define BOOST_PP_LIST_TO_ARRAY_IV_35(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
# define BOOST_PP_LIST_TO_ARRAY_IV_36(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
# define BOOST_PP_LIST_TO_ARRAY_IV_37(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
# define BOOST_PP_LIST_TO_ARRAY_IV_38(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
# define BOOST_PP_LIST_TO_ARRAY_IV_39(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
# define BOOST_PP_LIST_TO_ARRAY_IV_40(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
# define BOOST_PP_LIST_TO_ARRAY_IV_41(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
# define BOOST_PP_LIST_TO_ARRAY_IV_42(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
# define BOOST_PP_LIST_TO_ARRAY_IV_43(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
# define BOOST_PP_LIST_TO_ARRAY_IV_44(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
# define BOOST_PP_LIST_TO_ARRAY_IV_45(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
# define BOOST_PP_LIST_TO_ARRAY_IV_46(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
# define BOOST_PP_LIST_TO_ARRAY_IV_47(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
# define BOOST_PP_LIST_TO_ARRAY_IV_48(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
# define BOOST_PP_LIST_TO_ARRAY_IV_49(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
# define BOOST_PP_LIST_TO_ARRAY_IV_50(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
# define BOOST_PP_LIST_TO_ARRAY_IV_51(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
# define BOOST_PP_LIST_TO_ARRAY_IV_52(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
# define BOOST_PP_LIST_TO_ARRAY_IV_53(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
# define BOOST_PP_LIST_TO_ARRAY_IV_54(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
# define BOOST_PP_LIST_TO_ARRAY_IV_55(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
# define BOOST_PP_LIST_TO_ARRAY_IV_56(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
# define BOOST_PP_LIST_TO_ARRAY_IV_57(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
# define BOOST_PP_LIST_TO_ARRAY_IV_58(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
# define BOOST_PP_LIST_TO_ARRAY_IV_59(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
# define BOOST_PP_LIST_TO_ARRAY_IV_60(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
# define BOOST_PP_LIST_TO_ARRAY_IV_61(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
# define BOOST_PP_LIST_TO_ARRAY_IV_62(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
# define BOOST_PP_LIST_TO_ARRAY_IV_63(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
# define BOOST_PP_LIST_TO_ARRAY_IV_64(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
# endif
# define BOOST_PP_LIST_TO_ARRAY_P(d, state) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(3, 0, state))
# define BOOST_PP_LIST_TO_ARRAY_O(d, state) BOOST_PP_LIST_TO_ARRAY_O_I state
# define BOOST_PP_LIST_TO_ARRAY_O_I(list, size, tuple) (BOOST_PP_LIST_REST(list), BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) tuple, BOOST_PP_LIST_FIRST(list)))
#
# /* BOOST_PP_LIST_TO_ARRAY_D */
#
# define BOOST_PP_LIST_TO_ARRAY_D(d, list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE_ ## d, list)
#
# endif /* BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP */

View File

@ -0,0 +1,32 @@
# /* **************************************************************************
# * *
# * (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)
# * *
# ************************************************************************** */
#
# /* Revised by Paul Mensonides (2011) */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP
# define BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP
#
# include <boost/preprocessor/list/for_each.hpp>
#
# /* BOOST_PP_LIST_TO_SEQ */
#
# define BOOST_PP_LIST_TO_SEQ(list) \
BOOST_PP_LIST_FOR_EACH(BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \
/**/
# define BOOST_PP_LIST_TO_SEQ_MACRO(r, data, elem) (elem)
#
# /* BOOST_PP_LIST_TO_SEQ_R */
#
# define BOOST_PP_LIST_TO_SEQ_R(r, list) \
BOOST_PP_LIST_FOR_EACH_R(r, BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \
/**/
#
# endif /* BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP */

View File

@ -1,9 +1,10 @@
# /* **************************************************************************
# * *
# * (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)
# * (C) Copyright Paul Mensonides 2002-2011. *
# * (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) *
# * *
# ************************************************************************** */
#
@ -35,6 +36,7 @@
# include <boost/preprocessor/seq/size.hpp>
# include <boost/preprocessor/seq/subseq.hpp>
# include <boost/preprocessor/seq/to_array.hpp>
# include <boost/preprocessor/seq/to_list.hpp>
# include <boost/preprocessor/seq/to_tuple.hpp>
# include <boost/preprocessor/seq/transform.hpp>
#

View File

@ -26,7 +26,7 @@
BOOST_PP_IF( \
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
BOOST_PP_SEQ_CAT_I, \
BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_1 \
BOOST_PP_SEQ_HEAD \
)(seq) \
/**/
# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
@ -39,10 +39,11 @@
# define BOOST_PP_SEQ_CAT_S(s, seq) \
BOOST_PP_IF( \
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
BOOST_PP_SEQ_CAT_S_I, \
BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_2 \
BOOST_PP_SEQ_CAT_S_I_A, \
BOOST_PP_SEQ_CAT_S_I_B \
)(s, seq) \
/**/
# define BOOST_PP_SEQ_CAT_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
# define BOOST_PP_SEQ_CAT_S_I_A(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
# define BOOST_PP_SEQ_CAT_S_I_B(s, seq) BOOST_PP_SEQ_HEAD(seq)
#
# endif

View File

@ -0,0 +1,40 @@
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 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) *
# * *
# ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
# define BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/tuple/eat.hpp>
# include <boost/preprocessor/tuple/rem.hpp>
#
# /* BOOST_PP_SEQ_BINARY_TRANSFORM */
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_I(, seq)
# define BOOST_PP_SEQ_BINARY_TRANSFORM_I(p, seq) BOOST_PP_SEQ_BINARY_TRANSFORM_II(p ## seq)
# define BOOST_PP_SEQ_BINARY_TRANSFORM_II(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq)
# define BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
# else
# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
# endif
# if BOOST_PP_VARIADICS
# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(...) (BOOST_PP_REM, __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_B
# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(...) (BOOST_PP_REM, __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_A
# else
# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_B
# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_A
# endif
# define BOOST_PP_SEQ_BINARY_TRANSFORM_A0 (BOOST_PP_EAT, ?)
# define BOOST_PP_SEQ_BINARY_TRANSFORM_B0 (BOOST_PP_EAT, ?)
#
# endif

Some files were not shown because too many files have changed in this diff Show More