PREPROCESSOR -> PP. WHILE documented.

[SVN r12162]
This commit is contained in:
Vesa Karvonen
2001-12-28 11:06:53 +00:00
parent 5991b00456
commit d8b52a3a42
90 changed files with 3441 additions and 1889 deletions

View File

@ -76,7 +76,7 @@ vec<T,n>&
<hr> <hr>
<p><strong><a name="UNUSED"></a><a href="tutorial.htm#UNUSED">EXAMPLE</a>:</strong> <p><strong><a name="UNUSED"></a><a href="tutorial.htm#UNUSED">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_EMPTY() as an unused parameter in Local Macro instantiations</p> Use BOOST_PP_EMPTY() as an unused parameter in Local Macro instantiations</p>
<blockquote> <blockquote>
<pre>template&lt;class base&gt; <pre>template&lt;class base&gt;
@ -100,7 +100,7 @@ const typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type
</blockquote> </blockquote>
<hr> <hr>
<p><b><a name="CAT"></a><a href="tutorial.htm#CAT">EXAMPLE:</a></b> Use BOOST_PREPROCESSOR_CAT instead of ## when necessary</p> <p><b><a name="CAT"></a><a href="tutorial.htm#CAT">EXAMPLE:</a></b> Use BOOST_PP_CAT instead of ## when necessary</p>
<blockquote> <blockquote>
<pre>enum <pre>enum
@ -113,7 +113,7 @@ typedef char
</pre> </pre>
</blockquote> </blockquote>
<hr> <hr>
<p><b><a name="STRINGIZE"></a><a href="tutorial.htm#STRINGIZE">EXAMPLE:</a></b> Use BOOST_PREPROCESSOR_STRINGIZE instead of # whenever necessary</p> <p><b><a name="STRINGIZE"></a><a href="tutorial.htm#STRINGIZE">EXAMPLE:</a></b> Use BOOST_PP_STRINGIZE instead of # whenever necessary</p>
<blockquote> <blockquote>
<pre>#pragma message("examples.cpp" "(" "20" ") : " "TBD!")</pre> <pre>#pragma message("examples.cpp" "(" "20" ") : " "TBD!")</pre>
</blockquote> </blockquote>
@ -121,12 +121,12 @@ typedef char
<p><strong><a name="ENUM_PARAMS"></a><a href="tutorial.htm#ENUM_PARAMS">EXAMPLE</a>:</strong> <p><strong><a name="ENUM_PARAMS"></a><a href="tutorial.htm#ENUM_PARAMS">EXAMPLE</a>:</strong>
Use:</p> Use:</p>
<ul> <ul>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS,</li> <li> BOOST_PP_ENUM_PARAMS,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT,</li> <li> BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS,</li> <li> BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS,</li>
<li> BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS, or</li> <li> BOOST_PP_ENUM_SHIFTED_PARAMS, or</li>
<li>BOOST_PREPROCESSOR_REPEAT, and</li> <li>BOOST_PP_REPEAT, and</li>
<li> BOOST_PREPROCESSOR_COMMA_IF</li> <li> BOOST_PP_COMMA_IF</li>
</ul> </ul>
<p>to avoid O(N) repetition on lists in general</p> <p>to avoid O(N) repetition on lists in general</p>
<blockquote> <blockquote>
@ -177,7 +177,7 @@ public:
<hr> <hr>
<p><strong><a name="Token Look-Up"></a><a href="tutorial.htm#Token Look-Up">EXAMPLE</a>:</strong> <p><strong><a name="Token Look-Up"></a><a href="tutorial.htm#Token Look-Up">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_REPEAT and a Token Look-Up Function to eliminate categorical Use BOOST_PP_REPEAT and a Token Look-Up Function to eliminate categorical
repetition</p> repetition</p>
<blockquote> <blockquote>
@ -238,7 +238,7 @@ catch (long double t)
<hr> <hr>
<p><strong><a name="2ND_REPEAT"></a><a href="tutorial.htm#2ND_REPEAT">EXAMPLE</a>:</strong> <p><strong><a name="2ND_REPEAT"></a><a href="tutorial.htm#2ND_REPEAT">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_REPEAT_2ND to avoid O(N*N) repetition</p> Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition</p>
<blockquote> <blockquote>
<pre>vec() <pre>vec()
@ -302,7 +302,7 @@ vec(T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7)
<p> <p>
<hr> <hr>
<p><a name="IF"></a><a href="tutorial.htm#IF"><b>EXAMPLE:</b></a> <p><a name="IF"></a><a href="tutorial.htm#IF"><b>EXAMPLE:</b></a>
Use BOOST_PREPROCESSOR_IF to implement special case for the first element</p> Use BOOST_PP_IF to implement special case for the first element</p>
<blockquote> <blockquote>
<pre>false == false; <pre>false == false;

View File

@ -1,40 +1,41 @@
BOOST_PREPROCESSOR_ADD BOOST_PP_ADD
BOOST_PREPROCESSOR_AND BOOST_PP_AND
BOOST_PREPROCESSOR_ASSERT_MSG BOOST_PP_ASSERT_MSG
BOOST_PREPROCESSOR_BOOL BOOST_PP_BOOL
BOOST_PREPROCESSOR_CAT BOOST_PP_CAT
BOOST_PREPROCESSOR_COMMA BOOST_PP_COMMA
BOOST_PREPROCESSOR_COMMA_IF BOOST_PP_COMMA_IF
BOOST_PREPROCESSOR_DEC BOOST_PP_DEC
BOOST_PREPROCESSOR_DIV BOOST_PP_DIV
BOOST_PREPROCESSOR_EMPTY BOOST_PP_EMPTY
BOOST_PREPROCESSOR_ENUM_PARAMS BOOST_PP_ENUM_PARAMS
BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS
BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS BOOST_PP_ENUM_SHIFTED_PARAMS
BOOST_PREPROCESSOR_EQUAL BOOST_PP_EQUAL
BOOST_PREPROCESSOR_GREATER BOOST_PP_GREATER
BOOST_PREPROCESSOR_GREATER_EQUAL BOOST_PP_GREATER_EQUAL
BOOST_PREPROCESSOR_IDENTITY BOOST_PP_IDENTITY
BOOST_PREPROCESSOR_IF BOOST_PP_IF
BOOST_PREPROCESSOR_INC BOOST_PP_INC
BOOST_PREPROCESSOR_LESS BOOST_PP_LESS
BOOST_PREPROCESSOR_LESS_EQUAL BOOST_PP_LESS_EQUAL
BOOST_PREPROCESSOR_LIMIT_DIM BOOST_PP_LIMIT_DIM
BOOST_PREPROCESSOR_LIMIT_MAG BOOST_PP_LIMIT_MAG
BOOST_PREPROCESSOR_LIMIT_TUPLE BOOST_PP_LIMIT_TUPLE
BOOST_PREPROCESSOR_MAX BOOST_PP_MAX
BOOST_PREPROCESSOR_MIN BOOST_PP_MIN
BOOST_PREPROCESSOR_MOD BOOST_PP_MOD
BOOST_PREPROCESSOR_MUL BOOST_PP_MUL
BOOST_PREPROCESSOR_NOR BOOST_PP_NOR
BOOST_PREPROCESSOR_NOT BOOST_PP_NOT
BOOST_PREPROCESSOR_NOT_EQUAL BOOST_PP_NOT_EQUAL
BOOST_PREPROCESSOR_OR BOOST_PP_OR
BOOST_PREPROCESSOR_REPEAT BOOST_PP_REPEAT
BOOST_PREPROCESSOR_REPEAT_2ND BOOST_PP_REPEAT_2ND
BOOST_PREPROCESSOR_REPEAT_3RD BOOST_PP_REPEAT_3RD
BOOST_PREPROCESSOR_STRINGIZE BOOST_PP_STRINGIZE
BOOST_PREPROCESSOR_SUB BOOST_PP_SUB
BOOST_PREPROCESSOR_TUPLE_ELEM BOOST_PP_TUPLE_ELEM
BOOST_PREPROCESSOR_XOR BOOST_PP_WHILE
BOOST_PP_XOR

View File

@ -2,20 +2,6 @@ If you have suggestions for additions or improvements to this library,
please e-mail such suggestions to boost@yahoogroups.com, but also cc please e-mail such suggestions to boost@yahoogroups.com, but also cc
them to vesa.karvonen@housemarque.fi. them to vesa.karvonen@housemarque.fi.
Issues: Current R&D:
- case studies - Faster arithmetic
- more isolated examples & less complex examples in tutorial - Data structures (cons list)
-> Please e-mail suggestions to vesa.karvonen@housemarque.fi
Resolved for now:
- explanations of tricky issues with macro replacement
- how macros are expanded, step-by-step examples
- delay of # and ##
- recursion prohibition
-> Just refer to the standard. It is not the purpose of the documentation to teach C++.
- arithmetic
- The preprocessor limitations seem to make it impossible to achieve both:
- O(1) _size_ implementation of ADD, SUB, MUL, DIV, ...
- ease of use
-> I have choosen ease of use and used O(N) size implementations

View File

@ -46,8 +46,8 @@ int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't
macro that does work on MWCW:</p> macro that does work on MWCW:</p>
<blockquote> <blockquote>
<pre>#define NUMBERED_EXPRESSION(n, x) \ <pre>#define NUMBERED_EXPRESSION(n, x) \
BOOST_PREPROCESSOR_CAT(BOOST_, \ BOOST_PP_CAT(BOOST_, \
BOOST_PREPROCESSOR_IF( \ BOOST_PP_IF( \
n \ n \
, PREPROCESSOR_IDENTITY(x##n) \ , PREPROCESSOR_IDENTITY(x##n) \
, PREPROCESSOR_EMPTY \ , PREPROCESSOR_EMPTY \
@ -74,11 +74,11 @@ typedef char yes_type;
#define IS_FUNCTION_HELPER(I,A)\ #define IS_FUNCTION_HELPER(I,A)\
template\ template\
&ltBOOST_PREPROCESSOR_ENUM_PARAMS(BOOST_PREPROCESSOR_INC(I),class P)&gt;\ &ltBOOST_PP_ENUM_PARAMS(BOOST_PP_INC(I),class P)&gt;\
yes_type is_function_helper(\ yes_type is_function_helper(\
P0 (*)(BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS(BOOST_PREPROCESSOR_INC(I),P))); P0 (*)(BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_INC(I),P)));
BOOST_PREPROCESSOR_REPEAT_2ND(BOOST_PREPROCESSOR_INC(IS_FUNCTION_HELPER_TEST_MAX),IS_FUNCTION_HELPER,A) BOOST_PP_REPEAT_2ND(BOOST_PP_INC(IS_FUNCTION_HELPER_TEST_MAX),IS_FUNCTION_HELPER,A)
#undef IS_FUNCTION_HELPER #undef IS_FUNCTION_HELPER
</pre></blockquote> </pre></blockquote>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>add.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>add.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="add_8hpp.html#a0">BOOST_PREPROCESSOR_ADD</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the sum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the sum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="add_8hpp.html#a1">BOOST_PREPROCESSOR_ADD</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic/add.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/add.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="add.hpp::BOOST_PREPROCESSOR_ADD"></a><p> <a name="a0" doxytag="add.hpp::BOOST_PP_ADD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_ADD</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the sum of X and Y.
<p>
For example, <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>(4,3) expands to 7 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="add.hpp::BOOST_PREPROCESSOR_ADD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the sum of X and Y. Obsolete. Use <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>and.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>and.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="and_8hpp.html#a0">BOOST_PREPROCESSOR_AND</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical AND of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical AND of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="and_8hpp.html#a1">BOOST_PREPROCESSOR_AND</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/and.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/and.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="and.hpp::BOOST_PREPROCESSOR_AND"></a><p> <a name="a0" doxytag="and.hpp::BOOST_PP_AND"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_AND</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the logical AND of the operands.
<p>
For example, <a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>(0,5) expands to 0 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="and.hpp::BOOST_PREPROCESSOR_AND"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the logical AND of the operands. Obsolete. Use <a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -11,6 +11,8 @@
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic.hpp">Click here to see the header.</a>
<p> <p>
Includes all arithmetic headers.
<p>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>assert_msg.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>assert_msg.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="assert__msg_8hpp.html#a0">BOOST_PREPROCESSOR_ASSERT_MSG</a>(C, MSG)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="assert__msg_8hpp.html#a0">BOOST_PP_ASSERT_MSG</a>(C, MSG)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to nothing if C != 0 and to MSG if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to nothing if C != 0 and to MSG if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="assert__msg_8hpp.html#a1">BOOST_PREPROCESSOR_ASSERT_MSG</a>(C, MSG)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="assert__msg_8hpp.html#a0">BOOST_PP_ASSERT_MSG</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/assert_msg.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/assert_msg.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="assert_msg.hpp::BOOST_PREPROCESSOR_ASSERT_MSG"></a><p> <a name="a0" doxytag="assert_msg.hpp::BOOST_PP_ASSERT_MSG"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_ASSERT_MSG</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">C, <tr>
<td></td>
<td></td>
<td class="md" nowrap>MSG&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to nothing if C != 0 and to MSG if C == 0.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="assert_msg.hpp::BOOST_PREPROCESSOR_ASSERT_MSG"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to nothing if C != 0 and to MSG if C == 0. Obsolete. Use <a class="el" href="assert__msg_8hpp.html#a0">BOOST_PP_ASSERT_MSG</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,45 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>bool.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>bool.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="bool_8hpp.html#a0">BOOST_PREPROCESSOR_BOOL</a>(X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="bool_8hpp.html#a0">BOOST_PP_BOOL</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 0 if X == 0 and 1 if X != 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 0 if X == 0 and 1 if X != 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="bool_8hpp.html#a1">BOOST_PREPROCESSOR_BOOL</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="bool_8hpp.html#a0">BOOST_PP_BOOL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/bool.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/bool.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="bool.hpp::BOOST_PREPROCESSOR_BOOL"></a><p> <a name="a0" doxytag="bool.hpp::BOOST_PP_BOOL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_BOOL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 0 if X == 0 and 1 if X != 0.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="bool.hpp::BOOST_PREPROCESSOR_BOOL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,7 +70,7 @@
<td> <td>
<p> <p>
Expands to 0 if X == 0 and 1 if X != 0. Obsolete. Use <a class="el" href="bool_8hpp.html#a0">BOOST_PP_BOOL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>cat.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>cat.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="cat_8hpp.html#a0">BOOST_PREPROCESSOR_CAT</a>(L, R)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>(L, R)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Delays the catenation of L and R.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Delays the catenation of L and R.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="cat_8hpp.html#a1">BOOST_PREPROCESSOR_CAT</a>(L, R)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/cat.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/cat.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="cat.hpp::BOOST_PREPROCESSOR_CAT"></a><p> <a name="a0" doxytag="cat.hpp::BOOST_PP_CAT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_CAT</td> <td class="md" nowrap valign="top"> #define BOOST_PP_CAT</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">L, <tr> <td class="md" nowrap valign="top">L, <tr>
<td></td> <td></td>
@ -49,11 +51,11 @@ Example:
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
#define STATIC_ASSERT(EXPR)\ #define STATIC_ASSERT(EXPR)\
enum\ enum\
{ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\ { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
};\ };\
typedef char\ typedef char\
BOOST_PREPROCESSOR_CAT(static_assert_,__LINE__)\ BOOST_PP_CAT(static_assert_,__LINE__)\
[ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__)\ [ BOOST_PP_CAT(static_check_,__LINE__)\
] ]
// ... // ...
@ -73,7 +75,7 @@ The above expands to:
]; ];
</pre></div></pre> </pre></div></pre>
<p> <p>
Using <a class="el" href="cat_8hpp.html#a0">BOOST_PREPROCESSOR_CAT</a>() above lets the preprocessor expand the __LINE__. If the above code would use the ## operator directly then __LINE__ would not be expanded and the above would expand to: Using <a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>() above lets the PP expand the __LINE__. If the above code would use the ## operator directly then __LINE__ would not be expanded and the above would expand to:
<p> <p>
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
enum enum
@ -86,6 +88,38 @@ Using <a class="el" href="cat_8hpp.html#a0">BOOST_PREPROCESSOR_CAT</a>() above l
</pre></div></pre> </td> </pre></div></pre> </td>
</tr> </tr>
</table> </table>
<a name="a1" doxytag="cat.hpp::BOOST_PREPROCESSOR_CAT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_CAT</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">L, <tr>
<td></td>
<td></td>
<td class="md" nowrap>R&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>().
<p>
</td>
</tr>
</table>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,45 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>comma.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>comma.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA</a>()</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma_8hpp.html#a0">BOOST_PP_COMMA</a>()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to a comma. Can be used with <a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>().</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to a comma. Can be used with <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>().</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma_8hpp.html#a1">BOOST_PREPROCESSOR_COMMA</a>()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="comma_8hpp.html#a0">BOOST_PP_COMMA</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comma.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comma.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="comma.hpp::BOOST_PREPROCESSOR_COMMA"></a><p> <a name="a0" doxytag="comma.hpp::BOOST_PP_COMMA"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_COMMA</td>
<td class="md" valign="top">(&nbsp;</td>
&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to a comma. Can be used with <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>().
<p>
See <a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>(). </td>
</tr>
</table>
<a name="a1" doxytag="comma.hpp::BOOST_PREPROCESSOR_COMMA"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,9 +70,9 @@
<td> <td>
<p> <p>
Expands to a comma. Can be used with <a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>(). Obsolete. Use <a class="el" href="comma_8hpp.html#a0">BOOST_PP_COMMA</a>().
<p> <p>
See <a class="el" href="comma__if_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA_IF</a>(). </td> </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,45 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>comma_if.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>comma_if.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma__if_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA_IF</a>(C)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>(C)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to a comma if C != 0 and nothing if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to a comma if C != 0 and nothing if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="comma__if_8hpp.html#a1">BOOST_PREPROCESSOR_COMMA_IF</a>(C)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comma_if.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comma_if.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="comma_if.hpp::BOOST_PREPROCESSOR_COMMA_IF"></a><p> <a name="a0" doxytag="comma_if.hpp::BOOST_PP_COMMA_IF"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_COMMA_IF</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">C&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to a comma if C != 0 and nothing if C == 0.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="comma_if.hpp::BOOST_PREPROCESSOR_COMMA_IF"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,7 +70,7 @@
<td> <td>
<p> <p>
Expands to a comma if C != 0 and nothing if C == 0. Obsolete. Use <a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -11,6 +11,8 @@
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison.hpp">Click here to see the header.</a>
<p> <p>
Includes all comparison headers.
<p>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,49 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>dec.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>dec.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="dec_8hpp.html#a0">BOOST_PREPROCESSOR_DEC</a>(X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Decrements X expanding to a single token.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Decrements X expanding to a single token.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="dec_8hpp.html#a1">BOOST_PREPROCESSOR_DEC</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/dec.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/dec.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="dec.hpp::BOOST_PREPROCESSOR_DEC"></a><p> <a name="a0" doxytag="dec.hpp::BOOST_PP_DEC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_DEC</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Decrements X expanding to a single token.
<p>
For example, <a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>(3) expands to 2 (a single token).
<p>
<a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>() uses saturation arithmetic. Decrementing 0 yeilds a 0.
<p>
Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are supported. </td>
</tr>
</table>
<a name="a1" doxytag="dec.hpp::BOOST_PREPROCESSOR_DEC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,11 +74,9 @@
<td> <td>
<p> <p>
Decrements X expanding to a single token. Obsolete. Use <a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>().
<p> <p>
<a class="el" href="dec_8hpp.html#a0">BOOST_PREPROCESSOR_DEC</a>() uses saturation arithmetic. Decrementing 0 yeilds a 0. </td>
<p>
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are supported. </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>div.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>div.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="div_8hpp.html#a0">BOOST_PREPROCESSOR_DIV</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the quotient of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the quotient of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="div_8hpp.html#a1">BOOST_PREPROCESSOR_DIV</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic/div.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/div.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="div.hpp::BOOST_PREPROCESSOR_DIV"></a><p> <a name="a0" doxytag="div.hpp::BOOST_PP_DIV"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_DIV</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the quotient of X and Y.
<p>
For example, <a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>(4,3) expands to 1 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="div.hpp::BOOST_PREPROCESSOR_DIV"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the quotient of X and Y. Obsolete. Use <a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>empty.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>empty.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="empty_8hpp.html#a0">BOOST_PREPROCESSOR_EMPTY</a>()</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="empty_8hpp.html#a0">BOOST_PP_EMPTY</a>()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to nothing. Used with <a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>() and as an unused parameter.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to nothing. Used with <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>() and as an unused parameter.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="empty_8hpp.html#a1">BOOST_PREPROCESSOR_EMPTY</a>()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="empty_8hpp.html#a0">BOOST_PP_EMPTY</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/empty.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/empty.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="empty.hpp::BOOST_PREPROCESSOR_EMPTY"></a><p> <a name="a0" doxytag="empty.hpp::BOOST_PP_EMPTY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_EMPTY</td> <td class="md" nowrap valign="top"> #define BOOST_PP_EMPTY</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
&nbsp;</td> &nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td> <td class="mdname1" valign="top" nowrap>&nbsp; </td>
@ -39,19 +41,19 @@
<td> <td>
<p> <p>
Expands to nothing. Used with <a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>() and as an unused parameter. Expands to nothing. Used with <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>() and as an unused parameter.
<p> <p>
Example usage as the implementation of <a class="el" href="comma__if_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA_IF</a>(C): Example usage as the implementation of <a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>(C):
<p> <p>
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
#define BOOST_PREPROCESSOR_COMMA_IF(C)\ #define BOOST_PP_COMMA_IF(C)\
BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)() BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
</pre></div></pre> </pre></div></pre>
<p> <p>
Example usage as an unused macro parameter: Example usage as an unused macro parameter:
<p> <p>
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
#define BOOST_PREPROCESSOR_DEF(CV)\ #define BOOST_PP_DEF(CV)\
template&lt;class base&gt; \ template&lt;class base&gt; \
CV typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&amp;\ CV typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&amp;\
implement_subscript_using_begin_subscript&lt;base&gt;::operator[]\ implement_subscript_using_begin_subscript&lt;base&gt;::operator[]\
@ -61,9 +63,9 @@ Example usage as an unused macro parameter:
{ return base::begin()[i]; \ { return base::begin()[i]; \
} }
BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY()) BOOST_PP_DEF(BOOST_PP_EMPTY())
BOOST_PREPROCESSOR_DEF(const) BOOST_PP_DEF(const)
#undef BOOST_PREPROCESSOR_DEF #undef BOOST_PP_DEF
</pre></div></pre> </pre></div></pre>
<p> <p>
The above expands to: The above expands to:
@ -91,6 +93,35 @@ The above expands to:
In case you wonder, the above code is part of a generalized layer for implementing the subscripting operators of a random access container. </td> In case you wonder, the above code is part of a generalized layer for implementing the subscripting operators of a random access container. </td>
</tr> </tr>
</table> </table>
<a name="a1" doxytag="empty.hpp::BOOST_PREPROCESSOR_EMPTY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_EMPTY</td>
<td class="md" valign="top">(&nbsp;</td>
&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="empty_8hpp.html#a0">BOOST_PP_EMPTY</a>().
<p>
</td>
</tr>
</table>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>enum_params.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>enum_params.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__params_8hpp.html#a0">BOOST_PREPROCESSOR_ENUM_PARAMS</a>(N, P)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__params_8hpp.html#a0">BOOST_PP_ENUM_PARAMS</a>(N, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__params_8hpp.html#a1">BOOST_PREPROCESSOR_ENUM_PARAMS</a>(N, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="enum__params_8hpp.html#a0">BOOST_PP_ENUM_PARAMS</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/enum_params.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="enum_params.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS"></a><p> <a name="a0" doxytag="enum_params.hpp::BOOST_PP_ENUM_PARAMS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS</td> <td class="md" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr> <td class="md" nowrap valign="top">N, <tr>
<td></td> <td></td>
@ -50,7 +52,39 @@ In other words, expands to the sequence:
P##0, P##1, ..., P##N-1 P##0, P##1, ..., P##N-1
</pre></div></pre> </pre></div></pre>
<p> <p>
NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(). </td> NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(). </td>
</tr>
</table>
<a name="a1" doxytag="enum_params.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="enum__params_8hpp.html#a0">BOOST_PP_ENUM_PARAMS</a>().
<p>
</td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>enum_shifted_params.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>enum_shifted_params.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__shifted__params_8hpp.html#a0">BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS</a>(N, P)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__shifted__params_8hpp.html#a0">BOOST_PP_ENUM_SHIFTED_PARAMS</a>(N, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of shifted actual parameters.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of shifted actual parameters.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum__shifted__params_8hpp.html#a1">BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS</a>(N, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="enum__shifted__params_8hpp.html#a0">BOOST_PP_ENUM_SHIFTED_PARAMS</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/enum_shifted_params.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_shifted_params.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="enum_shifted_params.hpp::BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS"></a><p> <a name="a0" doxytag="enum_shifted_params.hpp::BOOST_PP_ENUM_SHIFTED_PARAMS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS</td> <td class="md" nowrap valign="top"> #define BOOST_PP_ENUM_SHIFTED_PARAMS</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr> <td class="md" nowrap valign="top">N, <tr>
<td></td> <td></td>
@ -50,13 +52,45 @@ In other words, expands to the sequence:
P##1, P##2, ..., P##N-1 P##1, P##2, ..., P##N-1
</pre></div></pre> </pre></div></pre>
<p> <p>
NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(). NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>().
<p> <p>
RATIONALE:<ul> RATIONALE:<ul>
<li>This macro facilitates a typical usage of the library. Shifted parameter lists are common in template metaprograms. </ul> <li>This macro facilitates a typical usage of the library. Shifted parameter lists are common in template metaprograms. </ul>
</td> </td>
</tr> </tr>
</table> </table>
<a name="a1" doxytag="enum_shifted_params.hpp::BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="enum__shifted__params_8hpp.html#a0">BOOST_PP_ENUM_SHIFTED_PARAMS</a>().
<p>
</td>
</tr>
</table>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>enum_params_with_a_default.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>enum_params_with_a_default.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_a_default.htm#a0">BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT</a>(N, P, D)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_a_default.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a>(N, P, D)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters with a default.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters with a default.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_a_default.htm#a1">BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT</a>(N, P, D)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="enum_params_with_a_default.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/enum_params_with_a_default.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params_with_a_default.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="enum_params_with_a_default.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT"></a><p> <a name="a0" doxytag="enum_params_with_a_default.hpp::BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT</td> <td class="md" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr> <td class="md" nowrap valign="top">N, <tr>
<td></td> <td></td>
@ -53,7 +55,42 @@ In other words, expands to the sequence:
P##0 = D, P##1 = D, ..., P##N-1 = D P##0 = D, P##1 = D, ..., P##N-1 = D
</pre></div></pre> </pre></div></pre>
<p> <p>
NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(). </td> NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(). </td>
</tr>
</table>
<a name="a1" doxytag="enum_params_with_a_default.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P, <tr>
<td></td>
<td></td>
<td class="md" nowrap>D&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="enum_params_with_a_default.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a>().
<p>
</td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>enum_params_with_defaults.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>enum_params_with_defaults.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_defaults.htm#a0">BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS</a>(N, P, D)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_defaults.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a>(N, P, D)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters with defaults.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Generates a comma separated list of parameters with defaults.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="enum_params_with_defaults.htm#a1">BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS</a>(N, P, D)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="enum_params_with_defaults.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/enum_params_with_defaults.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params_with_defaults.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="enum_params_with_defaults.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS"></a><p> <a name="a0" doxytag="enum_params_with_defaults.hpp::BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS</td> <td class="md" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr> <td class="md" nowrap valign="top">N, <tr>
<td></td> <td></td>
@ -53,7 +55,42 @@ In other words, expands to the sequence:
P##0 = D##0, P##1 = D##1, ..., P##N-1 = D##N-1 P##0 = D##0, P##1 = D##1, ..., P##N-1 = D##N-1
</pre></div></pre> </pre></div></pre>
<p> <p>
NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(). </td> NOTE: The implementation uses <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(). </td>
</tr>
</table>
<a name="a1" doxytag="enum_params_with_defaults.hpp::BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P, <tr>
<td></td>
<td></td>
<td class="md" nowrap>D&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="enum_params_with_defaults.htm#a0">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a>().
<p>
</td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="equal_8hpp.html#a0">BOOST_PREPROCESSOR_EQUAL</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="equal_8hpp.html#a0">BOOST_PP_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X==Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X==Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="equal_8hpp.html#a1">BOOST_PREPROCESSOR_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="equal_8hpp.html#a0">BOOST_PP_EQUAL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/equal.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="equal.hpp::BOOST_PREPROCESSOR_EQUAL"></a><p> <a name="a0" doxytag="equal.hpp::BOOST_PP_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_EQUAL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X==Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="equal.hpp::BOOST_PREPROCESSOR_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X==Y and 0 otherwise. Obsolete. Use <a class="el" href="equal_8hpp.html#a0">BOOST_PP_EQUAL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -7,48 +7,88 @@
<center> <center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>Boost PREPROCESSOR library: Reference File Members</h1>Here is a list of all file members with links to the files they belong to:<ul> <hr><h1>Boost PREPROCESSOR library: Reference File Members</h1>Here is a list of all file members with links to the files they belong to:<ul>
<li>BOOST_PREPROCESSOR_ADD <li>BOOST_PP_ADD
: <a class="el" href="add_8hpp.html#a0">add.hpp</a><li>BOOST_PREPROCESSOR_AND : <a class="el" href="add_8hpp.html#a0">add.hpp</a><li>BOOST_PP_AND
: <a class="el" href="and_8hpp.html#a0">and.hpp</a><li>BOOST_PREPROCESSOR_ASSERT_MSG : <a class="el" href="and_8hpp.html#a0">and.hpp</a><li>BOOST_PP_ASSERT_MSG
: <a class="el" href="assert__msg_8hpp.html#a0">assert_msg.hpp</a><li>BOOST_PREPROCESSOR_BOOL : <a class="el" href="assert__msg_8hpp.html#a0">assert_msg.hpp</a><li>BOOST_PP_BOOL
: <a class="el" href="bool_8hpp.html#a0">bool.hpp</a><li>BOOST_PREPROCESSOR_CAT : <a class="el" href="bool_8hpp.html#a0">bool.hpp</a><li>BOOST_PP_CAT
: <a class="el" href="cat_8hpp.html#a0">cat.hpp</a><li>BOOST_PREPROCESSOR_COMMA : <a class="el" href="cat_8hpp.html#a0">cat.hpp</a><li>BOOST_PP_COMMA
: <a class="el" href="comma_8hpp.html#a0">comma.hpp</a><li>BOOST_PREPROCESSOR_COMMA_IF : <a class="el" href="comma_8hpp.html#a0">comma.hpp</a><li>BOOST_PP_COMMA_IF
: <a class="el" href="comma__if_8hpp.html#a0">comma_if.hpp</a><li>BOOST_PREPROCESSOR_DEC : <a class="el" href="comma__if_8hpp.html#a0">comma_if.hpp</a><li>BOOST_PP_DEC
: <a class="el" href="dec_8hpp.html#a0">dec.hpp</a><li>BOOST_PREPROCESSOR_DIV : <a class="el" href="dec_8hpp.html#a0">dec.hpp</a><li>BOOST_PP_DIV
: <a class="el" href="div_8hpp.html#a0">div.hpp</a><li>BOOST_PREPROCESSOR_EMPTY : <a class="el" href="div_8hpp.html#a0">div.hpp</a><li>BOOST_PP_EMPTY
: <a class="el" href="empty_8hpp.html#a0">empty.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS : <a class="el" href="empty_8hpp.html#a0">empty.hpp</a><li>BOOST_PP_ENUM_PARAMS
: <a class="el" href="enum__params_8hpp.html#a0">enum_params.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT : <a class="el" href="enum__params_8hpp.html#a0">enum_params.hpp</a><li>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
: <a class="el" href="enum_params_with_a_default.htm#a0">enum_params_with_a_default.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS : <a class="el" href="enum_params_with_a_default.htm#a0">enum_params_with_a_default.hpp</a><li>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS
: <a class="el" href="enum_params_with_defaults.htm#a0">enum_params_with_defaults.hpp</a><li>BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS : <a class="el" href="enum_params_with_defaults.htm#a0">enum_params_with_defaults.hpp</a><li>BOOST_PP_ENUM_SHIFTED_PARAMS
: <a class="el" href="enum__shifted__params_8hpp.html#a0">enum_shifted_params.hpp</a><li>BOOST_PREPROCESSOR_EQUAL : <a class="el" href="enum__shifted__params_8hpp.html#a0">enum_shifted_params.hpp</a><li>BOOST_PP_EQUAL
: <a class="el" href="equal_8hpp.html#a0">equal.hpp</a><li>BOOST_PREPROCESSOR_GREATER : <a class="el" href="equal_8hpp.html#a0">equal.hpp</a><li>BOOST_PP_GREATER
: <a class="el" href="greater_8hpp.html#a0">greater.hpp</a><li>BOOST_PREPROCESSOR_GREATER_EQUAL : <a class="el" href="greater_8hpp.html#a0">greater.hpp</a><li>BOOST_PP_GREATER_EQUAL
: <a class="el" href="greater__equal_8hpp.html#a0">greater_equal.hpp</a><li>BOOST_PREPROCESSOR_IDENTITY : <a class="el" href="greater__equal_8hpp.html#a0">greater_equal.hpp</a><li>BOOST_PP_IDENTITY
: <a class="el" href="identity_8hpp.html#a0">identity.hpp</a><li>BOOST_PREPROCESSOR_IF : <a class="el" href="identity_8hpp.html#a0">identity.hpp</a><li>BOOST_PP_IF
: <a class="el" href="if_8hpp.html#a0">if.hpp</a><li>BOOST_PREPROCESSOR_INC : <a class="el" href="if_8hpp.html#a0">if.hpp</a><li>BOOST_PP_INC
: <a class="el" href="inc_8hpp.html#a0">inc.hpp</a><li>BOOST_PREPROCESSOR_LESS : <a class="el" href="inc_8hpp.html#a0">inc.hpp</a><li>BOOST_PP_LESS
: <a class="el" href="less_8hpp.html#a0">less.hpp</a><li>BOOST_PREPROCESSOR_LESS_EQUAL : <a class="el" href="less_8hpp.html#a0">less.hpp</a><li>BOOST_PP_LESS_EQUAL
: <a class="el" href="less__equal_8hpp.html#a0">less_equal.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_DIM : <a class="el" href="less__equal_8hpp.html#a0">less_equal.hpp</a><li>BOOST_PP_LIMIT_DIM
: <a class="el" href="limits_8hpp.html#a0">limits.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_MAG : <a class="el" href="limits_8hpp.html#a0">limits.hpp</a><li>BOOST_PP_LIMIT_MAG
: <a class="el" href="limits_8hpp.html#a1">limits.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_TUPLE : <a class="el" href="limits_8hpp.html#a1">limits.hpp</a><li>BOOST_PP_LIMIT_TUPLE
: <a class="el" href="limits_8hpp.html#a2">limits.hpp</a><li>BOOST_PREPROCESSOR_MAX : <a class="el" href="limits_8hpp.html#a2">limits.hpp</a><li>BOOST_PP_MAX
: <a class="el" href="max_8hpp.html#a0">max.hpp</a><li>BOOST_PREPROCESSOR_MIN : <a class="el" href="max_8hpp.html#a0">max.hpp</a><li>BOOST_PP_MIN
: <a class="el" href="min_8hpp.html#a0">min.hpp</a><li>BOOST_PREPROCESSOR_MOD : <a class="el" href="min_8hpp.html#a0">min.hpp</a><li>BOOST_PP_MOD
: <a class="el" href="mod_8hpp.html#a0">mod.hpp</a><li>BOOST_PREPROCESSOR_MUL : <a class="el" href="mod_8hpp.html#a0">mod.hpp</a><li>BOOST_PP_MUL
: <a class="el" href="mul_8hpp.html#a0">mul.hpp</a><li>BOOST_PREPROCESSOR_NOR : <a class="el" href="mul_8hpp.html#a0">mul.hpp</a><li>BOOST_PP_NOR
: <a class="el" href="nor_8hpp.html#a0">nor.hpp</a><li>BOOST_PREPROCESSOR_NOT : <a class="el" href="nor_8hpp.html#a0">nor.hpp</a><li>BOOST_PP_NOT
: <a class="el" href="not_8hpp.html#a0">not.hpp</a><li>BOOST_PREPROCESSOR_NOT_EQUAL : <a class="el" href="not_8hpp.html#a0">not.hpp</a><li>BOOST_PP_NOT_EQUAL
: <a class="el" href="not__equal_8hpp.html#a0">not_equal.hpp</a><li>BOOST_PREPROCESSOR_OR : <a class="el" href="not__equal_8hpp.html#a0">not_equal.hpp</a><li>BOOST_PP_OR
: <a class="el" href="or_8hpp.html#a0">or.hpp</a><li>BOOST_PREPROCESSOR_REPEAT : <a class="el" href="or_8hpp.html#a0">or.hpp</a><li>BOOST_PP_REPEAT
: <a class="el" href="repeat_8hpp.html#a0">repeat.hpp</a><li>BOOST_PREPROCESSOR_REPEAT_2ND : <a class="el" href="repeat_8hpp.html#a0">repeat.hpp</a><li>BOOST_PP_REPEAT_2ND
: <a class="el" href="repeat__2nd_8hpp.html#a0">repeat_2nd.hpp</a><li>BOOST_PREPROCESSOR_REPEAT_3RD : <a class="el" href="repeat__2nd_8hpp.html#a0">repeat_2nd.hpp</a><li>BOOST_PP_REPEAT_3RD
: <a class="el" href="repeat__3rd_8hpp.html#a0">repeat_3rd.hpp</a><li>BOOST_PREPROCESSOR_STRINGIZE : <a class="el" href="repeat__3rd_8hpp.html#a0">repeat_3rd.hpp</a><li>BOOST_PP_STRINGIZE
: <a class="el" href="stringize_8hpp.html#a0">stringize.hpp</a><li>BOOST_PREPROCESSOR_SUB : <a class="el" href="stringize_8hpp.html#a0">stringize.hpp</a><li>BOOST_PP_SUB
: <a class="el" href="sub_8hpp.html#a0">sub.hpp</a><li>BOOST_PREPROCESSOR_TUPLE_ELEM : <a class="el" href="sub_8hpp.html#a0">sub.hpp</a><li>BOOST_PP_TUPLE_ELEM
: <a class="el" href="tuple_8hpp.html#a0">tuple.hpp</a><li>BOOST_PREPROCESSOR_WHILE : <a class="el" href="tuple_8hpp.html#a0">tuple.hpp</a><li>BOOST_PP_WHILE
: <a class="el" href="while_8hpp.html#a0">while.hpp</a><li>BOOST_PREPROCESSOR_XOR : <a class="el" href="while_8hpp.html#a0">while.hpp</a><li>BOOST_PP_XOR
: <a class="el" href="xor_8hpp.html#a0">xor.hpp</a></ul> : <a class="el" href="xor_8hpp.html#a0">xor.hpp</a><li>BOOST_PREPROCESSOR_ADD
: <a class="el" href="add_8hpp.html#a1">add.hpp</a><li>BOOST_PREPROCESSOR_AND
: <a class="el" href="and_8hpp.html#a1">and.hpp</a><li>BOOST_PREPROCESSOR_ASSERT_MSG
: <a class="el" href="assert__msg_8hpp.html#a1">assert_msg.hpp</a><li>BOOST_PREPROCESSOR_BOOL
: <a class="el" href="bool_8hpp.html#a1">bool.hpp</a><li>BOOST_PREPROCESSOR_CAT
: <a class="el" href="cat_8hpp.html#a1">cat.hpp</a><li>BOOST_PREPROCESSOR_COMMA
: <a class="el" href="comma_8hpp.html#a1">comma.hpp</a><li>BOOST_PREPROCESSOR_COMMA_IF
: <a class="el" href="comma__if_8hpp.html#a1">comma_if.hpp</a><li>BOOST_PREPROCESSOR_DEC
: <a class="el" href="dec_8hpp.html#a1">dec.hpp</a><li>BOOST_PREPROCESSOR_DIV
: <a class="el" href="div_8hpp.html#a1">div.hpp</a><li>BOOST_PREPROCESSOR_EMPTY
: <a class="el" href="empty_8hpp.html#a1">empty.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS
: <a class="el" href="enum__params_8hpp.html#a1">enum_params.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT
: <a class="el" href="enum_params_with_a_default.htm#a1">enum_params_with_a_default.hpp</a><li>BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS
: <a class="el" href="enum_params_with_defaults.htm#a1">enum_params_with_defaults.hpp</a><li>BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS
: <a class="el" href="enum__shifted__params_8hpp.html#a1">enum_shifted_params.hpp</a><li>BOOST_PREPROCESSOR_EQUAL
: <a class="el" href="equal_8hpp.html#a1">equal.hpp</a><li>BOOST_PREPROCESSOR_GREATER
: <a class="el" href="greater_8hpp.html#a1">greater.hpp</a><li>BOOST_PREPROCESSOR_GREATER_EQUAL
: <a class="el" href="greater__equal_8hpp.html#a1">greater_equal.hpp</a><li>BOOST_PREPROCESSOR_IDENTITY
: <a class="el" href="identity_8hpp.html#a1">identity.hpp</a><li>BOOST_PREPROCESSOR_IF
: <a class="el" href="if_8hpp.html#a1">if.hpp</a><li>BOOST_PREPROCESSOR_INC
: <a class="el" href="inc_8hpp.html#a1">inc.hpp</a><li>BOOST_PREPROCESSOR_LESS
: <a class="el" href="less_8hpp.html#a1">less.hpp</a><li>BOOST_PREPROCESSOR_LESS_EQUAL
: <a class="el" href="less__equal_8hpp.html#a1">less_equal.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_DIM
: <a class="el" href="limits_8hpp.html#a3">limits.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_MAG
: <a class="el" href="limits_8hpp.html#a4">limits.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_TUPLE
: <a class="el" href="limits_8hpp.html#a5">limits.hpp</a><li>BOOST_PREPROCESSOR_MAX
: <a class="el" href="max_8hpp.html#a1">max.hpp</a><li>BOOST_PREPROCESSOR_MIN
: <a class="el" href="min_8hpp.html#a1">min.hpp</a><li>BOOST_PREPROCESSOR_MOD
: <a class="el" href="mod_8hpp.html#a1">mod.hpp</a><li>BOOST_PREPROCESSOR_MUL
: <a class="el" href="mul_8hpp.html#a1">mul.hpp</a><li>BOOST_PREPROCESSOR_NOR
: <a class="el" href="nor_8hpp.html#a1">nor.hpp</a><li>BOOST_PREPROCESSOR_NOT
: <a class="el" href="not_8hpp.html#a1">not.hpp</a><li>BOOST_PREPROCESSOR_NOT_EQUAL
: <a class="el" href="not__equal_8hpp.html#a1">not_equal.hpp</a><li>BOOST_PREPROCESSOR_OR
: <a class="el" href="or_8hpp.html#a1">or.hpp</a><li>BOOST_PREPROCESSOR_REPEAT
: <a class="el" href="repeat_8hpp.html#a1">repeat.hpp</a><li>BOOST_PREPROCESSOR_REPEAT_2ND
: <a class="el" href="repeat__2nd_8hpp.html#a1">repeat_2nd.hpp</a><li>BOOST_PREPROCESSOR_REPEAT_3RD
: <a class="el" href="repeat__3rd_8hpp.html#a1">repeat_3rd.hpp</a><li>BOOST_PREPROCESSOR_STRINGIZE
: <a class="el" href="stringize_8hpp.html#a1">stringize.hpp</a><li>BOOST_PREPROCESSOR_SUB
: <a class="el" href="sub_8hpp.html#a1">sub.hpp</a><li>BOOST_PREPROCESSOR_TUPLE_ELEM
: <a class="el" href="tuple_8hpp.html#a1">tuple.hpp</a><li>BOOST_PREPROCESSOR_XOR
: <a class="el" href="xor_8hpp.html#a1">xor.hpp</a></ul>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>greater.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>greater.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater_8hpp.html#a0">BOOST_PREPROCESSOR_GREATER</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater_8hpp.html#a0">BOOST_PP_GREATER</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&gt;Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&gt;Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater_8hpp.html#a1">BOOST_PREPROCESSOR_GREATER</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="greater_8hpp.html#a0">BOOST_PP_GREATER</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/greater.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/greater.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="greater.hpp::BOOST_PREPROCESSOR_GREATER"></a><p> <a name="a0" doxytag="greater.hpp::BOOST_PP_GREATER"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_GREATER</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X&gt;Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="greater.hpp::BOOST_PREPROCESSOR_GREATER"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X&gt;Y and 0 otherwise. Obsolete. Use <a class="el" href="greater_8hpp.html#a0">BOOST_PP_GREATER</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>greater_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>greater_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater__equal_8hpp.html#a0">BOOST_PREPROCESSOR_GREATER_EQUAL</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater__equal_8hpp.html#a0">BOOST_PP_GREATER_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&gt;=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&gt;=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="greater__equal_8hpp.html#a1">BOOST_PREPROCESSOR_GREATER_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="greater__equal_8hpp.html#a0">BOOST_PP_GREATER_EQUAL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/greater_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/greater_equal.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="greater_equal.hpp::BOOST_PREPROCESSOR_GREATER_EQUAL"></a><p> <a name="a0" doxytag="greater_equal.hpp::BOOST_PP_GREATER_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_GREATER_EQUAL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X&gt;=Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="greater_equal.hpp::BOOST_PREPROCESSOR_GREATER_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X&gt;=Y and 0 otherwise. Obsolete. Use <a class="el" href="greater__equal_8hpp.html#a0">BOOST_PP_GREATER_EQUAL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,60 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>identity.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>identity.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="identity_8hpp.html#a0">BOOST_PREPROCESSOR_IDENTITY</a>(X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to X once invoked.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to X once invoked.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="identity_8hpp.html#a1">BOOST_PREPROCESSOR_IDENTITY</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/identity.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/identity.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="identity.hpp::BOOST_PREPROCESSOR_IDENTITY"></a><p> <a name="a0" doxytag="identity.hpp::BOOST_PP_IDENTITY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_IDENTITY</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to X once invoked.
<p>
Designed to be used with <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>(), when one of the clauses need to be invoked.
<p>
Example:
<p>
<pre><div class="fragment"><pre>
BOOST_PP_IDENTITY(X)()
// ^^ NOTE!
</pre></div></pre>
<p>
The above expands to:
<p>
<pre><div class="fragment"><pre>
X
</pre></div></pre>
<p>
NOTE: If <a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>() is not invoked, the expansion will not be usable. </td>
</tr>
</table>
<a name="a1" doxytag="identity.hpp::BOOST_PREPROCESSOR_IDENTITY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,24 +85,9 @@
<td> <td>
<p> <p>
Expands to X once invoked. Obsolete. Use <a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>().
<p> <p>
Designed to be used with <a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>(), when one of the clauses need to be invoked. </td>
<p>
Example:
<p>
<pre><div class="fragment"><pre>
BOOST_PREPROCESSOR_IDENTITY(X)()
// ^^ NOTE!
</pre></div></pre>
<p>
The above expands to:
<p>
<pre><div class="fragment"><pre>
X
</pre></div></pre>
<p>
NOTE: If <a class="el" href="identity_8hpp.html#a0">BOOST_PREPROCESSOR_IDENTITY</a>() is not invoked, the expansion will not be usable. </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,51 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>if.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>if.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>(C, T, E)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>(C, T, E)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to T if C != 0 and E if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to T if C != 0 and E if C == 0.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="if_8hpp.html#a1">BOOST_PREPROCESSOR_IF</a>(C, T, E)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/if.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/if.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="if.hpp::BOOST_PREPROCESSOR_IF"></a><p> <a name="a0" doxytag="if.hpp::BOOST_PP_IF"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_IF</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">C, <tr>
<td></td>
<td></td>
<td class="md" nowrap>T, <tr>
<td></td>
<td></td>
<td class="md" nowrap>E&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to T if C != 0 and E if C == 0.
<p>
<a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>() enables convenient generation of lists using <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(). </td>
</tr>
</table>
<a name="a1" doxytag="if.hpp::BOOST_PREPROCESSOR_IF"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -45,9 +82,9 @@
<td> <td>
<p> <p>
Expands to T if C != 0 and E if C == 0. Obsolete. Use <a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>().
<p> <p>
<a class="el" href="if_8hpp.html#a0">BOOST_PREPROCESSOR_IF</a>() enables convenient generation of lists using <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(). </td> </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,49 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>inc.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>inc.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="inc_8hpp.html#a0">BOOST_PREPROCESSOR_INC</a>(X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Increments X expanding to a single token.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Increments X expanding to a single token.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="inc_8hpp.html#a1">BOOST_PREPROCESSOR_INC</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/inc.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/inc.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="inc.hpp::BOOST_PREPROCESSOR_INC"></a><p> <a name="a0" doxytag="inc.hpp::BOOST_PP_INC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_INC</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Increments X expanding to a single token.
<p>
For example, <a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>(3) expands to 4 (a single token).
<p>
<a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>() uses saturation arithmetic. Incrementing a BOOST_PP_LIMIT_MAG yields a BOOST_PP_LIMIT_MAG.
<p>
Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are supported. </td>
</tr>
</table>
<a name="a1" doxytag="inc.hpp::BOOST_PREPROCESSOR_INC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,11 +74,9 @@
<td> <td>
<p> <p>
Increments X expanding to a single token. Obsolete. Use <a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>().
<p> <p>
<a class="el" href="inc_8hpp.html#a0">BOOST_PREPROCESSOR_INC</a>() uses saturation arithmetic. Incrementing a BOOST_PREPROCESSOR_LIMIT_MAG yields a BOOST_PREPROCESSOR_LIMIT_MAG. </td>
<p>
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are supported. </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>less.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>less.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less_8hpp.html#a0">BOOST_PREPROCESSOR_LESS</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less_8hpp.html#a0">BOOST_PP_LESS</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&lt;Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&lt;Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less_8hpp.html#a1">BOOST_PREPROCESSOR_LESS</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="less_8hpp.html#a0">BOOST_PP_LESS</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/less.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/less.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="less.hpp::BOOST_PREPROCESSOR_LESS"></a><p> <a name="a0" doxytag="less.hpp::BOOST_PP_LESS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_LESS</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X&lt;Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="less.hpp::BOOST_PREPROCESSOR_LESS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X&lt;Y and 0 otherwise. Obsolete. Use <a class="el" href="less_8hpp.html#a0">BOOST_PP_LESS</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>less_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>less_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less__equal_8hpp.html#a0">BOOST_PREPROCESSOR_LESS_EQUAL</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less__equal_8hpp.html#a0">BOOST_PP_LESS_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&lt;=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X&lt;=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="less__equal_8hpp.html#a1">BOOST_PREPROCESSOR_LESS_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="less__equal_8hpp.html#a0">BOOST_PP_LESS_EQUAL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/less_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/less_equal.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="less_equal.hpp::BOOST_PREPROCESSOR_LESS_EQUAL"></a><p> <a name="a0" doxytag="less_equal.hpp::BOOST_PP_LESS_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_LESS_EQUAL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X&lt;=Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="less_equal.hpp::BOOST_PREPROCESSOR_LESS_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X&lt;=Y and 0 otherwise. Obsolete. Use <a class="el" href="less__equal_8hpp.html#a0">BOOST_PP_LESS_EQUAL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,18 +8,100 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>limits.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>limits.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a0">BOOST_PREPROCESSOR_LIMIT_DIM</a></td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a0">BOOST_PP_LIMIT_DIM</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the number of dimensions of repeat supported by the library.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the number of dimensions of repeat supported by the library.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a1">BOOST_PREPROCESSOR_LIMIT_MAG</a></td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a1">BOOST_PP_LIMIT_MAG</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum straight numeric literal supported by the library.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum straight numeric literal supported by the library.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a2">BOOST_PREPROCESSOR_LIMIT_TUPLE</a></td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a2">BOOST_PP_LIMIT_TUPLE</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum tuple length supported by the library.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum tuple length supported by the library.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a3">BOOST_PREPROCESSOR_LIMIT_DIM</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use BOOST_PP_LIMIT_DIM.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a4">BOOST_PREPROCESSOR_LIMIT_MAG</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use BOOST_PP_LIMIT_MAG.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="limits_8hpp.html#a5">BOOST_PREPROCESSOR_LIMIT_TUPLE</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use BOOST_PP_LIMIT_TUPLE.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/limits.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/limits.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_DIM"></a><p> <a name="a0" doxytag="limits.hpp::BOOST_PP_LIMIT_DIM"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_LIMIT_DIM
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the number of dimensions of repeat supported by the library.
<p>
The repeat macros are named <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(), <a class="el" href="repeat__2nd_8hpp.html#a0">BOOST_PP_REPEAT_2ND</a>(), <a class="el" href="repeat__3rd_8hpp.html#a0">BOOST_PP_REPEAT_3RD</a>(), ... </td>
</tr>
</table>
<a name="a1" doxytag="limits.hpp::BOOST_PP_LIMIT_MAG"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_LIMIT_MAG
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the maximum straight numeric literal supported by the library.
<p>
This is also the limit of the repetition primitives (BOOST_PP_ENUM family and BOOST_PP_REPEAT family).
<p>
NOTES:<ul>
<li>Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are supported.<li>All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic.<li>The maximum repetition count supported by the library may not be reached due to compiler limitations. </ul>
</td>
</tr>
</table>
<a name="a2" doxytag="limits.hpp::BOOST_PP_LIMIT_TUPLE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_LIMIT_TUPLE
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the maximum tuple length supported by the library.
<p>
</td>
</tr>
</table>
<a name="a3" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_DIM"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -38,12 +120,12 @@
<td> <td>
<p> <p>
Expands to the number of dimensions of repeat supported by the library. Obsolete. Use BOOST_PP_LIMIT_DIM.
<p> <p>
</td> </td>
</tr> </tr>
</table> </table>
<a name="a1" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_MAG"></a><p> <a name="a4" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_MAG"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -62,14 +144,12 @@ Expands to the number of dimensions of repeat supported by the library.
<td> <td>
<p> <p>
Expands to the maximum straight numeric literal supported by the library. Obsolete. Use BOOST_PP_LIMIT_MAG.
<p> <p>
NOTES:<ul>
<li>Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are supported.<li>All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic.<li>The maximum repetition count supported by the library may not be reached due to compiler limitations. </ul>
</td> </td>
</tr> </tr>
</table> </table>
<a name="a2" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_TUPLE"></a><p> <a name="a5" doxytag="limits.hpp::BOOST_PREPROCESSOR_LIMIT_TUPLE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -88,7 +168,7 @@ NOTES:<ul>
<td> <td>
<p> <p>
Expands to the maximum tuple length supported by the library. Obsolete. Use BOOST_PP_LIMIT_TUPLE.
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -11,6 +11,8 @@
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical.hpp">Click here to see the header.</a>
<p> <p>
Includes all logical headers.
<p>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>max.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>max.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="max_8hpp.html#a0">BOOST_PREPROCESSOR_MAX</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the maximum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="max_8hpp.html#a1">BOOST_PREPROCESSOR_MAX</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/max.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/max.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="max.hpp::BOOST_PREPROCESSOR_MAX"></a><p> <a name="a0" doxytag="max.hpp::BOOST_PP_MAX"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_MAX</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the maximum of X and Y.
<p>
For example, <a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>(5,7) expands to 7 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="max.hpp::BOOST_PREPROCESSOR_MAX"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the maximum of X and Y. Obsolete. Use <a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>min.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>min.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="min_8hpp.html#a0">BOOST_PREPROCESSOR_MIN</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the minimum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the minimum of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="min_8hpp.html#a1">BOOST_PREPROCESSOR_MIN</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/min.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/min.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="min.hpp::BOOST_PREPROCESSOR_MIN"></a><p> <a name="a0" doxytag="min.hpp::BOOST_PP_MIN"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_MIN</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the minimum of X and Y.
<p>
For example, <a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>(5,7) expands to 5 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="min.hpp::BOOST_PREPROCESSOR_MIN"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the minimum of X and Y. Obsolete. Use <a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>mod.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>mod.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mod_8hpp.html#a0">BOOST_PREPROCESSOR_MOD</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the remainder of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the remainder of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mod_8hpp.html#a1">BOOST_PREPROCESSOR_MOD</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic/mod.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/mod.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="mod.hpp::BOOST_PREPROCESSOR_MOD"></a><p> <a name="a0" doxytag="mod.hpp::BOOST_PP_MOD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_MOD</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the remainder of X and Y.
<p>
For example, <a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>(4,3) expands to 1 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="mod.hpp::BOOST_PREPROCESSOR_MOD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the remainder of X and Y. Obsolete. Use <a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>mul.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>mul.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mul_8hpp.html#a0">BOOST_PREPROCESSOR_MUL</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the product of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the product of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="mul_8hpp.html#a1">BOOST_PREPROCESSOR_MUL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic/mul.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/mul.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="mul.hpp::BOOST_PREPROCESSOR_MUL"></a><p> <a name="a0" doxytag="mul.hpp::BOOST_PP_MUL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_MUL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the product of X and Y.
<p>
For example, <a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>(4,3) expands to 12 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="mul.hpp::BOOST_PREPROCESSOR_MUL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the product of X and Y. Obsolete. Use <a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>nor.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>nor.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="nor_8hpp.html#a0">BOOST_PREPROCESSOR_NOR</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="nor_8hpp.html#a0">BOOST_PP_NOR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical NEITHER OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical NEITHER OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="nor_8hpp.html#a1">BOOST_PREPROCESSOR_NOR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="nor_8hpp.html#a0">BOOST_PP_NOR</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/nor.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/nor.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="nor.hpp::BOOST_PREPROCESSOR_NOR"></a><p> <a name="a0" doxytag="nor.hpp::BOOST_PP_NOR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_NOR</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the logical NEITHER OR of the operands.
<p>
For example, <a class="el" href="nor_8hpp.html#a0">BOOST_PP_NOR</a>(0,5) expands to 0 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="nor.hpp::BOOST_PREPROCESSOR_NOR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the logical NEITHER OR of the operands. Obsolete. Use <a class="el" href="nor_8hpp.html#a0">BOOST_PP_NOR</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,45 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>not.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>not.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not_8hpp.html#a0">BOOST_PREPROCESSOR_NOT</a>(X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical NOT of the operand.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical NOT of the operand.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not_8hpp.html#a1">BOOST_PREPROCESSOR_NOT</a>(X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/not.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/not.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="not.hpp::BOOST_PREPROCESSOR_NOT"></a><p> <a name="a0" doxytag="not.hpp::BOOST_PP_NOT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_NOT</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the logical NOT of the operand.
<p>
For example, <a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>(0) expands to 1 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="not.hpp::BOOST_PREPROCESSOR_NOT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -39,7 +70,7 @@
<td> <td>
<p> <p>
Expands to the logical NOT of the operand. Obsolete. Use <a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>not_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>not_equal.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not__equal_8hpp.html#a0">BOOST_PREPROCESSOR_NOT_EQUAL</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not__equal_8hpp.html#a0">BOOST_PP_NOT_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X!=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to 1 if X!=Y and 0 otherwise.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="not__equal_8hpp.html#a1">BOOST_PREPROCESSOR_NOT_EQUAL</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="not__equal_8hpp.html#a0">BOOST_PP_NOT_EQUAL</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/comparison/not_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/not_equal.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="not_equal.hpp::BOOST_PREPROCESSOR_NOT_EQUAL"></a><p> <a name="a0" doxytag="not_equal.hpp::BOOST_PP_NOT_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_NOT_EQUAL</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to 1 if X!=Y and 0 otherwise.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="not_equal.hpp::BOOST_PREPROCESSOR_NOT_EQUAL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to 1 if X!=Y and 0 otherwise. Obsolete. Use <a class="el" href="not__equal_8hpp.html#a0">BOOST_PP_NOT_EQUAL</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>or.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>or.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="or_8hpp.html#a0">BOOST_PREPROCESSOR_OR</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="or_8hpp.html#a1">BOOST_PREPROCESSOR_OR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/or.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/or.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="or.hpp::BOOST_PREPROCESSOR_OR"></a><p> <a name="a0" doxytag="or.hpp::BOOST_PP_OR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_OR</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the logical OR of the operands.
<p>
For example, <a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>(0,2) expands to 1 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="or.hpp::BOOST_PREPROCESSOR_OR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the logical OR of the operands. Obsolete. Use <a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>repeat.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>repeat.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(N, M, P)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Repeats the macro M(I,P) for I = 0 to N-1.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Repeats the macro M(I,P) for I = 0 to N-1.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat_8hpp.html#a1">BOOST_PREPROCESSOR_REPEAT</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/repeat.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/repeat.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="repeat.hpp::BOOST_PREPROCESSOR_REPEAT"></a><p> <a name="a0" doxytag="repeat.hpp::BOOST_PP_REPEAT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_REPEAT</td> <td class="md" nowrap valign="top"> #define BOOST_PP_REPEAT</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr> <td class="md" nowrap valign="top">N, <tr>
<td></td> <td></td>
@ -53,7 +55,42 @@ In other words, expands to the sequence:
M(0,P) M(1,P) ... M(N-1,P) M(0,P) M(1,P) ... M(N-1,P)
</pre></div></pre> </pre></div></pre>
<p> <p>
See BOOST_PREPROCESSOR_LIMIT_MAG. </td> See BOOST_PP_LIMIT_MAG. </td>
</tr>
</table>
<a name="a1" doxytag="repeat.hpp::BOOST_PREPROCESSOR_REPEAT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_REPEAT</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>M, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>().
<p>
</td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,14 +8,51 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>repeat_2nd.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>repeat_2nd.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__2nd_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT_2ND</a>(N, M, P)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__2nd_8hpp.html#a0">BOOST_PP_REPEAT_2ND</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(), but implemented independently.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(), but implemented independently.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__2nd_8hpp.html#a1">BOOST_PREPROCESSOR_REPEAT_2ND</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="repeat__2nd_8hpp.html#a0">BOOST_PP_REPEAT_2ND</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/repeat_2nd.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/repeat_2nd.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="repeat_2nd.hpp::BOOST_PREPROCESSOR_REPEAT_2ND"></a><p> <a name="a0" doxytag="repeat_2nd.hpp::BOOST_PP_REPEAT_2ND"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_REPEAT_2ND</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>M, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(), but implemented independently.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="repeat_2nd.hpp::BOOST_PREPROCESSOR_REPEAT_2ND"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -45,7 +82,7 @@
<td> <td>
<p> <p>
Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(), but implemented independently. Obsolete. Use <a class="el" href="repeat__2nd_8hpp.html#a0">BOOST_PP_REPEAT_2ND</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,51 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>repeat_3rd.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>repeat_3rd.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__3rd_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT_3RD</a>(N, M, P)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__3rd_8hpp.html#a0">BOOST_PP_REPEAT_3RD</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(), but implemented independently.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(), but implemented independently.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="repeat__3rd_8hpp.html#a1">BOOST_PREPROCESSOR_REPEAT_3RD</a>(N, M, P)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="repeat__3rd_8hpp.html#a0">BOOST_PP_REPEAT_3RD</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/repeat_3rd.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/repeat_3rd.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="repeat_3rd.hpp::BOOST_PREPROCESSOR_REPEAT_3RD"></a><p> <a name="a0" doxytag="repeat_3rd.hpp::BOOST_PP_REPEAT_3RD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_REPEAT_3RD</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>M, <tr>
<td></td>
<td></td>
<td class="md" nowrap>P&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(), but implemented independently.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="repeat_3rd.hpp::BOOST_PREPROCESSOR_REPEAT_3RD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -45,7 +82,7 @@
<td> <td>
<p> <p>
Same as <a class="el" href="repeat_8hpp.html#a0">BOOST_PREPROCESSOR_REPEAT</a>(), but implemented independently. Obsolete. Use <a class="el" href="repeat__3rd_8hpp.html#a0">BOOST_PP_REPEAT_3RD</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,20 +8,22 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>stringize.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>stringize.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="stringize_8hpp.html#a0">BOOST_PREPROCESSOR_STRINGIZE</a>(E)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>(E)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Delays the stringization of E.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Delays the stringization of E.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="stringize_8hpp.html#a1">BOOST_PREPROCESSOR_STRINGIZE</a>(E)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/stringize.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/stringize.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="stringize.hpp::BOOST_PREPROCESSOR_STRINGIZE"></a><p> <a name="a0" doxytag="stringize.hpp::BOOST_PP_STRINGIZE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_STRINGIZE</td> <td class="md" nowrap valign="top"> #define BOOST_PP_STRINGIZE</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">E&nbsp;</td> <td class="md" nowrap valign="top">E&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td> <td class="mdname1" valign="top" nowrap>&nbsp; </td>
@ -45,7 +47,7 @@ Example:
<p> <p>
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
#define NOTE(STR)\ #define NOTE(STR)\
message(__FILE__ "(" BOOST_PREPROCESSOR_STRINGIZE(__LINE__) ") : " STR) message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
// ... // ...
@ -58,13 +60,42 @@ The above expands to:
#pragma message("examples.cpp" "(" "20" ") : " "TBD!") #pragma message("examples.cpp" "(" "20" ") : " "TBD!")
</pre></div></pre> </pre></div></pre>
<p> <p>
The use of <a class="el" href="stringize_8hpp.html#a0">BOOST_PREPROCESSOR_STRINGIZE</a>() above lets the preprocessor expand the __LINE__ before stringizing it. If # would be used directly, the code would expand to: The use of <a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>() above lets the PP expand the __LINE__ before stringizing it. If # would be used directly, the code would expand to:
<p> <p>
<pre><div class="fragment"><pre> <pre><div class="fragment"><pre>
#pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!") #pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!")
</pre></div></pre> </td> </pre></div></pre> </td>
</tr> </tr>
</table> </table>
<a name="a1" doxytag="stringize.hpp::BOOST_PREPROCESSOR_STRINGIZE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_STRINGIZE</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">E&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Obsolete. Use <a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>().
<p>
</td>
</tr>
</table>
<hr> <hr>
<p><EFBFBD> Copyright Housemarque Oy 2001</p> <p><EFBFBD> Copyright Housemarque Oy 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted <p>Permission to copy, use, modify, sell and distribute this document is granted

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>sub.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>sub.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="sub_8hpp.html#a0">BOOST_PREPROCESSOR_SUB</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="sub_8hpp.html#a0">BOOST_PP_SUB</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the difference of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the difference of X and Y.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="sub_8hpp.html#a1">BOOST_PREPROCESSOR_SUB</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="sub_8hpp.html#a0">BOOST_PP_SUB</a>(X,Y).</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/arithmetic/sub.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/sub.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="sub.hpp::BOOST_PREPROCESSOR_SUB"></a><p> <a name="a0" doxytag="sub.hpp::BOOST_PP_SUB"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_SUB</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the difference of X and Y.
<p>
For example, <a class="el" href="sub_8hpp.html#a0">BOOST_PP_SUB</a>(4,3) expands to 1 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="sub.hpp::BOOST_PREPROCESSOR_SUB"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the difference of X and Y. Obsolete. Use <a class="el" href="sub_8hpp.html#a0">BOOST_PP_SUB</a>(X,Y).
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -8,14 +8,73 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>tuple.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>tuple.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="tuple_8hpp.html#a0">BOOST_PREPROCESSOR_TUPLE_ELEM</a>(N, I, T)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="tuple_8hpp.html#a0">BOOST_PP_TUPLE_ELEM</a>(N, I, T)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the I:th element of an N-tuple.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the I:th element of an N-tuple.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="tuple_8hpp.html#a1">BOOST_PREPROCESSOR_TUPLE_ELEM</a>(N, I, T)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="tuple_8hpp.html#a0">BOOST_PP_TUPLE_ELEM</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/tuple.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/tuple.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="tuple.hpp::BOOST_PREPROCESSOR_TUPLE_ELEM"></a><p> <a name="a0" doxytag="tuple.hpp::BOOST_PP_TUPLE_ELEM"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_TUPLE_ELEM</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">N, <tr>
<td></td>
<td></td>
<td class="md" nowrap>I, <tr>
<td></td>
<td></td>
<td class="md" nowrap>T&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the I:th element of an N-tuple.
<p>
Tuples can be used for representing structured data.
<p>
Examples of tuples:
<p>
<pre><div class="fragment"><pre>
2-tuple: (A, B)
3-tuple: (1, 2, 3)
4-tuple: (A B C, D, EF, 34)
</pre></div></pre>
<p>
Example:
<p>
<pre><div class="fragment"><pre>
BOOST_PP_TUPLE_ELEM(2,1,(A,B))
</pre></div></pre>
<p>
The above expands to:
<p>
<pre><div class="fragment"><pre>
B
</pre></div></pre>
<p>
See also BOOST_PP_LIMIT_TUPLE. </td>
</tr>
</table>
<a name="a1" doxytag="tuple.hpp::BOOST_PREPROCESSOR_TUPLE_ELEM"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -45,27 +104,9 @@
<td> <td>
<p> <p>
Expands to the I:th element of an N-tuple. Obsolete. Use <a class="el" href="tuple_8hpp.html#a0">BOOST_PP_TUPLE_ELEM</a>().
<p> <p>
Examples of tuples: </td>
<p>
<pre><div class="fragment"><pre>
2-tuple: (A, B)
3-tuple: (1, 2, 3)
4-tuple: (A B C, D, EF, 34)
</pre></div></pre>
<p>
Example:
<p>
<pre><div class="fragment"><pre>
BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,(A,B))
</pre></div></pre>
<p>
The above expands to:
<p>
<pre><div class="fragment"><pre>
B
</pre></div></pre> </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -8,20 +8,20 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>while.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>while.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="while_8hpp.html#a0">BOOST_PREPROCESSOR_WHILE</a>(C, F, X)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="while_8hpp.html#a0">BOOST_PP_WHILE</a>(C, F, X)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>CURRENTLY THIS FEATURE IS FOR INTERNAL USE ONLY!</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Iterates F(D,X) while C(D,X) is true.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/while.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/while.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="while.hpp::BOOST_PREPROCESSOR_WHILE"></a><p> <a name="a0" doxytag="while.hpp::BOOST_PP_WHILE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
<table cellpadding="0" cellspacing="0" border="0"> <table cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td class="md" nowrap valign="top"> #define BOOST_PREPROCESSOR_WHILE</td> <td class="md" nowrap valign="top"> #define BOOST_PP_WHILE</td>
<td class="md" valign="top">(&nbsp;</td> <td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">C, <tr> <td class="md" nowrap valign="top">C, <tr>
<td></td> <td></td>
@ -45,10 +45,84 @@
<td> <td>
<p> <p>
CURRENTLY THIS FEATURE IS FOR INTERNAL USE ONLY! Iterates F(D,X) while C(D,X) is true.
<p>
<h3>Legend</h3>
<p>
<b>X</b> is the current state of iteration. The state is usually a tuple.
<p>
<b>C</b> is the condition for iteration. It must expand to a decimal integer literal.
<p>
<b>F</b> is the iterated function. Note that if the state is a tuple, then F(D,X) usually expands to a tuple of the same number of elements.
<p>
<b>D</b> is the recursion depth and should only be used as a parameter to other functions implemented using <a class="el" href="while_8hpp.html#a0">BOOST_PP_WHILE</a>(). Such functions include <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>() and other arithmetic operations. For each function implemented using <a class="el" href="while_8hpp.html#a0">BOOST_PP_WHILE</a>(), there is a version of the function, distinguished by the _D suffix (e.g. BOOST_PP_ADD_D()), that accepts an additional recursion depth as the first parameter. This technique is necessary to avoid recursively expanding the same macro again, which is not permitted by the C/C++ preprocessor.
<p>
NOTE: The value of the D parameter may exceed BOOST_PP_LIMIT_MAG.
<p>
<h3>Usage</h3>
<p>
Using <a class="el" href="while_8hpp.html#a0">BOOST_PP_WHILE</a>() is a bit tricky. This is due to the C/C++ preprocessor limitations. It is recommended to take a look at the implementations of the various PREPROCESSOR library primitives such as <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>() for additional examples.
<p>
Here is a trivial example that simply counts down from N to 0 ultimately expanding to a 0:
<p>
<pre><div class="fragment"><pre>
#define COUNT_DOWN(N) BOOST_PP_WHILE(COUNT_DOWN_C,COUNT_DOWN_F,N)
// Above is the function we are implementing using BOOST_PP_WHILE().
#define COUNT_DOWN_C(D,N) N
// Above is the Condition. It expands to the current N.
#define COUNT_DOWN_F(D,N) BOOST_PP_DEC(N)
// Above is the iteration Function. It decrements N.
COUNT_DOWN(50)
// The above expands to 0.
</pre></div></pre>
<p>
For a more complex example, let's take a look at an implementation of <a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>().
<p>
<pre><div class="fragment"><pre>
#define BOOST_PP_MUL(X,Y) BOOST_PP_MUL_D(0,X,Y)
// Since the function is implemented using WHILE, the actual implementation
// takes a depth as a parameter so that it can be called inside a WHILE.
// The above easy-to-use version simply uses 0 as the depth and can not be
// called inside a WHILE.
#define BOOST_PP_MUL_D(D,X,Y)\
BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_MUL_C,BOOST_PP_MUL_F,(0,X,Y)))
// ^^^ ^^^ ^^ ^^ ^^^^^^^
// #1 #2 #3 #3 #1
//
// #1) The state is a 3-tuple. After the iteration is finished, the first
// element of the tuple is the result.
//
// #2) The WHILE primitive is "invoked" directly. BOOST_PP_WHILE(D,...) can't
// be used because it would not be expanded by the C/C++ preprocessor.
//
// #3) ???_C is the condition and ???_F is the iteration function.
#define BOOST_PP_MUL_C(D,P)\
BOOST_PP_TUPLE_ELEM(3,2,P)
// Iteration is finished when the counter reaches 0.
#define BOOST_PP_MUL_F(D,P)\
( BOOST_PP_ADD_D(D,BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P))\
, BOOST_PP_TUPLE_ELEM(3,1,P)\
, BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,P))\
)
// ( The result is increased by the multiplier.
// , The multiplier is retained without change.
// , The counter is decreased.
// )
</pre></div></pre>
<p>
<h3>Implementation</h3>
<p> <p>
RATIONALE:<ul> RATIONALE:<ul>
<li>The maximum iteration depth is 2*BOOST_PREPROCESSOR_LIMIT_MAG+1 to make it theoretically possible to compute BOOST_PREPROCESSOR_LIMIT_MAG^2. </ul> <li>The maximum iteration depth is greater than 2*BOOST_PP_LIMIT_MAG to make it possible to compute N*N functions. </ul>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -8,14 +8,48 @@
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center> <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>xor.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0> <hr><h1>xor.hpp File Reference</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="xor_8hpp.html#a0">BOOST_PREPROCESSOR_XOR</a>(X, Y)</td></tr> <tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="xor_8hpp.html#a0">BOOST_PP_XOR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical EXCLUSIVE OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td>&nbsp;</td><td><font size=-1><em>Expands to the logical EXCLUSIVE OR of the operands.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="xor_8hpp.html#a1">BOOST_PREPROCESSOR_XOR</a>(X, Y)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Obsolete. Use <a class="el" href="xor_8hpp.html#a0">BOOST_PP_XOR</a>().</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
</table> </table>
<hr><a name="_details"></a><h2>Detailed Description</h2> <hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="../../../../boost/preprocessor/logical/xor.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/xor.hpp">Click here to see the header.</a>
<p> <p>
<hr><h2>Define Documentation</h2> <hr><h2>Define Documentation</h2>
<a name="a0" doxytag="xor.hpp::BOOST_PREPROCESSOR_XOR"></a><p> <a name="a0" doxytag="xor.hpp::BOOST_PP_XOR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define BOOST_PP_XOR</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">X, <tr>
<td></td>
<td></td>
<td class="md" nowrap>Y&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Expands to the logical EXCLUSIVE OR of the operands.
<p>
For example, <a class="el" href="xor_8hpp.html#a0">BOOST_PP_XOR</a>(1,2) expands to 0 (a single token). </td>
</tr>
</table>
<a name="a1" doxytag="xor.hpp::BOOST_PREPROCESSOR_XOR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0"> <table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr> <tr>
<td class="md"> <td class="md">
@ -42,7 +76,7 @@
<td> <td>
<p> <p>
Expands to the logical EXCLUSIVE OR of the operands. Obsolete. Use <a class="el" href="xor_8hpp.html#a0">BOOST_PP_XOR</a>().
<p> <p>
</td> </td>
</tr> </tr>

View File

@ -15,15 +15,15 @@
<li><a href="#Techniques">Preprocessor Metaprogramming Techniques</a> <li><a href="#Techniques">Preprocessor Metaprogramming Techniques</a>
<ul> <ul>
<li><a href="#Local Macro">Use a Local Macro to avoid small scale repetition</a></li> <li><a href="#Local Macro">Use a Local Macro to avoid small scale repetition</a></li>
<li><a href="#UNUSED">Use BOOST_PREPROCESSOR_EMPTY() as an unused parameter in Local Macro <li><a href="#UNUSED">Use BOOST_PP_EMPTY() as an unused parameter in Local Macro
instantiations</a></li> instantiations</a></li>
<li><a href="#CAT">Use BOOST_PREPROCESSOR_CAT instead of ## when necessary</a></li> <li><a href="#CAT">Use BOOST_PP_CAT instead of ## when necessary</a></li>
<li><a href="#STRINGIZE">Use BOOST_PREPROCESSOR_STRINGIZE instead of # whenever necessary</a></li> <li><a href="#STRINGIZE">Use BOOST_PP_STRINGIZE instead of # whenever necessary</a></li>
<li><a href="#ENUM_PARAMS">Avoid O(N) repetition on lists in general</a></li> <li><a href="#ENUM_PARAMS">Avoid O(N) repetition on lists in general</a></li>
<li><a href="#Conditional Define">Use a Conditional Define to enable user configuration of code repetition</a></li> <li><a href="#Conditional Define">Use a Conditional Define to enable user configuration of code repetition</a></li>
<li><a href="#Token Look-Up">Use Token Look-Up Function to eliminate categorical repetition</a></li> <li><a href="#Token Look-Up">Use Token Look-Up Function to eliminate categorical repetition</a></li>
<li><a href="#2ND_REPEAT">Use BOOST_PREPROCESSOR_REPEAT_2ND to avoid O(N*N) repetition</a></li> <li><a href="#2ND_REPEAT">Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition</a></li>
<li><a href="#IF">Use BOOST_PREPROCESSOR_IF to implement special case for the first element</a> <li><a href="#IF">Use BOOST_PP_IF to implement special case for the first element</a>
<li><a href="#Arithmetic">Use arithmetic, logical and comparison operations when necessary</a> <li><a href="#Arithmetic">Use arithmetic, logical and comparison operations when necessary</a>
</li> </li>
</ul> </ul>
@ -99,10 +99,10 @@ yes_type is_function_tester(R (*)(A0, A1, A2));
<blockquote> <blockquote>
<pre>#define IS_FUNCTION_TESTER(N,_)\ <pre>#define IS_FUNCTION_TESTER(N,_)\
template&lt;class R BOOST_PREPROCESSOR_COMMA_IF(N) BOOST_PREPROCESSOR_ENUM_PARAMS(N, class A)&gt;\ template&lt;class R BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class A)&gt;\
yes_type is_function_tester(R (*)(BOOST_PREPROCESSOR_ENUM_PARAMS(N,A))); yes_type is_function_tester(R (*)(BOOST_PP_ENUM_PARAMS(N,A)));
BOOST_PREPROCESSOR_REPEAT_2ND(BOOST_PREPROCESSOR_INC(MAX_IS_FUNCTION_TESTER_PARAMS),IS_FUNCTION_TESTER,_) BOOST_PP_REPEAT_2ND(BOOST_PP_INC(MAX_IS_FUNCTION_TESTER_PARAMS),IS_FUNCTION_TESTER,_)
#undef IS_FUNCTION_TESTER #undef IS_FUNCTION_TESTER
</pre> </pre>
</blockquote> </blockquote>
@ -118,29 +118,29 @@ BOOST_PREPROCESSOR_REPEAT_2ND(BOOST_PREPROCESSOR_INC(MAX_IS_FUNCTION_TESTER_PARA
Use a Local Macro to avoid small scale repetition</P> Use a Local Macro to avoid small scale repetition</P>
<blockquote> <blockquote>
<pre>#define BOOST_PREPROCESSOR_DEF(OP)\ <pre>#define BOOST_PP_DEF(OP) \
template&lt;class T, int n&gt; \ template&lt;class T, int n&gt; \
vec&lt;T,n&gt;&amp; \ vec&lt;T,n&gt;&amp; \
operator OP##= \ operator OP##= \
( vec&lt;T,n&gt;&amp; \ ( vec&lt;T,n&gt;&amp; \
lhs \ lhs \
, const vec&lt;T,n&gt;&amp; \ , const vec&lt;T,n&gt;&amp; \
rhs \ rhs \
) \ ) \
{ for (int i=0; i&lt;n; ++i) \ { for (int i=0; i&lt;n; ++i)\
lhs(i) OP##= rhs(i); \ lhs(i) OP##= rhs(i); \
return lhs; \ return lhs; \
} }
BOOST_PREPROCESSOR_DEF(+) BOOST_PP_DEF(+)
BOOST_PREPROCESSOR_DEF(-) BOOST_PP_DEF(-)
BOOST_PREPROCESSOR_DEF(*) BOOST_PP_DEF(*)
BOOST_PREPROCESSOR_DEF(/) BOOST_PP_DEF(/)
#undef BOOST_PREPROCESSOR_DEF #undef BOOST_PP_DEF
</pre> </pre>
</blockquote> </blockquote>
<P><B>TIP:</B> It is usually okay to use a standard macro name like BOOST_PREPROCESSOR_DEF <P><B>TIP:</B> It is usually okay to use a standard macro name like BOOST_PP_DEF
for this kind of code, because the macro is both defined and undefined in the for this kind of code, because the macro is both defined and undefined in the
immediate site of its use.</P> immediate site of its use.</P>
<P><B>TIP:</B> It is easier to verify proper use of <P><B>TIP:</B> It is easier to verify proper use of
@ -154,55 +154,55 @@ the line continuation operator when they are aligned.</P>
metaprogramming.</P> metaprogramming.</P>
<HR> <HR>
<P><B><a name="UNUSED"></a><a href="examples_preprocessed.htm#UNUSED">EXAMPLE</a>:</B> <P><B><a name="UNUSED"></a><a href="examples_preprocessed.htm#UNUSED">EXAMPLE</a>:</B>
Use BOOST_PREPROCESSOR_EMPTY() as an unused parameter in Local Macro instantiations</P> Use BOOST_PP_EMPTY() as an unused parameter in Local Macro instantiations</P>
<blockquote> <blockquote>
<pre>#define BOOST_PREPROCESSOR_DEF(CV)\ <pre>#define BOOST_PP_DEF(CV) \
template&lt;class base&gt; \ template&lt;class base&gt; \
CV typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&amp;\ CV typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&amp;\
implement_subscript_using_begin_subscript&lt;base&gt;::operator[]\ implement_subscript_using_begin_subscript&lt;base&gt;::operator[]\
( index_type \ ( index_type \
i \ i \
) CV \ ) CV \
{ return base::begin()[i]; \ { return base::begin()[i];\
} }
BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY()) BOOST_PP_DEF(BOOST_PP_EMPTY())
BOOST_PREPROCESSOR_DEF(const) BOOST_PP_DEF(const)
#undef BOOST_PREPROCESSOR_DEF #undef BOOST_PP_DEF
</pre> </pre>
</blockquote> </blockquote>
<P><B>HOW:</B> BOOST_PREPROCESSOR_EMPTY() expands to nothing and can be used as <P><B>HOW:</B> BOOST_PP_EMPTY() expands to nothing and can be used as
an unused parameter.</P> an unused parameter.</P>
<P><b>NOTE:</b> BOOST_PREPROCESSOR_EMPTY without the () never gets expanded. The <P><b>NOTE:</b> BOOST_PP_EMPTY without the () never gets expanded. The
() is necessary to invoke a function-like macro.</P> () is necessary to invoke a function-like macro.</P>
<B>CAVEAT:</B> You can not safely use concatenation while using BOOST_PREPROCESSOR_EMPTY(). <B>CAVEAT:</B> You can not safely use concatenation while using BOOST_PP_EMPTY().
<P><B>TIP:</B> Occasionally one or two lines are <P><B>TIP:</B> Occasionally one or two lines are
considerably longer than the rest. It can often save some work to not align all considerably longer than the rest. It can often save some work to not align all
of the line continuation operators without making the code too unreadable.</P> of the line continuation operators without making the code too unreadable.</P>
<P><B>TIP:</B> Use syntax highlighting on preprocessor metaprogramming macro and <P><B>TIP:</B> Use syntax highlighting on preprocessor metaprogramming macro and
parameter identifiers such as</P> parameter identifiers such as</P>
<ul> <ul>
<li> BOOST_PREPROCESSOR_DEF,</li> <li> BOOST_PP_DEF,</li>
<li>BOOST_PREPROCESSOR_EMPTY,</li> <li>BOOST_PP_EMPTY,</li>
<li> BOOST_PREPROCESSOR_REPEAT,</li> <li> BOOST_PP_REPEAT,</li>
<li> OP,</li> <li> OP,</li>
<li> CV,</li> <li> CV,</li>
<li> ...</li> <li> ...</li>
</ul> </ul>
<p>It can greatly improve readability.</p> <p>It can greatly improve readability.</p>
<HR> <HR>
<P><a name="CAT"></a><a href="examples_preprocessed.htm#CAT"><B>EXAMPLE:</B></a> Use BOOST_PREPROCESSOR_CAT instead of ## when necessary</P> <P><a name="CAT"></a><a href="examples_preprocessed.htm#CAT"><B>EXAMPLE:</B></a> Use BOOST_PP_CAT instead of ## when necessary</P>
<blockquote> <blockquote>
<pre>#define STATIC_ASSERT(EXPR)\ <pre>#define STATIC_ASSERT(EXPR)\
enum\ enum\
{ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\ { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
};\ };\
typedef char\ typedef char\
BOOST_PREPROCESSOR_CAT(static_assert_,__LINE__)\ BOOST_PP_CAT(static_assert_,__LINE__)\
[ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__)\ [ BOOST_PP_CAT(static_check_,__LINE__)\
] ]
// ... // ...
@ -215,10 +215,10 @@ STATIC_ASSERT(sizeof(int) &lt;= sizeof(long));
prevents the&nbsp;preprocessor from performing macro expansion, therefore it prevents the&nbsp;preprocessor from performing macro expansion, therefore it
is often necessary to delay token concatenation.</P> is often necessary to delay token concatenation.</P>
<hr> <hr>
<p><a name="STRINGIZE"></a><a href="examples_preprocessed.htm#STRINGIZE"><B>EXAMPLE:</B></a> Use BOOST_PREPROCESSOR_STRINGIZE instead of # whenever necessary</p> <p><a name="STRINGIZE"></a><a href="examples_preprocessed.htm#STRINGIZE"><B>EXAMPLE:</B></a> Use BOOST_PP_STRINGIZE instead of # whenever necessary</p>
<blockquote> <blockquote>
<pre>#define NOTE(STR)\ <pre>#define NOTE(STR)\
message(__FILE__ &quot;(&quot; BOOST_PREPROCESSOR_STRINGIZE(__LINE__) &quot;) : &quot; STR) message(__FILE__ &quot;(&quot; BOOST_PP_STRINGIZE(__LINE__) &quot;) : &quot; STR)
// ... // ...
@ -232,19 +232,19 @@ STATIC_ASSERT(sizeof(int) &lt;= sizeof(long));
<P><B><a name="ENUM_PARAMS"></a><a href="examples_preprocessed.htm#ENUM_PARAMS">EXAMPLE</a>:</B> <P><B><a name="ENUM_PARAMS"></a><a href="examples_preprocessed.htm#ENUM_PARAMS">EXAMPLE</a>:</B>
Use:</P> Use:</P>
<ul> <ul>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS,</li> <li> BOOST_PP_ENUM_PARAMS,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT,</li> <li> BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS,</li> <li> BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS,</li>
<li> BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS, or</li> <li> BOOST_PP_ENUM_SHIFTED_PARAMS, or</li>
<li>BOOST_PREPROCESSOR_REPEAT, and</li> <li>BOOST_PP_REPEAT, and</li>
<li> BOOST_PREPROCESSOR_COMMA_IF</li> <li> BOOST_PP_COMMA_IF</li>
</ul> </ul>
<p>to avoid O(N) repetition on lists in general</p> <p>to avoid O(N) repetition on lists in general</p>
<blockquote> <blockquote>
<pre>struct make_type_list_end; <pre>struct make_type_list_end;
template template
&lt; BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT &lt; BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
( MAKE_TYPE_LIST_MAX_LENGTH ( MAKE_TYPE_LIST_MAX_LENGTH
, class T , class T
, make_type_list_end , make_type_list_end
@ -269,7 +269,7 @@ public:
&lt; end &lt; end
, type_identity&lt;end&gt; , type_identity&lt;end&gt;
, make_type_list , make_type_list
&lt; BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS &lt; BOOST_PP_ENUM_SHIFTED_PARAMS
( MAKE_TYPE_LIST_MAX_LENGTH ( MAKE_TYPE_LIST_MAX_LENGTH
, T , T
) )
@ -281,24 +281,24 @@ public:
</pre> </pre>
</blockquote> </blockquote>
<P><B>HOW:</B> BOOST_PREPROCESSOR_REPEAT uses simulated recursion (pseudo code):</P> <P><B>HOW:</B> BOOST_PP_REPEAT uses simulated recursion (pseudo code):</P>
<blockquote> <blockquote>
<pre>#define BOOST_PREPROCESSOR_REPEAT(N,M,P) BOOST_PREPROCESSOR_REPEAT##N(M,P) <pre>#define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT##N(M,P)
#define BOOST_PREPROCESSOR_REPEAT0(M,P) #define BOOST_PP_REPEAT0(M,P)
#define BOOST_PREPROCESSOR_REPEAT1(M,P) M(0,P) #define BOOST_PP_REPEAT1(M,P) M(0,P)
#define BOOST_PREPROCESSOR_REPEAT2(M,P) M(0,P) M(1,P) #define BOOST_PP_REPEAT2(M,P) M(0,P) M(1,P)
#define BOOST_PREPROCESSOR_REPEAT3(M,P) BOOST_PREPROCESSOR_REPEAT2(M,P) M(2,P) #define BOOST_PP_REPEAT3(M,P) BOOST_PP_REPEAT2(M,P) M(2,P)
#define BOOST_PREPROCESSOR_REPEAT4(M,P) BOOST_PREPROCESSOR_REPEAT3(M,P) M(3,P) #define BOOST_PP_REPEAT4(M,P) BOOST_PP_REPEAT3(M,P) M(3,P)
// ... // ...
</pre> </pre>
</blockquote> </blockquote>
<P>BOOST_PREPROCESSOR_ENUM_PARAMS variations use BOOST_PREPROCESSOR_REPEAT</P> <P>BOOST_PP_ENUM_PARAMS variations use BOOST_PP_REPEAT</P>
<P>BOOST_PREPROCESSOR_COMMA_IF(I) expands to a comma if I != 0.</P> <P>BOOST_PP_COMMA_IF(I) expands to a comma if I != 0.</P>
<P>BOOST_PREPROCESSOR_INC(I) expands essentially to "I+1" and BOOST_PREPROCESSOR_DEC(I) <P>BOOST_PP_INC(I) expands essentially to "I+1" and BOOST_PP_DEC(I)
expands essentially to "I-1".</P> expands essentially to "I-1".</P>
<HR> <HR>
@ -318,7 +318,7 @@ enable user configuration of code repetition based on need rather than some
code.</P> code.</P>
<HR> <HR>
<P><B><a name="Token Look-Up"></a><a href="examples_preprocessed.htm#Token Look-Up">EXAMPLE</a>:</B> <P><B><a name="Token Look-Up"></a><a href="examples_preprocessed.htm#Token Look-Up">EXAMPLE</a>:</B>
Use BOOST_PREPROCESSOR_REPEAT and a Token Look-Up Function to eliminate categorical Use BOOST_PP_REPEAT and a Token Look-Up Function to eliminate categorical
repetition</P> repetition</P>
<blockquote> <blockquote>
@ -341,17 +341,17 @@ enable user configuration of code repetition based on need rather than some
// ... // ...
#define BOOST_PREPROCESSOR_DEF(I,_)\ #define BOOST_PP_DEF(I,_)\
catch (ARITHMETIC_TYPE(I) t)\ catch (ARITHMETIC_TYPE(I) t)\
{ report_typeid(t);\ { report_typeid(t);\
report_value(t);\ report_value(t);\
} }
BOOST_PREPROCESSOR_REPEAT BOOST_PP_REPEAT
( ARITHMETIC_TYPE_CNT ( ARITHMETIC_TYPE_CNT
, BOOST_PREPROCESSOR_DEF , BOOST_PP_DEF
, _ , _
) )
#undef BOOST_PREPROCESSOR_DEF #undef BOOST_PP_DEF
// ... // ...
</pre> </pre>
@ -363,7 +363,7 @@ categorical repetition of operator tokens can not be completely eliminated by
using template metaprogramming.</P> using template metaprogramming.</P>
<HR> <HR>
<P><B><a name="2ND_REPEAT"></a><a href="examples_preprocessed.htm#2ND_REPEAT">EXAMPLE</a>:</B> <P><B><a name="2ND_REPEAT"></a><a href="examples_preprocessed.htm#2ND_REPEAT">EXAMPLE</a>:</B>
Use BOOST_PREPROCESSOR_REPEAT_2ND to avoid O(N*N) repetition</P> Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition</P>
<blockquote> <blockquote>
<pre>#ifndef MAX_VEC_ARG_CNT <pre>#ifndef MAX_VEC_ARG_CNT
@ -372,16 +372,16 @@ using template metaprogramming.</P>
// ... // ...
#define ARG_FUN(I,_) BOOST_PREPROCESSOR_COMMA_IF(I) T a##I #define ARG_FUN(I,_) BOOST_PP_COMMA_IF(I) T a##I
#define ASSIGN_FUN(I,_) (*this)[I] = a##I; #define ASSIGN_FUN(I,_) (*this)[I] = a##I;
#define DEF_VEC_CTOR_FUN(I,_)\ #define DEF_VEC_CTOR_FUN(I,_)\
vec( BOOST_PREPROCESSOR_REPEAT(I,ARG_FUN,_) )\ vec( BOOST_PP_REPEAT(I,ARG_FUN,_) )\
{ BOOST_PREPROCESSOR_REPEAT(I,ASSIGN_FUN,_)\ { BOOST_PP_REPEAT(I,ASSIGN_FUN,_)\
} }
BOOST_PREPROCESSOR_REPEAT_2ND BOOST_PP_REPEAT_2ND
( BOOST_PREPROCESSOR_INC(MAX_VEC_ARG_CNT) ( BOOST_PP_INC(MAX_VEC_ARG_CNT)
, DEF_VEC_CTOR_FUN , DEF_VEC_CTOR_FUN
, _ , _
) )
@ -395,46 +395,47 @@ BOOST_PREPROCESSOR_REPEAT_2ND
</blockquote> </blockquote>
<P><B>HOW:</B> BOOST_PREPROCESSOR_REPEAT_2ND is implemented separately, so it <P><B>HOW:</B> BOOST_PP_REPEAT_2ND is implemented separately, so it
is possible to combine BOOST_PREPROCESSOR_REPEAT and BOOST_PREPROCESSOR_REPEAT_2ND.</P> is possible to combine BOOST_PP_REPEAT and BOOST_PP_REPEAT_2ND.</P>
<HR> <HR>
<P><a name="IF"></a><a href="examples_preprocessed.htm#IF"><B>EXAMPLE:</B></a> Use BOOST_PREPROCESSOR_IF to implement special case for the first element</P> <P><a name="IF"></a><a href="examples_preprocessed.htm#IF"><B>EXAMPLE:</B></a> Use BOOST_PP_IF to implement special case for the first element</P>
<blockquote> <blockquote>
<pre>#define BOOST_PREPROCESSOR_COMMA_IF(C)\ <pre>#define BOOST_PP_COMMA_IF(C)\
BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)() BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
BOOST_PREPROCESSOR_IF(0,true,false) == false; BOOST_PP_IF(0,true,false) == false;
BOOST_PREPROCESSOR_IF(1,true,false) == true; BOOST_PP_IF(1,true,false) == true;
</pre> </pre>
</blockquote> </blockquote>
<P>BOOST_PREPROCESSOR_IF enables convenient generation of lists using BOOST_PREPROCESSOR_REPEAT.</P> <P>BOOST_PP_IF enables convenient generation of lists using BOOST_PP_REPEAT.</P>
<P><B>NOTE:</B> THEN and ELSE don't have to be macros. However, if at least one <P><B>NOTE:</B> THEN and ELSE don't have to be macros. However, if at least one
of them is a function-like macro and you want it to be expanded conditionally, of them is a function-like macro and you want it to be expanded conditionally,
you have to make the other parameter a function-like macro, too. This can often you have to make the other parameter a function-like macro, too. This can often
be done using BOOST_PREPROCESSOR_IDENTITY. Consider the following example (by be done using BOOST_PP_IDENTITY. Consider the following example (by
Aleksey Gurtovoy):</P> Aleksey Gurtovoy):</P>
<blockquote> <blockquote>
<pre>#define NUMBERED_EXPRESSION(I,X) \ <pre>#define NUMBERED_EXPRESSION(I,X)\
BOOST_PREPROCESSOR_IF \ BOOST_PP_IF \
( I \ ( I \
, BOOST_PREPROCESSOR_IDENTITY(X##I)\ , BOOST_PP_IDENTITY(X##I) \
, BOOST_PREPROCESSOR_EMPTY \ , BOOST_PP_EMPTY \
)()</pre></blockquote> )()</pre>
</blockquote>
<P><b>NOTE:</b> Like in the above implementation of COMMA_IF, the result of IF <P><b>NOTE:</b> Like in the above implementation of COMMA_IF, the result of IF
is often invoked and not the THEN and ELSE parameters. If the parameters were is often invoked and not the THEN and ELSE parameters. If the parameters were
invoked, the code would not expand correctly, because the EMPTY parameter would invoked, the code would not expand correctly, because the EMPTY parameter would
get expanded to nothing before the IF would be properly expanded.</P> get expanded to nothing before the IF would be properly expanded.</P>
<P><b>HOW:</b> BOOST_PREPROCESSOR_IF is defined for the entire repeat range (pseudo <P><b>HOW:</b> BOOST_PP_IF is defined for the entire repeat range (pseudo
code):</P> code):</P>
<blockquote> <blockquote>
<pre>#define BOOST_PREPROCESSOR_IF(C,THEN,ELSE) BOOST_PREPROCESSOR_IF##C(THEN,ELSE) <pre>#define BOOST_PP_IF(C,THEN,ELSE) BOOST_PP_IF##C(THEN,ELSE)
#define BOOST_PREPROCESSOR_IF0(THEN,ELSE) ELSE #define BOOST_PP_IF0(THEN,ELSE) ELSE
#define BOOST_PREPROCESSOR_IF1(THEN,ELSE) THEN #define BOOST_PP_IF1(THEN,ELSE) THEN
#define BOOST_PREPROCESSOR_IF2(THEN,ELSE) THEN #define BOOST_PP_IF2(THEN,ELSE) THEN
// ... // ...
</pre> </pre>
</blockquote> </blockquote>
@ -444,25 +445,25 @@ BOOST_PREPROCESSOR_IF(1,true,false) == true;
<p><a name="Arithmetic"></a><a href="examples_preprocessed.htm#Arithmetic"><B>EXAMPLE:</B></a> Use arithmetic, logical and comparison operations when necessary</p> <p><a name="Arithmetic"></a><a href="examples_preprocessed.htm#Arithmetic"><B>EXAMPLE:</B></a> Use arithmetic, logical and comparison operations when necessary</p>
<P>The PREPROCESSOR library supports saturated arithmetic, logical and <P>The PREPROCESSOR library supports saturated arithmetic, logical and
comparison operations on decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG].</p> comparison operations on decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG].</p>
<p>Suppose that you want to generate a numbered lists with a special element inserted <p>Suppose that you want to generate a numbered lists with a special element inserted
at a desired position. For example: E0, E1, S, E2. Consider the following example:</p> at a desired position. For example: E0, E1, S, E2. Consider the following example:</p>
<blockquote> <blockquote>
<pre>#define SPECIAL_NUMBERED_LIST(N,I,ELEM,SPECIAL)\ <pre>#define SPECIAL_NUMBERED_LIST(N,I,ELEM,SPECIAL)\
BOOST_PREPROCESSOR_ASSERT_MSG(BOOST_PREPROCESSOR_LESS(I,N),BAD PARAMS FOR SPECIAL_NUMBERED_LIST!)\ BOOST_PP_ASSERT_MSG(BOOST_PP_LESS(I,N),BAD PARAMS FOR SPECIAL_NUMBERED_LIST!)\
BOOST_PREPROCESSOR_ENUM_PARAMS(I,ELEM)\ BOOST_PP_ENUM_PARAMS(I,ELEM)\
BOOST_PREPROCESSOR_COMMA_IF(I) SPECIAL\ BOOST_PP_COMMA_IF(I) SPECIAL\
BOOST_PREPROCESSOR_REPEAT(BOOST_PREPROCESSOR_SUB(\ BOOST_PP_REPEAT(BOOST_PP_SUB(\
BOOST_PREPROCESSOR_DEC(N),I),SPECIAL_NUMBERED_LIST_HELPER,(ELEM,I)) BOOST_PP_DEC(N),I),SPECIAL_NUMBERED_LIST_HELPER,(ELEM,I))
#define SPECIAL_NUMBERED_LIST_HELPER(I,ELEM_BASE)\ #define SPECIAL_NUMBERED_LIST_HELPER(I,ELEM_BASE)\
,\ ,\
BOOST_PREPROCESSOR_CAT\ BOOST_PP_CAT\
( BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,ELEM_BASE)\ ( BOOST_PP_TUPLE_ELEM(2,0,ELEM_BASE)\
, BOOST_PREPROCESSOR_ADD\ , BOOST_PP_ADD\
( I\ ( I\
, BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,ELEM_BASE)\ , BOOST_PP_TUPLE_ELEM(2,1,ELEM_BASE)\
)\ )\
) )

View File

@ -15,21 +15,11 @@
/*! \file /*! \file
<a href="../../../../boost/preprocessor/arithmetic.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic.hpp">Click here to see the header.</a>
Includes all arithmetic headers.
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP #include <boost/preprocessor/arithmetic/div.hpp>
# include <boost/preprocessor/arithmetic/add.hpp> #include <boost/preprocessor/arithmetic/mod.hpp>
#endif #include <boost/preprocessor/arithmetic/mul.hpp>
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP
# include <boost/preprocessor/arithmetic/div.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
# include <boost/preprocessor/arithmetic/mod.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_MUL_HPP
# include <boost/preprocessor/arithmetic/mul.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
# include <boost/preprocessor/arithmetic/sub.hpp>
#endif
#endif #endif

View File

@ -17,22 +17,23 @@
<a href="../../../../boost/preprocessor/arithmetic/add.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/add.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_INC_HPP #include <boost/preprocessor/dec.hpp>
# include <boost/preprocessor/inc.hpp> #include <boost/preprocessor/inc.hpp>
#endif #include <boost/preprocessor/tuple.hpp>
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP #include <boost/preprocessor/while.hpp>
# include <boost/preprocessor/tuple.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_WHILE_HPP
# include <boost/preprocessor/while.hpp>
#endif
//! Expands to the sum of X and Y. //! Expands to the sum of X and Y.
#define BOOST_PREPROCESSOR_ADD(X,Y) BOOST_PREPROCESSOR_ADD_I(0,X,Y) /*!
For example, BOOST_PP_ADD(4,3) expands to 7 (a single token).
*/
#define BOOST_PP_ADD(X,Y) BOOST_PP_ADD_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_ADD_I(I,X,Y) BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,BOOST_PREPROCESSOR_WHILE##I(BOOST_PREPROCESSOR_ADD_C,BOOST_PREPROCESSOR_ADD_F,(X,Y))) #define BOOST_PP_ADD_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_ADD_C,BOOST_PP_ADD_F,(X,Y)))
#define BOOST_PREPROCESSOR_ADD_C(I,P) BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P) #define BOOST_PP_ADD_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
#define BOOST_PREPROCESSOR_ADD_F(I,P) (BOOST_PREPROCESSOR_INC(BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,P)),BOOST_PREPROCESSOR_DEC(BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P))) #define BOOST_PP_ADD_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_ADD().
#define BOOST_PREPROCESSOR_ADD(X,Y) BOOST_PP_ADD(X,Y)
#endif #endif

View File

@ -17,28 +17,21 @@
<a href="../../../../boost/preprocessor/arithmetic/div.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/div.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/arithmetic/sub.hpp> #include <boost/preprocessor/inc.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
# include <boost/preprocessor/comparison/less_equal.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_INC_HPP
# include <boost/preprocessor/inc.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_WHILE_HPP
# include <boost/preprocessor/while.hpp>
#endif
//! Expands to the quotient of X and Y. //! Expands to the quotient of X and Y.
#define BOOST_PREPROCESSOR_DIV(X,Y) BOOST_PREPROCESSOR_DIV_I(0,X,Y) /*!
For example, BOOST_PP_DIV(4,3) expands to 1 (a single token).
*/
#define BOOST_PP_DIV(X,Y) BOOST_PP_DIV_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_DIV_I(I,X,Y) BOOST_PREPROCESSOR_TUPLE_ELEM(3,0,BOOST_PREPROCESSOR_WHILE##I(BOOST_PREPROCESSOR_DIV_C,BOOST_PREPROCESSOR_DIV_F,(0,X,Y))) #define BOOST_PP_DIV_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_DIV_C,BOOST_PP_DIV_F,(0,X,Y)))
#define BOOST_PREPROCESSOR_DIV_C(I,P) BOOST_PREPROCESSOR_LESS_EQUAL_I(I,BOOST_PREPROCESSOR_TUPLE_ELEM(3,2,P),BOOST_PREPROCESSOR_TUPLE_ELEM(3,1,P)) #define BOOST_PP_DIV_C(D,P) BOOST_PP_LESS_EQUAL_D(D,BOOST_PP_TUPLE_ELEM(3,2,P),BOOST_PP_TUPLE_ELEM(3,1,P))
#define BOOST_PREPROCESSOR_DIV_F(I,P) (BOOST_PREPROCESSOR_INC(BOOST_PREPROCESSOR_TUPLE_ELEM(3,0,P)),BOOST_PREPROCESSOR_SUB_I(I,BOOST_PREPROCESSOR_TUPLE_ELEM(3,1,P),BOOST_PREPROCESSOR_TUPLE_ELEM(3,2,P)),BOOST_PREPROCESSOR_TUPLE_ELEM(3,2,P)) #define BOOST_PP_DIV_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3,0,P)),BOOST_PP_SUB_D(D,BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_TUPLE_ELEM(3,2,P)),BOOST_PP_TUPLE_ELEM(3,2,P))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_DIV().
#define BOOST_PREPROCESSOR_DIV(X,Y) BOOST_PP_DIV(X,Y)
#endif #endif

View File

@ -17,25 +17,20 @@
<a href="../../../../boost/preprocessor/arithmetic/mod.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/mod.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/arithmetic/sub.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
# include <boost/preprocessor/comparison/less_equal.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_WHILE_HPP
# include <boost/preprocessor/while.hpp>
#endif
//! Expands to the remainder of X and Y. //! Expands to the remainder of X and Y.
#define BOOST_PREPROCESSOR_MOD(X,Y) BOOST_PREPROCESSOR_MOD_I(0,X,Y) /*!
For example, BOOST_PP_MOD(4,3) expands to 1 (a single token).
*/
#define BOOST_PP_MOD(X,Y) BOOST_PP_MOD_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_MOD_I(I,X,Y) BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,BOOST_PREPROCESSOR_WHILE##I(BOOST_PREPROCESSOR_MOD_C,BOOST_PREPROCESSOR_MOD_F,(X,Y))) #define BOOST_PP_MOD_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_MOD_C,BOOST_PP_MOD_F,(X,Y)))
#define BOOST_PREPROCESSOR_MOD_C(I,P) BOOST_PREPROCESSOR_LESS_EQUAL_I(I,BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P),BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,P)) #define BOOST_PP_MOD_C(D,P) BOOST_PP_LESS_EQUAL_D(D,BOOST_PP_TUPLE_ELEM(2,1,P),BOOST_PP_TUPLE_ELEM(2,0,P))
#define BOOST_PREPROCESSOR_MOD_F(I,P) (BOOST_PREPROCESSOR_SUB_I(I,BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,P),BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P)),BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P)) #define BOOST_PP_MOD_F(D,P) (BOOST_PP_SUB_D(D,BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,1,P)),BOOST_PP_TUPLE_ELEM(2,1,P))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_MOD().
#define BOOST_PREPROCESSOR_MOD(X,Y) BOOST_PP_MOD(X,Y)
#endif #endif

View File

@ -17,22 +17,20 @@
<a href="../../../../boost/preprocessor/arithmetic/mul.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/mul.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP #include <boost/preprocessor/arithmetic/add.hpp>
# include <boost/preprocessor/arithmetic/add.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_WHILE_HPP
# include <boost/preprocessor/while.hpp>
#endif
//! Expands to the product of X and Y. //! Expands to the product of X and Y.
#define BOOST_PREPROCESSOR_MUL(X,Y) BOOST_PREPROCESSOR_MUL_I(0,X,Y) /*!
For example, BOOST_PP_MUL(4,3) expands to 12 (a single token).
*/
#define BOOST_PP_MUL(X,Y) BOOST_PP_MUL_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_MUL_I(I,X,Y) BOOST_PREPROCESSOR_TUPLE_ELEM(3,0,BOOST_PREPROCESSOR_WHILE##I(BOOST_PREPROCESSOR_MUL_C,BOOST_PREPROCESSOR_MUL_F,(0,X,Y))) #define BOOST_PP_MUL_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_MUL_C,BOOST_PP_MUL_F,(0,X,Y)))
#define BOOST_PREPROCESSOR_MUL_C(I,P) BOOST_PREPROCESSOR_TUPLE_ELEM(3,2,P) #define BOOST_PP_MUL_C(D,P) BOOST_PP_TUPLE_ELEM(3,2,P)
#define BOOST_PREPROCESSOR_MUL_F(I,P) (BOOST_PREPROCESSOR_ADD_I(I,BOOST_PREPROCESSOR_TUPLE_ELEM(3,0,P),BOOST_PREPROCESSOR_TUPLE_ELEM(3,1,P)),BOOST_PREPROCESSOR_TUPLE_ELEM(3,1,P),BOOST_PREPROCESSOR_DEC(BOOST_PREPROCESSOR_TUPLE_ELEM(3,2,P))) #define BOOST_PP_MUL_F(D,P) (BOOST_PP_ADD_D(D,BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P)),BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,P)))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_MUL().
#define BOOST_PREPROCESSOR_MUL(X,Y) BOOST_PP_MUL(X,Y)
#endif #endif

View File

@ -17,22 +17,22 @@
<a href="../../../../boost/preprocessor/arithmetic/sub.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/arithmetic/sub.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_DEC_HPP #include <boost/preprocessor/dec.hpp>
# include <boost/preprocessor/dec.hpp> #include <boost/preprocessor/tuple.hpp>
#endif #include <boost/preprocessor/while.hpp>
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_WHILE_HPP
# include <boost/preprocessor/while.hpp>
#endif
//! Expands to the difference of X and Y. //! Expands to the difference of X and Y.
#define BOOST_PREPROCESSOR_SUB(X,Y) BOOST_PREPROCESSOR_SUB_I(0,X,Y) /*!
For example, BOOST_PP_SUB(4,3) expands to 1 (a single token).
*/
#define BOOST_PP_SUB(X,Y) BOOST_PP_SUB_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_SUB_I(I,X,Y) BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,BOOST_PREPROCESSOR_WHILE##I(BOOST_PREPROCESSOR_SUB_C,BOOST_PREPROCESSOR_SUB_F,(X,Y))) #define BOOST_PP_SUB_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_SUB_C,BOOST_PP_SUB_F,(X,Y)))
#define BOOST_PREPROCESSOR_SUB_C(I,P) BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P) #define BOOST_PP_SUB_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
#define BOOST_PREPROCESSOR_SUB_F(I,P) (BOOST_PREPROCESSOR_DEC(BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,P)),BOOST_PREPROCESSOR_DEC(BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,P))) #define BOOST_PP_SUB_F(D,P) (BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_SUB(X,Y).
#define BOOST_PREPROCESSOR_SUB(X,Y) BOOST_PP_SUB(X,Y)
#endif #endif

View File

@ -17,16 +17,12 @@
<a href="../../../../boost/preprocessor/assert_msg.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/assert_msg.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_EMPTY_HPP #include <boost/preprocessor/identity.hpp>
# include <boost/preprocessor/empty.hpp> #include <boost/preprocessor/if.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IDENTITY_HPP
# include <boost/preprocessor/identity.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IF_HPP
# include <boost/preprocessor/if.hpp>
#endif
//! Expands to nothing if C != 0 and to MSG if C == 0. //! Expands to nothing if C != 0 and to MSG if C == 0.
#define BOOST_PREPROCESSOR_ASSERT_MSG(C,MSG) BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_EMPTY,BOOST_PREPROCESSOR_IDENTITY(MSG))() #define BOOST_PP_ASSERT_MSG(C,MSG) BOOST_PP_IF(C,BOOST_PP_EMPTY,BOOST_PP_IDENTITY(MSG))()
//! Obsolete. Use BOOST_PP_ASSERT_MSG().
#define BOOST_PREPROCESSOR_ASSERT_MSG(C,MSG) BOOST_PP_ASSERT_MSG(C,MSG)
#endif #endif

View File

@ -24,11 +24,11 @@ Example:
<PRE>\verbatim <PRE>\verbatim
#define STATIC_ASSERT(EXPR)\ #define STATIC_ASSERT(EXPR)\
enum\ enum\
{ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\ { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
};\ };\
typedef char\ typedef char\
BOOST_PREPROCESSOR_CAT(static_assert_,__LINE__)\ BOOST_PP_CAT(static_assert_,__LINE__)\
[ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__)\ [ BOOST_PP_CAT(static_check_,__LINE__)\
] ]
// ... // ...
@ -48,7 +48,7 @@ The above expands to:
]; ];
\endverbatim</PRE> \endverbatim</PRE>
Using BOOST_PREPROCESSOR_CAT() above lets the preprocessor expand the __LINE__. Using BOOST_PP_CAT() above lets the PP expand the __LINE__.
If the above code would use the ## operator directly then __LINE__ would not be If the above code would use the ## operator directly then __LINE__ would not be
expanded and the above would expand to: expanded and the above would expand to:
@ -62,9 +62,12 @@ expanded and the above would expand to:
]; ];
\endverbatim</PRE> \endverbatim</PRE>
*/ */
#define BOOST_PREPROCESSOR_CAT(L,R) BOOST_PREPROCESSOR_CAT_DELAY(L,R) #define BOOST_PP_CAT(L,R) BOOST_PP_CAT_DELAY(L,R)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_CAT_DELAY(L,R) L##R #define BOOST_PP_CAT_DELAY(L,R) L##R
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_CAT().
#define BOOST_PREPROCESSOR_CAT(L,R) BOOST_PP_CAT(L,R)
#endif #endif

View File

@ -17,9 +17,12 @@
<a href="../../../../boost/preprocessor/comma.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comma.hpp">Click here to see the header.</a>
*/ */
//! Expands to a comma. Can be used with BOOST_PREPROCESSOR_IF(). //! Expands to a comma. Can be used with BOOST_PP_IF().
/*! /*!
See BOOST_PREPROCESSOR_COMMA_IF(). See BOOST_PP_COMMA_IF().
*/ */
#define BOOST_PP_COMMA() ,
//! Obsolete. Use BOOST_PP_COMMA().
#define BOOST_PREPROCESSOR_COMMA() , #define BOOST_PREPROCESSOR_COMMA() ,
#endif #endif

View File

@ -17,16 +17,13 @@
<a href="../../../../boost/preprocessor/comma_if.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comma_if.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMMA_HPP #include <boost/preprocessor/comma.hpp>
# include <boost/preprocessor/comma.hpp> #include <boost/preprocessor/empty.hpp>
#endif #include <boost/preprocessor/if.hpp>
#ifndef BOOST_PREPROCESSOR_EMPTY_HPP
# include <boost/preprocessor/empty.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IF_HPP
# include <boost/preprocessor/if.hpp>
#endif
//! Expands to a comma if C != 0 and nothing if C == 0. //! Expands to a comma if C != 0 and nothing if C == 0.
#define BOOST_PREPROCESSOR_COMMA_IF(C) BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)() #define BOOST_PP_COMMA_IF(C) BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
//! Obsolete. Use BOOST_PP_COMMA_IF().
#define BOOST_PREPROCESSOR_COMMA_IF(C) BOOST_PP_COMMA_IF(C)
#endif #endif

View File

@ -15,24 +15,11 @@
/*! \file /*! \file
<a href="../../../../boost/preprocessor/comparison.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison.hpp">Click here to see the header.</a>
Includes all comparison headers.
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_EQUAL_HPP #include <boost/preprocessor/comparison/equal.hpp>
# include <boost/preprocessor/comparison/equal.hpp> #include <boost/preprocessor/comparison/greater.hpp>
#endif #include <boost/preprocessor/comparison/greater_equal.hpp>
#ifndef BOOST_PREPROCESSOR_COMPARISON_GREATER_HPP
# include <boost/preprocessor/comparison/greater.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP
# include <boost/preprocessor/comparison/greater_equal.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP
# include <boost/preprocessor/comparison/less.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
# include <boost/preprocessor/comparison/less_equal.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP
# include <boost/preprocessor/comparison/not_equal.hpp>
#endif
#endif #endif

View File

@ -17,16 +17,16 @@
<a href="../../../../boost/preprocessor/comparison/equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/equal.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP #include <boost/preprocessor/comparison/not_equal.hpp>
# include <boost/preprocessor/arithmetic/add.hpp> #include <boost/preprocessor/logical/not.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
# include <boost/preprocessor/arithmetic/sub.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
# include <boost/preprocessor/logical/not.hpp>
#endif
//! Expands to 1 if X==Y and 0 otherwise. //! Expands to 1 if X==Y and 0 otherwise.
#define BOOST_PREPROCESSOR_EQUAL(X,Y) BOOST_PREPROCESSOR_NOT(BOOST_PREPROCESSOR_ADD(BOOST_PREPROCESSOR_SUB(X,Y),BOOST_PREPROCESSOR_SUB(Y,X))) #define BOOST_PP_EQUAL(X,Y) BOOST_PP_EQUAL_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_NOT_EQUAL_D(D,X,Y))
#endif
//! Obsolete. Use BOOST_PP_EQUAL().
#define BOOST_PREPROCESSOR_EQUAL(X,Y) BOOST_PP_EQUAL(X,Y)
#endif #endif

View File

@ -17,10 +17,15 @@
<a href="../../../../boost/preprocessor/comparison/greater.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/greater.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP #include <boost/preprocessor/comparison/less.hpp>
# include <boost/preprocessor/comparison/less.hpp>
#endif
//! Expands to 1 if X>Y and 0 otherwise. //! Expands to 1 if X>Y and 0 otherwise.
#define BOOST_PREPROCESSOR_GREATER(X,Y) BOOST_PREPROCESSOR_LESS(Y,X) #define BOOST_PP_GREATER(X,Y) BOOST_PP_GREATER_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_GREATER_D(D,X,Y) BOOST_PP_LESS_D(D,Y,X)
#endif
//! Obsolete. Use BOOST_PP_GREATER().
#define BOOST_PREPROCESSOR_GREATER(X,Y) BOOST_PP_GREATER(X,Y)
#endif #endif

View File

@ -17,10 +17,15 @@
<a href="../../../../boost/preprocessor/comparison/greater_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/greater_equal.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/comparison/less_equal.hpp>
#endif
//! Expands to 1 if X>=Y and 0 otherwise. //! Expands to 1 if X>=Y and 0 otherwise.
#define BOOST_PREPROCESSOR_GREATER_EQUAL(X,Y) BOOST_PREPROCESSOR_LESS_EQUAL(Y,X) #define BOOST_PP_GREATER_EQUAL(X,Y) BOOST_PP_GREATER_EQUAL_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_GREATER_EQUAL_D(D,X,Y) BOOST_PP_LESS_EQUAL_D(D,Y,X)
#endif
//! Obsolete. Use BOOST_PP_GREATER_EQUAL().
#define BOOST_PREPROCESSOR_GREATER_EQUAL(X,Y) BOOST_PP_GREATER_EQUAL(X,Y)
#endif #endif

View File

@ -17,16 +17,17 @@
<a href="../../../../boost/preprocessor/comparison/less.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/less.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_EQUAL_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/comparison/equal.hpp> #include <boost/preprocessor/comparison/not_equal.hpp>
#endif #include <boost/preprocessor/logical/and.hpp>
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
# include <boost/preprocessor/comparison/less_equal.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IF_HPP
# include <boost/preprocessor/if.hpp>
#endif
//! Expands to 1 if X<Y and 0 otherwise. //! Expands to 1 if X<Y and 0 otherwise.
#define BOOST_PREPROCESSOR_LESS(X,Y) BOOST_PREPROCESSOR_IF(BOOST_PREPROCESSOR_EQUAL(X,Y),0,BOOST_PREPROCESSOR_LESS_EQUAL(X,Y)) #define BOOST_PP_LESS(X,Y) BOOST_PP_LESS_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_LESS_D(D,X,Y) BOOST_PP_AND(BOOST_PP_NOT_EQUAL_D(D,X,Y),BOOST_PP_LESS_EQUAL_D(D,X,Y))
#endif
//! Obsolete. Use BOOST_PP_LESS().
#define BOOST_PREPROCESSOR_LESS(X,Y) BOOST_PP_LESS(X,Y)
#endif #endif

View File

@ -17,17 +17,16 @@
<a href="../../../../boost/preprocessor/comparison/less_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/less_equal.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP #include <boost/preprocessor/arithmetic/sub.hpp>
# include <boost/preprocessor/arithmetic/sub.hpp> #include <boost/preprocessor/logical/not.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
# include <boost/preprocessor/logical/not.hpp>
#endif
//! Expands to 1 if X<=Y and 0 otherwise. //! Expands to 1 if X<=Y and 0 otherwise.
#define BOOST_PREPROCESSOR_LESS_EQUAL(X,Y) BOOST_PREPROCESSOR_LESS_EQUAL_I(0,X,Y) #define BOOST_PP_LESS_EQUAL(X,Y) BOOST_PP_LESS_EQUAL_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_LESS_EQUAL_I(I,X,Y) BOOST_PREPROCESSOR_NOT(BOOST_PREPROCESSOR_SUB_I(I,X,Y)) #define BOOST_PP_LESS_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_SUB_D(D,X,Y))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_LESS_EQUAL().
#define BOOST_PREPROCESSOR_LESS_EQUAL(X,Y) BOOST_PP_LESS_EQUAL(X,Y)
#endif #endif

View File

@ -17,16 +17,17 @@
<a href="../../../../boost/preprocessor/comparison/not_equal.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/comparison/not_equal.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP #include <boost/preprocessor/arithmetic/add.hpp>
# include <boost/preprocessor/arithmetic/add.hpp> #include <boost/preprocessor/arithmetic/sub.hpp>
#endif #include <boost/preprocessor/logical/bool.hpp>
#ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
# include <boost/preprocessor/arithmetic/sub.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
# include <boost/preprocessor/logical/bool.hpp>
#endif
//! Expands to 1 if X!=Y and 0 otherwise. //! Expands to 1 if X!=Y and 0 otherwise.
#define BOOST_PREPROCESSOR_NOT_EQUAL(X,Y) BOOST_PREPROCESSOR_BOOL(BOOST_PREPROCESSOR_ADD(BOOST_PREPROCESSOR_SUB(X,Y),BOOST_PREPROCESSOR_SUB(Y,X))) #define BOOST_PP_NOT_EQUAL(X,Y) BOOST_PP_NOT_EQUAL_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_NOT_EQUAL_D(D,X,Y) BOOST_PP_BOOL(BOOST_PP_ADD_D(D,BOOST_PP_SUB_D(D,X,Y),BOOST_PP_SUB_D(D,Y,X)))
#endif
//! Obsolete. Use BOOST_PP_NOT_EQUAL().
#define BOOST_PREPROCESSOR_NOT_EQUAL(X,Y) BOOST_PP_NOT_EQUAL(X,Y)
#endif #endif

View File

@ -19,143 +19,148 @@
//! Decrements X expanding to a single token. //! Decrements X expanding to a single token.
/*! /*!
BOOST_PREPROCESSOR_DEC() uses saturation arithmetic. Decrementing 0 yeilds a 0. For example, BOOST_PP_DEC(3) expands to 2 (a single token).
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are BOOST_PP_DEC() uses saturation arithmetic. Decrementing 0 yeilds a 0.
Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are
supported. supported.
*/ */
#define BOOST_PREPROCESSOR_DEC(X) BOOST_PREPROCESSOR_DEC_DELAY(X) #define BOOST_PP_DEC(X) BOOST_PP_DEC_DELAY(X)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_DEC_DELAY(X) BOOST_PREPROCESSOR_DEC##X #define BOOST_PP_DEC_DELAY(X) BOOST_PP_DEC##X
#define BOOST_PREPROCESSOR_DEC0 0 #define BOOST_PP_DEC0 0
#define BOOST_PREPROCESSOR_DEC1 0 #define BOOST_PP_DEC1 0
#define BOOST_PREPROCESSOR_DEC2 1 #define BOOST_PP_DEC2 1
#define BOOST_PREPROCESSOR_DEC3 2 #define BOOST_PP_DEC3 2
#define BOOST_PREPROCESSOR_DEC4 3 #define BOOST_PP_DEC4 3
#define BOOST_PREPROCESSOR_DEC5 4 #define BOOST_PP_DEC5 4
#define BOOST_PREPROCESSOR_DEC6 5 #define BOOST_PP_DEC6 5
#define BOOST_PREPROCESSOR_DEC7 6 #define BOOST_PP_DEC7 6
#define BOOST_PREPROCESSOR_DEC8 7 #define BOOST_PP_DEC8 7
#define BOOST_PREPROCESSOR_DEC9 8 #define BOOST_PP_DEC9 8
#define BOOST_PREPROCESSOR_DEC10 9 #define BOOST_PP_DEC10 9
#define BOOST_PREPROCESSOR_DEC11 10 #define BOOST_PP_DEC11 10
#define BOOST_PREPROCESSOR_DEC12 11 #define BOOST_PP_DEC12 11
#define BOOST_PREPROCESSOR_DEC13 12 #define BOOST_PP_DEC13 12
#define BOOST_PREPROCESSOR_DEC14 13 #define BOOST_PP_DEC14 13
#define BOOST_PREPROCESSOR_DEC15 14 #define BOOST_PP_DEC15 14
#define BOOST_PREPROCESSOR_DEC16 15 #define BOOST_PP_DEC16 15
#define BOOST_PREPROCESSOR_DEC17 16 #define BOOST_PP_DEC17 16
#define BOOST_PREPROCESSOR_DEC18 17 #define BOOST_PP_DEC18 17
#define BOOST_PREPROCESSOR_DEC19 18 #define BOOST_PP_DEC19 18
#define BOOST_PREPROCESSOR_DEC20 19 #define BOOST_PP_DEC20 19
#define BOOST_PREPROCESSOR_DEC21 20 #define BOOST_PP_DEC21 20
#define BOOST_PREPROCESSOR_DEC22 21 #define BOOST_PP_DEC22 21
#define BOOST_PREPROCESSOR_DEC23 22 #define BOOST_PP_DEC23 22
#define BOOST_PREPROCESSOR_DEC24 23 #define BOOST_PP_DEC24 23
#define BOOST_PREPROCESSOR_DEC25 24 #define BOOST_PP_DEC25 24
#define BOOST_PREPROCESSOR_DEC26 25 #define BOOST_PP_DEC26 25
#define BOOST_PREPROCESSOR_DEC27 26 #define BOOST_PP_DEC27 26
#define BOOST_PREPROCESSOR_DEC28 27 #define BOOST_PP_DEC28 27
#define BOOST_PREPROCESSOR_DEC29 28 #define BOOST_PP_DEC29 28
#define BOOST_PREPROCESSOR_DEC30 29 #define BOOST_PP_DEC30 29
#define BOOST_PREPROCESSOR_DEC31 30 #define BOOST_PP_DEC31 30
#define BOOST_PREPROCESSOR_DEC32 31 #define BOOST_PP_DEC32 31
#define BOOST_PREPROCESSOR_DEC33 32 #define BOOST_PP_DEC33 32
#define BOOST_PREPROCESSOR_DEC34 33 #define BOOST_PP_DEC34 33
#define BOOST_PREPROCESSOR_DEC35 34 #define BOOST_PP_DEC35 34
#define BOOST_PREPROCESSOR_DEC36 35 #define BOOST_PP_DEC36 35
#define BOOST_PREPROCESSOR_DEC37 36 #define BOOST_PP_DEC37 36
#define BOOST_PREPROCESSOR_DEC38 37 #define BOOST_PP_DEC38 37
#define BOOST_PREPROCESSOR_DEC39 38 #define BOOST_PP_DEC39 38
#define BOOST_PREPROCESSOR_DEC40 39 #define BOOST_PP_DEC40 39
#define BOOST_PREPROCESSOR_DEC41 40 #define BOOST_PP_DEC41 40
#define BOOST_PREPROCESSOR_DEC42 41 #define BOOST_PP_DEC42 41
#define BOOST_PREPROCESSOR_DEC43 42 #define BOOST_PP_DEC43 42
#define BOOST_PREPROCESSOR_DEC44 43 #define BOOST_PP_DEC44 43
#define BOOST_PREPROCESSOR_DEC45 44 #define BOOST_PP_DEC45 44
#define BOOST_PREPROCESSOR_DEC46 45 #define BOOST_PP_DEC46 45
#define BOOST_PREPROCESSOR_DEC47 46 #define BOOST_PP_DEC47 46
#define BOOST_PREPROCESSOR_DEC48 47 #define BOOST_PP_DEC48 47
#define BOOST_PREPROCESSOR_DEC49 48 #define BOOST_PP_DEC49 48
#define BOOST_PREPROCESSOR_DEC50 49 #define BOOST_PP_DEC50 49
#define BOOST_PREPROCESSOR_DEC51 50 #define BOOST_PP_DEC51 50
#define BOOST_PREPROCESSOR_DEC52 51 #define BOOST_PP_DEC52 51
#define BOOST_PREPROCESSOR_DEC53 52 #define BOOST_PP_DEC53 52
#define BOOST_PREPROCESSOR_DEC54 53 #define BOOST_PP_DEC54 53
#define BOOST_PREPROCESSOR_DEC55 54 #define BOOST_PP_DEC55 54
#define BOOST_PREPROCESSOR_DEC56 55 #define BOOST_PP_DEC56 55
#define BOOST_PREPROCESSOR_DEC57 56 #define BOOST_PP_DEC57 56
#define BOOST_PREPROCESSOR_DEC58 57 #define BOOST_PP_DEC58 57
#define BOOST_PREPROCESSOR_DEC59 58 #define BOOST_PP_DEC59 58
#define BOOST_PREPROCESSOR_DEC60 59 #define BOOST_PP_DEC60 59
#define BOOST_PREPROCESSOR_DEC61 60 #define BOOST_PP_DEC61 60
#define BOOST_PREPROCESSOR_DEC62 61 #define BOOST_PP_DEC62 61
#define BOOST_PREPROCESSOR_DEC63 62 #define BOOST_PP_DEC63 62
#define BOOST_PREPROCESSOR_DEC64 63 #define BOOST_PP_DEC64 63
#define BOOST_PREPROCESSOR_DEC65 64 #define BOOST_PP_DEC65 64
#define BOOST_PREPROCESSOR_DEC66 65 #define BOOST_PP_DEC66 65
#define BOOST_PREPROCESSOR_DEC67 66 #define BOOST_PP_DEC67 66
#define BOOST_PREPROCESSOR_DEC68 67 #define BOOST_PP_DEC68 67
#define BOOST_PREPROCESSOR_DEC69 68 #define BOOST_PP_DEC69 68
#define BOOST_PREPROCESSOR_DEC70 69 #define BOOST_PP_DEC70 69
#define BOOST_PREPROCESSOR_DEC71 70 #define BOOST_PP_DEC71 70
#define BOOST_PREPROCESSOR_DEC72 71 #define BOOST_PP_DEC72 71
#define BOOST_PREPROCESSOR_DEC73 72 #define BOOST_PP_DEC73 72
#define BOOST_PREPROCESSOR_DEC74 73 #define BOOST_PP_DEC74 73
#define BOOST_PREPROCESSOR_DEC75 74 #define BOOST_PP_DEC75 74
#define BOOST_PREPROCESSOR_DEC76 75 #define BOOST_PP_DEC76 75
#define BOOST_PREPROCESSOR_DEC77 76 #define BOOST_PP_DEC77 76
#define BOOST_PREPROCESSOR_DEC78 77 #define BOOST_PP_DEC78 77
#define BOOST_PREPROCESSOR_DEC79 78 #define BOOST_PP_DEC79 78
#define BOOST_PREPROCESSOR_DEC80 79 #define BOOST_PP_DEC80 79
#define BOOST_PREPROCESSOR_DEC81 80 #define BOOST_PP_DEC81 80
#define BOOST_PREPROCESSOR_DEC82 81 #define BOOST_PP_DEC82 81
#define BOOST_PREPROCESSOR_DEC83 82 #define BOOST_PP_DEC83 82
#define BOOST_PREPROCESSOR_DEC84 83 #define BOOST_PP_DEC84 83
#define BOOST_PREPROCESSOR_DEC85 84 #define BOOST_PP_DEC85 84
#define BOOST_PREPROCESSOR_DEC86 85 #define BOOST_PP_DEC86 85
#define BOOST_PREPROCESSOR_DEC87 86 #define BOOST_PP_DEC87 86
#define BOOST_PREPROCESSOR_DEC88 87 #define BOOST_PP_DEC88 87
#define BOOST_PREPROCESSOR_DEC89 88 #define BOOST_PP_DEC89 88
#define BOOST_PREPROCESSOR_DEC90 89 #define BOOST_PP_DEC90 89
#define BOOST_PREPROCESSOR_DEC91 90 #define BOOST_PP_DEC91 90
#define BOOST_PREPROCESSOR_DEC92 91 #define BOOST_PP_DEC92 91
#define BOOST_PREPROCESSOR_DEC93 92 #define BOOST_PP_DEC93 92
#define BOOST_PREPROCESSOR_DEC94 93 #define BOOST_PP_DEC94 93
#define BOOST_PREPROCESSOR_DEC95 94 #define BOOST_PP_DEC95 94
#define BOOST_PREPROCESSOR_DEC96 95 #define BOOST_PP_DEC96 95
#define BOOST_PREPROCESSOR_DEC97 96 #define BOOST_PP_DEC97 96
#define BOOST_PREPROCESSOR_DEC98 97 #define BOOST_PP_DEC98 97
#define BOOST_PREPROCESSOR_DEC99 98 #define BOOST_PP_DEC99 98
#define BOOST_PREPROCESSOR_DEC100 99 #define BOOST_PP_DEC100 99
#define BOOST_PREPROCESSOR_DEC101 100 #define BOOST_PP_DEC101 100
#define BOOST_PREPROCESSOR_DEC102 101 #define BOOST_PP_DEC102 101
#define BOOST_PREPROCESSOR_DEC103 102 #define BOOST_PP_DEC103 102
#define BOOST_PREPROCESSOR_DEC104 103 #define BOOST_PP_DEC104 103
#define BOOST_PREPROCESSOR_DEC105 104 #define BOOST_PP_DEC105 104
#define BOOST_PREPROCESSOR_DEC106 105 #define BOOST_PP_DEC106 105
#define BOOST_PREPROCESSOR_DEC107 106 #define BOOST_PP_DEC107 106
#define BOOST_PREPROCESSOR_DEC108 107 #define BOOST_PP_DEC108 107
#define BOOST_PREPROCESSOR_DEC109 108 #define BOOST_PP_DEC109 108
#define BOOST_PREPROCESSOR_DEC110 109 #define BOOST_PP_DEC110 109
#define BOOST_PREPROCESSOR_DEC111 110 #define BOOST_PP_DEC111 110
#define BOOST_PREPROCESSOR_DEC112 111 #define BOOST_PP_DEC112 111
#define BOOST_PREPROCESSOR_DEC113 112 #define BOOST_PP_DEC113 112
#define BOOST_PREPROCESSOR_DEC114 113 #define BOOST_PP_DEC114 113
#define BOOST_PREPROCESSOR_DEC115 114 #define BOOST_PP_DEC115 114
#define BOOST_PREPROCESSOR_DEC116 115 #define BOOST_PP_DEC116 115
#define BOOST_PREPROCESSOR_DEC117 116 #define BOOST_PP_DEC117 116
#define BOOST_PREPROCESSOR_DEC118 117 #define BOOST_PP_DEC118 117
#define BOOST_PREPROCESSOR_DEC119 118 #define BOOST_PP_DEC119 118
#define BOOST_PREPROCESSOR_DEC120 119 #define BOOST_PP_DEC120 119
#define BOOST_PREPROCESSOR_DEC121 120 #define BOOST_PP_DEC121 120
#define BOOST_PREPROCESSOR_DEC122 121 #define BOOST_PP_DEC122 121
#define BOOST_PREPROCESSOR_DEC123 122 #define BOOST_PP_DEC123 122
#define BOOST_PREPROCESSOR_DEC124 123 #define BOOST_PP_DEC124 123
#define BOOST_PREPROCESSOR_DEC125 124 #define BOOST_PP_DEC125 124
#define BOOST_PREPROCESSOR_DEC126 125 #define BOOST_PP_DEC126 125
#define BOOST_PREPROCESSOR_DEC127 126 #define BOOST_PP_DEC127 126
#define BOOST_PREPROCESSOR_DEC128 127 #define BOOST_PP_DEC128 127
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_DEC().
#define BOOST_PREPROCESSOR_DEC(X) BOOST_PP_DEC(X)
#endif #endif

View File

@ -17,19 +17,19 @@
<a href="../../../../boost/preprocessor/empty.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/empty.hpp">Click here to see the header.</a>
*/ */
//! Expands to nothing. Used with BOOST_PREPROCESSOR_IF() and as an unused parameter. //! Expands to nothing. Used with BOOST_PP_IF() and as an unused parameter.
/*! /*!
Example usage as the implementation of BOOST_PREPROCESSOR_COMMA_IF(C): Example usage as the implementation of BOOST_PP_COMMA_IF(C):
<PRE>\verbatim <PRE>\verbatim
#define BOOST_PREPROCESSOR_COMMA_IF(C)\ #define BOOST_PP_COMMA_IF(C)\
BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)() BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
\endverbatim</PRE> \endverbatim</PRE>
Example usage as an unused macro parameter: Example usage as an unused macro parameter:
<PRE>\verbatim <PRE>\verbatim
#define BOOST_PREPROCESSOR_DEF(CV)\ #define BOOST_PP_DEF(CV)\
template<class base> \ template<class base> \
CV typename implement_subscript_using_begin_subscript<base>::value_type&\ CV typename implement_subscript_using_begin_subscript<base>::value_type&\
implement_subscript_using_begin_subscript<base>::operator[]\ implement_subscript_using_begin_subscript<base>::operator[]\
@ -39,9 +39,9 @@ Example usage as an unused macro parameter:
{ return base::begin()[i]; \ { return base::begin()[i]; \
} }
BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY()) BOOST_PP_DEF(BOOST_PP_EMPTY())
BOOST_PREPROCESSOR_DEF(const) BOOST_PP_DEF(const)
#undef BOOST_PREPROCESSOR_DEF #undef BOOST_PP_DEF
\endverbatim</PRE> \endverbatim</PRE>
The above expands to: The above expands to:
@ -69,5 +69,8 @@ The above expands to:
In case you wonder, the above code is part of a generalized layer for In case you wonder, the above code is part of a generalized layer for
implementing the subscripting operators of a random access container. implementing the subscripting operators of a random access container.
*/ */
#define BOOST_PP_EMPTY()
//! Obsolete. Use BOOST_PP_EMPTY().
#define BOOST_PREPROCESSOR_EMPTY() #define BOOST_PREPROCESSOR_EMPTY()
#endif #endif

View File

@ -17,12 +17,8 @@
<a href="../../../../boost/preprocessor/enum_params.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP #include <boost/preprocessor/comma_if.hpp>
# include <boost/preprocessor/comma_if.hpp> #include <boost/preprocessor/repeat.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_REPEAT_HPP
# include <boost/preprocessor/repeat.hpp>
#endif
//! Generates a comma separated list of parameters. //! Generates a comma separated list of parameters.
/*! /*!
@ -32,11 +28,14 @@ In other words, expands to the sequence:
P##0, P##1, ..., P##N-1 P##0, P##1, ..., P##N-1
\endverbatim</PRE> \endverbatim</PRE>
NOTE: The implementation uses BOOST_PREPROCESSOR_REPEAT(). NOTE: The implementation uses BOOST_PP_REPEAT().
*/ */
#define BOOST_PREPROCESSOR_ENUM_PARAMS(N,P) BOOST_PREPROCESSOR_REPEAT(N,BOOST_PREPROCESSOR_PARAM,P) #define BOOST_PP_ENUM_PARAMS(N,P) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_PARAMS_F,P)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_PARAM(I,P) BOOST_PREPROCESSOR_COMMA_IF(I) P##I #define BOOST_PP_ENUM_PARAMS_F(I,P) BOOST_PP_COMMA_IF(I) P##I
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_ENUM_PARAMS().
#define BOOST_PREPROCESSOR_ENUM_PARAMS(N,P) BOOST_PP_ENUM_PARAMS(N,P)
#endif #endif

View File

@ -17,18 +17,10 @@
<a href="../../../../boost/preprocessor/enum_params_with_a_default.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params_with_a_default.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_CAT_HPP #include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/comma_if.hpp>
#endif #include <boost/preprocessor/repeat.hpp>
#ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP #include <boost/preprocessor/tuple.hpp>
# include <boost/preprocessor/comma_if.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_REPEAT_HPP
# include <boost/preprocessor/repeat.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
//! Generates a comma separated list of parameters with a default. //! Generates a comma separated list of parameters with a default.
/*! /*!
@ -38,11 +30,14 @@ In other words, expands to the sequence:
P##0 = D, P##1 = D, ..., P##N-1 = D P##0 = D, P##1 = D, ..., P##N-1 = D
\endverbatim</PRE> \endverbatim</PRE>
NOTE: The implementation uses BOOST_PREPROCESSOR_REPEAT(). NOTE: The implementation uses BOOST_PP_REPEAT().
*/ */
#define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PREPROCESSOR_REPEAT(N,BOOST_PREPROCESSOR_PARAM_WITH_A_DEFAULT,(P,D)) #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F,(P,D))
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_PARAM_WITH_A_DEFAULT(I,PD) BOOST_PREPROCESSOR_COMMA_IF(I) BOOST_PREPROCESSOR_CAT(BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,PD),I)=BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,PD) #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F(I,PD) BOOST_PP_COMMA_IF(I) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_TUPLE_ELEM(2,1,PD)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT().
#define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D)
#endif #endif

View File

@ -17,18 +17,10 @@
<a href="../../../../boost/preprocessor/enum_params_with_defaults.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_params_with_defaults.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_CAT_HPP #include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/comma_if.hpp>
#endif #include <boost/preprocessor/repeat.hpp>
#ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP #include <boost/preprocessor/tuple.hpp>
# include <boost/preprocessor/comma_if.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_REPEAT_HPP
# include <boost/preprocessor/repeat.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_TUPLE_HPP
# include <boost/preprocessor/tuple.hpp>
#endif
//! Generates a comma separated list of parameters with defaults. //! Generates a comma separated list of parameters with defaults.
/*! /*!
@ -38,11 +30,14 @@ In other words, expands to the sequence:
P##0 = D##0, P##1 = D##1, ..., P##N-1 = D##N-1 P##0 = D##0, P##1 = D##1, ..., P##N-1 = D##N-1
\endverbatim</PRE> \endverbatim</PRE>
NOTE: The implementation uses BOOST_PREPROCESSOR_REPEAT(). NOTE: The implementation uses BOOST_PP_REPEAT().
*/ */
#define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PREPROCESSOR_REPEAT(N,BOOST_PREPROCESSOR_PARAM_WITH_DEFAULT,(P,D)) #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F,(P,D))
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_PARAM_WITH_DEFAULT(I,PD) BOOST_PREPROCESSOR_COMMA_IF(I) BOOST_PREPROCESSOR_CAT(BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,PD),I)=BOOST_PREPROCESSOR_CAT(BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,PD),I) #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F(I,PD) BOOST_PP_COMMA_IF(I) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,1,PD),I)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS().
#define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D)
#endif #endif

View File

@ -17,21 +17,11 @@
<a href="../../../../boost/preprocessor/enum_shifted_params.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/enum_shifted_params.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_CAT_HPP #include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/comma_if.hpp>
#endif #include <boost/preprocessor/dec.hpp>
#ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP #include <boost/preprocessor/inc.hpp>
# include <boost/preprocessor/comma_if.hpp> #include <boost/preprocessor/repeat.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_DEC_HPP
# include <boost/preprocessor/dec.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_INC_HPP
# include <boost/preprocessor/inc.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_REPEAT_HPP
# include <boost/preprocessor/repeat.hpp>
#endif
//! Generates a comma separated list of shifted actual parameters. //! Generates a comma separated list of shifted actual parameters.
/*! /*!
@ -41,15 +31,18 @@ In other words, expands to the sequence:
P##1, P##2, ..., P##N-1 P##1, P##2, ..., P##N-1
\endverbatim</PRE> \endverbatim</PRE>
NOTE: The implementation uses BOOST_PREPROCESSOR_REPEAT(). NOTE: The implementation uses BOOST_PP_REPEAT().
RATIONALE: RATIONALE:
- This macro facilitates a typical usage of the library. Shifted parameter - This macro facilitates a typical usage of the library. Shifted parameter
lists are common in template metaprograms. lists are common in template metaprograms.
*/ */
#define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS(N,P) BOOST_PREPROCESSOR_REPEAT(BOOST_PREPROCESSOR_DEC(N),BOOST_PREPROCESSOR_SHIFTED_PARAM,P) #define BOOST_PP_ENUM_SHIFTED_PARAMS(N,P) BOOST_PP_REPEAT(BOOST_PP_DEC(N),BOOST_PP_SHIFTED_PARAM,P)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_SHIFTED_PARAM(I,P) BOOST_PREPROCESSOR_COMMA_IF(I) BOOST_PREPROCESSOR_CAT(P,BOOST_PREPROCESSOR_INC(I)) #define BOOST_PP_SHIFTED_PARAM(I,P) BOOST_PP_COMMA_IF(I) BOOST_PP_CAT(P,BOOST_PP_INC(I))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_ENUM_SHIFTED_PARAMS().
#define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS(N,P) BOOST_PP_ENUM_SHIFTED_PARAMS(N,P)
#endif #endif

View File

@ -17,19 +17,17 @@
<a href="../../../../boost/preprocessor/identity.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/identity.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_EMPTY_HPP #include <boost/preprocessor/empty.hpp>
# include <boost/preprocessor/empty.hpp>
#endif
//! Expands to X once invoked. //! Expands to X once invoked.
/*! /*!
Designed to be used with BOOST_PREPROCESSOR_IF(), when one of the clauses need to be invoked. Designed to be used with BOOST_PP_IF(), when one of the clauses need to be invoked.
Example: Example:
<PRE>\verbatim <PRE>\verbatim
BOOST_PREPROCESSOR_IDENTITY(X)() BOOST_PP_IDENTITY(X)()
// ^^ NOTE! // ^^ NOTE!
\endverbatim</PRE> \endverbatim</PRE>
The above expands to: The above expands to:
@ -38,7 +36,10 @@ The above expands to:
X X
\endverbatim</PRE> \endverbatim</PRE>
NOTE: If BOOST_PREPROCESSOR_IDENTITY() is not invoked, the expansion will not be usable. NOTE: If BOOST_PP_IDENTITY() is not invoked, the expansion will not be usable.
*/ */
#define BOOST_PREPROCESSOR_IDENTITY(X) X BOOST_PREPROCESSOR_EMPTY #define BOOST_PP_IDENTITY(X) X BOOST_PP_EMPTY
//! Obsolete. Use BOOST_PP_IDENTITY().
#define BOOST_PREPROCESSOR_IDENTITY(X) BOOST_PP_IDENTITY(X)
#endif #endif

View File

@ -17,21 +17,22 @@
<a href="../../../../boost/preprocessor/if.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/if.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP #include <boost/preprocessor/logical/bool.hpp>
# include <boost/preprocessor/logical/bool.hpp>
#endif
//! Expands to T if C != 0 and E if C == 0. //! Expands to T if C != 0 and E if C == 0.
/*! /*!
BOOST_PREPROCESSOR_IF() enables convenient generation of lists using BOOST_PP_IF() enables convenient generation of lists using
BOOST_PREPROCESSOR_REPEAT(). BOOST_PP_REPEAT().
*/ */
#define BOOST_PREPROCESSOR_IF(C,T,E) BOOST_PREPROCESSOR_IF_BOOL(BOOST_PREPROCESSOR_BOOL(C),T,E) #define BOOST_PP_IF(C,T,E) BOOST_PP_IF_BOOL(BOOST_PP_BOOL(C),T,E)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_IF_BOOL(C,T,E) BOOST_PREPROCESSOR_IF_BOOL_DELAY(C,T,E) #define BOOST_PP_IF_BOOL(C,T,E) BOOST_PP_IF_BOOL_DELAY(C,T,E)
#define BOOST_PREPROCESSOR_IF_BOOL_DELAY(C,T,E) BOOST_PREPROCESSOR_IF_BOOL##C(T,E) #define BOOST_PP_IF_BOOL_DELAY(C,T,E) BOOST_PP_IF_BOOL##C(T,E)
#define BOOST_PREPROCESSOR_IF_BOOL0(T,E) E #define BOOST_PP_IF_BOOL0(T,E) E
#define BOOST_PREPROCESSOR_IF_BOOL1(T,E) T #define BOOST_PP_IF_BOOL1(T,E) T
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_IF().
#define BOOST_PREPROCESSOR_IF(C,T,E) BOOST_PP_IF(C,T,E)
#endif #endif

View File

@ -19,144 +19,149 @@
//! Increments X expanding to a single token. //! Increments X expanding to a single token.
/*! /*!
BOOST_PREPROCESSOR_INC() uses saturation arithmetic. Incrementing a For example, BOOST_PP_INC(3) expands to 4 (a single token).
BOOST_PREPROCESSOR_LIMIT_MAG yields a BOOST_PREPROCESSOR_LIMIT_MAG.
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are BOOST_PP_INC() uses saturation arithmetic. Incrementing a
BOOST_PP_LIMIT_MAG yields a BOOST_PP_LIMIT_MAG.
Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are
supported. supported.
*/ */
#define BOOST_PREPROCESSOR_INC(X) BOOST_PREPROCESSOR_INC_DELAY(X) #define BOOST_PP_INC(X) BOOST_PP_INC_DELAY(X)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_INC_DELAY(X) BOOST_PREPROCESSOR_INC##X #define BOOST_PP_INC_DELAY(X) BOOST_PP_INC##X
#define BOOST_PREPROCESSOR_INC0 1 #define BOOST_PP_INC0 1
#define BOOST_PREPROCESSOR_INC1 2 #define BOOST_PP_INC1 2
#define BOOST_PREPROCESSOR_INC2 3 #define BOOST_PP_INC2 3
#define BOOST_PREPROCESSOR_INC3 4 #define BOOST_PP_INC3 4
#define BOOST_PREPROCESSOR_INC4 5 #define BOOST_PP_INC4 5
#define BOOST_PREPROCESSOR_INC5 6 #define BOOST_PP_INC5 6
#define BOOST_PREPROCESSOR_INC6 7 #define BOOST_PP_INC6 7
#define BOOST_PREPROCESSOR_INC7 8 #define BOOST_PP_INC7 8
#define BOOST_PREPROCESSOR_INC8 9 #define BOOST_PP_INC8 9
#define BOOST_PREPROCESSOR_INC9 10 #define BOOST_PP_INC9 10
#define BOOST_PREPROCESSOR_INC10 11 #define BOOST_PP_INC10 11
#define BOOST_PREPROCESSOR_INC11 12 #define BOOST_PP_INC11 12
#define BOOST_PREPROCESSOR_INC12 13 #define BOOST_PP_INC12 13
#define BOOST_PREPROCESSOR_INC13 14 #define BOOST_PP_INC13 14
#define BOOST_PREPROCESSOR_INC14 15 #define BOOST_PP_INC14 15
#define BOOST_PREPROCESSOR_INC15 16 #define BOOST_PP_INC15 16
#define BOOST_PREPROCESSOR_INC16 17 #define BOOST_PP_INC16 17
#define BOOST_PREPROCESSOR_INC17 18 #define BOOST_PP_INC17 18
#define BOOST_PREPROCESSOR_INC18 19 #define BOOST_PP_INC18 19
#define BOOST_PREPROCESSOR_INC19 20 #define BOOST_PP_INC19 20
#define BOOST_PREPROCESSOR_INC20 21 #define BOOST_PP_INC20 21
#define BOOST_PREPROCESSOR_INC21 22 #define BOOST_PP_INC21 22
#define BOOST_PREPROCESSOR_INC22 23 #define BOOST_PP_INC22 23
#define BOOST_PREPROCESSOR_INC23 24 #define BOOST_PP_INC23 24
#define BOOST_PREPROCESSOR_INC24 25 #define BOOST_PP_INC24 25
#define BOOST_PREPROCESSOR_INC25 26 #define BOOST_PP_INC25 26
#define BOOST_PREPROCESSOR_INC26 27 #define BOOST_PP_INC26 27
#define BOOST_PREPROCESSOR_INC27 28 #define BOOST_PP_INC27 28
#define BOOST_PREPROCESSOR_INC28 29 #define BOOST_PP_INC28 29
#define BOOST_PREPROCESSOR_INC29 30 #define BOOST_PP_INC29 30
#define BOOST_PREPROCESSOR_INC30 31 #define BOOST_PP_INC30 31
#define BOOST_PREPROCESSOR_INC31 32 #define BOOST_PP_INC31 32
#define BOOST_PREPROCESSOR_INC32 33 #define BOOST_PP_INC32 33
#define BOOST_PREPROCESSOR_INC33 34 #define BOOST_PP_INC33 34
#define BOOST_PREPROCESSOR_INC34 35 #define BOOST_PP_INC34 35
#define BOOST_PREPROCESSOR_INC35 36 #define BOOST_PP_INC35 36
#define BOOST_PREPROCESSOR_INC36 37 #define BOOST_PP_INC36 37
#define BOOST_PREPROCESSOR_INC37 38 #define BOOST_PP_INC37 38
#define BOOST_PREPROCESSOR_INC38 39 #define BOOST_PP_INC38 39
#define BOOST_PREPROCESSOR_INC39 40 #define BOOST_PP_INC39 40
#define BOOST_PREPROCESSOR_INC40 41 #define BOOST_PP_INC40 41
#define BOOST_PREPROCESSOR_INC41 42 #define BOOST_PP_INC41 42
#define BOOST_PREPROCESSOR_INC42 43 #define BOOST_PP_INC42 43
#define BOOST_PREPROCESSOR_INC43 44 #define BOOST_PP_INC43 44
#define BOOST_PREPROCESSOR_INC44 45 #define BOOST_PP_INC44 45
#define BOOST_PREPROCESSOR_INC45 46 #define BOOST_PP_INC45 46
#define BOOST_PREPROCESSOR_INC46 47 #define BOOST_PP_INC46 47
#define BOOST_PREPROCESSOR_INC47 48 #define BOOST_PP_INC47 48
#define BOOST_PREPROCESSOR_INC48 49 #define BOOST_PP_INC48 49
#define BOOST_PREPROCESSOR_INC49 50 #define BOOST_PP_INC49 50
#define BOOST_PREPROCESSOR_INC50 51 #define BOOST_PP_INC50 51
#define BOOST_PREPROCESSOR_INC51 52 #define BOOST_PP_INC51 52
#define BOOST_PREPROCESSOR_INC52 53 #define BOOST_PP_INC52 53
#define BOOST_PREPROCESSOR_INC53 54 #define BOOST_PP_INC53 54
#define BOOST_PREPROCESSOR_INC54 55 #define BOOST_PP_INC54 55
#define BOOST_PREPROCESSOR_INC55 56 #define BOOST_PP_INC55 56
#define BOOST_PREPROCESSOR_INC56 57 #define BOOST_PP_INC56 57
#define BOOST_PREPROCESSOR_INC57 58 #define BOOST_PP_INC57 58
#define BOOST_PREPROCESSOR_INC58 59 #define BOOST_PP_INC58 59
#define BOOST_PREPROCESSOR_INC59 60 #define BOOST_PP_INC59 60
#define BOOST_PREPROCESSOR_INC60 61 #define BOOST_PP_INC60 61
#define BOOST_PREPROCESSOR_INC61 62 #define BOOST_PP_INC61 62
#define BOOST_PREPROCESSOR_INC62 63 #define BOOST_PP_INC62 63
#define BOOST_PREPROCESSOR_INC63 64 #define BOOST_PP_INC63 64
#define BOOST_PREPROCESSOR_INC64 65 #define BOOST_PP_INC64 65
#define BOOST_PREPROCESSOR_INC65 66 #define BOOST_PP_INC65 66
#define BOOST_PREPROCESSOR_INC66 67 #define BOOST_PP_INC66 67
#define BOOST_PREPROCESSOR_INC67 68 #define BOOST_PP_INC67 68
#define BOOST_PREPROCESSOR_INC68 69 #define BOOST_PP_INC68 69
#define BOOST_PREPROCESSOR_INC69 70 #define BOOST_PP_INC69 70
#define BOOST_PREPROCESSOR_INC70 71 #define BOOST_PP_INC70 71
#define BOOST_PREPROCESSOR_INC71 72 #define BOOST_PP_INC71 72
#define BOOST_PREPROCESSOR_INC72 73 #define BOOST_PP_INC72 73
#define BOOST_PREPROCESSOR_INC73 74 #define BOOST_PP_INC73 74
#define BOOST_PREPROCESSOR_INC74 75 #define BOOST_PP_INC74 75
#define BOOST_PREPROCESSOR_INC75 76 #define BOOST_PP_INC75 76
#define BOOST_PREPROCESSOR_INC76 77 #define BOOST_PP_INC76 77
#define BOOST_PREPROCESSOR_INC77 78 #define BOOST_PP_INC77 78
#define BOOST_PREPROCESSOR_INC78 79 #define BOOST_PP_INC78 79
#define BOOST_PREPROCESSOR_INC79 80 #define BOOST_PP_INC79 80
#define BOOST_PREPROCESSOR_INC80 81 #define BOOST_PP_INC80 81
#define BOOST_PREPROCESSOR_INC81 82 #define BOOST_PP_INC81 82
#define BOOST_PREPROCESSOR_INC82 83 #define BOOST_PP_INC82 83
#define BOOST_PREPROCESSOR_INC83 84 #define BOOST_PP_INC83 84
#define BOOST_PREPROCESSOR_INC84 85 #define BOOST_PP_INC84 85
#define BOOST_PREPROCESSOR_INC85 86 #define BOOST_PP_INC85 86
#define BOOST_PREPROCESSOR_INC86 87 #define BOOST_PP_INC86 87
#define BOOST_PREPROCESSOR_INC87 88 #define BOOST_PP_INC87 88
#define BOOST_PREPROCESSOR_INC88 89 #define BOOST_PP_INC88 89
#define BOOST_PREPROCESSOR_INC89 90 #define BOOST_PP_INC89 90
#define BOOST_PREPROCESSOR_INC90 91 #define BOOST_PP_INC90 91
#define BOOST_PREPROCESSOR_INC91 92 #define BOOST_PP_INC91 92
#define BOOST_PREPROCESSOR_INC92 93 #define BOOST_PP_INC92 93
#define BOOST_PREPROCESSOR_INC93 94 #define BOOST_PP_INC93 94
#define BOOST_PREPROCESSOR_INC94 95 #define BOOST_PP_INC94 95
#define BOOST_PREPROCESSOR_INC95 96 #define BOOST_PP_INC95 96
#define BOOST_PREPROCESSOR_INC96 97 #define BOOST_PP_INC96 97
#define BOOST_PREPROCESSOR_INC97 98 #define BOOST_PP_INC97 98
#define BOOST_PREPROCESSOR_INC98 99 #define BOOST_PP_INC98 99
#define BOOST_PREPROCESSOR_INC99 100 #define BOOST_PP_INC99 100
#define BOOST_PREPROCESSOR_INC100 101 #define BOOST_PP_INC100 101
#define BOOST_PREPROCESSOR_INC101 102 #define BOOST_PP_INC101 102
#define BOOST_PREPROCESSOR_INC102 103 #define BOOST_PP_INC102 103
#define BOOST_PREPROCESSOR_INC103 104 #define BOOST_PP_INC103 104
#define BOOST_PREPROCESSOR_INC104 105 #define BOOST_PP_INC104 105
#define BOOST_PREPROCESSOR_INC105 106 #define BOOST_PP_INC105 106
#define BOOST_PREPROCESSOR_INC106 107 #define BOOST_PP_INC106 107
#define BOOST_PREPROCESSOR_INC107 108 #define BOOST_PP_INC107 108
#define BOOST_PREPROCESSOR_INC108 109 #define BOOST_PP_INC108 109
#define BOOST_PREPROCESSOR_INC109 110 #define BOOST_PP_INC109 110
#define BOOST_PREPROCESSOR_INC110 111 #define BOOST_PP_INC110 111
#define BOOST_PREPROCESSOR_INC111 112 #define BOOST_PP_INC111 112
#define BOOST_PREPROCESSOR_INC112 113 #define BOOST_PP_INC112 113
#define BOOST_PREPROCESSOR_INC113 114 #define BOOST_PP_INC113 114
#define BOOST_PREPROCESSOR_INC114 115 #define BOOST_PP_INC114 115
#define BOOST_PREPROCESSOR_INC115 116 #define BOOST_PP_INC115 116
#define BOOST_PREPROCESSOR_INC116 117 #define BOOST_PP_INC116 117
#define BOOST_PREPROCESSOR_INC117 118 #define BOOST_PP_INC117 118
#define BOOST_PREPROCESSOR_INC118 119 #define BOOST_PP_INC118 119
#define BOOST_PREPROCESSOR_INC119 120 #define BOOST_PP_INC119 120
#define BOOST_PREPROCESSOR_INC120 121 #define BOOST_PP_INC120 121
#define BOOST_PREPROCESSOR_INC121 122 #define BOOST_PP_INC121 122
#define BOOST_PREPROCESSOR_INC122 123 #define BOOST_PP_INC122 123
#define BOOST_PREPROCESSOR_INC123 124 #define BOOST_PP_INC123 124
#define BOOST_PREPROCESSOR_INC124 125 #define BOOST_PP_INC124 125
#define BOOST_PREPROCESSOR_INC125 126 #define BOOST_PP_INC125 126
#define BOOST_PREPROCESSOR_INC126 127 #define BOOST_PP_INC126 127
#define BOOST_PREPROCESSOR_INC127 128 #define BOOST_PP_INC127 128
#define BOOST_PREPROCESSOR_INC128 128 #define BOOST_PP_INC128 128
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_INC().
#define BOOST_PREPROCESSOR_INC(X) BOOST_PP_INC(X)
#endif #endif

View File

@ -18,19 +18,35 @@
*/ */
//! Expands to the number of dimensions of repeat supported by the library. //! Expands to the number of dimensions of repeat supported by the library.
#define BOOST_PREPROCESSOR_LIMIT_DIM 3 /*!
The repeat macros are named BOOST_PP_REPEAT(), BOOST_PP_REPEAT_2ND(),
BOOST_PP_REPEAT_3RD(), ...
*/
#define BOOST_PP_LIMIT_DIM 3
//! Expands to the maximum straight numeric literal supported by the library. //! Expands to the maximum straight numeric literal supported by the library.
/*! /*!
This is also the limit of the repetition primitives (BOOST_PP_ENUM family and
BOOST_PP_REPEAT family).
NOTES: NOTES:
- Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] - Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG]
are supported. are supported.
- All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic. - All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic.
- The maximum repetition count supported by the library may not be reached - The maximum repetition count supported by the library may not be reached
due to compiler limitations. due to compiler limitations.
*/ */
#define BOOST_PREPROCESSOR_LIMIT_MAG 128 #define BOOST_PP_LIMIT_MAG 128
//! Expands to the maximum tuple length supported by the library. //! Expands to the maximum tuple length supported by the library.
#define BOOST_PREPROCESSOR_LIMIT_TUPLE 8 #define BOOST_PP_LIMIT_TUPLE 8
//! Obsolete. Use BOOST_PP_LIMIT_DIM.
#define BOOST_PREPROCESSOR_LIMIT_DIM BOOST_PP_LIMIT_DIM
//! Obsolete. Use BOOST_PP_LIMIT_MAG.
#define BOOST_PREPROCESSOR_LIMIT_MAG BOOST_PP_LIMIT_MAG
//! Obsolete. Use BOOST_PP_LIMIT_TUPLE.
#define BOOST_PREPROCESSOR_LIMIT_TUPLE BOOST_PP_LIMIT_TUPLE
#endif #endif

View File

@ -15,24 +15,10 @@
/*! \file /*! \file
<a href="../../../../boost/preprocessor/logical.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical.hpp">Click here to see the header.</a>
Includes all logical headers.
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP #include <boost/preprocessor/logical/or.hpp>
# include <boost/preprocessor/logical/and.hpp> #include <boost/preprocessor/logical/xor.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
# include <boost/preprocessor/logical/bool.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP
# include <boost/preprocessor/logical/nor.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
# include <boost/preprocessor/logical/not.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_OR_HPP
# include <boost/preprocessor/logical/or.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_XOR_HPP
# include <boost/preprocessor/logical/xor.hpp>
#endif
#endif #endif

View File

@ -17,13 +17,14 @@
<a href="../../../../boost/preprocessor/logical/and.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/and.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP #include <boost/preprocessor/logical/not.hpp>
# include <boost/preprocessor/logical/nor.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
# include <boost/preprocessor/logical/not.hpp>
#endif
//! Expands to the logical AND of the operands. //! Expands to the logical AND of the operands.
#define BOOST_PREPROCESSOR_AND(X,Y) BOOST_PREPROCESSOR_NOR(BOOST_PREPROCESSOR_NOT(X),BOOST_PREPROCESSOR_NOT(Y)) /*!
For example, BOOST_PP_AND(0,5) expands to 0 (a single token).
*/
#define BOOST_PP_AND(X,Y) BOOST_PP_NOR(BOOST_PP_NOT(X),BOOST_PP_NOT(Y))
//! Obsolete. Use BOOST_PP_AND().
#define BOOST_PREPROCESSOR_AND(X,Y) BOOST_PP_AND(X,Y)
#endif #endif

View File

@ -17,141 +17,144 @@
<a href="../../../../boost/preprocessor/logical/bool.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/bool.hpp">Click here to see the header.</a>
*/ */
//! Expands to 0 if X == 0 and 1 if X != 0. //! Expands to 0 if X == 0 and 1 if X != 0.
#define BOOST_PREPROCESSOR_BOOL(X) BOOST_PREPROCESSOR_BOOL_DELAY(X) #define BOOST_PP_BOOL(X) BOOST_PP_BOOL_DELAY(X)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
// BOOL can be implemented in O(1) tokens using saturated ADD & SUB. // BOOL can be implemented in O(1) tokens using saturated ADD & SUB.
// Unfortunately, it would result in significantly slower preprocessing. // Unfortunately, it would result in significantly slower preprocessing.
#define BOOST_PREPROCESSOR_BOOL_DELAY(X) BOOST_PREPROCESSOR_BOOL##X #define BOOST_PP_BOOL_DELAY(X) BOOST_PP_BOOL##X
#define BOOST_PREPROCESSOR_BOOL0 0 #define BOOST_PP_BOOL0 0
#define BOOST_PREPROCESSOR_BOOL1 1 #define BOOST_PP_BOOL1 1
#define BOOST_PREPROCESSOR_BOOL2 1 #define BOOST_PP_BOOL2 1
#define BOOST_PREPROCESSOR_BOOL3 1 #define BOOST_PP_BOOL3 1
#define BOOST_PREPROCESSOR_BOOL4 1 #define BOOST_PP_BOOL4 1
#define BOOST_PREPROCESSOR_BOOL5 1 #define BOOST_PP_BOOL5 1
#define BOOST_PREPROCESSOR_BOOL6 1 #define BOOST_PP_BOOL6 1
#define BOOST_PREPROCESSOR_BOOL7 1 #define BOOST_PP_BOOL7 1
#define BOOST_PREPROCESSOR_BOOL8 1 #define BOOST_PP_BOOL8 1
#define BOOST_PREPROCESSOR_BOOL9 1 #define BOOST_PP_BOOL9 1
#define BOOST_PREPROCESSOR_BOOL10 1 #define BOOST_PP_BOOL10 1
#define BOOST_PREPROCESSOR_BOOL11 1 #define BOOST_PP_BOOL11 1
#define BOOST_PREPROCESSOR_BOOL12 1 #define BOOST_PP_BOOL12 1
#define BOOST_PREPROCESSOR_BOOL13 1 #define BOOST_PP_BOOL13 1
#define BOOST_PREPROCESSOR_BOOL14 1 #define BOOST_PP_BOOL14 1
#define BOOST_PREPROCESSOR_BOOL15 1 #define BOOST_PP_BOOL15 1
#define BOOST_PREPROCESSOR_BOOL16 1 #define BOOST_PP_BOOL16 1
#define BOOST_PREPROCESSOR_BOOL17 1 #define BOOST_PP_BOOL17 1
#define BOOST_PREPROCESSOR_BOOL18 1 #define BOOST_PP_BOOL18 1
#define BOOST_PREPROCESSOR_BOOL19 1 #define BOOST_PP_BOOL19 1
#define BOOST_PREPROCESSOR_BOOL20 1 #define BOOST_PP_BOOL20 1
#define BOOST_PREPROCESSOR_BOOL21 1 #define BOOST_PP_BOOL21 1
#define BOOST_PREPROCESSOR_BOOL22 1 #define BOOST_PP_BOOL22 1
#define BOOST_PREPROCESSOR_BOOL23 1 #define BOOST_PP_BOOL23 1
#define BOOST_PREPROCESSOR_BOOL24 1 #define BOOST_PP_BOOL24 1
#define BOOST_PREPROCESSOR_BOOL25 1 #define BOOST_PP_BOOL25 1
#define BOOST_PREPROCESSOR_BOOL26 1 #define BOOST_PP_BOOL26 1
#define BOOST_PREPROCESSOR_BOOL27 1 #define BOOST_PP_BOOL27 1
#define BOOST_PREPROCESSOR_BOOL28 1 #define BOOST_PP_BOOL28 1
#define BOOST_PREPROCESSOR_BOOL29 1 #define BOOST_PP_BOOL29 1
#define BOOST_PREPROCESSOR_BOOL30 1 #define BOOST_PP_BOOL30 1
#define BOOST_PREPROCESSOR_BOOL31 1 #define BOOST_PP_BOOL31 1
#define BOOST_PREPROCESSOR_BOOL32 1 #define BOOST_PP_BOOL32 1
#define BOOST_PREPROCESSOR_BOOL33 1 #define BOOST_PP_BOOL33 1
#define BOOST_PREPROCESSOR_BOOL34 1 #define BOOST_PP_BOOL34 1
#define BOOST_PREPROCESSOR_BOOL35 1 #define BOOST_PP_BOOL35 1
#define BOOST_PREPROCESSOR_BOOL36 1 #define BOOST_PP_BOOL36 1
#define BOOST_PREPROCESSOR_BOOL37 1 #define BOOST_PP_BOOL37 1
#define BOOST_PREPROCESSOR_BOOL38 1 #define BOOST_PP_BOOL38 1
#define BOOST_PREPROCESSOR_BOOL39 1 #define BOOST_PP_BOOL39 1
#define BOOST_PREPROCESSOR_BOOL40 1 #define BOOST_PP_BOOL40 1
#define BOOST_PREPROCESSOR_BOOL41 1 #define BOOST_PP_BOOL41 1
#define BOOST_PREPROCESSOR_BOOL42 1 #define BOOST_PP_BOOL42 1
#define BOOST_PREPROCESSOR_BOOL43 1 #define BOOST_PP_BOOL43 1
#define BOOST_PREPROCESSOR_BOOL44 1 #define BOOST_PP_BOOL44 1
#define BOOST_PREPROCESSOR_BOOL45 1 #define BOOST_PP_BOOL45 1
#define BOOST_PREPROCESSOR_BOOL46 1 #define BOOST_PP_BOOL46 1
#define BOOST_PREPROCESSOR_BOOL47 1 #define BOOST_PP_BOOL47 1
#define BOOST_PREPROCESSOR_BOOL48 1 #define BOOST_PP_BOOL48 1
#define BOOST_PREPROCESSOR_BOOL49 1 #define BOOST_PP_BOOL49 1
#define BOOST_PREPROCESSOR_BOOL50 1 #define BOOST_PP_BOOL50 1
#define BOOST_PREPROCESSOR_BOOL51 1 #define BOOST_PP_BOOL51 1
#define BOOST_PREPROCESSOR_BOOL52 1 #define BOOST_PP_BOOL52 1
#define BOOST_PREPROCESSOR_BOOL53 1 #define BOOST_PP_BOOL53 1
#define BOOST_PREPROCESSOR_BOOL54 1 #define BOOST_PP_BOOL54 1
#define BOOST_PREPROCESSOR_BOOL55 1 #define BOOST_PP_BOOL55 1
#define BOOST_PREPROCESSOR_BOOL56 1 #define BOOST_PP_BOOL56 1
#define BOOST_PREPROCESSOR_BOOL57 1 #define BOOST_PP_BOOL57 1
#define BOOST_PREPROCESSOR_BOOL58 1 #define BOOST_PP_BOOL58 1
#define BOOST_PREPROCESSOR_BOOL59 1 #define BOOST_PP_BOOL59 1
#define BOOST_PREPROCESSOR_BOOL60 1 #define BOOST_PP_BOOL60 1
#define BOOST_PREPROCESSOR_BOOL61 1 #define BOOST_PP_BOOL61 1
#define BOOST_PREPROCESSOR_BOOL62 1 #define BOOST_PP_BOOL62 1
#define BOOST_PREPROCESSOR_BOOL63 1 #define BOOST_PP_BOOL63 1
#define BOOST_PREPROCESSOR_BOOL64 1 #define BOOST_PP_BOOL64 1
#define BOOST_PREPROCESSOR_BOOL65 1 #define BOOST_PP_BOOL65 1
#define BOOST_PREPROCESSOR_BOOL66 1 #define BOOST_PP_BOOL66 1
#define BOOST_PREPROCESSOR_BOOL67 1 #define BOOST_PP_BOOL67 1
#define BOOST_PREPROCESSOR_BOOL68 1 #define BOOST_PP_BOOL68 1
#define BOOST_PREPROCESSOR_BOOL69 1 #define BOOST_PP_BOOL69 1
#define BOOST_PREPROCESSOR_BOOL70 1 #define BOOST_PP_BOOL70 1
#define BOOST_PREPROCESSOR_BOOL71 1 #define BOOST_PP_BOOL71 1
#define BOOST_PREPROCESSOR_BOOL72 1 #define BOOST_PP_BOOL72 1
#define BOOST_PREPROCESSOR_BOOL73 1 #define BOOST_PP_BOOL73 1
#define BOOST_PREPROCESSOR_BOOL74 1 #define BOOST_PP_BOOL74 1
#define BOOST_PREPROCESSOR_BOOL75 1 #define BOOST_PP_BOOL75 1
#define BOOST_PREPROCESSOR_BOOL76 1 #define BOOST_PP_BOOL76 1
#define BOOST_PREPROCESSOR_BOOL77 1 #define BOOST_PP_BOOL77 1
#define BOOST_PREPROCESSOR_BOOL78 1 #define BOOST_PP_BOOL78 1
#define BOOST_PREPROCESSOR_BOOL79 1 #define BOOST_PP_BOOL79 1
#define BOOST_PREPROCESSOR_BOOL80 1 #define BOOST_PP_BOOL80 1
#define BOOST_PREPROCESSOR_BOOL81 1 #define BOOST_PP_BOOL81 1
#define BOOST_PREPROCESSOR_BOOL82 1 #define BOOST_PP_BOOL82 1
#define BOOST_PREPROCESSOR_BOOL83 1 #define BOOST_PP_BOOL83 1
#define BOOST_PREPROCESSOR_BOOL84 1 #define BOOST_PP_BOOL84 1
#define BOOST_PREPROCESSOR_BOOL85 1 #define BOOST_PP_BOOL85 1
#define BOOST_PREPROCESSOR_BOOL86 1 #define BOOST_PP_BOOL86 1
#define BOOST_PREPROCESSOR_BOOL87 1 #define BOOST_PP_BOOL87 1
#define BOOST_PREPROCESSOR_BOOL88 1 #define BOOST_PP_BOOL88 1
#define BOOST_PREPROCESSOR_BOOL89 1 #define BOOST_PP_BOOL89 1
#define BOOST_PREPROCESSOR_BOOL90 1 #define BOOST_PP_BOOL90 1
#define BOOST_PREPROCESSOR_BOOL91 1 #define BOOST_PP_BOOL91 1
#define BOOST_PREPROCESSOR_BOOL92 1 #define BOOST_PP_BOOL92 1
#define BOOST_PREPROCESSOR_BOOL93 1 #define BOOST_PP_BOOL93 1
#define BOOST_PREPROCESSOR_BOOL94 1 #define BOOST_PP_BOOL94 1
#define BOOST_PREPROCESSOR_BOOL95 1 #define BOOST_PP_BOOL95 1
#define BOOST_PREPROCESSOR_BOOL96 1 #define BOOST_PP_BOOL96 1
#define BOOST_PREPROCESSOR_BOOL97 1 #define BOOST_PP_BOOL97 1
#define BOOST_PREPROCESSOR_BOOL98 1 #define BOOST_PP_BOOL98 1
#define BOOST_PREPROCESSOR_BOOL99 1 #define BOOST_PP_BOOL99 1
#define BOOST_PREPROCESSOR_BOOL100 1 #define BOOST_PP_BOOL100 1
#define BOOST_PREPROCESSOR_BOOL101 1 #define BOOST_PP_BOOL101 1
#define BOOST_PREPROCESSOR_BOOL102 1 #define BOOST_PP_BOOL102 1
#define BOOST_PREPROCESSOR_BOOL103 1 #define BOOST_PP_BOOL103 1
#define BOOST_PREPROCESSOR_BOOL104 1 #define BOOST_PP_BOOL104 1
#define BOOST_PREPROCESSOR_BOOL105 1 #define BOOST_PP_BOOL105 1
#define BOOST_PREPROCESSOR_BOOL106 1 #define BOOST_PP_BOOL106 1
#define BOOST_PREPROCESSOR_BOOL107 1 #define BOOST_PP_BOOL107 1
#define BOOST_PREPROCESSOR_BOOL108 1 #define BOOST_PP_BOOL108 1
#define BOOST_PREPROCESSOR_BOOL109 1 #define BOOST_PP_BOOL109 1
#define BOOST_PREPROCESSOR_BOOL110 1 #define BOOST_PP_BOOL110 1
#define BOOST_PREPROCESSOR_BOOL111 1 #define BOOST_PP_BOOL111 1
#define BOOST_PREPROCESSOR_BOOL112 1 #define BOOST_PP_BOOL112 1
#define BOOST_PREPROCESSOR_BOOL113 1 #define BOOST_PP_BOOL113 1
#define BOOST_PREPROCESSOR_BOOL114 1 #define BOOST_PP_BOOL114 1
#define BOOST_PREPROCESSOR_BOOL115 1 #define BOOST_PP_BOOL115 1
#define BOOST_PREPROCESSOR_BOOL116 1 #define BOOST_PP_BOOL116 1
#define BOOST_PREPROCESSOR_BOOL117 1 #define BOOST_PP_BOOL117 1
#define BOOST_PREPROCESSOR_BOOL118 1 #define BOOST_PP_BOOL118 1
#define BOOST_PREPROCESSOR_BOOL119 1 #define BOOST_PP_BOOL119 1
#define BOOST_PREPROCESSOR_BOOL120 1 #define BOOST_PP_BOOL120 1
#define BOOST_PREPROCESSOR_BOOL121 1 #define BOOST_PP_BOOL121 1
#define BOOST_PREPROCESSOR_BOOL122 1 #define BOOST_PP_BOOL122 1
#define BOOST_PREPROCESSOR_BOOL123 1 #define BOOST_PP_BOOL123 1
#define BOOST_PREPROCESSOR_BOOL124 1 #define BOOST_PP_BOOL124 1
#define BOOST_PREPROCESSOR_BOOL125 1 #define BOOST_PP_BOOL125 1
#define BOOST_PREPROCESSOR_BOOL126 1 #define BOOST_PP_BOOL126 1
#define BOOST_PREPROCESSOR_BOOL127 1 #define BOOST_PP_BOOL127 1
#define BOOST_PREPROCESSOR_BOOL128 1 #define BOOST_PP_BOOL128 1
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_BOOL().
#define BOOST_PREPROCESSOR_BOOL(X) BOOST_PP_BOOL(X)
#endif #endif

View File

@ -17,19 +17,23 @@
<a href="../../../../boost/preprocessor/logical/nor.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/nor.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP #include <boost/preprocessor/logical/bool.hpp>
# include <boost/preprocessor/logical/bool.hpp>
#endif
//! Expands to the logical NEITHER OR of the operands. //! Expands to the logical NEITHER OR of the operands.
#define BOOST_PREPROCESSOR_NOR(X,Y) BOOST_PREPROCESSOR_NOR_BOOL(BOOST_PREPROCESSOR_BOOL(X),BOOST_PREPROCESSOR_BOOL(Y)) /*!
For example, BOOST_PP_NOR(0,5) expands to 0 (a single token).
*/
#define BOOST_PP_NOR(X,Y) BOOST_PP_NOR_BOOL(BOOST_PP_BOOL(X),BOOST_PP_BOOL(Y))
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_NOR_BOOL(X,Y) BOOST_PREPROCESSOR_NOR_BOOL_DELAY(X,Y) #define BOOST_PP_NOR_BOOL(X,Y) BOOST_PP_NOR_BOOL_DELAY(X,Y)
#define BOOST_PREPROCESSOR_NOR_BOOL_DELAY(X,Y) BOOST_PREPROCESSOR_NOR_BOOL##X##Y #define BOOST_PP_NOR_BOOL_DELAY(X,Y) BOOST_PP_NOR_BOOL##X##Y
#define BOOST_PREPROCESSOR_NOR_BOOL00 1 #define BOOST_PP_NOR_BOOL00 1
#define BOOST_PREPROCESSOR_NOR_BOOL01 0 #define BOOST_PP_NOR_BOOL01 0
#define BOOST_PREPROCESSOR_NOR_BOOL10 0 #define BOOST_PP_NOR_BOOL10 0
#define BOOST_PREPROCESSOR_NOR_BOOL11 0 #define BOOST_PP_NOR_BOOL11 0
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_NOR().
#define BOOST_PREPROCESSOR_NOR(X,Y) BOOST_PP_NOR(X,Y)
#endif #endif

View File

@ -17,10 +17,14 @@
<a href="../../../../boost/preprocessor/logical/not.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/not.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP #include <boost/preprocessor/logical/nor.hpp>
# include <boost/preprocessor/logical/nor.hpp>
#endif
//! Expands to the logical NOT of the operand. //! Expands to the logical NOT of the operand.
#define BOOST_PREPROCESSOR_NOT(X) BOOST_PREPROCESSOR_NOR(X,X) /*!
For example, BOOST_PP_NOT(0) expands to 1 (a single token).
*/
#define BOOST_PP_NOT(X) BOOST_PP_NOR(X,X)
//! Obsolete. Use BOOST_PP_NOT().
#define BOOST_PREPROCESSOR_NOT(X) BOOST_PP_NOT(X)
#endif #endif

View File

@ -17,13 +17,14 @@
<a href="../../../../boost/preprocessor/logical/or.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/or.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP #include <boost/preprocessor/logical/not.hpp>
# include <boost/preprocessor/logical/nor.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
# include <boost/preprocessor/logical/not.hpp>
#endif
//! Expands to the logical OR of the operands. //! Expands to the logical OR of the operands.
#define BOOST_PREPROCESSOR_OR(X,Y) BOOST_PREPROCESSOR_NOT(BOOST_PREPROCESSOR_NOR(X,Y)) /*!
For example, BOOST_PP_OR(0,2) expands to 1 (a single token).
*/
#define BOOST_PP_OR(X,Y) BOOST_PP_NOT(BOOST_PP_NOR(X,Y))
//! Obsolete. Use BOOST_PP_OR().
#define BOOST_PREPROCESSOR_OR(X,Y) BOOST_PP_OR(X,Y)
#endif #endif

View File

@ -17,13 +17,14 @@
<a href="../../../../boost/preprocessor/logical/xor.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/logical/xor.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP #include <boost/preprocessor/logical/and.hpp>
# include <boost/preprocessor/logical/and.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP
# include <boost/preprocessor/logical/nor.hpp>
#endif
//! Expands to the logical EXCLUSIVE OR of the operands. //! Expands to the logical EXCLUSIVE OR of the operands.
#define BOOST_PREPROCESSOR_XOR(X,Y) BOOST_PREPROCESSOR_NOR(BOOST_PREPROCESSOR_NOR(X,Y),BOOST_PREPROCESSOR_AND(X,Y)) /*!
For example, BOOST_PP_XOR(1,2) expands to 0 (a single token).
*/
#define BOOST_PP_XOR(X,Y) BOOST_PP_NOR(BOOST_PP_NOR(X,Y),BOOST_PP_AND(X,Y))
//! Obsolete. Use BOOST_PP_XOR().
#define BOOST_PREPROCESSOR_XOR(X,Y) BOOST_PP_XOR(X,Y)
#endif #endif

View File

@ -17,13 +17,19 @@
<a href="../../../../boost/preprocessor/max.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/max.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/comparison/less.hpp> #include <boost/preprocessor/if.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IF_HPP
# include <boost/preprocessor/if.hpp>
#endif
//! Expands to the maximum of X and Y. //! Expands to the maximum of X and Y.
#define BOOST_PREPROCESSOR_MAX(X,Y) BOOST_PREPROCESSOR_IF(BOOST_PREPROCESSOR_LESS(X,Y),Y,X) /*!
For example, BOOST_PP_MAX(5,7) expands to 7 (a single token).
*/
#define BOOST_PP_MAX(X,Y) BOOST_PP_MAX_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_MAX_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,X,Y),Y,X)
#endif
//! Obsolete. Use BOOST_PP_MAX().
#define BOOST_PREPROCESSOR_MAX(X,Y) BOOST_PP_MAX(X,Y)
#endif #endif

View File

@ -17,13 +17,19 @@
<a href="../../../../boost/preprocessor/min.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/min.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP #include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/comparison/less.hpp> #include <boost/preprocessor/if.hpp>
#endif
#ifndef BOOST_PREPROCESSOR_IF_HPP
# include <boost/preprocessor/if.hpp>
#endif
//! Expands to the minimum of X and Y. //! Expands to the minimum of X and Y.
#define BOOST_PREPROCESSOR_MIN(X,Y) BOOST_PREPROCESSOR_IF(BOOST_PREPROCESSOR_LESS(Y,X),Y,X) /*!
For example, BOOST_PP_MIN(5,7) expands to 5 (a single token).
*/
#define BOOST_PP_MIN(X,Y) BOOST_PP_MIN_D(0,X,Y)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PP_MIN_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,Y,X),Y,X)
#endif
//! Obsolete. Use BOOST_PP_MIN().
#define BOOST_PREPROCESSOR_MIN(X,Y) BOOST_PP_MIN(X,Y)
#endif #endif

View File

@ -25,140 +25,143 @@ In other words, expands to the sequence:
M(0,P) M(1,P) ... M(N-1,P) M(0,P) M(1,P) ... M(N-1,P)
\endverbatim</PRE> \endverbatim</PRE>
See BOOST_PREPROCESSOR_LIMIT_MAG. See BOOST_PP_LIMIT_MAG.
*/ */
#define BOOST_PREPROCESSOR_REPEAT(N,M,P) BOOST_PREPROCESSOR_REPEAT_DELAY(N,M,P) #define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT_DELAY(N,M,P)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_REPEAT_DELAY(N,M,P) BOOST_PREPROCESSOR_REPEAT##N(M,P) #define BOOST_PP_REPEAT_DELAY(N,M,P) BOOST_PP_REPEAT##N(M,P)
#define BOOST_PREPROCESSOR_REPEAT0(M,P) #define BOOST_PP_REPEAT0(M,P)
#define BOOST_PREPROCESSOR_REPEAT1(M,P) M(0,P) #define BOOST_PP_REPEAT1(M,P) M(0,P)
#define BOOST_PREPROCESSOR_REPEAT2(M,P) M(0,P) M(1,P) #define BOOST_PP_REPEAT2(M,P) M(0,P) M(1,P)
#define BOOST_PREPROCESSOR_REPEAT3(M,P) BOOST_PREPROCESSOR_REPEAT2(M,P) M(2,P) #define BOOST_PP_REPEAT3(M,P) BOOST_PP_REPEAT2(M,P) M(2,P)
#define BOOST_PREPROCESSOR_REPEAT4(M,P) BOOST_PREPROCESSOR_REPEAT3(M,P) M(3,P) #define BOOST_PP_REPEAT4(M,P) BOOST_PP_REPEAT3(M,P) M(3,P)
#define BOOST_PREPROCESSOR_REPEAT5(M,P) BOOST_PREPROCESSOR_REPEAT4(M,P) M(4,P) #define BOOST_PP_REPEAT5(M,P) BOOST_PP_REPEAT4(M,P) M(4,P)
#define BOOST_PREPROCESSOR_REPEAT6(M,P) BOOST_PREPROCESSOR_REPEAT5(M,P) M(5,P) #define BOOST_PP_REPEAT6(M,P) BOOST_PP_REPEAT5(M,P) M(5,P)
#define BOOST_PREPROCESSOR_REPEAT7(M,P) BOOST_PREPROCESSOR_REPEAT6(M,P) M(6,P) #define BOOST_PP_REPEAT7(M,P) BOOST_PP_REPEAT6(M,P) M(6,P)
#define BOOST_PREPROCESSOR_REPEAT8(M,P) BOOST_PREPROCESSOR_REPEAT7(M,P) M(7,P) #define BOOST_PP_REPEAT8(M,P) BOOST_PP_REPEAT7(M,P) M(7,P)
#define BOOST_PREPROCESSOR_REPEAT9(M,P) BOOST_PREPROCESSOR_REPEAT8(M,P) M(8,P) #define BOOST_PP_REPEAT9(M,P) BOOST_PP_REPEAT8(M,P) M(8,P)
#define BOOST_PREPROCESSOR_REPEAT10(M,P) BOOST_PREPROCESSOR_REPEAT9(M,P) M(9,P) #define BOOST_PP_REPEAT10(M,P) BOOST_PP_REPEAT9(M,P) M(9,P)
#define BOOST_PREPROCESSOR_REPEAT11(M,P) BOOST_PREPROCESSOR_REPEAT10(M,P) M(10,P) #define BOOST_PP_REPEAT11(M,P) BOOST_PP_REPEAT10(M,P) M(10,P)
#define BOOST_PREPROCESSOR_REPEAT12(M,P) BOOST_PREPROCESSOR_REPEAT11(M,P) M(11,P) #define BOOST_PP_REPEAT12(M,P) BOOST_PP_REPEAT11(M,P) M(11,P)
#define BOOST_PREPROCESSOR_REPEAT13(M,P) BOOST_PREPROCESSOR_REPEAT12(M,P) M(12,P) #define BOOST_PP_REPEAT13(M,P) BOOST_PP_REPEAT12(M,P) M(12,P)
#define BOOST_PREPROCESSOR_REPEAT14(M,P) BOOST_PREPROCESSOR_REPEAT13(M,P) M(13,P) #define BOOST_PP_REPEAT14(M,P) BOOST_PP_REPEAT13(M,P) M(13,P)
#define BOOST_PREPROCESSOR_REPEAT15(M,P) BOOST_PREPROCESSOR_REPEAT14(M,P) M(14,P) #define BOOST_PP_REPEAT15(M,P) BOOST_PP_REPEAT14(M,P) M(14,P)
#define BOOST_PREPROCESSOR_REPEAT16(M,P) BOOST_PREPROCESSOR_REPEAT15(M,P) M(15,P) #define BOOST_PP_REPEAT16(M,P) BOOST_PP_REPEAT15(M,P) M(15,P)
#define BOOST_PREPROCESSOR_REPEAT17(M,P) BOOST_PREPROCESSOR_REPEAT16(M,P) M(16,P) #define BOOST_PP_REPEAT17(M,P) BOOST_PP_REPEAT16(M,P) M(16,P)
#define BOOST_PREPROCESSOR_REPEAT18(M,P) BOOST_PREPROCESSOR_REPEAT17(M,P) M(17,P) #define BOOST_PP_REPEAT18(M,P) BOOST_PP_REPEAT17(M,P) M(17,P)
#define BOOST_PREPROCESSOR_REPEAT19(M,P) BOOST_PREPROCESSOR_REPEAT18(M,P) M(18,P) #define BOOST_PP_REPEAT19(M,P) BOOST_PP_REPEAT18(M,P) M(18,P)
#define BOOST_PREPROCESSOR_REPEAT20(M,P) BOOST_PREPROCESSOR_REPEAT19(M,P) M(19,P) #define BOOST_PP_REPEAT20(M,P) BOOST_PP_REPEAT19(M,P) M(19,P)
#define BOOST_PREPROCESSOR_REPEAT21(M,P) BOOST_PREPROCESSOR_REPEAT20(M,P) M(20,P) #define BOOST_PP_REPEAT21(M,P) BOOST_PP_REPEAT20(M,P) M(20,P)
#define BOOST_PREPROCESSOR_REPEAT22(M,P) BOOST_PREPROCESSOR_REPEAT21(M,P) M(21,P) #define BOOST_PP_REPEAT22(M,P) BOOST_PP_REPEAT21(M,P) M(21,P)
#define BOOST_PREPROCESSOR_REPEAT23(M,P) BOOST_PREPROCESSOR_REPEAT22(M,P) M(22,P) #define BOOST_PP_REPEAT23(M,P) BOOST_PP_REPEAT22(M,P) M(22,P)
#define BOOST_PREPROCESSOR_REPEAT24(M,P) BOOST_PREPROCESSOR_REPEAT23(M,P) M(23,P) #define BOOST_PP_REPEAT24(M,P) BOOST_PP_REPEAT23(M,P) M(23,P)
#define BOOST_PREPROCESSOR_REPEAT25(M,P) BOOST_PREPROCESSOR_REPEAT24(M,P) M(24,P) #define BOOST_PP_REPEAT25(M,P) BOOST_PP_REPEAT24(M,P) M(24,P)
#define BOOST_PREPROCESSOR_REPEAT26(M,P) BOOST_PREPROCESSOR_REPEAT25(M,P) M(25,P) #define BOOST_PP_REPEAT26(M,P) BOOST_PP_REPEAT25(M,P) M(25,P)
#define BOOST_PREPROCESSOR_REPEAT27(M,P) BOOST_PREPROCESSOR_REPEAT26(M,P) M(26,P) #define BOOST_PP_REPEAT27(M,P) BOOST_PP_REPEAT26(M,P) M(26,P)
#define BOOST_PREPROCESSOR_REPEAT28(M,P) BOOST_PREPROCESSOR_REPEAT27(M,P) M(27,P) #define BOOST_PP_REPEAT28(M,P) BOOST_PP_REPEAT27(M,P) M(27,P)
#define BOOST_PREPROCESSOR_REPEAT29(M,P) BOOST_PREPROCESSOR_REPEAT28(M,P) M(28,P) #define BOOST_PP_REPEAT29(M,P) BOOST_PP_REPEAT28(M,P) M(28,P)
#define BOOST_PREPROCESSOR_REPEAT30(M,P) BOOST_PREPROCESSOR_REPEAT29(M,P) M(29,P) #define BOOST_PP_REPEAT30(M,P) BOOST_PP_REPEAT29(M,P) M(29,P)
#define BOOST_PREPROCESSOR_REPEAT31(M,P) BOOST_PREPROCESSOR_REPEAT30(M,P) M(30,P) #define BOOST_PP_REPEAT31(M,P) BOOST_PP_REPEAT30(M,P) M(30,P)
#define BOOST_PREPROCESSOR_REPEAT32(M,P) BOOST_PREPROCESSOR_REPEAT31(M,P) M(31,P) #define BOOST_PP_REPEAT32(M,P) BOOST_PP_REPEAT31(M,P) M(31,P)
#define BOOST_PREPROCESSOR_REPEAT33(M,P) BOOST_PREPROCESSOR_REPEAT32(M,P) M(32,P) #define BOOST_PP_REPEAT33(M,P) BOOST_PP_REPEAT32(M,P) M(32,P)
#define BOOST_PREPROCESSOR_REPEAT34(M,P) BOOST_PREPROCESSOR_REPEAT33(M,P) M(33,P) #define BOOST_PP_REPEAT34(M,P) BOOST_PP_REPEAT33(M,P) M(33,P)
#define BOOST_PREPROCESSOR_REPEAT35(M,P) BOOST_PREPROCESSOR_REPEAT34(M,P) M(34,P) #define BOOST_PP_REPEAT35(M,P) BOOST_PP_REPEAT34(M,P) M(34,P)
#define BOOST_PREPROCESSOR_REPEAT36(M,P) BOOST_PREPROCESSOR_REPEAT35(M,P) M(35,P) #define BOOST_PP_REPEAT36(M,P) BOOST_PP_REPEAT35(M,P) M(35,P)
#define BOOST_PREPROCESSOR_REPEAT37(M,P) BOOST_PREPROCESSOR_REPEAT36(M,P) M(36,P) #define BOOST_PP_REPEAT37(M,P) BOOST_PP_REPEAT36(M,P) M(36,P)
#define BOOST_PREPROCESSOR_REPEAT38(M,P) BOOST_PREPROCESSOR_REPEAT37(M,P) M(37,P) #define BOOST_PP_REPEAT38(M,P) BOOST_PP_REPEAT37(M,P) M(37,P)
#define BOOST_PREPROCESSOR_REPEAT39(M,P) BOOST_PREPROCESSOR_REPEAT38(M,P) M(38,P) #define BOOST_PP_REPEAT39(M,P) BOOST_PP_REPEAT38(M,P) M(38,P)
#define BOOST_PREPROCESSOR_REPEAT40(M,P) BOOST_PREPROCESSOR_REPEAT39(M,P) M(39,P) #define BOOST_PP_REPEAT40(M,P) BOOST_PP_REPEAT39(M,P) M(39,P)
#define BOOST_PREPROCESSOR_REPEAT41(M,P) BOOST_PREPROCESSOR_REPEAT40(M,P) M(40,P) #define BOOST_PP_REPEAT41(M,P) BOOST_PP_REPEAT40(M,P) M(40,P)
#define BOOST_PREPROCESSOR_REPEAT42(M,P) BOOST_PREPROCESSOR_REPEAT41(M,P) M(41,P) #define BOOST_PP_REPEAT42(M,P) BOOST_PP_REPEAT41(M,P) M(41,P)
#define BOOST_PREPROCESSOR_REPEAT43(M,P) BOOST_PREPROCESSOR_REPEAT42(M,P) M(42,P) #define BOOST_PP_REPEAT43(M,P) BOOST_PP_REPEAT42(M,P) M(42,P)
#define BOOST_PREPROCESSOR_REPEAT44(M,P) BOOST_PREPROCESSOR_REPEAT43(M,P) M(43,P) #define BOOST_PP_REPEAT44(M,P) BOOST_PP_REPEAT43(M,P) M(43,P)
#define BOOST_PREPROCESSOR_REPEAT45(M,P) BOOST_PREPROCESSOR_REPEAT44(M,P) M(44,P) #define BOOST_PP_REPEAT45(M,P) BOOST_PP_REPEAT44(M,P) M(44,P)
#define BOOST_PREPROCESSOR_REPEAT46(M,P) BOOST_PREPROCESSOR_REPEAT45(M,P) M(45,P) #define BOOST_PP_REPEAT46(M,P) BOOST_PP_REPEAT45(M,P) M(45,P)
#define BOOST_PREPROCESSOR_REPEAT47(M,P) BOOST_PREPROCESSOR_REPEAT46(M,P) M(46,P) #define BOOST_PP_REPEAT47(M,P) BOOST_PP_REPEAT46(M,P) M(46,P)
#define BOOST_PREPROCESSOR_REPEAT48(M,P) BOOST_PREPROCESSOR_REPEAT47(M,P) M(47,P) #define BOOST_PP_REPEAT48(M,P) BOOST_PP_REPEAT47(M,P) M(47,P)
#define BOOST_PREPROCESSOR_REPEAT49(M,P) BOOST_PREPROCESSOR_REPEAT48(M,P) M(48,P) #define BOOST_PP_REPEAT49(M,P) BOOST_PP_REPEAT48(M,P) M(48,P)
#define BOOST_PREPROCESSOR_REPEAT50(M,P) BOOST_PREPROCESSOR_REPEAT49(M,P) M(49,P) #define BOOST_PP_REPEAT50(M,P) BOOST_PP_REPEAT49(M,P) M(49,P)
#define BOOST_PREPROCESSOR_REPEAT51(M,P) BOOST_PREPROCESSOR_REPEAT50(M,P) M(50,P) #define BOOST_PP_REPEAT51(M,P) BOOST_PP_REPEAT50(M,P) M(50,P)
#define BOOST_PREPROCESSOR_REPEAT52(M,P) BOOST_PREPROCESSOR_REPEAT51(M,P) M(51,P) #define BOOST_PP_REPEAT52(M,P) BOOST_PP_REPEAT51(M,P) M(51,P)
#define BOOST_PREPROCESSOR_REPEAT53(M,P) BOOST_PREPROCESSOR_REPEAT52(M,P) M(52,P) #define BOOST_PP_REPEAT53(M,P) BOOST_PP_REPEAT52(M,P) M(52,P)
#define BOOST_PREPROCESSOR_REPEAT54(M,P) BOOST_PREPROCESSOR_REPEAT53(M,P) M(53,P) #define BOOST_PP_REPEAT54(M,P) BOOST_PP_REPEAT53(M,P) M(53,P)
#define BOOST_PREPROCESSOR_REPEAT55(M,P) BOOST_PREPROCESSOR_REPEAT54(M,P) M(54,P) #define BOOST_PP_REPEAT55(M,P) BOOST_PP_REPEAT54(M,P) M(54,P)
#define BOOST_PREPROCESSOR_REPEAT56(M,P) BOOST_PREPROCESSOR_REPEAT55(M,P) M(55,P) #define BOOST_PP_REPEAT56(M,P) BOOST_PP_REPEAT55(M,P) M(55,P)
#define BOOST_PREPROCESSOR_REPEAT57(M,P) BOOST_PREPROCESSOR_REPEAT56(M,P) M(56,P) #define BOOST_PP_REPEAT57(M,P) BOOST_PP_REPEAT56(M,P) M(56,P)
#define BOOST_PREPROCESSOR_REPEAT58(M,P) BOOST_PREPROCESSOR_REPEAT57(M,P) M(57,P) #define BOOST_PP_REPEAT58(M,P) BOOST_PP_REPEAT57(M,P) M(57,P)
#define BOOST_PREPROCESSOR_REPEAT59(M,P) BOOST_PREPROCESSOR_REPEAT58(M,P) M(58,P) #define BOOST_PP_REPEAT59(M,P) BOOST_PP_REPEAT58(M,P) M(58,P)
#define BOOST_PREPROCESSOR_REPEAT60(M,P) BOOST_PREPROCESSOR_REPEAT59(M,P) M(59,P) #define BOOST_PP_REPEAT60(M,P) BOOST_PP_REPEAT59(M,P) M(59,P)
#define BOOST_PREPROCESSOR_REPEAT61(M,P) BOOST_PREPROCESSOR_REPEAT60(M,P) M(60,P) #define BOOST_PP_REPEAT61(M,P) BOOST_PP_REPEAT60(M,P) M(60,P)
#define BOOST_PREPROCESSOR_REPEAT62(M,P) BOOST_PREPROCESSOR_REPEAT61(M,P) M(61,P) #define BOOST_PP_REPEAT62(M,P) BOOST_PP_REPEAT61(M,P) M(61,P)
#define BOOST_PREPROCESSOR_REPEAT63(M,P) BOOST_PREPROCESSOR_REPEAT62(M,P) M(62,P) #define BOOST_PP_REPEAT63(M,P) BOOST_PP_REPEAT62(M,P) M(62,P)
#define BOOST_PREPROCESSOR_REPEAT64(M,P) BOOST_PREPROCESSOR_REPEAT63(M,P) M(63,P) #define BOOST_PP_REPEAT64(M,P) BOOST_PP_REPEAT63(M,P) M(63,P)
#define BOOST_PREPROCESSOR_REPEAT65(M,P) BOOST_PREPROCESSOR_REPEAT64(M,P) M(64,P) #define BOOST_PP_REPEAT65(M,P) BOOST_PP_REPEAT64(M,P) M(64,P)
#define BOOST_PREPROCESSOR_REPEAT66(M,P) BOOST_PREPROCESSOR_REPEAT65(M,P) M(65,P) #define BOOST_PP_REPEAT66(M,P) BOOST_PP_REPEAT65(M,P) M(65,P)
#define BOOST_PREPROCESSOR_REPEAT67(M,P) BOOST_PREPROCESSOR_REPEAT66(M,P) M(66,P) #define BOOST_PP_REPEAT67(M,P) BOOST_PP_REPEAT66(M,P) M(66,P)
#define BOOST_PREPROCESSOR_REPEAT68(M,P) BOOST_PREPROCESSOR_REPEAT67(M,P) M(67,P) #define BOOST_PP_REPEAT68(M,P) BOOST_PP_REPEAT67(M,P) M(67,P)
#define BOOST_PREPROCESSOR_REPEAT69(M,P) BOOST_PREPROCESSOR_REPEAT68(M,P) M(68,P) #define BOOST_PP_REPEAT69(M,P) BOOST_PP_REPEAT68(M,P) M(68,P)
#define BOOST_PREPROCESSOR_REPEAT70(M,P) BOOST_PREPROCESSOR_REPEAT69(M,P) M(69,P) #define BOOST_PP_REPEAT70(M,P) BOOST_PP_REPEAT69(M,P) M(69,P)
#define BOOST_PREPROCESSOR_REPEAT71(M,P) BOOST_PREPROCESSOR_REPEAT70(M,P) M(70,P) #define BOOST_PP_REPEAT71(M,P) BOOST_PP_REPEAT70(M,P) M(70,P)
#define BOOST_PREPROCESSOR_REPEAT72(M,P) BOOST_PREPROCESSOR_REPEAT71(M,P) M(71,P) #define BOOST_PP_REPEAT72(M,P) BOOST_PP_REPEAT71(M,P) M(71,P)
#define BOOST_PREPROCESSOR_REPEAT73(M,P) BOOST_PREPROCESSOR_REPEAT72(M,P) M(72,P) #define BOOST_PP_REPEAT73(M,P) BOOST_PP_REPEAT72(M,P) M(72,P)
#define BOOST_PREPROCESSOR_REPEAT74(M,P) BOOST_PREPROCESSOR_REPEAT73(M,P) M(73,P) #define BOOST_PP_REPEAT74(M,P) BOOST_PP_REPEAT73(M,P) M(73,P)
#define BOOST_PREPROCESSOR_REPEAT75(M,P) BOOST_PREPROCESSOR_REPEAT74(M,P) M(74,P) #define BOOST_PP_REPEAT75(M,P) BOOST_PP_REPEAT74(M,P) M(74,P)
#define BOOST_PREPROCESSOR_REPEAT76(M,P) BOOST_PREPROCESSOR_REPEAT75(M,P) M(75,P) #define BOOST_PP_REPEAT76(M,P) BOOST_PP_REPEAT75(M,P) M(75,P)
#define BOOST_PREPROCESSOR_REPEAT77(M,P) BOOST_PREPROCESSOR_REPEAT76(M,P) M(76,P) #define BOOST_PP_REPEAT77(M,P) BOOST_PP_REPEAT76(M,P) M(76,P)
#define BOOST_PREPROCESSOR_REPEAT78(M,P) BOOST_PREPROCESSOR_REPEAT77(M,P) M(77,P) #define BOOST_PP_REPEAT78(M,P) BOOST_PP_REPEAT77(M,P) M(77,P)
#define BOOST_PREPROCESSOR_REPEAT79(M,P) BOOST_PREPROCESSOR_REPEAT78(M,P) M(78,P) #define BOOST_PP_REPEAT79(M,P) BOOST_PP_REPEAT78(M,P) M(78,P)
#define BOOST_PREPROCESSOR_REPEAT80(M,P) BOOST_PREPROCESSOR_REPEAT79(M,P) M(79,P) #define BOOST_PP_REPEAT80(M,P) BOOST_PP_REPEAT79(M,P) M(79,P)
#define BOOST_PREPROCESSOR_REPEAT81(M,P) BOOST_PREPROCESSOR_REPEAT80(M,P) M(80,P) #define BOOST_PP_REPEAT81(M,P) BOOST_PP_REPEAT80(M,P) M(80,P)
#define BOOST_PREPROCESSOR_REPEAT82(M,P) BOOST_PREPROCESSOR_REPEAT81(M,P) M(81,P) #define BOOST_PP_REPEAT82(M,P) BOOST_PP_REPEAT81(M,P) M(81,P)
#define BOOST_PREPROCESSOR_REPEAT83(M,P) BOOST_PREPROCESSOR_REPEAT82(M,P) M(82,P) #define BOOST_PP_REPEAT83(M,P) BOOST_PP_REPEAT82(M,P) M(82,P)
#define BOOST_PREPROCESSOR_REPEAT84(M,P) BOOST_PREPROCESSOR_REPEAT83(M,P) M(83,P) #define BOOST_PP_REPEAT84(M,P) BOOST_PP_REPEAT83(M,P) M(83,P)
#define BOOST_PREPROCESSOR_REPEAT85(M,P) BOOST_PREPROCESSOR_REPEAT84(M,P) M(84,P) #define BOOST_PP_REPEAT85(M,P) BOOST_PP_REPEAT84(M,P) M(84,P)
#define BOOST_PREPROCESSOR_REPEAT86(M,P) BOOST_PREPROCESSOR_REPEAT85(M,P) M(85,P) #define BOOST_PP_REPEAT86(M,P) BOOST_PP_REPEAT85(M,P) M(85,P)
#define BOOST_PREPROCESSOR_REPEAT87(M,P) BOOST_PREPROCESSOR_REPEAT86(M,P) M(86,P) #define BOOST_PP_REPEAT87(M,P) BOOST_PP_REPEAT86(M,P) M(86,P)
#define BOOST_PREPROCESSOR_REPEAT88(M,P) BOOST_PREPROCESSOR_REPEAT87(M,P) M(87,P) #define BOOST_PP_REPEAT88(M,P) BOOST_PP_REPEAT87(M,P) M(87,P)
#define BOOST_PREPROCESSOR_REPEAT89(M,P) BOOST_PREPROCESSOR_REPEAT88(M,P) M(88,P) #define BOOST_PP_REPEAT89(M,P) BOOST_PP_REPEAT88(M,P) M(88,P)
#define BOOST_PREPROCESSOR_REPEAT90(M,P) BOOST_PREPROCESSOR_REPEAT89(M,P) M(89,P) #define BOOST_PP_REPEAT90(M,P) BOOST_PP_REPEAT89(M,P) M(89,P)
#define BOOST_PREPROCESSOR_REPEAT91(M,P) BOOST_PREPROCESSOR_REPEAT90(M,P) M(90,P) #define BOOST_PP_REPEAT91(M,P) BOOST_PP_REPEAT90(M,P) M(90,P)
#define BOOST_PREPROCESSOR_REPEAT92(M,P) BOOST_PREPROCESSOR_REPEAT91(M,P) M(91,P) #define BOOST_PP_REPEAT92(M,P) BOOST_PP_REPEAT91(M,P) M(91,P)
#define BOOST_PREPROCESSOR_REPEAT93(M,P) BOOST_PREPROCESSOR_REPEAT92(M,P) M(92,P) #define BOOST_PP_REPEAT93(M,P) BOOST_PP_REPEAT92(M,P) M(92,P)
#define BOOST_PREPROCESSOR_REPEAT94(M,P) BOOST_PREPROCESSOR_REPEAT93(M,P) M(93,P) #define BOOST_PP_REPEAT94(M,P) BOOST_PP_REPEAT93(M,P) M(93,P)
#define BOOST_PREPROCESSOR_REPEAT95(M,P) BOOST_PREPROCESSOR_REPEAT94(M,P) M(94,P) #define BOOST_PP_REPEAT95(M,P) BOOST_PP_REPEAT94(M,P) M(94,P)
#define BOOST_PREPROCESSOR_REPEAT96(M,P) BOOST_PREPROCESSOR_REPEAT95(M,P) M(95,P) #define BOOST_PP_REPEAT96(M,P) BOOST_PP_REPEAT95(M,P) M(95,P)
#define BOOST_PREPROCESSOR_REPEAT97(M,P) BOOST_PREPROCESSOR_REPEAT96(M,P) M(96,P) #define BOOST_PP_REPEAT97(M,P) BOOST_PP_REPEAT96(M,P) M(96,P)
#define BOOST_PREPROCESSOR_REPEAT98(M,P) BOOST_PREPROCESSOR_REPEAT97(M,P) M(97,P) #define BOOST_PP_REPEAT98(M,P) BOOST_PP_REPEAT97(M,P) M(97,P)
#define BOOST_PREPROCESSOR_REPEAT99(M,P) BOOST_PREPROCESSOR_REPEAT98(M,P) M(98,P) #define BOOST_PP_REPEAT99(M,P) BOOST_PP_REPEAT98(M,P) M(98,P)
#define BOOST_PREPROCESSOR_REPEAT100(M,P) BOOST_PREPROCESSOR_REPEAT99(M,P) M(99,P) #define BOOST_PP_REPEAT100(M,P) BOOST_PP_REPEAT99(M,P) M(99,P)
#define BOOST_PREPROCESSOR_REPEAT101(M,P) BOOST_PREPROCESSOR_REPEAT100(M,P) M(100,P) #define BOOST_PP_REPEAT101(M,P) BOOST_PP_REPEAT100(M,P) M(100,P)
#define BOOST_PREPROCESSOR_REPEAT102(M,P) BOOST_PREPROCESSOR_REPEAT101(M,P) M(101,P) #define BOOST_PP_REPEAT102(M,P) BOOST_PP_REPEAT101(M,P) M(101,P)
#define BOOST_PREPROCESSOR_REPEAT103(M,P) BOOST_PREPROCESSOR_REPEAT102(M,P) M(102,P) #define BOOST_PP_REPEAT103(M,P) BOOST_PP_REPEAT102(M,P) M(102,P)
#define BOOST_PREPROCESSOR_REPEAT104(M,P) BOOST_PREPROCESSOR_REPEAT103(M,P) M(103,P) #define BOOST_PP_REPEAT104(M,P) BOOST_PP_REPEAT103(M,P) M(103,P)
#define BOOST_PREPROCESSOR_REPEAT105(M,P) BOOST_PREPROCESSOR_REPEAT104(M,P) M(104,P) #define BOOST_PP_REPEAT105(M,P) BOOST_PP_REPEAT104(M,P) M(104,P)
#define BOOST_PREPROCESSOR_REPEAT106(M,P) BOOST_PREPROCESSOR_REPEAT105(M,P) M(105,P) #define BOOST_PP_REPEAT106(M,P) BOOST_PP_REPEAT105(M,P) M(105,P)
#define BOOST_PREPROCESSOR_REPEAT107(M,P) BOOST_PREPROCESSOR_REPEAT106(M,P) M(106,P) #define BOOST_PP_REPEAT107(M,P) BOOST_PP_REPEAT106(M,P) M(106,P)
#define BOOST_PREPROCESSOR_REPEAT108(M,P) BOOST_PREPROCESSOR_REPEAT107(M,P) M(107,P) #define BOOST_PP_REPEAT108(M,P) BOOST_PP_REPEAT107(M,P) M(107,P)
#define BOOST_PREPROCESSOR_REPEAT109(M,P) BOOST_PREPROCESSOR_REPEAT108(M,P) M(108,P) #define BOOST_PP_REPEAT109(M,P) BOOST_PP_REPEAT108(M,P) M(108,P)
#define BOOST_PREPROCESSOR_REPEAT110(M,P) BOOST_PREPROCESSOR_REPEAT109(M,P) M(109,P) #define BOOST_PP_REPEAT110(M,P) BOOST_PP_REPEAT109(M,P) M(109,P)
#define BOOST_PREPROCESSOR_REPEAT111(M,P) BOOST_PREPROCESSOR_REPEAT110(M,P) M(110,P) #define BOOST_PP_REPEAT111(M,P) BOOST_PP_REPEAT110(M,P) M(110,P)
#define BOOST_PREPROCESSOR_REPEAT112(M,P) BOOST_PREPROCESSOR_REPEAT111(M,P) M(111,P) #define BOOST_PP_REPEAT112(M,P) BOOST_PP_REPEAT111(M,P) M(111,P)
#define BOOST_PREPROCESSOR_REPEAT113(M,P) BOOST_PREPROCESSOR_REPEAT112(M,P) M(112,P) #define BOOST_PP_REPEAT113(M,P) BOOST_PP_REPEAT112(M,P) M(112,P)
#define BOOST_PREPROCESSOR_REPEAT114(M,P) BOOST_PREPROCESSOR_REPEAT113(M,P) M(113,P) #define BOOST_PP_REPEAT114(M,P) BOOST_PP_REPEAT113(M,P) M(113,P)
#define BOOST_PREPROCESSOR_REPEAT115(M,P) BOOST_PREPROCESSOR_REPEAT114(M,P) M(114,P) #define BOOST_PP_REPEAT115(M,P) BOOST_PP_REPEAT114(M,P) M(114,P)
#define BOOST_PREPROCESSOR_REPEAT116(M,P) BOOST_PREPROCESSOR_REPEAT115(M,P) M(115,P) #define BOOST_PP_REPEAT116(M,P) BOOST_PP_REPEAT115(M,P) M(115,P)
#define BOOST_PREPROCESSOR_REPEAT117(M,P) BOOST_PREPROCESSOR_REPEAT116(M,P) M(116,P) #define BOOST_PP_REPEAT117(M,P) BOOST_PP_REPEAT116(M,P) M(116,P)
#define BOOST_PREPROCESSOR_REPEAT118(M,P) BOOST_PREPROCESSOR_REPEAT117(M,P) M(117,P) #define BOOST_PP_REPEAT118(M,P) BOOST_PP_REPEAT117(M,P) M(117,P)
#define BOOST_PREPROCESSOR_REPEAT119(M,P) BOOST_PREPROCESSOR_REPEAT118(M,P) M(118,P) #define BOOST_PP_REPEAT119(M,P) BOOST_PP_REPEAT118(M,P) M(118,P)
#define BOOST_PREPROCESSOR_REPEAT120(M,P) BOOST_PREPROCESSOR_REPEAT119(M,P) M(119,P) #define BOOST_PP_REPEAT120(M,P) BOOST_PP_REPEAT119(M,P) M(119,P)
#define BOOST_PREPROCESSOR_REPEAT121(M,P) BOOST_PREPROCESSOR_REPEAT120(M,P) M(120,P) #define BOOST_PP_REPEAT121(M,P) BOOST_PP_REPEAT120(M,P) M(120,P)
#define BOOST_PREPROCESSOR_REPEAT122(M,P) BOOST_PREPROCESSOR_REPEAT121(M,P) M(121,P) #define BOOST_PP_REPEAT122(M,P) BOOST_PP_REPEAT121(M,P) M(121,P)
#define BOOST_PREPROCESSOR_REPEAT123(M,P) BOOST_PREPROCESSOR_REPEAT122(M,P) M(122,P) #define BOOST_PP_REPEAT123(M,P) BOOST_PP_REPEAT122(M,P) M(122,P)
#define BOOST_PREPROCESSOR_REPEAT124(M,P) BOOST_PREPROCESSOR_REPEAT123(M,P) M(123,P) #define BOOST_PP_REPEAT124(M,P) BOOST_PP_REPEAT123(M,P) M(123,P)
#define BOOST_PREPROCESSOR_REPEAT125(M,P) BOOST_PREPROCESSOR_REPEAT124(M,P) M(124,P) #define BOOST_PP_REPEAT125(M,P) BOOST_PP_REPEAT124(M,P) M(124,P)
#define BOOST_PREPROCESSOR_REPEAT126(M,P) BOOST_PREPROCESSOR_REPEAT125(M,P) M(125,P) #define BOOST_PP_REPEAT126(M,P) BOOST_PP_REPEAT125(M,P) M(125,P)
#define BOOST_PREPROCESSOR_REPEAT127(M,P) BOOST_PREPROCESSOR_REPEAT126(M,P) M(126,P) #define BOOST_PP_REPEAT127(M,P) BOOST_PP_REPEAT126(M,P) M(126,P)
#define BOOST_PREPROCESSOR_REPEAT128(M,P) BOOST_PREPROCESSOR_REPEAT127(M,P) M(127,P) #define BOOST_PP_REPEAT128(M,P) BOOST_PP_REPEAT127(M,P) M(127,P)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_REPEAT().
#define BOOST_PREPROCESSOR_REPEAT(N,M,P) BOOST_PP_REPEAT(N,M,P)
#endif #endif

View File

@ -17,139 +17,142 @@
<a href="../../../../boost/preprocessor/repeat_2nd.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/repeat_2nd.hpp">Click here to see the header.</a>
*/ */
//! Same as BOOST_PREPROCESSOR_REPEAT(), but implemented independently. //! Same as BOOST_PP_REPEAT(), but implemented independently.
#define BOOST_PREPROCESSOR_REPEAT_2ND(N,M,P) BOOST_PREPROCESSOR_REPEAT_2ND_DELAY(N,M,P) #define BOOST_PP_REPEAT_2ND(N,M,P) BOOST_PP_REPEAT_2ND_DELAY(N,M,P)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_REPEAT_2ND_DELAY(N,M,P) BOOST_PREPROCESSOR_REPEAT_2ND##N(M,P) #define BOOST_PP_REPEAT_2ND_DELAY(N,M,P) BOOST_PP_REPEAT_2ND##N(M,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND0(M,P) #define BOOST_PP_REPEAT_2ND0(M,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND1(M,P) M(0,P) #define BOOST_PP_REPEAT_2ND1(M,P) M(0,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND2(M,P) M(0,P) M(1,P) #define BOOST_PP_REPEAT_2ND2(M,P) M(0,P) M(1,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND3(M,P) BOOST_PREPROCESSOR_REPEAT_2ND2(M,P) M(2,P) #define BOOST_PP_REPEAT_2ND3(M,P) BOOST_PP_REPEAT_2ND2(M,P) M(2,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND4(M,P) BOOST_PREPROCESSOR_REPEAT_2ND3(M,P) M(3,P) #define BOOST_PP_REPEAT_2ND4(M,P) BOOST_PP_REPEAT_2ND3(M,P) M(3,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND5(M,P) BOOST_PREPROCESSOR_REPEAT_2ND4(M,P) M(4,P) #define BOOST_PP_REPEAT_2ND5(M,P) BOOST_PP_REPEAT_2ND4(M,P) M(4,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND6(M,P) BOOST_PREPROCESSOR_REPEAT_2ND5(M,P) M(5,P) #define BOOST_PP_REPEAT_2ND6(M,P) BOOST_PP_REPEAT_2ND5(M,P) M(5,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND7(M,P) BOOST_PREPROCESSOR_REPEAT_2ND6(M,P) M(6,P) #define BOOST_PP_REPEAT_2ND7(M,P) BOOST_PP_REPEAT_2ND6(M,P) M(6,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND8(M,P) BOOST_PREPROCESSOR_REPEAT_2ND7(M,P) M(7,P) #define BOOST_PP_REPEAT_2ND8(M,P) BOOST_PP_REPEAT_2ND7(M,P) M(7,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND9(M,P) BOOST_PREPROCESSOR_REPEAT_2ND8(M,P) M(8,P) #define BOOST_PP_REPEAT_2ND9(M,P) BOOST_PP_REPEAT_2ND8(M,P) M(8,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND10(M,P) BOOST_PREPROCESSOR_REPEAT_2ND9(M,P) M(9,P) #define BOOST_PP_REPEAT_2ND10(M,P) BOOST_PP_REPEAT_2ND9(M,P) M(9,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND11(M,P) BOOST_PREPROCESSOR_REPEAT_2ND10(M,P) M(10,P) #define BOOST_PP_REPEAT_2ND11(M,P) BOOST_PP_REPEAT_2ND10(M,P) M(10,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND12(M,P) BOOST_PREPROCESSOR_REPEAT_2ND11(M,P) M(11,P) #define BOOST_PP_REPEAT_2ND12(M,P) BOOST_PP_REPEAT_2ND11(M,P) M(11,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND13(M,P) BOOST_PREPROCESSOR_REPEAT_2ND12(M,P) M(12,P) #define BOOST_PP_REPEAT_2ND13(M,P) BOOST_PP_REPEAT_2ND12(M,P) M(12,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND14(M,P) BOOST_PREPROCESSOR_REPEAT_2ND13(M,P) M(13,P) #define BOOST_PP_REPEAT_2ND14(M,P) BOOST_PP_REPEAT_2ND13(M,P) M(13,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND15(M,P) BOOST_PREPROCESSOR_REPEAT_2ND14(M,P) M(14,P) #define BOOST_PP_REPEAT_2ND15(M,P) BOOST_PP_REPEAT_2ND14(M,P) M(14,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND16(M,P) BOOST_PREPROCESSOR_REPEAT_2ND15(M,P) M(15,P) #define BOOST_PP_REPEAT_2ND16(M,P) BOOST_PP_REPEAT_2ND15(M,P) M(15,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND17(M,P) BOOST_PREPROCESSOR_REPEAT_2ND16(M,P) M(16,P) #define BOOST_PP_REPEAT_2ND17(M,P) BOOST_PP_REPEAT_2ND16(M,P) M(16,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND18(M,P) BOOST_PREPROCESSOR_REPEAT_2ND17(M,P) M(17,P) #define BOOST_PP_REPEAT_2ND18(M,P) BOOST_PP_REPEAT_2ND17(M,P) M(17,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND19(M,P) BOOST_PREPROCESSOR_REPEAT_2ND18(M,P) M(18,P) #define BOOST_PP_REPEAT_2ND19(M,P) BOOST_PP_REPEAT_2ND18(M,P) M(18,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND20(M,P) BOOST_PREPROCESSOR_REPEAT_2ND19(M,P) M(19,P) #define BOOST_PP_REPEAT_2ND20(M,P) BOOST_PP_REPEAT_2ND19(M,P) M(19,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND21(M,P) BOOST_PREPROCESSOR_REPEAT_2ND20(M,P) M(20,P) #define BOOST_PP_REPEAT_2ND21(M,P) BOOST_PP_REPEAT_2ND20(M,P) M(20,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND22(M,P) BOOST_PREPROCESSOR_REPEAT_2ND21(M,P) M(21,P) #define BOOST_PP_REPEAT_2ND22(M,P) BOOST_PP_REPEAT_2ND21(M,P) M(21,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND23(M,P) BOOST_PREPROCESSOR_REPEAT_2ND22(M,P) M(22,P) #define BOOST_PP_REPEAT_2ND23(M,P) BOOST_PP_REPEAT_2ND22(M,P) M(22,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND24(M,P) BOOST_PREPROCESSOR_REPEAT_2ND23(M,P) M(23,P) #define BOOST_PP_REPEAT_2ND24(M,P) BOOST_PP_REPEAT_2ND23(M,P) M(23,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND25(M,P) BOOST_PREPROCESSOR_REPEAT_2ND24(M,P) M(24,P) #define BOOST_PP_REPEAT_2ND25(M,P) BOOST_PP_REPEAT_2ND24(M,P) M(24,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND26(M,P) BOOST_PREPROCESSOR_REPEAT_2ND25(M,P) M(25,P) #define BOOST_PP_REPEAT_2ND26(M,P) BOOST_PP_REPEAT_2ND25(M,P) M(25,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND27(M,P) BOOST_PREPROCESSOR_REPEAT_2ND26(M,P) M(26,P) #define BOOST_PP_REPEAT_2ND27(M,P) BOOST_PP_REPEAT_2ND26(M,P) M(26,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND28(M,P) BOOST_PREPROCESSOR_REPEAT_2ND27(M,P) M(27,P) #define BOOST_PP_REPEAT_2ND28(M,P) BOOST_PP_REPEAT_2ND27(M,P) M(27,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND29(M,P) BOOST_PREPROCESSOR_REPEAT_2ND28(M,P) M(28,P) #define BOOST_PP_REPEAT_2ND29(M,P) BOOST_PP_REPEAT_2ND28(M,P) M(28,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND30(M,P) BOOST_PREPROCESSOR_REPEAT_2ND29(M,P) M(29,P) #define BOOST_PP_REPEAT_2ND30(M,P) BOOST_PP_REPEAT_2ND29(M,P) M(29,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND31(M,P) BOOST_PREPROCESSOR_REPEAT_2ND30(M,P) M(30,P) #define BOOST_PP_REPEAT_2ND31(M,P) BOOST_PP_REPEAT_2ND30(M,P) M(30,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND32(M,P) BOOST_PREPROCESSOR_REPEAT_2ND31(M,P) M(31,P) #define BOOST_PP_REPEAT_2ND32(M,P) BOOST_PP_REPEAT_2ND31(M,P) M(31,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND33(M,P) BOOST_PREPROCESSOR_REPEAT_2ND32(M,P) M(32,P) #define BOOST_PP_REPEAT_2ND33(M,P) BOOST_PP_REPEAT_2ND32(M,P) M(32,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND34(M,P) BOOST_PREPROCESSOR_REPEAT_2ND33(M,P) M(33,P) #define BOOST_PP_REPEAT_2ND34(M,P) BOOST_PP_REPEAT_2ND33(M,P) M(33,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND35(M,P) BOOST_PREPROCESSOR_REPEAT_2ND34(M,P) M(34,P) #define BOOST_PP_REPEAT_2ND35(M,P) BOOST_PP_REPEAT_2ND34(M,P) M(34,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND36(M,P) BOOST_PREPROCESSOR_REPEAT_2ND35(M,P) M(35,P) #define BOOST_PP_REPEAT_2ND36(M,P) BOOST_PP_REPEAT_2ND35(M,P) M(35,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND37(M,P) BOOST_PREPROCESSOR_REPEAT_2ND36(M,P) M(36,P) #define BOOST_PP_REPEAT_2ND37(M,P) BOOST_PP_REPEAT_2ND36(M,P) M(36,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND38(M,P) BOOST_PREPROCESSOR_REPEAT_2ND37(M,P) M(37,P) #define BOOST_PP_REPEAT_2ND38(M,P) BOOST_PP_REPEAT_2ND37(M,P) M(37,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND39(M,P) BOOST_PREPROCESSOR_REPEAT_2ND38(M,P) M(38,P) #define BOOST_PP_REPEAT_2ND39(M,P) BOOST_PP_REPEAT_2ND38(M,P) M(38,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND40(M,P) BOOST_PREPROCESSOR_REPEAT_2ND39(M,P) M(39,P) #define BOOST_PP_REPEAT_2ND40(M,P) BOOST_PP_REPEAT_2ND39(M,P) M(39,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND41(M,P) BOOST_PREPROCESSOR_REPEAT_2ND40(M,P) M(40,P) #define BOOST_PP_REPEAT_2ND41(M,P) BOOST_PP_REPEAT_2ND40(M,P) M(40,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND42(M,P) BOOST_PREPROCESSOR_REPEAT_2ND41(M,P) M(41,P) #define BOOST_PP_REPEAT_2ND42(M,P) BOOST_PP_REPEAT_2ND41(M,P) M(41,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND43(M,P) BOOST_PREPROCESSOR_REPEAT_2ND42(M,P) M(42,P) #define BOOST_PP_REPEAT_2ND43(M,P) BOOST_PP_REPEAT_2ND42(M,P) M(42,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND44(M,P) BOOST_PREPROCESSOR_REPEAT_2ND43(M,P) M(43,P) #define BOOST_PP_REPEAT_2ND44(M,P) BOOST_PP_REPEAT_2ND43(M,P) M(43,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND45(M,P) BOOST_PREPROCESSOR_REPEAT_2ND44(M,P) M(44,P) #define BOOST_PP_REPEAT_2ND45(M,P) BOOST_PP_REPEAT_2ND44(M,P) M(44,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND46(M,P) BOOST_PREPROCESSOR_REPEAT_2ND45(M,P) M(45,P) #define BOOST_PP_REPEAT_2ND46(M,P) BOOST_PP_REPEAT_2ND45(M,P) M(45,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND47(M,P) BOOST_PREPROCESSOR_REPEAT_2ND46(M,P) M(46,P) #define BOOST_PP_REPEAT_2ND47(M,P) BOOST_PP_REPEAT_2ND46(M,P) M(46,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND48(M,P) BOOST_PREPROCESSOR_REPEAT_2ND47(M,P) M(47,P) #define BOOST_PP_REPEAT_2ND48(M,P) BOOST_PP_REPEAT_2ND47(M,P) M(47,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND49(M,P) BOOST_PREPROCESSOR_REPEAT_2ND48(M,P) M(48,P) #define BOOST_PP_REPEAT_2ND49(M,P) BOOST_PP_REPEAT_2ND48(M,P) M(48,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND50(M,P) BOOST_PREPROCESSOR_REPEAT_2ND49(M,P) M(49,P) #define BOOST_PP_REPEAT_2ND50(M,P) BOOST_PP_REPEAT_2ND49(M,P) M(49,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND51(M,P) BOOST_PREPROCESSOR_REPEAT_2ND50(M,P) M(50,P) #define BOOST_PP_REPEAT_2ND51(M,P) BOOST_PP_REPEAT_2ND50(M,P) M(50,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND52(M,P) BOOST_PREPROCESSOR_REPEAT_2ND51(M,P) M(51,P) #define BOOST_PP_REPEAT_2ND52(M,P) BOOST_PP_REPEAT_2ND51(M,P) M(51,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND53(M,P) BOOST_PREPROCESSOR_REPEAT_2ND52(M,P) M(52,P) #define BOOST_PP_REPEAT_2ND53(M,P) BOOST_PP_REPEAT_2ND52(M,P) M(52,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND54(M,P) BOOST_PREPROCESSOR_REPEAT_2ND53(M,P) M(53,P) #define BOOST_PP_REPEAT_2ND54(M,P) BOOST_PP_REPEAT_2ND53(M,P) M(53,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND55(M,P) BOOST_PREPROCESSOR_REPEAT_2ND54(M,P) M(54,P) #define BOOST_PP_REPEAT_2ND55(M,P) BOOST_PP_REPEAT_2ND54(M,P) M(54,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND56(M,P) BOOST_PREPROCESSOR_REPEAT_2ND55(M,P) M(55,P) #define BOOST_PP_REPEAT_2ND56(M,P) BOOST_PP_REPEAT_2ND55(M,P) M(55,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND57(M,P) BOOST_PREPROCESSOR_REPEAT_2ND56(M,P) M(56,P) #define BOOST_PP_REPEAT_2ND57(M,P) BOOST_PP_REPEAT_2ND56(M,P) M(56,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND58(M,P) BOOST_PREPROCESSOR_REPEAT_2ND57(M,P) M(57,P) #define BOOST_PP_REPEAT_2ND58(M,P) BOOST_PP_REPEAT_2ND57(M,P) M(57,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND59(M,P) BOOST_PREPROCESSOR_REPEAT_2ND58(M,P) M(58,P) #define BOOST_PP_REPEAT_2ND59(M,P) BOOST_PP_REPEAT_2ND58(M,P) M(58,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND60(M,P) BOOST_PREPROCESSOR_REPEAT_2ND59(M,P) M(59,P) #define BOOST_PP_REPEAT_2ND60(M,P) BOOST_PP_REPEAT_2ND59(M,P) M(59,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND61(M,P) BOOST_PREPROCESSOR_REPEAT_2ND60(M,P) M(60,P) #define BOOST_PP_REPEAT_2ND61(M,P) BOOST_PP_REPEAT_2ND60(M,P) M(60,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND62(M,P) BOOST_PREPROCESSOR_REPEAT_2ND61(M,P) M(61,P) #define BOOST_PP_REPEAT_2ND62(M,P) BOOST_PP_REPEAT_2ND61(M,P) M(61,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND63(M,P) BOOST_PREPROCESSOR_REPEAT_2ND62(M,P) M(62,P) #define BOOST_PP_REPEAT_2ND63(M,P) BOOST_PP_REPEAT_2ND62(M,P) M(62,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND64(M,P) BOOST_PREPROCESSOR_REPEAT_2ND63(M,P) M(63,P) #define BOOST_PP_REPEAT_2ND64(M,P) BOOST_PP_REPEAT_2ND63(M,P) M(63,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND65(M,P) BOOST_PREPROCESSOR_REPEAT_2ND64(M,P) M(64,P) #define BOOST_PP_REPEAT_2ND65(M,P) BOOST_PP_REPEAT_2ND64(M,P) M(64,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND66(M,P) BOOST_PREPROCESSOR_REPEAT_2ND65(M,P) M(65,P) #define BOOST_PP_REPEAT_2ND66(M,P) BOOST_PP_REPEAT_2ND65(M,P) M(65,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND67(M,P) BOOST_PREPROCESSOR_REPEAT_2ND66(M,P) M(66,P) #define BOOST_PP_REPEAT_2ND67(M,P) BOOST_PP_REPEAT_2ND66(M,P) M(66,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND68(M,P) BOOST_PREPROCESSOR_REPEAT_2ND67(M,P) M(67,P) #define BOOST_PP_REPEAT_2ND68(M,P) BOOST_PP_REPEAT_2ND67(M,P) M(67,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND69(M,P) BOOST_PREPROCESSOR_REPEAT_2ND68(M,P) M(68,P) #define BOOST_PP_REPEAT_2ND69(M,P) BOOST_PP_REPEAT_2ND68(M,P) M(68,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND70(M,P) BOOST_PREPROCESSOR_REPEAT_2ND69(M,P) M(69,P) #define BOOST_PP_REPEAT_2ND70(M,P) BOOST_PP_REPEAT_2ND69(M,P) M(69,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND71(M,P) BOOST_PREPROCESSOR_REPEAT_2ND70(M,P) M(70,P) #define BOOST_PP_REPEAT_2ND71(M,P) BOOST_PP_REPEAT_2ND70(M,P) M(70,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND72(M,P) BOOST_PREPROCESSOR_REPEAT_2ND71(M,P) M(71,P) #define BOOST_PP_REPEAT_2ND72(M,P) BOOST_PP_REPEAT_2ND71(M,P) M(71,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND73(M,P) BOOST_PREPROCESSOR_REPEAT_2ND72(M,P) M(72,P) #define BOOST_PP_REPEAT_2ND73(M,P) BOOST_PP_REPEAT_2ND72(M,P) M(72,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND74(M,P) BOOST_PREPROCESSOR_REPEAT_2ND73(M,P) M(73,P) #define BOOST_PP_REPEAT_2ND74(M,P) BOOST_PP_REPEAT_2ND73(M,P) M(73,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND75(M,P) BOOST_PREPROCESSOR_REPEAT_2ND74(M,P) M(74,P) #define BOOST_PP_REPEAT_2ND75(M,P) BOOST_PP_REPEAT_2ND74(M,P) M(74,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND76(M,P) BOOST_PREPROCESSOR_REPEAT_2ND75(M,P) M(75,P) #define BOOST_PP_REPEAT_2ND76(M,P) BOOST_PP_REPEAT_2ND75(M,P) M(75,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND77(M,P) BOOST_PREPROCESSOR_REPEAT_2ND76(M,P) M(76,P) #define BOOST_PP_REPEAT_2ND77(M,P) BOOST_PP_REPEAT_2ND76(M,P) M(76,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND78(M,P) BOOST_PREPROCESSOR_REPEAT_2ND77(M,P) M(77,P) #define BOOST_PP_REPEAT_2ND78(M,P) BOOST_PP_REPEAT_2ND77(M,P) M(77,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND79(M,P) BOOST_PREPROCESSOR_REPEAT_2ND78(M,P) M(78,P) #define BOOST_PP_REPEAT_2ND79(M,P) BOOST_PP_REPEAT_2ND78(M,P) M(78,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND80(M,P) BOOST_PREPROCESSOR_REPEAT_2ND79(M,P) M(79,P) #define BOOST_PP_REPEAT_2ND80(M,P) BOOST_PP_REPEAT_2ND79(M,P) M(79,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND81(M,P) BOOST_PREPROCESSOR_REPEAT_2ND80(M,P) M(80,P) #define BOOST_PP_REPEAT_2ND81(M,P) BOOST_PP_REPEAT_2ND80(M,P) M(80,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND82(M,P) BOOST_PREPROCESSOR_REPEAT_2ND81(M,P) M(81,P) #define BOOST_PP_REPEAT_2ND82(M,P) BOOST_PP_REPEAT_2ND81(M,P) M(81,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND83(M,P) BOOST_PREPROCESSOR_REPEAT_2ND82(M,P) M(82,P) #define BOOST_PP_REPEAT_2ND83(M,P) BOOST_PP_REPEAT_2ND82(M,P) M(82,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND84(M,P) BOOST_PREPROCESSOR_REPEAT_2ND83(M,P) M(83,P) #define BOOST_PP_REPEAT_2ND84(M,P) BOOST_PP_REPEAT_2ND83(M,P) M(83,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND85(M,P) BOOST_PREPROCESSOR_REPEAT_2ND84(M,P) M(84,P) #define BOOST_PP_REPEAT_2ND85(M,P) BOOST_PP_REPEAT_2ND84(M,P) M(84,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND86(M,P) BOOST_PREPROCESSOR_REPEAT_2ND85(M,P) M(85,P) #define BOOST_PP_REPEAT_2ND86(M,P) BOOST_PP_REPEAT_2ND85(M,P) M(85,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND87(M,P) BOOST_PREPROCESSOR_REPEAT_2ND86(M,P) M(86,P) #define BOOST_PP_REPEAT_2ND87(M,P) BOOST_PP_REPEAT_2ND86(M,P) M(86,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND88(M,P) BOOST_PREPROCESSOR_REPEAT_2ND87(M,P) M(87,P) #define BOOST_PP_REPEAT_2ND88(M,P) BOOST_PP_REPEAT_2ND87(M,P) M(87,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND89(M,P) BOOST_PREPROCESSOR_REPEAT_2ND88(M,P) M(88,P) #define BOOST_PP_REPEAT_2ND89(M,P) BOOST_PP_REPEAT_2ND88(M,P) M(88,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND90(M,P) BOOST_PREPROCESSOR_REPEAT_2ND89(M,P) M(89,P) #define BOOST_PP_REPEAT_2ND90(M,P) BOOST_PP_REPEAT_2ND89(M,P) M(89,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND91(M,P) BOOST_PREPROCESSOR_REPEAT_2ND90(M,P) M(90,P) #define BOOST_PP_REPEAT_2ND91(M,P) BOOST_PP_REPEAT_2ND90(M,P) M(90,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND92(M,P) BOOST_PREPROCESSOR_REPEAT_2ND91(M,P) M(91,P) #define BOOST_PP_REPEAT_2ND92(M,P) BOOST_PP_REPEAT_2ND91(M,P) M(91,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND93(M,P) BOOST_PREPROCESSOR_REPEAT_2ND92(M,P) M(92,P) #define BOOST_PP_REPEAT_2ND93(M,P) BOOST_PP_REPEAT_2ND92(M,P) M(92,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND94(M,P) BOOST_PREPROCESSOR_REPEAT_2ND93(M,P) M(93,P) #define BOOST_PP_REPEAT_2ND94(M,P) BOOST_PP_REPEAT_2ND93(M,P) M(93,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND95(M,P) BOOST_PREPROCESSOR_REPEAT_2ND94(M,P) M(94,P) #define BOOST_PP_REPEAT_2ND95(M,P) BOOST_PP_REPEAT_2ND94(M,P) M(94,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND96(M,P) BOOST_PREPROCESSOR_REPEAT_2ND95(M,P) M(95,P) #define BOOST_PP_REPEAT_2ND96(M,P) BOOST_PP_REPEAT_2ND95(M,P) M(95,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND97(M,P) BOOST_PREPROCESSOR_REPEAT_2ND96(M,P) M(96,P) #define BOOST_PP_REPEAT_2ND97(M,P) BOOST_PP_REPEAT_2ND96(M,P) M(96,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND98(M,P) BOOST_PREPROCESSOR_REPEAT_2ND97(M,P) M(97,P) #define BOOST_PP_REPEAT_2ND98(M,P) BOOST_PP_REPEAT_2ND97(M,P) M(97,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND99(M,P) BOOST_PREPROCESSOR_REPEAT_2ND98(M,P) M(98,P) #define BOOST_PP_REPEAT_2ND99(M,P) BOOST_PP_REPEAT_2ND98(M,P) M(98,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND100(M,P) BOOST_PREPROCESSOR_REPEAT_2ND99(M,P) M(99,P) #define BOOST_PP_REPEAT_2ND100(M,P) BOOST_PP_REPEAT_2ND99(M,P) M(99,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND101(M,P) BOOST_PREPROCESSOR_REPEAT_2ND100(M,P) M(100,P) #define BOOST_PP_REPEAT_2ND101(M,P) BOOST_PP_REPEAT_2ND100(M,P) M(100,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND102(M,P) BOOST_PREPROCESSOR_REPEAT_2ND101(M,P) M(101,P) #define BOOST_PP_REPEAT_2ND102(M,P) BOOST_PP_REPEAT_2ND101(M,P) M(101,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND103(M,P) BOOST_PREPROCESSOR_REPEAT_2ND102(M,P) M(102,P) #define BOOST_PP_REPEAT_2ND103(M,P) BOOST_PP_REPEAT_2ND102(M,P) M(102,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND104(M,P) BOOST_PREPROCESSOR_REPEAT_2ND103(M,P) M(103,P) #define BOOST_PP_REPEAT_2ND104(M,P) BOOST_PP_REPEAT_2ND103(M,P) M(103,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND105(M,P) BOOST_PREPROCESSOR_REPEAT_2ND104(M,P) M(104,P) #define BOOST_PP_REPEAT_2ND105(M,P) BOOST_PP_REPEAT_2ND104(M,P) M(104,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND106(M,P) BOOST_PREPROCESSOR_REPEAT_2ND105(M,P) M(105,P) #define BOOST_PP_REPEAT_2ND106(M,P) BOOST_PP_REPEAT_2ND105(M,P) M(105,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND107(M,P) BOOST_PREPROCESSOR_REPEAT_2ND106(M,P) M(106,P) #define BOOST_PP_REPEAT_2ND107(M,P) BOOST_PP_REPEAT_2ND106(M,P) M(106,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND108(M,P) BOOST_PREPROCESSOR_REPEAT_2ND107(M,P) M(107,P) #define BOOST_PP_REPEAT_2ND108(M,P) BOOST_PP_REPEAT_2ND107(M,P) M(107,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND109(M,P) BOOST_PREPROCESSOR_REPEAT_2ND108(M,P) M(108,P) #define BOOST_PP_REPEAT_2ND109(M,P) BOOST_PP_REPEAT_2ND108(M,P) M(108,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND110(M,P) BOOST_PREPROCESSOR_REPEAT_2ND109(M,P) M(109,P) #define BOOST_PP_REPEAT_2ND110(M,P) BOOST_PP_REPEAT_2ND109(M,P) M(109,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND111(M,P) BOOST_PREPROCESSOR_REPEAT_2ND110(M,P) M(110,P) #define BOOST_PP_REPEAT_2ND111(M,P) BOOST_PP_REPEAT_2ND110(M,P) M(110,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND112(M,P) BOOST_PREPROCESSOR_REPEAT_2ND111(M,P) M(111,P) #define BOOST_PP_REPEAT_2ND112(M,P) BOOST_PP_REPEAT_2ND111(M,P) M(111,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND113(M,P) BOOST_PREPROCESSOR_REPEAT_2ND112(M,P) M(112,P) #define BOOST_PP_REPEAT_2ND113(M,P) BOOST_PP_REPEAT_2ND112(M,P) M(112,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND114(M,P) BOOST_PREPROCESSOR_REPEAT_2ND113(M,P) M(113,P) #define BOOST_PP_REPEAT_2ND114(M,P) BOOST_PP_REPEAT_2ND113(M,P) M(113,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND115(M,P) BOOST_PREPROCESSOR_REPEAT_2ND114(M,P) M(114,P) #define BOOST_PP_REPEAT_2ND115(M,P) BOOST_PP_REPEAT_2ND114(M,P) M(114,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND116(M,P) BOOST_PREPROCESSOR_REPEAT_2ND115(M,P) M(115,P) #define BOOST_PP_REPEAT_2ND116(M,P) BOOST_PP_REPEAT_2ND115(M,P) M(115,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND117(M,P) BOOST_PREPROCESSOR_REPEAT_2ND116(M,P) M(116,P) #define BOOST_PP_REPEAT_2ND117(M,P) BOOST_PP_REPEAT_2ND116(M,P) M(116,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND118(M,P) BOOST_PREPROCESSOR_REPEAT_2ND117(M,P) M(117,P) #define BOOST_PP_REPEAT_2ND118(M,P) BOOST_PP_REPEAT_2ND117(M,P) M(117,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND119(M,P) BOOST_PREPROCESSOR_REPEAT_2ND118(M,P) M(118,P) #define BOOST_PP_REPEAT_2ND119(M,P) BOOST_PP_REPEAT_2ND118(M,P) M(118,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND120(M,P) BOOST_PREPROCESSOR_REPEAT_2ND119(M,P) M(119,P) #define BOOST_PP_REPEAT_2ND120(M,P) BOOST_PP_REPEAT_2ND119(M,P) M(119,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND121(M,P) BOOST_PREPROCESSOR_REPEAT_2ND120(M,P) M(120,P) #define BOOST_PP_REPEAT_2ND121(M,P) BOOST_PP_REPEAT_2ND120(M,P) M(120,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND122(M,P) BOOST_PREPROCESSOR_REPEAT_2ND121(M,P) M(121,P) #define BOOST_PP_REPEAT_2ND122(M,P) BOOST_PP_REPEAT_2ND121(M,P) M(121,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND123(M,P) BOOST_PREPROCESSOR_REPEAT_2ND122(M,P) M(122,P) #define BOOST_PP_REPEAT_2ND123(M,P) BOOST_PP_REPEAT_2ND122(M,P) M(122,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND124(M,P) BOOST_PREPROCESSOR_REPEAT_2ND123(M,P) M(123,P) #define BOOST_PP_REPEAT_2ND124(M,P) BOOST_PP_REPEAT_2ND123(M,P) M(123,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND125(M,P) BOOST_PREPROCESSOR_REPEAT_2ND124(M,P) M(124,P) #define BOOST_PP_REPEAT_2ND125(M,P) BOOST_PP_REPEAT_2ND124(M,P) M(124,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND126(M,P) BOOST_PREPROCESSOR_REPEAT_2ND125(M,P) M(125,P) #define BOOST_PP_REPEAT_2ND126(M,P) BOOST_PP_REPEAT_2ND125(M,P) M(125,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND127(M,P) BOOST_PREPROCESSOR_REPEAT_2ND126(M,P) M(126,P) #define BOOST_PP_REPEAT_2ND127(M,P) BOOST_PP_REPEAT_2ND126(M,P) M(126,P)
#define BOOST_PREPROCESSOR_REPEAT_2ND128(M,P) BOOST_PREPROCESSOR_REPEAT_2ND127(M,P) M(127,P) #define BOOST_PP_REPEAT_2ND128(M,P) BOOST_PP_REPEAT_2ND127(M,P) M(127,P)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_REPEAT_2ND().
#define BOOST_PREPROCESSOR_REPEAT_2ND(N,M,P) BOOST_PP_REPEAT_2ND(N,M,P)
#endif #endif

View File

@ -17,139 +17,142 @@
<a href="../../../../boost/preprocessor/repeat_3rd.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/repeat_3rd.hpp">Click here to see the header.</a>
*/ */
//! Same as BOOST_PREPROCESSOR_REPEAT(), but implemented independently. //! Same as BOOST_PP_REPEAT(), but implemented independently.
#define BOOST_PREPROCESSOR_REPEAT_3RD(N,M,P) BOOST_PREPROCESSOR_REPEAT_3RD_DELAY(N,M,P) #define BOOST_PP_REPEAT_3RD(N,M,P) BOOST_PP_REPEAT_3RD_DELAY(N,M,P)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_REPEAT_3RD_DELAY(N,M,P) BOOST_PREPROCESSOR_REPEAT_3RD##N(M,P) #define BOOST_PP_REPEAT_3RD_DELAY(N,M,P) BOOST_PP_REPEAT_3RD##N(M,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD0(M,P) #define BOOST_PP_REPEAT_3RD0(M,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD1(M,P) M(0,P) #define BOOST_PP_REPEAT_3RD1(M,P) M(0,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD2(M,P) M(0,P) M(1,P) #define BOOST_PP_REPEAT_3RD2(M,P) M(0,P) M(1,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD3(M,P) BOOST_PREPROCESSOR_REPEAT_3RD2(M,P) M(2,P) #define BOOST_PP_REPEAT_3RD3(M,P) BOOST_PP_REPEAT_3RD2(M,P) M(2,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD4(M,P) BOOST_PREPROCESSOR_REPEAT_3RD3(M,P) M(3,P) #define BOOST_PP_REPEAT_3RD4(M,P) BOOST_PP_REPEAT_3RD3(M,P) M(3,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD5(M,P) BOOST_PREPROCESSOR_REPEAT_3RD4(M,P) M(4,P) #define BOOST_PP_REPEAT_3RD5(M,P) BOOST_PP_REPEAT_3RD4(M,P) M(4,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD6(M,P) BOOST_PREPROCESSOR_REPEAT_3RD5(M,P) M(5,P) #define BOOST_PP_REPEAT_3RD6(M,P) BOOST_PP_REPEAT_3RD5(M,P) M(5,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD7(M,P) BOOST_PREPROCESSOR_REPEAT_3RD6(M,P) M(6,P) #define BOOST_PP_REPEAT_3RD7(M,P) BOOST_PP_REPEAT_3RD6(M,P) M(6,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD8(M,P) BOOST_PREPROCESSOR_REPEAT_3RD7(M,P) M(7,P) #define BOOST_PP_REPEAT_3RD8(M,P) BOOST_PP_REPEAT_3RD7(M,P) M(7,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD9(M,P) BOOST_PREPROCESSOR_REPEAT_3RD8(M,P) M(8,P) #define BOOST_PP_REPEAT_3RD9(M,P) BOOST_PP_REPEAT_3RD8(M,P) M(8,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD10(M,P) BOOST_PREPROCESSOR_REPEAT_3RD9(M,P) M(9,P) #define BOOST_PP_REPEAT_3RD10(M,P) BOOST_PP_REPEAT_3RD9(M,P) M(9,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD11(M,P) BOOST_PREPROCESSOR_REPEAT_3RD10(M,P) M(10,P) #define BOOST_PP_REPEAT_3RD11(M,P) BOOST_PP_REPEAT_3RD10(M,P) M(10,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD12(M,P) BOOST_PREPROCESSOR_REPEAT_3RD11(M,P) M(11,P) #define BOOST_PP_REPEAT_3RD12(M,P) BOOST_PP_REPEAT_3RD11(M,P) M(11,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD13(M,P) BOOST_PREPROCESSOR_REPEAT_3RD12(M,P) M(12,P) #define BOOST_PP_REPEAT_3RD13(M,P) BOOST_PP_REPEAT_3RD12(M,P) M(12,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD14(M,P) BOOST_PREPROCESSOR_REPEAT_3RD13(M,P) M(13,P) #define BOOST_PP_REPEAT_3RD14(M,P) BOOST_PP_REPEAT_3RD13(M,P) M(13,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD15(M,P) BOOST_PREPROCESSOR_REPEAT_3RD14(M,P) M(14,P) #define BOOST_PP_REPEAT_3RD15(M,P) BOOST_PP_REPEAT_3RD14(M,P) M(14,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD16(M,P) BOOST_PREPROCESSOR_REPEAT_3RD15(M,P) M(15,P) #define BOOST_PP_REPEAT_3RD16(M,P) BOOST_PP_REPEAT_3RD15(M,P) M(15,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD17(M,P) BOOST_PREPROCESSOR_REPEAT_3RD16(M,P) M(16,P) #define BOOST_PP_REPEAT_3RD17(M,P) BOOST_PP_REPEAT_3RD16(M,P) M(16,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD18(M,P) BOOST_PREPROCESSOR_REPEAT_3RD17(M,P) M(17,P) #define BOOST_PP_REPEAT_3RD18(M,P) BOOST_PP_REPEAT_3RD17(M,P) M(17,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD19(M,P) BOOST_PREPROCESSOR_REPEAT_3RD18(M,P) M(18,P) #define BOOST_PP_REPEAT_3RD19(M,P) BOOST_PP_REPEAT_3RD18(M,P) M(18,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD20(M,P) BOOST_PREPROCESSOR_REPEAT_3RD19(M,P) M(19,P) #define BOOST_PP_REPEAT_3RD20(M,P) BOOST_PP_REPEAT_3RD19(M,P) M(19,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD21(M,P) BOOST_PREPROCESSOR_REPEAT_3RD20(M,P) M(20,P) #define BOOST_PP_REPEAT_3RD21(M,P) BOOST_PP_REPEAT_3RD20(M,P) M(20,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD22(M,P) BOOST_PREPROCESSOR_REPEAT_3RD21(M,P) M(21,P) #define BOOST_PP_REPEAT_3RD22(M,P) BOOST_PP_REPEAT_3RD21(M,P) M(21,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD23(M,P) BOOST_PREPROCESSOR_REPEAT_3RD22(M,P) M(22,P) #define BOOST_PP_REPEAT_3RD23(M,P) BOOST_PP_REPEAT_3RD22(M,P) M(22,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD24(M,P) BOOST_PREPROCESSOR_REPEAT_3RD23(M,P) M(23,P) #define BOOST_PP_REPEAT_3RD24(M,P) BOOST_PP_REPEAT_3RD23(M,P) M(23,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD25(M,P) BOOST_PREPROCESSOR_REPEAT_3RD24(M,P) M(24,P) #define BOOST_PP_REPEAT_3RD25(M,P) BOOST_PP_REPEAT_3RD24(M,P) M(24,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD26(M,P) BOOST_PREPROCESSOR_REPEAT_3RD25(M,P) M(25,P) #define BOOST_PP_REPEAT_3RD26(M,P) BOOST_PP_REPEAT_3RD25(M,P) M(25,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD27(M,P) BOOST_PREPROCESSOR_REPEAT_3RD26(M,P) M(26,P) #define BOOST_PP_REPEAT_3RD27(M,P) BOOST_PP_REPEAT_3RD26(M,P) M(26,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD28(M,P) BOOST_PREPROCESSOR_REPEAT_3RD27(M,P) M(27,P) #define BOOST_PP_REPEAT_3RD28(M,P) BOOST_PP_REPEAT_3RD27(M,P) M(27,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD29(M,P) BOOST_PREPROCESSOR_REPEAT_3RD28(M,P) M(28,P) #define BOOST_PP_REPEAT_3RD29(M,P) BOOST_PP_REPEAT_3RD28(M,P) M(28,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD30(M,P) BOOST_PREPROCESSOR_REPEAT_3RD29(M,P) M(29,P) #define BOOST_PP_REPEAT_3RD30(M,P) BOOST_PP_REPEAT_3RD29(M,P) M(29,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD31(M,P) BOOST_PREPROCESSOR_REPEAT_3RD30(M,P) M(30,P) #define BOOST_PP_REPEAT_3RD31(M,P) BOOST_PP_REPEAT_3RD30(M,P) M(30,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD32(M,P) BOOST_PREPROCESSOR_REPEAT_3RD31(M,P) M(31,P) #define BOOST_PP_REPEAT_3RD32(M,P) BOOST_PP_REPEAT_3RD31(M,P) M(31,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD33(M,P) BOOST_PREPROCESSOR_REPEAT_3RD32(M,P) M(32,P) #define BOOST_PP_REPEAT_3RD33(M,P) BOOST_PP_REPEAT_3RD32(M,P) M(32,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD34(M,P) BOOST_PREPROCESSOR_REPEAT_3RD33(M,P) M(33,P) #define BOOST_PP_REPEAT_3RD34(M,P) BOOST_PP_REPEAT_3RD33(M,P) M(33,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD35(M,P) BOOST_PREPROCESSOR_REPEAT_3RD34(M,P) M(34,P) #define BOOST_PP_REPEAT_3RD35(M,P) BOOST_PP_REPEAT_3RD34(M,P) M(34,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD36(M,P) BOOST_PREPROCESSOR_REPEAT_3RD35(M,P) M(35,P) #define BOOST_PP_REPEAT_3RD36(M,P) BOOST_PP_REPEAT_3RD35(M,P) M(35,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD37(M,P) BOOST_PREPROCESSOR_REPEAT_3RD36(M,P) M(36,P) #define BOOST_PP_REPEAT_3RD37(M,P) BOOST_PP_REPEAT_3RD36(M,P) M(36,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD38(M,P) BOOST_PREPROCESSOR_REPEAT_3RD37(M,P) M(37,P) #define BOOST_PP_REPEAT_3RD38(M,P) BOOST_PP_REPEAT_3RD37(M,P) M(37,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD39(M,P) BOOST_PREPROCESSOR_REPEAT_3RD38(M,P) M(38,P) #define BOOST_PP_REPEAT_3RD39(M,P) BOOST_PP_REPEAT_3RD38(M,P) M(38,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD40(M,P) BOOST_PREPROCESSOR_REPEAT_3RD39(M,P) M(39,P) #define BOOST_PP_REPEAT_3RD40(M,P) BOOST_PP_REPEAT_3RD39(M,P) M(39,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD41(M,P) BOOST_PREPROCESSOR_REPEAT_3RD40(M,P) M(40,P) #define BOOST_PP_REPEAT_3RD41(M,P) BOOST_PP_REPEAT_3RD40(M,P) M(40,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD42(M,P) BOOST_PREPROCESSOR_REPEAT_3RD41(M,P) M(41,P) #define BOOST_PP_REPEAT_3RD42(M,P) BOOST_PP_REPEAT_3RD41(M,P) M(41,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD43(M,P) BOOST_PREPROCESSOR_REPEAT_3RD42(M,P) M(42,P) #define BOOST_PP_REPEAT_3RD43(M,P) BOOST_PP_REPEAT_3RD42(M,P) M(42,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD44(M,P) BOOST_PREPROCESSOR_REPEAT_3RD43(M,P) M(43,P) #define BOOST_PP_REPEAT_3RD44(M,P) BOOST_PP_REPEAT_3RD43(M,P) M(43,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD45(M,P) BOOST_PREPROCESSOR_REPEAT_3RD44(M,P) M(44,P) #define BOOST_PP_REPEAT_3RD45(M,P) BOOST_PP_REPEAT_3RD44(M,P) M(44,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD46(M,P) BOOST_PREPROCESSOR_REPEAT_3RD45(M,P) M(45,P) #define BOOST_PP_REPEAT_3RD46(M,P) BOOST_PP_REPEAT_3RD45(M,P) M(45,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD47(M,P) BOOST_PREPROCESSOR_REPEAT_3RD46(M,P) M(46,P) #define BOOST_PP_REPEAT_3RD47(M,P) BOOST_PP_REPEAT_3RD46(M,P) M(46,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD48(M,P) BOOST_PREPROCESSOR_REPEAT_3RD47(M,P) M(47,P) #define BOOST_PP_REPEAT_3RD48(M,P) BOOST_PP_REPEAT_3RD47(M,P) M(47,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD49(M,P) BOOST_PREPROCESSOR_REPEAT_3RD48(M,P) M(48,P) #define BOOST_PP_REPEAT_3RD49(M,P) BOOST_PP_REPEAT_3RD48(M,P) M(48,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD50(M,P) BOOST_PREPROCESSOR_REPEAT_3RD49(M,P) M(49,P) #define BOOST_PP_REPEAT_3RD50(M,P) BOOST_PP_REPEAT_3RD49(M,P) M(49,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD51(M,P) BOOST_PREPROCESSOR_REPEAT_3RD50(M,P) M(50,P) #define BOOST_PP_REPEAT_3RD51(M,P) BOOST_PP_REPEAT_3RD50(M,P) M(50,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD52(M,P) BOOST_PREPROCESSOR_REPEAT_3RD51(M,P) M(51,P) #define BOOST_PP_REPEAT_3RD52(M,P) BOOST_PP_REPEAT_3RD51(M,P) M(51,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD53(M,P) BOOST_PREPROCESSOR_REPEAT_3RD52(M,P) M(52,P) #define BOOST_PP_REPEAT_3RD53(M,P) BOOST_PP_REPEAT_3RD52(M,P) M(52,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD54(M,P) BOOST_PREPROCESSOR_REPEAT_3RD53(M,P) M(53,P) #define BOOST_PP_REPEAT_3RD54(M,P) BOOST_PP_REPEAT_3RD53(M,P) M(53,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD55(M,P) BOOST_PREPROCESSOR_REPEAT_3RD54(M,P) M(54,P) #define BOOST_PP_REPEAT_3RD55(M,P) BOOST_PP_REPEAT_3RD54(M,P) M(54,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD56(M,P) BOOST_PREPROCESSOR_REPEAT_3RD55(M,P) M(55,P) #define BOOST_PP_REPEAT_3RD56(M,P) BOOST_PP_REPEAT_3RD55(M,P) M(55,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD57(M,P) BOOST_PREPROCESSOR_REPEAT_3RD56(M,P) M(56,P) #define BOOST_PP_REPEAT_3RD57(M,P) BOOST_PP_REPEAT_3RD56(M,P) M(56,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD58(M,P) BOOST_PREPROCESSOR_REPEAT_3RD57(M,P) M(57,P) #define BOOST_PP_REPEAT_3RD58(M,P) BOOST_PP_REPEAT_3RD57(M,P) M(57,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD59(M,P) BOOST_PREPROCESSOR_REPEAT_3RD58(M,P) M(58,P) #define BOOST_PP_REPEAT_3RD59(M,P) BOOST_PP_REPEAT_3RD58(M,P) M(58,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD60(M,P) BOOST_PREPROCESSOR_REPEAT_3RD59(M,P) M(59,P) #define BOOST_PP_REPEAT_3RD60(M,P) BOOST_PP_REPEAT_3RD59(M,P) M(59,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD61(M,P) BOOST_PREPROCESSOR_REPEAT_3RD60(M,P) M(60,P) #define BOOST_PP_REPEAT_3RD61(M,P) BOOST_PP_REPEAT_3RD60(M,P) M(60,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD62(M,P) BOOST_PREPROCESSOR_REPEAT_3RD61(M,P) M(61,P) #define BOOST_PP_REPEAT_3RD62(M,P) BOOST_PP_REPEAT_3RD61(M,P) M(61,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD63(M,P) BOOST_PREPROCESSOR_REPEAT_3RD62(M,P) M(62,P) #define BOOST_PP_REPEAT_3RD63(M,P) BOOST_PP_REPEAT_3RD62(M,P) M(62,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD64(M,P) BOOST_PREPROCESSOR_REPEAT_3RD63(M,P) M(63,P) #define BOOST_PP_REPEAT_3RD64(M,P) BOOST_PP_REPEAT_3RD63(M,P) M(63,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD65(M,P) BOOST_PREPROCESSOR_REPEAT_3RD64(M,P) M(64,P) #define BOOST_PP_REPEAT_3RD65(M,P) BOOST_PP_REPEAT_3RD64(M,P) M(64,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD66(M,P) BOOST_PREPROCESSOR_REPEAT_3RD65(M,P) M(65,P) #define BOOST_PP_REPEAT_3RD66(M,P) BOOST_PP_REPEAT_3RD65(M,P) M(65,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD67(M,P) BOOST_PREPROCESSOR_REPEAT_3RD66(M,P) M(66,P) #define BOOST_PP_REPEAT_3RD67(M,P) BOOST_PP_REPEAT_3RD66(M,P) M(66,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD68(M,P) BOOST_PREPROCESSOR_REPEAT_3RD67(M,P) M(67,P) #define BOOST_PP_REPEAT_3RD68(M,P) BOOST_PP_REPEAT_3RD67(M,P) M(67,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD69(M,P) BOOST_PREPROCESSOR_REPEAT_3RD68(M,P) M(68,P) #define BOOST_PP_REPEAT_3RD69(M,P) BOOST_PP_REPEAT_3RD68(M,P) M(68,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD70(M,P) BOOST_PREPROCESSOR_REPEAT_3RD69(M,P) M(69,P) #define BOOST_PP_REPEAT_3RD70(M,P) BOOST_PP_REPEAT_3RD69(M,P) M(69,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD71(M,P) BOOST_PREPROCESSOR_REPEAT_3RD70(M,P) M(70,P) #define BOOST_PP_REPEAT_3RD71(M,P) BOOST_PP_REPEAT_3RD70(M,P) M(70,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD72(M,P) BOOST_PREPROCESSOR_REPEAT_3RD71(M,P) M(71,P) #define BOOST_PP_REPEAT_3RD72(M,P) BOOST_PP_REPEAT_3RD71(M,P) M(71,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD73(M,P) BOOST_PREPROCESSOR_REPEAT_3RD72(M,P) M(72,P) #define BOOST_PP_REPEAT_3RD73(M,P) BOOST_PP_REPEAT_3RD72(M,P) M(72,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD74(M,P) BOOST_PREPROCESSOR_REPEAT_3RD73(M,P) M(73,P) #define BOOST_PP_REPEAT_3RD74(M,P) BOOST_PP_REPEAT_3RD73(M,P) M(73,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD75(M,P) BOOST_PREPROCESSOR_REPEAT_3RD74(M,P) M(74,P) #define BOOST_PP_REPEAT_3RD75(M,P) BOOST_PP_REPEAT_3RD74(M,P) M(74,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD76(M,P) BOOST_PREPROCESSOR_REPEAT_3RD75(M,P) M(75,P) #define BOOST_PP_REPEAT_3RD76(M,P) BOOST_PP_REPEAT_3RD75(M,P) M(75,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD77(M,P) BOOST_PREPROCESSOR_REPEAT_3RD76(M,P) M(76,P) #define BOOST_PP_REPEAT_3RD77(M,P) BOOST_PP_REPEAT_3RD76(M,P) M(76,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD78(M,P) BOOST_PREPROCESSOR_REPEAT_3RD77(M,P) M(77,P) #define BOOST_PP_REPEAT_3RD78(M,P) BOOST_PP_REPEAT_3RD77(M,P) M(77,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD79(M,P) BOOST_PREPROCESSOR_REPEAT_3RD78(M,P) M(78,P) #define BOOST_PP_REPEAT_3RD79(M,P) BOOST_PP_REPEAT_3RD78(M,P) M(78,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD80(M,P) BOOST_PREPROCESSOR_REPEAT_3RD79(M,P) M(79,P) #define BOOST_PP_REPEAT_3RD80(M,P) BOOST_PP_REPEAT_3RD79(M,P) M(79,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD81(M,P) BOOST_PREPROCESSOR_REPEAT_3RD80(M,P) M(80,P) #define BOOST_PP_REPEAT_3RD81(M,P) BOOST_PP_REPEAT_3RD80(M,P) M(80,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD82(M,P) BOOST_PREPROCESSOR_REPEAT_3RD81(M,P) M(81,P) #define BOOST_PP_REPEAT_3RD82(M,P) BOOST_PP_REPEAT_3RD81(M,P) M(81,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD83(M,P) BOOST_PREPROCESSOR_REPEAT_3RD82(M,P) M(82,P) #define BOOST_PP_REPEAT_3RD83(M,P) BOOST_PP_REPEAT_3RD82(M,P) M(82,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD84(M,P) BOOST_PREPROCESSOR_REPEAT_3RD83(M,P) M(83,P) #define BOOST_PP_REPEAT_3RD84(M,P) BOOST_PP_REPEAT_3RD83(M,P) M(83,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD85(M,P) BOOST_PREPROCESSOR_REPEAT_3RD84(M,P) M(84,P) #define BOOST_PP_REPEAT_3RD85(M,P) BOOST_PP_REPEAT_3RD84(M,P) M(84,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD86(M,P) BOOST_PREPROCESSOR_REPEAT_3RD85(M,P) M(85,P) #define BOOST_PP_REPEAT_3RD86(M,P) BOOST_PP_REPEAT_3RD85(M,P) M(85,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD87(M,P) BOOST_PREPROCESSOR_REPEAT_3RD86(M,P) M(86,P) #define BOOST_PP_REPEAT_3RD87(M,P) BOOST_PP_REPEAT_3RD86(M,P) M(86,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD88(M,P) BOOST_PREPROCESSOR_REPEAT_3RD87(M,P) M(87,P) #define BOOST_PP_REPEAT_3RD88(M,P) BOOST_PP_REPEAT_3RD87(M,P) M(87,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD89(M,P) BOOST_PREPROCESSOR_REPEAT_3RD88(M,P) M(88,P) #define BOOST_PP_REPEAT_3RD89(M,P) BOOST_PP_REPEAT_3RD88(M,P) M(88,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD90(M,P) BOOST_PREPROCESSOR_REPEAT_3RD89(M,P) M(89,P) #define BOOST_PP_REPEAT_3RD90(M,P) BOOST_PP_REPEAT_3RD89(M,P) M(89,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD91(M,P) BOOST_PREPROCESSOR_REPEAT_3RD90(M,P) M(90,P) #define BOOST_PP_REPEAT_3RD91(M,P) BOOST_PP_REPEAT_3RD90(M,P) M(90,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD92(M,P) BOOST_PREPROCESSOR_REPEAT_3RD91(M,P) M(91,P) #define BOOST_PP_REPEAT_3RD92(M,P) BOOST_PP_REPEAT_3RD91(M,P) M(91,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD93(M,P) BOOST_PREPROCESSOR_REPEAT_3RD92(M,P) M(92,P) #define BOOST_PP_REPEAT_3RD93(M,P) BOOST_PP_REPEAT_3RD92(M,P) M(92,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD94(M,P) BOOST_PREPROCESSOR_REPEAT_3RD93(M,P) M(93,P) #define BOOST_PP_REPEAT_3RD94(M,P) BOOST_PP_REPEAT_3RD93(M,P) M(93,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD95(M,P) BOOST_PREPROCESSOR_REPEAT_3RD94(M,P) M(94,P) #define BOOST_PP_REPEAT_3RD95(M,P) BOOST_PP_REPEAT_3RD94(M,P) M(94,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD96(M,P) BOOST_PREPROCESSOR_REPEAT_3RD95(M,P) M(95,P) #define BOOST_PP_REPEAT_3RD96(M,P) BOOST_PP_REPEAT_3RD95(M,P) M(95,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD97(M,P) BOOST_PREPROCESSOR_REPEAT_3RD96(M,P) M(96,P) #define BOOST_PP_REPEAT_3RD97(M,P) BOOST_PP_REPEAT_3RD96(M,P) M(96,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD98(M,P) BOOST_PREPROCESSOR_REPEAT_3RD97(M,P) M(97,P) #define BOOST_PP_REPEAT_3RD98(M,P) BOOST_PP_REPEAT_3RD97(M,P) M(97,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD99(M,P) BOOST_PREPROCESSOR_REPEAT_3RD98(M,P) M(98,P) #define BOOST_PP_REPEAT_3RD99(M,P) BOOST_PP_REPEAT_3RD98(M,P) M(98,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD100(M,P) BOOST_PREPROCESSOR_REPEAT_3RD99(M,P) M(99,P) #define BOOST_PP_REPEAT_3RD100(M,P) BOOST_PP_REPEAT_3RD99(M,P) M(99,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD101(M,P) BOOST_PREPROCESSOR_REPEAT_3RD100(M,P) M(100,P) #define BOOST_PP_REPEAT_3RD101(M,P) BOOST_PP_REPEAT_3RD100(M,P) M(100,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD102(M,P) BOOST_PREPROCESSOR_REPEAT_3RD101(M,P) M(101,P) #define BOOST_PP_REPEAT_3RD102(M,P) BOOST_PP_REPEAT_3RD101(M,P) M(101,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD103(M,P) BOOST_PREPROCESSOR_REPEAT_3RD102(M,P) M(102,P) #define BOOST_PP_REPEAT_3RD103(M,P) BOOST_PP_REPEAT_3RD102(M,P) M(102,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD104(M,P) BOOST_PREPROCESSOR_REPEAT_3RD103(M,P) M(103,P) #define BOOST_PP_REPEAT_3RD104(M,P) BOOST_PP_REPEAT_3RD103(M,P) M(103,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD105(M,P) BOOST_PREPROCESSOR_REPEAT_3RD104(M,P) M(104,P) #define BOOST_PP_REPEAT_3RD105(M,P) BOOST_PP_REPEAT_3RD104(M,P) M(104,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD106(M,P) BOOST_PREPROCESSOR_REPEAT_3RD105(M,P) M(105,P) #define BOOST_PP_REPEAT_3RD106(M,P) BOOST_PP_REPEAT_3RD105(M,P) M(105,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD107(M,P) BOOST_PREPROCESSOR_REPEAT_3RD106(M,P) M(106,P) #define BOOST_PP_REPEAT_3RD107(M,P) BOOST_PP_REPEAT_3RD106(M,P) M(106,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD108(M,P) BOOST_PREPROCESSOR_REPEAT_3RD107(M,P) M(107,P) #define BOOST_PP_REPEAT_3RD108(M,P) BOOST_PP_REPEAT_3RD107(M,P) M(107,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD109(M,P) BOOST_PREPROCESSOR_REPEAT_3RD108(M,P) M(108,P) #define BOOST_PP_REPEAT_3RD109(M,P) BOOST_PP_REPEAT_3RD108(M,P) M(108,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD110(M,P) BOOST_PREPROCESSOR_REPEAT_3RD109(M,P) M(109,P) #define BOOST_PP_REPEAT_3RD110(M,P) BOOST_PP_REPEAT_3RD109(M,P) M(109,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD111(M,P) BOOST_PREPROCESSOR_REPEAT_3RD110(M,P) M(110,P) #define BOOST_PP_REPEAT_3RD111(M,P) BOOST_PP_REPEAT_3RD110(M,P) M(110,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD112(M,P) BOOST_PREPROCESSOR_REPEAT_3RD111(M,P) M(111,P) #define BOOST_PP_REPEAT_3RD112(M,P) BOOST_PP_REPEAT_3RD111(M,P) M(111,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD113(M,P) BOOST_PREPROCESSOR_REPEAT_3RD112(M,P) M(112,P) #define BOOST_PP_REPEAT_3RD113(M,P) BOOST_PP_REPEAT_3RD112(M,P) M(112,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD114(M,P) BOOST_PREPROCESSOR_REPEAT_3RD113(M,P) M(113,P) #define BOOST_PP_REPEAT_3RD114(M,P) BOOST_PP_REPEAT_3RD113(M,P) M(113,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD115(M,P) BOOST_PREPROCESSOR_REPEAT_3RD114(M,P) M(114,P) #define BOOST_PP_REPEAT_3RD115(M,P) BOOST_PP_REPEAT_3RD114(M,P) M(114,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD116(M,P) BOOST_PREPROCESSOR_REPEAT_3RD115(M,P) M(115,P) #define BOOST_PP_REPEAT_3RD116(M,P) BOOST_PP_REPEAT_3RD115(M,P) M(115,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD117(M,P) BOOST_PREPROCESSOR_REPEAT_3RD116(M,P) M(116,P) #define BOOST_PP_REPEAT_3RD117(M,P) BOOST_PP_REPEAT_3RD116(M,P) M(116,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD118(M,P) BOOST_PREPROCESSOR_REPEAT_3RD117(M,P) M(117,P) #define BOOST_PP_REPEAT_3RD118(M,P) BOOST_PP_REPEAT_3RD117(M,P) M(117,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD119(M,P) BOOST_PREPROCESSOR_REPEAT_3RD118(M,P) M(118,P) #define BOOST_PP_REPEAT_3RD119(M,P) BOOST_PP_REPEAT_3RD118(M,P) M(118,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD120(M,P) BOOST_PREPROCESSOR_REPEAT_3RD119(M,P) M(119,P) #define BOOST_PP_REPEAT_3RD120(M,P) BOOST_PP_REPEAT_3RD119(M,P) M(119,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD121(M,P) BOOST_PREPROCESSOR_REPEAT_3RD120(M,P) M(120,P) #define BOOST_PP_REPEAT_3RD121(M,P) BOOST_PP_REPEAT_3RD120(M,P) M(120,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD122(M,P) BOOST_PREPROCESSOR_REPEAT_3RD121(M,P) M(121,P) #define BOOST_PP_REPEAT_3RD122(M,P) BOOST_PP_REPEAT_3RD121(M,P) M(121,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD123(M,P) BOOST_PREPROCESSOR_REPEAT_3RD122(M,P) M(122,P) #define BOOST_PP_REPEAT_3RD123(M,P) BOOST_PP_REPEAT_3RD122(M,P) M(122,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD124(M,P) BOOST_PREPROCESSOR_REPEAT_3RD123(M,P) M(123,P) #define BOOST_PP_REPEAT_3RD124(M,P) BOOST_PP_REPEAT_3RD123(M,P) M(123,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD125(M,P) BOOST_PREPROCESSOR_REPEAT_3RD124(M,P) M(124,P) #define BOOST_PP_REPEAT_3RD125(M,P) BOOST_PP_REPEAT_3RD124(M,P) M(124,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD126(M,P) BOOST_PREPROCESSOR_REPEAT_3RD125(M,P) M(125,P) #define BOOST_PP_REPEAT_3RD126(M,P) BOOST_PP_REPEAT_3RD125(M,P) M(125,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD127(M,P) BOOST_PREPROCESSOR_REPEAT_3RD126(M,P) M(126,P) #define BOOST_PP_REPEAT_3RD127(M,P) BOOST_PP_REPEAT_3RD126(M,P) M(126,P)
#define BOOST_PREPROCESSOR_REPEAT_3RD128(M,P) BOOST_PREPROCESSOR_REPEAT_3RD127(M,P) M(127,P) #define BOOST_PP_REPEAT_3RD128(M,P) BOOST_PP_REPEAT_3RD127(M,P) M(127,P)
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_REPEAT_3RD().
#define BOOST_PREPROCESSOR_REPEAT_3RD(N,M,P) BOOST_PP_REPEAT_3RD(N,M,P)
#endif #endif

View File

@ -23,7 +23,7 @@ Example:
<PRE>\verbatim <PRE>\verbatim
#define NOTE(STR)\ #define NOTE(STR)\
message(__FILE__ "(" BOOST_PREPROCESSOR_STRINGIZE(__LINE__) ") : " STR) message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
// ... // ...
@ -36,17 +36,20 @@ The above expands to:
#pragma message("examples.cpp" "(" "20" ") : " "TBD!") #pragma message("examples.cpp" "(" "20" ") : " "TBD!")
\endverbatim</PRE> \endverbatim</PRE>
The use of BOOST_PREPROCESSOR_STRINGIZE() above lets the preprocessor expand The use of BOOST_PP_STRINGIZE() above lets the PP expand the __LINE__
the __LINE__ before stringizing it. If # would be used directly, the code before stringizing it. If # would be used directly, the code would
would expand to: expand to:
<PRE>\verbatim <PRE>\verbatim
#pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!") #pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!")
\endverbatim</PRE> \endverbatim</PRE>
*/ */
#define BOOST_PREPROCESSOR_STRINGIZE(E) BOOST_PREPROCESSOR_STRINGIZE_DELAY(E) #define BOOST_PP_STRINGIZE(E) BOOST_PP_STRINGIZE_DELAY(E)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_STRINGIZE_DELAY(E) #E #define BOOST_PP_STRINGIZE_DELAY(E) #E
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #endif
//! Obsolete. Use BOOST_PP_STRINGIZE().
#define BOOST_PREPROCESSOR_STRINGIZE(E) BOOST_PP_STRINGIZE(E)
#endif #endif

View File

@ -17,12 +17,12 @@
<a href="../../../../boost/preprocessor/tuple.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/tuple.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_IDENTITY_HPP #include <boost/preprocessor/identity.hpp>
# include <boost/preprocessor/identity.hpp>
#endif
//! Expands to the I:th element of an N-tuple. //! Expands to the I:th element of an N-tuple.
/*! /*!
Tuples can be used for representing structured data.
Examples of tuples: Examples of tuples:
<PRE>\verbatim <PRE>\verbatim
@ -34,7 +34,7 @@ Examples of tuples:
Example: Example:
<PRE>\verbatim <PRE>\verbatim
BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,(A,B)) BOOST_PP_TUPLE_ELEM(2,1,(A,B))
\endverbatim</PRE> \endverbatim</PRE>
The above expands to: The above expands to:
@ -42,60 +42,68 @@ The above expands to:
<PRE>\verbatim <PRE>\verbatim
B B
\endverbatim</PRE> \endverbatim</PRE>
See also BOOST_PP_LIMIT_TUPLE.
*/ */
#define BOOST_PREPROCESSOR_TUPLE_ELEM(N,I,T) BOOST_PREPROCESSOR_TUPLE_ELEM_DELAY(N,I,T) #define BOOST_PP_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM_DELAY(N,I,T)
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#if defined(__MWERKS__) && __MWERKS__ <= 0x2406 #if defined(__MWERKS__) && __MWERKS__ <= 0x2406
// This is a workaround for a CodeWarrior preprocessor bug. Strictly speaking // This is a workaround for a CodeWarrior PP bug. Strictly speaking
// this workaround invokes undefined behavior, but it works as desired. // this workaround invokes undefined behavior, but it works as desired.
# define BOOST_PREPROCESSOR_TUPLE_ELEM_DELAY(N,I,T) BOOST_PREPROCESSOR_TUPLE##N##_ELEM##I##T # define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_TUPLE##N##_ELEM##I##T
#else #else
# define BOOST_PREPROCESSOR_TUPLE_ELEM_DELAY(N,I,T) BOOST_PREPROCESSOR_IDENTITY(BOOST_PREPROCESSOR_TUPLE##N##_ELEM##I T)() # define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_IDENTITY(BOOST_PP_TUPLE##N##_ELEM##I T)()
#endif #endif
#define BOOST_PREPROCESSOR_TUPLE1_ELEM0(E0) E0 // NOTE: TUPLE_ELEM can be implemented in O(N*N) space and O(N) time instead
// of O(N*N*N) space and O(1) time. The current trade-off seems better.
#define BOOST_PREPROCESSOR_TUPLE2_ELEM0(E0,E1) E0 #define BOOST_PP_TUPLE1_ELEM0(A) A
#define BOOST_PREPROCESSOR_TUPLE2_ELEM1(E0,E1) E1
#define BOOST_PREPROCESSOR_TUPLE3_ELEM0(E0,E1,E2) E0 #define BOOST_PP_TUPLE2_ELEM0(A,B) A
#define BOOST_PREPROCESSOR_TUPLE3_ELEM1(E0,E1,E2) E1 #define BOOST_PP_TUPLE2_ELEM1(A,B) B
#define BOOST_PREPROCESSOR_TUPLE3_ELEM2(E0,E1,E2) E2
#define BOOST_PREPROCESSOR_TUPLE4_ELEM0(E0,E1,E2,E3) E0 #define BOOST_PP_TUPLE3_ELEM0(A,B,C) A
#define BOOST_PREPROCESSOR_TUPLE4_ELEM1(E0,E1,E2,E3) E1 #define BOOST_PP_TUPLE3_ELEM1(A,B,C) B
#define BOOST_PREPROCESSOR_TUPLE4_ELEM2(E0,E1,E2,E3) E2 #define BOOST_PP_TUPLE3_ELEM2(A,B,C) C
#define BOOST_PREPROCESSOR_TUPLE4_ELEM3(E0,E1,E2,E3) E3
#define BOOST_PREPROCESSOR_TUPLE5_ELEM0(E0,E1,E2,E3,E4) E0 #define BOOST_PP_TUPLE4_ELEM0(A,B,C,D) A
#define BOOST_PREPROCESSOR_TUPLE5_ELEM1(E0,E1,E2,E3,E4) E1 #define BOOST_PP_TUPLE4_ELEM1(A,B,C,D) B
#define BOOST_PREPROCESSOR_TUPLE5_ELEM2(E0,E1,E2,E3,E4) E2 #define BOOST_PP_TUPLE4_ELEM2(A,B,C,D) C
#define BOOST_PREPROCESSOR_TUPLE5_ELEM3(E0,E1,E2,E3,E4) E3 #define BOOST_PP_TUPLE4_ELEM3(A,B,C,D) D
#define BOOST_PREPROCESSOR_TUPLE5_ELEM4(E0,E1,E2,E3,E4) E4
#define BOOST_PREPROCESSOR_TUPLE6_ELEM0(E0,E1,E2,E3,E4,E5) E0 #define BOOST_PP_TUPLE5_ELEM0(A,B,C,D,E) A
#define BOOST_PREPROCESSOR_TUPLE6_ELEM1(E0,E1,E2,E3,E4,E5) E1 #define BOOST_PP_TUPLE5_ELEM1(A,B,C,D,E) B
#define BOOST_PREPROCESSOR_TUPLE6_ELEM2(E0,E1,E2,E3,E4,E5) E2 #define BOOST_PP_TUPLE5_ELEM2(A,B,C,D,E) C
#define BOOST_PREPROCESSOR_TUPLE6_ELEM3(E0,E1,E2,E3,E4,E5) E3 #define BOOST_PP_TUPLE5_ELEM3(A,B,C,D,E) D
#define BOOST_PREPROCESSOR_TUPLE6_ELEM4(E0,E1,E2,E3,E4,E5) E4 #define BOOST_PP_TUPLE5_ELEM4(A,B,C,D,E) E
#define BOOST_PREPROCESSOR_TUPLE6_ELEM5(E0,E1,E2,E3,E4,E5) E5
#define BOOST_PREPROCESSOR_TUPLE7_ELEM0(E0,E1,E2,E3,E4,E5,E6) E0 #define BOOST_PP_TUPLE6_ELEM0(A,B,C,D,E,F) A
#define BOOST_PREPROCESSOR_TUPLE7_ELEM1(E0,E1,E2,E3,E4,E5,E6) E1 #define BOOST_PP_TUPLE6_ELEM1(A,B,C,D,E,F) B
#define BOOST_PREPROCESSOR_TUPLE7_ELEM2(E0,E1,E2,E3,E4,E5,E6) E2 #define BOOST_PP_TUPLE6_ELEM2(A,B,C,D,E,F) C
#define BOOST_PREPROCESSOR_TUPLE7_ELEM3(E0,E1,E2,E3,E4,E5,E6) E3 #define BOOST_PP_TUPLE6_ELEM3(A,B,C,D,E,F) D
#define BOOST_PREPROCESSOR_TUPLE7_ELEM4(E0,E1,E2,E3,E4,E5,E6) E4 #define BOOST_PP_TUPLE6_ELEM4(A,B,C,D,E,F) E
#define BOOST_PREPROCESSOR_TUPLE7_ELEM5(E0,E1,E2,E3,E4,E5,E6) E5 #define BOOST_PP_TUPLE6_ELEM5(A,B,C,D,E,F) F
#define BOOST_PREPROCESSOR_TUPLE7_ELEM6(E0,E1,E2,E3,E4,E5,E6) E6
#define BOOST_PREPROCESSOR_TUPLE8_ELEM0(E0,E1,E2,E3,E4,E5,E6,E7) E0 #define BOOST_PP_TUPLE7_ELEM0(A,B,C,D,E,F,G) A
#define BOOST_PREPROCESSOR_TUPLE8_ELEM1(E0,E1,E2,E3,E4,E5,E6,E7) E1 #define BOOST_PP_TUPLE7_ELEM1(A,B,C,D,E,F,G) B
#define BOOST_PREPROCESSOR_TUPLE8_ELEM2(E0,E1,E2,E3,E4,E5,E6,E7) E2 #define BOOST_PP_TUPLE7_ELEM2(A,B,C,D,E,F,G) C
#define BOOST_PREPROCESSOR_TUPLE8_ELEM3(E0,E1,E2,E3,E4,E5,E6,E7) E3 #define BOOST_PP_TUPLE7_ELEM3(A,B,C,D,E,F,G) D
#define BOOST_PREPROCESSOR_TUPLE8_ELEM4(E0,E1,E2,E3,E4,E5,E6,E7) E4 #define BOOST_PP_TUPLE7_ELEM4(A,B,C,D,E,F,G) E
#define BOOST_PREPROCESSOR_TUPLE8_ELEM5(E0,E1,E2,E3,E4,E5,E6,E7) E5 #define BOOST_PP_TUPLE7_ELEM5(A,B,C,D,E,F,G) F
#define BOOST_PREPROCESSOR_TUPLE8_ELEM6(E0,E1,E2,E3,E4,E5,E6,E7) E6 #define BOOST_PP_TUPLE7_ELEM6(A,B,C,D,E,F,G) G
#define BOOST_PREPROCESSOR_TUPLE8_ELEM7(E0,E1,E2,E3,E4,E5,E6,E7) E7
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #define BOOST_PP_TUPLE8_ELEM0(A,B,C,D,E,F,G,H) A
#define BOOST_PP_TUPLE8_ELEM1(A,B,C,D,E,F,G,H) B
#define BOOST_PP_TUPLE8_ELEM2(A,B,C,D,E,F,G,H) C
#define BOOST_PP_TUPLE8_ELEM3(A,B,C,D,E,F,G,H) D
#define BOOST_PP_TUPLE8_ELEM4(A,B,C,D,E,F,G,H) E
#define BOOST_PP_TUPLE8_ELEM5(A,B,C,D,E,F,G,H) F
#define BOOST_PP_TUPLE8_ELEM6(A,B,C,D,E,F,G,H) G
#define BOOST_PP_TUPLE8_ELEM7(A,B,C,D,E,F,G,H) H
#endif
//! Obsolete. Use BOOST_PP_TUPLE_ELEM().
#define BOOST_PREPROCESSOR_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM(N,I,T)
#endif #endif

View File

@ -17,278 +17,363 @@
<a href="../../../../boost/preprocessor/while.hpp">Click here to see the header.</a> <a href="../../../../boost/preprocessor/while.hpp">Click here to see the header.</a>
*/ */
#ifndef BOOST_PREPROCESSOR_IF_HPP #include <boost/preprocessor/if.hpp>
# include <boost/preprocessor/if.hpp>
#endif
//! CURRENTLY THIS FEATURE IS FOR INTERNAL USE ONLY! //! Iterates F(D,X) while C(D,X) is true.
/*! /*!
<H3>Legend</H3>
<B>X</B> is the current state of iteration. The state is usually a tuple.
<B>C</B> is the condition for iteration. It must expand to a decimal integer
literal.
<B>F</B> is the iterated function. Note that if the state is a tuple, then
F(D,X) usually expands to a tuple of the same number of elements.
<B>D</B> is the recursion depth and should only be used as a parameter to
other functions implemented using BOOST_PP_WHILE(). Such functions include
BOOST_PP_ADD() and other arithmetic operations. For each function implemented
using BOOST_PP_WHILE(), there is a version of the function, distinguished by
the _D suffix (e.g. BOOST_PP_ADD_D()), that accepts an additional recursion
depth as the first parameter. This technique is necessary to avoid
recursively expanding the same macro again, which is not permitted by the
C/C++ preprocessor.
NOTE: The value of the D parameter may exceed BOOST_PP_LIMIT_MAG.
<H3>Usage</H3>
Using BOOST_PP_WHILE() is a bit tricky. This is due to the C/C++ preprocessor
limitations. It is recommended to take a look at the implementations of the
various PREPROCESSOR library primitives such as BOOST_PP_ADD() for additional
examples.
Here is a trivial example that simply counts down from N to 0 ultimately
expanding to a 0:
<PRE>\verbatim
#define COUNT_DOWN(N) BOOST_PP_WHILE(COUNT_DOWN_C,COUNT_DOWN_F,N)
// Above is the function we are implementing using BOOST_PP_WHILE().
#define COUNT_DOWN_C(D,N) N
// Above is the Condition. It expands to the current N.
#define COUNT_DOWN_F(D,N) BOOST_PP_DEC(N)
// Above is the iteration Function. It decrements N.
COUNT_DOWN(50)
// The above expands to 0.
\endverbatim</PRE>
For a more complex example, let's take a look at an implementation of
BOOST_PP_MUL().
<PRE>\verbatim
#define BOOST_PP_MUL(X,Y) BOOST_PP_MUL_D(0,X,Y)
// Since the function is implemented using WHILE, the actual implementation
// takes a depth as a parameter so that it can be called inside a WHILE.
// The above easy-to-use version simply uses 0 as the depth and can not be
// called inside a WHILE.
#define BOOST_PP_MUL_D(D,X,Y)\
BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_MUL_C,BOOST_PP_MUL_F,(0,X,Y)))
// ^^^ ^^^ ^^ ^^ ^^^^^^^
// #1 #2 #3 #3 #1
//
// #1) The state is a 3-tuple. After the iteration is finished, the first
// element of the tuple is the result.
//
// #2) The WHILE primitive is "invoked" directly. BOOST_PP_WHILE(D,...) can't
// be used because it would not be expanded by the C/C++ preprocessor.
//
// #3) ???_C is the condition and ???_F is the iteration function.
#define BOOST_PP_MUL_C(D,P)\
BOOST_PP_TUPLE_ELEM(3,2,P)
// Iteration is finished when the counter reaches 0.
#define BOOST_PP_MUL_F(D,P)\
( BOOST_PP_ADD_D(D,BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P))\
, BOOST_PP_TUPLE_ELEM(3,1,P)\
, BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,P))\
)
// ( The result is increased by the multiplier.
// , The multiplier is retained without change.
// , The counter is decreased.
// )
\endverbatim</PRE>
<H3>Implementation</H3>
RATIONALE: RATIONALE:
- The maximum iteration depth is 2*BOOST_PREPROCESSOR_LIMIT_MAG+1 to make it - The maximum iteration depth is greater than 2*BOOST_PP_LIMIT_MAG to make
theoretically possible to compute BOOST_PREPROCESSOR_LIMIT_MAG^2. it possible to compute N*N functions.
*/ */
#define BOOST_PREPROCESSOR_WHILE(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(0,X),0,X)(C,F,F(0,X)) #define BOOST_PP_WHILE(C,F,X) BOOST_PP_WHILE_C(C(1,X),0,X)(C,F,F(1,X))
#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_WHILE_C(C,I,X) BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_WHILE##I,X BOOST_PREPROCESSOR_WHILE_E) #define BOOST_PP_WHILE_C(C,D,X) BOOST_PP_IF(C,BOOST_PP_WHILE##D,X BOOST_PP_WHILE_E)
#define BOOST_PREPROCESSOR_WHILE_E(C,F,X) #define BOOST_PP_WHILE_E(C,F,X)
#define BOOST_PREPROCESSOR_WHILE0(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(1,X),1,X)(C,F,F(1,X)) #define BOOST_PP_WHILE0(C,F,X) BOOST_PP_WHILE_C(C(2,X),1,X)(C,F,F(2,X))
#define BOOST_PREPROCESSOR_WHILE1(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(2,X),2,X)(C,F,F(2,X)) #define BOOST_PP_WHILE1(C,F,X) BOOST_PP_WHILE_C(C(3,X),2,X)(C,F,F(3,X))
#define BOOST_PREPROCESSOR_WHILE2(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(3,X),3,X)(C,F,F(3,X)) #define BOOST_PP_WHILE2(C,F,X) BOOST_PP_WHILE_C(C(4,X),3,X)(C,F,F(4,X))
#define BOOST_PREPROCESSOR_WHILE3(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(4,X),4,X)(C,F,F(4,X)) #define BOOST_PP_WHILE3(C,F,X) BOOST_PP_WHILE_C(C(5,X),4,X)(C,F,F(5,X))
#define BOOST_PREPROCESSOR_WHILE4(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(5,X),5,X)(C,F,F(5,X)) #define BOOST_PP_WHILE4(C,F,X) BOOST_PP_WHILE_C(C(6,X),5,X)(C,F,F(6,X))
#define BOOST_PREPROCESSOR_WHILE5(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(6,X),6,X)(C,F,F(6,X)) #define BOOST_PP_WHILE5(C,F,X) BOOST_PP_WHILE_C(C(7,X),6,X)(C,F,F(7,X))
#define BOOST_PREPROCESSOR_WHILE6(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(7,X),7,X)(C,F,F(7,X)) #define BOOST_PP_WHILE6(C,F,X) BOOST_PP_WHILE_C(C(8,X),7,X)(C,F,F(8,X))
#define BOOST_PREPROCESSOR_WHILE7(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(8,X),8,X)(C,F,F(8,X)) #define BOOST_PP_WHILE7(C,F,X) BOOST_PP_WHILE_C(C(9,X),8,X)(C,F,F(9,X))
#define BOOST_PREPROCESSOR_WHILE8(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(9,X),9,X)(C,F,F(9,X)) #define BOOST_PP_WHILE8(C,F,X) BOOST_PP_WHILE_C(C(10,X),9,X)(C,F,F(10,X))
#define BOOST_PREPROCESSOR_WHILE9(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(10,X),10,X)(C,F,F(10,X)) #define BOOST_PP_WHILE9(C,F,X) BOOST_PP_WHILE_C(C(11,X),10,X)(C,F,F(11,X))
#define BOOST_PREPROCESSOR_WHILE10(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(11,X),11,X)(C,F,F(11,X)) #define BOOST_PP_WHILE10(C,F,X) BOOST_PP_WHILE_C(C(12,X),11,X)(C,F,F(12,X))
#define BOOST_PREPROCESSOR_WHILE11(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(12,X),12,X)(C,F,F(12,X)) #define BOOST_PP_WHILE11(C,F,X) BOOST_PP_WHILE_C(C(13,X),12,X)(C,F,F(13,X))
#define BOOST_PREPROCESSOR_WHILE12(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(13,X),13,X)(C,F,F(13,X)) #define BOOST_PP_WHILE12(C,F,X) BOOST_PP_WHILE_C(C(14,X),13,X)(C,F,F(14,X))
#define BOOST_PREPROCESSOR_WHILE13(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(14,X),14,X)(C,F,F(14,X)) #define BOOST_PP_WHILE13(C,F,X) BOOST_PP_WHILE_C(C(15,X),14,X)(C,F,F(15,X))
#define BOOST_PREPROCESSOR_WHILE14(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(15,X),15,X)(C,F,F(15,X)) #define BOOST_PP_WHILE14(C,F,X) BOOST_PP_WHILE_C(C(16,X),15,X)(C,F,F(16,X))
#define BOOST_PREPROCESSOR_WHILE15(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(16,X),16,X)(C,F,F(16,X)) #define BOOST_PP_WHILE15(C,F,X) BOOST_PP_WHILE_C(C(17,X),16,X)(C,F,F(17,X))
#define BOOST_PREPROCESSOR_WHILE16(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(17,X),17,X)(C,F,F(17,X)) #define BOOST_PP_WHILE16(C,F,X) BOOST_PP_WHILE_C(C(18,X),17,X)(C,F,F(18,X))
#define BOOST_PREPROCESSOR_WHILE17(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(18,X),18,X)(C,F,F(18,X)) #define BOOST_PP_WHILE17(C,F,X) BOOST_PP_WHILE_C(C(19,X),18,X)(C,F,F(19,X))
#define BOOST_PREPROCESSOR_WHILE18(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(19,X),19,X)(C,F,F(19,X)) #define BOOST_PP_WHILE18(C,F,X) BOOST_PP_WHILE_C(C(20,X),19,X)(C,F,F(20,X))
#define BOOST_PREPROCESSOR_WHILE19(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(20,X),20,X)(C,F,F(20,X)) #define BOOST_PP_WHILE19(C,F,X) BOOST_PP_WHILE_C(C(21,X),20,X)(C,F,F(21,X))
#define BOOST_PREPROCESSOR_WHILE20(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(21,X),21,X)(C,F,F(21,X)) #define BOOST_PP_WHILE20(C,F,X) BOOST_PP_WHILE_C(C(22,X),21,X)(C,F,F(22,X))
#define BOOST_PREPROCESSOR_WHILE21(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(22,X),22,X)(C,F,F(22,X)) #define BOOST_PP_WHILE21(C,F,X) BOOST_PP_WHILE_C(C(23,X),22,X)(C,F,F(23,X))
#define BOOST_PREPROCESSOR_WHILE22(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(23,X),23,X)(C,F,F(23,X)) #define BOOST_PP_WHILE22(C,F,X) BOOST_PP_WHILE_C(C(24,X),23,X)(C,F,F(24,X))
#define BOOST_PREPROCESSOR_WHILE23(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(24,X),24,X)(C,F,F(24,X)) #define BOOST_PP_WHILE23(C,F,X) BOOST_PP_WHILE_C(C(25,X),24,X)(C,F,F(25,X))
#define BOOST_PREPROCESSOR_WHILE24(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(25,X),25,X)(C,F,F(25,X)) #define BOOST_PP_WHILE24(C,F,X) BOOST_PP_WHILE_C(C(26,X),25,X)(C,F,F(26,X))
#define BOOST_PREPROCESSOR_WHILE25(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(26,X),26,X)(C,F,F(26,X)) #define BOOST_PP_WHILE25(C,F,X) BOOST_PP_WHILE_C(C(27,X),26,X)(C,F,F(27,X))
#define BOOST_PREPROCESSOR_WHILE26(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(27,X),27,X)(C,F,F(27,X)) #define BOOST_PP_WHILE26(C,F,X) BOOST_PP_WHILE_C(C(28,X),27,X)(C,F,F(28,X))
#define BOOST_PREPROCESSOR_WHILE27(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(28,X),28,X)(C,F,F(28,X)) #define BOOST_PP_WHILE27(C,F,X) BOOST_PP_WHILE_C(C(29,X),28,X)(C,F,F(29,X))
#define BOOST_PREPROCESSOR_WHILE28(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(29,X),29,X)(C,F,F(29,X)) #define BOOST_PP_WHILE28(C,F,X) BOOST_PP_WHILE_C(C(30,X),29,X)(C,F,F(30,X))
#define BOOST_PREPROCESSOR_WHILE29(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(30,X),30,X)(C,F,F(30,X)) #define BOOST_PP_WHILE29(C,F,X) BOOST_PP_WHILE_C(C(31,X),30,X)(C,F,F(31,X))
#define BOOST_PREPROCESSOR_WHILE30(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(31,X),31,X)(C,F,F(31,X)) #define BOOST_PP_WHILE30(C,F,X) BOOST_PP_WHILE_C(C(32,X),31,X)(C,F,F(32,X))
#define BOOST_PREPROCESSOR_WHILE31(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(32,X),32,X)(C,F,F(32,X)) #define BOOST_PP_WHILE31(C,F,X) BOOST_PP_WHILE_C(C(33,X),32,X)(C,F,F(33,X))
#define BOOST_PREPROCESSOR_WHILE32(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(33,X),33,X)(C,F,F(33,X)) #define BOOST_PP_WHILE32(C,F,X) BOOST_PP_WHILE_C(C(34,X),33,X)(C,F,F(34,X))
#define BOOST_PREPROCESSOR_WHILE33(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(34,X),34,X)(C,F,F(34,X)) #define BOOST_PP_WHILE33(C,F,X) BOOST_PP_WHILE_C(C(35,X),34,X)(C,F,F(35,X))
#define BOOST_PREPROCESSOR_WHILE34(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(35,X),35,X)(C,F,F(35,X)) #define BOOST_PP_WHILE34(C,F,X) BOOST_PP_WHILE_C(C(36,X),35,X)(C,F,F(36,X))
#define BOOST_PREPROCESSOR_WHILE35(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(36,X),36,X)(C,F,F(36,X)) #define BOOST_PP_WHILE35(C,F,X) BOOST_PP_WHILE_C(C(37,X),36,X)(C,F,F(37,X))
#define BOOST_PREPROCESSOR_WHILE36(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(37,X),37,X)(C,F,F(37,X)) #define BOOST_PP_WHILE36(C,F,X) BOOST_PP_WHILE_C(C(38,X),37,X)(C,F,F(38,X))
#define BOOST_PREPROCESSOR_WHILE37(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(38,X),38,X)(C,F,F(38,X)) #define BOOST_PP_WHILE37(C,F,X) BOOST_PP_WHILE_C(C(39,X),38,X)(C,F,F(39,X))
#define BOOST_PREPROCESSOR_WHILE38(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(39,X),39,X)(C,F,F(39,X)) #define BOOST_PP_WHILE38(C,F,X) BOOST_PP_WHILE_C(C(40,X),39,X)(C,F,F(40,X))
#define BOOST_PREPROCESSOR_WHILE39(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(40,X),40,X)(C,F,F(40,X)) #define BOOST_PP_WHILE39(C,F,X) BOOST_PP_WHILE_C(C(41,X),40,X)(C,F,F(41,X))
#define BOOST_PREPROCESSOR_WHILE40(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(41,X),41,X)(C,F,F(41,X)) #define BOOST_PP_WHILE40(C,F,X) BOOST_PP_WHILE_C(C(42,X),41,X)(C,F,F(42,X))
#define BOOST_PREPROCESSOR_WHILE41(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(42,X),42,X)(C,F,F(42,X)) #define BOOST_PP_WHILE41(C,F,X) BOOST_PP_WHILE_C(C(43,X),42,X)(C,F,F(43,X))
#define BOOST_PREPROCESSOR_WHILE42(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(43,X),43,X)(C,F,F(43,X)) #define BOOST_PP_WHILE42(C,F,X) BOOST_PP_WHILE_C(C(44,X),43,X)(C,F,F(44,X))
#define BOOST_PREPROCESSOR_WHILE43(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(44,X),44,X)(C,F,F(44,X)) #define BOOST_PP_WHILE43(C,F,X) BOOST_PP_WHILE_C(C(45,X),44,X)(C,F,F(45,X))
#define BOOST_PREPROCESSOR_WHILE44(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(45,X),45,X)(C,F,F(45,X)) #define BOOST_PP_WHILE44(C,F,X) BOOST_PP_WHILE_C(C(46,X),45,X)(C,F,F(46,X))
#define BOOST_PREPROCESSOR_WHILE45(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(46,X),46,X)(C,F,F(46,X)) #define BOOST_PP_WHILE45(C,F,X) BOOST_PP_WHILE_C(C(47,X),46,X)(C,F,F(47,X))
#define BOOST_PREPROCESSOR_WHILE46(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(47,X),47,X)(C,F,F(47,X)) #define BOOST_PP_WHILE46(C,F,X) BOOST_PP_WHILE_C(C(48,X),47,X)(C,F,F(48,X))
#define BOOST_PREPROCESSOR_WHILE47(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(48,X),48,X)(C,F,F(48,X)) #define BOOST_PP_WHILE47(C,F,X) BOOST_PP_WHILE_C(C(49,X),48,X)(C,F,F(49,X))
#define BOOST_PREPROCESSOR_WHILE48(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(49,X),49,X)(C,F,F(49,X)) #define BOOST_PP_WHILE48(C,F,X) BOOST_PP_WHILE_C(C(50,X),49,X)(C,F,F(50,X))
#define BOOST_PREPROCESSOR_WHILE49(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(50,X),50,X)(C,F,F(50,X)) #define BOOST_PP_WHILE49(C,F,X) BOOST_PP_WHILE_C(C(51,X),50,X)(C,F,F(51,X))
#define BOOST_PREPROCESSOR_WHILE50(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(51,X),51,X)(C,F,F(51,X)) #define BOOST_PP_WHILE50(C,F,X) BOOST_PP_WHILE_C(C(52,X),51,X)(C,F,F(52,X))
#define BOOST_PREPROCESSOR_WHILE51(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(52,X),52,X)(C,F,F(52,X)) #define BOOST_PP_WHILE51(C,F,X) BOOST_PP_WHILE_C(C(53,X),52,X)(C,F,F(53,X))
#define BOOST_PREPROCESSOR_WHILE52(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(53,X),53,X)(C,F,F(53,X)) #define BOOST_PP_WHILE52(C,F,X) BOOST_PP_WHILE_C(C(54,X),53,X)(C,F,F(54,X))
#define BOOST_PREPROCESSOR_WHILE53(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(54,X),54,X)(C,F,F(54,X)) #define BOOST_PP_WHILE53(C,F,X) BOOST_PP_WHILE_C(C(55,X),54,X)(C,F,F(55,X))
#define BOOST_PREPROCESSOR_WHILE54(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(55,X),55,X)(C,F,F(55,X)) #define BOOST_PP_WHILE54(C,F,X) BOOST_PP_WHILE_C(C(56,X),55,X)(C,F,F(56,X))
#define BOOST_PREPROCESSOR_WHILE55(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(56,X),56,X)(C,F,F(56,X)) #define BOOST_PP_WHILE55(C,F,X) BOOST_PP_WHILE_C(C(57,X),56,X)(C,F,F(57,X))
#define BOOST_PREPROCESSOR_WHILE56(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(57,X),57,X)(C,F,F(57,X)) #define BOOST_PP_WHILE56(C,F,X) BOOST_PP_WHILE_C(C(58,X),57,X)(C,F,F(58,X))
#define BOOST_PREPROCESSOR_WHILE57(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(58,X),58,X)(C,F,F(58,X)) #define BOOST_PP_WHILE57(C,F,X) BOOST_PP_WHILE_C(C(59,X),58,X)(C,F,F(59,X))
#define BOOST_PREPROCESSOR_WHILE58(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(59,X),59,X)(C,F,F(59,X)) #define BOOST_PP_WHILE58(C,F,X) BOOST_PP_WHILE_C(C(60,X),59,X)(C,F,F(60,X))
#define BOOST_PREPROCESSOR_WHILE59(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(60,X),60,X)(C,F,F(60,X)) #define BOOST_PP_WHILE59(C,F,X) BOOST_PP_WHILE_C(C(61,X),60,X)(C,F,F(61,X))
#define BOOST_PREPROCESSOR_WHILE60(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(61,X),61,X)(C,F,F(61,X)) #define BOOST_PP_WHILE60(C,F,X) BOOST_PP_WHILE_C(C(62,X),61,X)(C,F,F(62,X))
#define BOOST_PREPROCESSOR_WHILE61(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(62,X),62,X)(C,F,F(62,X)) #define BOOST_PP_WHILE61(C,F,X) BOOST_PP_WHILE_C(C(63,X),62,X)(C,F,F(63,X))
#define BOOST_PREPROCESSOR_WHILE62(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(63,X),63,X)(C,F,F(63,X)) #define BOOST_PP_WHILE62(C,F,X) BOOST_PP_WHILE_C(C(64,X),63,X)(C,F,F(64,X))
#define BOOST_PREPROCESSOR_WHILE63(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(64,X),64,X)(C,F,F(64,X)) #define BOOST_PP_WHILE63(C,F,X) BOOST_PP_WHILE_C(C(65,X),64,X)(C,F,F(65,X))
#define BOOST_PREPROCESSOR_WHILE64(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(65,X),65,X)(C,F,F(65,X)) #define BOOST_PP_WHILE64(C,F,X) BOOST_PP_WHILE_C(C(66,X),65,X)(C,F,F(66,X))
#define BOOST_PREPROCESSOR_WHILE65(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(66,X),66,X)(C,F,F(66,X)) #define BOOST_PP_WHILE65(C,F,X) BOOST_PP_WHILE_C(C(67,X),66,X)(C,F,F(67,X))
#define BOOST_PREPROCESSOR_WHILE66(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(67,X),67,X)(C,F,F(67,X)) #define BOOST_PP_WHILE66(C,F,X) BOOST_PP_WHILE_C(C(68,X),67,X)(C,F,F(68,X))
#define BOOST_PREPROCESSOR_WHILE67(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(68,X),68,X)(C,F,F(68,X)) #define BOOST_PP_WHILE67(C,F,X) BOOST_PP_WHILE_C(C(69,X),68,X)(C,F,F(69,X))
#define BOOST_PREPROCESSOR_WHILE68(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(69,X),69,X)(C,F,F(69,X)) #define BOOST_PP_WHILE68(C,F,X) BOOST_PP_WHILE_C(C(70,X),69,X)(C,F,F(70,X))
#define BOOST_PREPROCESSOR_WHILE69(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(70,X),70,X)(C,F,F(70,X)) #define BOOST_PP_WHILE69(C,F,X) BOOST_PP_WHILE_C(C(71,X),70,X)(C,F,F(71,X))
#define BOOST_PREPROCESSOR_WHILE70(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(71,X),71,X)(C,F,F(71,X)) #define BOOST_PP_WHILE70(C,F,X) BOOST_PP_WHILE_C(C(72,X),71,X)(C,F,F(72,X))
#define BOOST_PREPROCESSOR_WHILE71(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(72,X),72,X)(C,F,F(72,X)) #define BOOST_PP_WHILE71(C,F,X) BOOST_PP_WHILE_C(C(73,X),72,X)(C,F,F(73,X))
#define BOOST_PREPROCESSOR_WHILE72(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(73,X),73,X)(C,F,F(73,X)) #define BOOST_PP_WHILE72(C,F,X) BOOST_PP_WHILE_C(C(74,X),73,X)(C,F,F(74,X))
#define BOOST_PREPROCESSOR_WHILE73(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(74,X),74,X)(C,F,F(74,X)) #define BOOST_PP_WHILE73(C,F,X) BOOST_PP_WHILE_C(C(75,X),74,X)(C,F,F(75,X))
#define BOOST_PREPROCESSOR_WHILE74(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(75,X),75,X)(C,F,F(75,X)) #define BOOST_PP_WHILE74(C,F,X) BOOST_PP_WHILE_C(C(76,X),75,X)(C,F,F(76,X))
#define BOOST_PREPROCESSOR_WHILE75(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(76,X),76,X)(C,F,F(76,X)) #define BOOST_PP_WHILE75(C,F,X) BOOST_PP_WHILE_C(C(77,X),76,X)(C,F,F(77,X))
#define BOOST_PREPROCESSOR_WHILE76(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(77,X),77,X)(C,F,F(77,X)) #define BOOST_PP_WHILE76(C,F,X) BOOST_PP_WHILE_C(C(78,X),77,X)(C,F,F(78,X))
#define BOOST_PREPROCESSOR_WHILE77(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(78,X),78,X)(C,F,F(78,X)) #define BOOST_PP_WHILE77(C,F,X) BOOST_PP_WHILE_C(C(79,X),78,X)(C,F,F(79,X))
#define BOOST_PREPROCESSOR_WHILE78(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(79,X),79,X)(C,F,F(79,X)) #define BOOST_PP_WHILE78(C,F,X) BOOST_PP_WHILE_C(C(80,X),79,X)(C,F,F(80,X))
#define BOOST_PREPROCESSOR_WHILE79(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(80,X),80,X)(C,F,F(80,X)) #define BOOST_PP_WHILE79(C,F,X) BOOST_PP_WHILE_C(C(81,X),80,X)(C,F,F(81,X))
#define BOOST_PREPROCESSOR_WHILE80(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(81,X),81,X)(C,F,F(81,X)) #define BOOST_PP_WHILE80(C,F,X) BOOST_PP_WHILE_C(C(82,X),81,X)(C,F,F(82,X))
#define BOOST_PREPROCESSOR_WHILE81(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(82,X),82,X)(C,F,F(82,X)) #define BOOST_PP_WHILE81(C,F,X) BOOST_PP_WHILE_C(C(83,X),82,X)(C,F,F(83,X))
#define BOOST_PREPROCESSOR_WHILE82(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(83,X),83,X)(C,F,F(83,X)) #define BOOST_PP_WHILE82(C,F,X) BOOST_PP_WHILE_C(C(84,X),83,X)(C,F,F(84,X))
#define BOOST_PREPROCESSOR_WHILE83(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(84,X),84,X)(C,F,F(84,X)) #define BOOST_PP_WHILE83(C,F,X) BOOST_PP_WHILE_C(C(85,X),84,X)(C,F,F(85,X))
#define BOOST_PREPROCESSOR_WHILE84(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(85,X),85,X)(C,F,F(85,X)) #define BOOST_PP_WHILE84(C,F,X) BOOST_PP_WHILE_C(C(86,X),85,X)(C,F,F(86,X))
#define BOOST_PREPROCESSOR_WHILE85(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(86,X),86,X)(C,F,F(86,X)) #define BOOST_PP_WHILE85(C,F,X) BOOST_PP_WHILE_C(C(87,X),86,X)(C,F,F(87,X))
#define BOOST_PREPROCESSOR_WHILE86(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(87,X),87,X)(C,F,F(87,X)) #define BOOST_PP_WHILE86(C,F,X) BOOST_PP_WHILE_C(C(88,X),87,X)(C,F,F(88,X))
#define BOOST_PREPROCESSOR_WHILE87(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(88,X),88,X)(C,F,F(88,X)) #define BOOST_PP_WHILE87(C,F,X) BOOST_PP_WHILE_C(C(89,X),88,X)(C,F,F(89,X))
#define BOOST_PREPROCESSOR_WHILE88(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(89,X),89,X)(C,F,F(89,X)) #define BOOST_PP_WHILE88(C,F,X) BOOST_PP_WHILE_C(C(90,X),89,X)(C,F,F(90,X))
#define BOOST_PREPROCESSOR_WHILE89(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(90,X),90,X)(C,F,F(90,X)) #define BOOST_PP_WHILE89(C,F,X) BOOST_PP_WHILE_C(C(91,X),90,X)(C,F,F(91,X))
#define BOOST_PREPROCESSOR_WHILE90(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(91,X),91,X)(C,F,F(91,X)) #define BOOST_PP_WHILE90(C,F,X) BOOST_PP_WHILE_C(C(92,X),91,X)(C,F,F(92,X))
#define BOOST_PREPROCESSOR_WHILE91(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(92,X),92,X)(C,F,F(92,X)) #define BOOST_PP_WHILE91(C,F,X) BOOST_PP_WHILE_C(C(93,X),92,X)(C,F,F(93,X))
#define BOOST_PREPROCESSOR_WHILE92(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(93,X),93,X)(C,F,F(93,X)) #define BOOST_PP_WHILE92(C,F,X) BOOST_PP_WHILE_C(C(94,X),93,X)(C,F,F(94,X))
#define BOOST_PREPROCESSOR_WHILE93(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(94,X),94,X)(C,F,F(94,X)) #define BOOST_PP_WHILE93(C,F,X) BOOST_PP_WHILE_C(C(95,X),94,X)(C,F,F(95,X))
#define BOOST_PREPROCESSOR_WHILE94(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(95,X),95,X)(C,F,F(95,X)) #define BOOST_PP_WHILE94(C,F,X) BOOST_PP_WHILE_C(C(96,X),95,X)(C,F,F(96,X))
#define BOOST_PREPROCESSOR_WHILE95(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(96,X),96,X)(C,F,F(96,X)) #define BOOST_PP_WHILE95(C,F,X) BOOST_PP_WHILE_C(C(97,X),96,X)(C,F,F(97,X))
#define BOOST_PREPROCESSOR_WHILE96(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(97,X),97,X)(C,F,F(97,X)) #define BOOST_PP_WHILE96(C,F,X) BOOST_PP_WHILE_C(C(98,X),97,X)(C,F,F(98,X))
#define BOOST_PREPROCESSOR_WHILE97(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(98,X),98,X)(C,F,F(98,X)) #define BOOST_PP_WHILE97(C,F,X) BOOST_PP_WHILE_C(C(99,X),98,X)(C,F,F(99,X))
#define BOOST_PREPROCESSOR_WHILE98(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(99,X),99,X)(C,F,F(99,X)) #define BOOST_PP_WHILE98(C,F,X) BOOST_PP_WHILE_C(C(100,X),99,X)(C,F,F(100,X))
#define BOOST_PREPROCESSOR_WHILE99(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(100,X),100,X)(C,F,F(100,X)) #define BOOST_PP_WHILE99(C,F,X) BOOST_PP_WHILE_C(C(101,X),100,X)(C,F,F(101,X))
#define BOOST_PREPROCESSOR_WHILE100(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(101,X),101,X)(C,F,F(101,X)) #define BOOST_PP_WHILE100(C,F,X) BOOST_PP_WHILE_C(C(102,X),101,X)(C,F,F(102,X))
#define BOOST_PREPROCESSOR_WHILE101(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(102,X),102,X)(C,F,F(102,X)) #define BOOST_PP_WHILE101(C,F,X) BOOST_PP_WHILE_C(C(103,X),102,X)(C,F,F(103,X))
#define BOOST_PREPROCESSOR_WHILE102(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(103,X),103,X)(C,F,F(103,X)) #define BOOST_PP_WHILE102(C,F,X) BOOST_PP_WHILE_C(C(104,X),103,X)(C,F,F(104,X))
#define BOOST_PREPROCESSOR_WHILE103(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(104,X),104,X)(C,F,F(104,X)) #define BOOST_PP_WHILE103(C,F,X) BOOST_PP_WHILE_C(C(105,X),104,X)(C,F,F(105,X))
#define BOOST_PREPROCESSOR_WHILE104(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(105,X),105,X)(C,F,F(105,X)) #define BOOST_PP_WHILE104(C,F,X) BOOST_PP_WHILE_C(C(106,X),105,X)(C,F,F(106,X))
#define BOOST_PREPROCESSOR_WHILE105(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(106,X),106,X)(C,F,F(106,X)) #define BOOST_PP_WHILE105(C,F,X) BOOST_PP_WHILE_C(C(107,X),106,X)(C,F,F(107,X))
#define BOOST_PREPROCESSOR_WHILE106(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(107,X),107,X)(C,F,F(107,X)) #define BOOST_PP_WHILE106(C,F,X) BOOST_PP_WHILE_C(C(108,X),107,X)(C,F,F(108,X))
#define BOOST_PREPROCESSOR_WHILE107(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(108,X),108,X)(C,F,F(108,X)) #define BOOST_PP_WHILE107(C,F,X) BOOST_PP_WHILE_C(C(109,X),108,X)(C,F,F(109,X))
#define BOOST_PREPROCESSOR_WHILE108(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(109,X),109,X)(C,F,F(109,X)) #define BOOST_PP_WHILE108(C,F,X) BOOST_PP_WHILE_C(C(110,X),109,X)(C,F,F(110,X))
#define BOOST_PREPROCESSOR_WHILE109(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(110,X),110,X)(C,F,F(110,X)) #define BOOST_PP_WHILE109(C,F,X) BOOST_PP_WHILE_C(C(111,X),110,X)(C,F,F(111,X))
#define BOOST_PREPROCESSOR_WHILE110(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(111,X),111,X)(C,F,F(111,X)) #define BOOST_PP_WHILE110(C,F,X) BOOST_PP_WHILE_C(C(112,X),111,X)(C,F,F(112,X))
#define BOOST_PREPROCESSOR_WHILE111(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(112,X),112,X)(C,F,F(112,X)) #define BOOST_PP_WHILE111(C,F,X) BOOST_PP_WHILE_C(C(113,X),112,X)(C,F,F(113,X))
#define BOOST_PREPROCESSOR_WHILE112(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(113,X),113,X)(C,F,F(113,X)) #define BOOST_PP_WHILE112(C,F,X) BOOST_PP_WHILE_C(C(114,X),113,X)(C,F,F(114,X))
#define BOOST_PREPROCESSOR_WHILE113(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(114,X),114,X)(C,F,F(114,X)) #define BOOST_PP_WHILE113(C,F,X) BOOST_PP_WHILE_C(C(115,X),114,X)(C,F,F(115,X))
#define BOOST_PREPROCESSOR_WHILE114(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(115,X),115,X)(C,F,F(115,X)) #define BOOST_PP_WHILE114(C,F,X) BOOST_PP_WHILE_C(C(116,X),115,X)(C,F,F(116,X))
#define BOOST_PREPROCESSOR_WHILE115(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(116,X),116,X)(C,F,F(116,X)) #define BOOST_PP_WHILE115(C,F,X) BOOST_PP_WHILE_C(C(117,X),116,X)(C,F,F(117,X))
#define BOOST_PREPROCESSOR_WHILE116(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(117,X),117,X)(C,F,F(117,X)) #define BOOST_PP_WHILE116(C,F,X) BOOST_PP_WHILE_C(C(118,X),117,X)(C,F,F(118,X))
#define BOOST_PREPROCESSOR_WHILE117(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(118,X),118,X)(C,F,F(118,X)) #define BOOST_PP_WHILE117(C,F,X) BOOST_PP_WHILE_C(C(119,X),118,X)(C,F,F(119,X))
#define BOOST_PREPROCESSOR_WHILE118(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(119,X),119,X)(C,F,F(119,X)) #define BOOST_PP_WHILE118(C,F,X) BOOST_PP_WHILE_C(C(120,X),119,X)(C,F,F(120,X))
#define BOOST_PREPROCESSOR_WHILE119(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(120,X),120,X)(C,F,F(120,X)) #define BOOST_PP_WHILE119(C,F,X) BOOST_PP_WHILE_C(C(121,X),120,X)(C,F,F(121,X))
#define BOOST_PREPROCESSOR_WHILE120(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(121,X),121,X)(C,F,F(121,X)) #define BOOST_PP_WHILE120(C,F,X) BOOST_PP_WHILE_C(C(122,X),121,X)(C,F,F(122,X))
#define BOOST_PREPROCESSOR_WHILE121(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(122,X),122,X)(C,F,F(122,X)) #define BOOST_PP_WHILE121(C,F,X) BOOST_PP_WHILE_C(C(123,X),122,X)(C,F,F(123,X))
#define BOOST_PREPROCESSOR_WHILE122(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(123,X),123,X)(C,F,F(123,X)) #define BOOST_PP_WHILE122(C,F,X) BOOST_PP_WHILE_C(C(124,X),123,X)(C,F,F(124,X))
#define BOOST_PREPROCESSOR_WHILE123(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(124,X),124,X)(C,F,F(124,X)) #define BOOST_PP_WHILE123(C,F,X) BOOST_PP_WHILE_C(C(125,X),124,X)(C,F,F(125,X))
#define BOOST_PREPROCESSOR_WHILE124(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(125,X),125,X)(C,F,F(125,X)) #define BOOST_PP_WHILE124(C,F,X) BOOST_PP_WHILE_C(C(126,X),125,X)(C,F,F(126,X))
#define BOOST_PREPROCESSOR_WHILE125(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(126,X),126,X)(C,F,F(126,X)) #define BOOST_PP_WHILE125(C,F,X) BOOST_PP_WHILE_C(C(127,X),126,X)(C,F,F(127,X))
#define BOOST_PREPROCESSOR_WHILE126(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(127,X),127,X)(C,F,F(127,X)) #define BOOST_PP_WHILE126(C,F,X) BOOST_PP_WHILE_C(C(128,X),127,X)(C,F,F(128,X))
#define BOOST_PREPROCESSOR_WHILE127(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(128,X),128,X)(C,F,F(128,X)) #define BOOST_PP_WHILE127(C,F,X) BOOST_PP_WHILE_C(C(129,X),128,X)(C,F,F(129,X))
#define BOOST_PREPROCESSOR_WHILE128(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(129,X),129,X)(C,F,F(129,X)) #define BOOST_PP_WHILE128(C,F,X) BOOST_PP_WHILE_C(C(130,X),129,X)(C,F,F(130,X))
#define BOOST_PREPROCESSOR_WHILE129(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(130,X),130,X)(C,F,F(130,X)) #define BOOST_PP_WHILE129(C,F,X) BOOST_PP_WHILE_C(C(131,X),130,X)(C,F,F(131,X))
#define BOOST_PREPROCESSOR_WHILE130(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(131,X),131,X)(C,F,F(131,X)) #define BOOST_PP_WHILE130(C,F,X) BOOST_PP_WHILE_C(C(132,X),131,X)(C,F,F(132,X))
#define BOOST_PREPROCESSOR_WHILE131(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(132,X),132,X)(C,F,F(132,X)) #define BOOST_PP_WHILE131(C,F,X) BOOST_PP_WHILE_C(C(133,X),132,X)(C,F,F(133,X))
#define BOOST_PREPROCESSOR_WHILE132(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(133,X),133,X)(C,F,F(133,X)) #define BOOST_PP_WHILE132(C,F,X) BOOST_PP_WHILE_C(C(134,X),133,X)(C,F,F(134,X))
#define BOOST_PREPROCESSOR_WHILE133(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(134,X),134,X)(C,F,F(134,X)) #define BOOST_PP_WHILE133(C,F,X) BOOST_PP_WHILE_C(C(135,X),134,X)(C,F,F(135,X))
#define BOOST_PREPROCESSOR_WHILE134(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(135,X),135,X)(C,F,F(135,X)) #define BOOST_PP_WHILE134(C,F,X) BOOST_PP_WHILE_C(C(136,X),135,X)(C,F,F(136,X))
#define BOOST_PREPROCESSOR_WHILE135(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(136,X),136,X)(C,F,F(136,X)) #define BOOST_PP_WHILE135(C,F,X) BOOST_PP_WHILE_C(C(137,X),136,X)(C,F,F(137,X))
#define BOOST_PREPROCESSOR_WHILE136(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(137,X),137,X)(C,F,F(137,X)) #define BOOST_PP_WHILE136(C,F,X) BOOST_PP_WHILE_C(C(138,X),137,X)(C,F,F(138,X))
#define BOOST_PREPROCESSOR_WHILE137(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(138,X),138,X)(C,F,F(138,X)) #define BOOST_PP_WHILE137(C,F,X) BOOST_PP_WHILE_C(C(139,X),138,X)(C,F,F(139,X))
#define BOOST_PREPROCESSOR_WHILE138(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(139,X),139,X)(C,F,F(139,X)) #define BOOST_PP_WHILE138(C,F,X) BOOST_PP_WHILE_C(C(140,X),139,X)(C,F,F(140,X))
#define BOOST_PREPROCESSOR_WHILE139(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(140,X),140,X)(C,F,F(140,X)) #define BOOST_PP_WHILE139(C,F,X) BOOST_PP_WHILE_C(C(141,X),140,X)(C,F,F(141,X))
#define BOOST_PREPROCESSOR_WHILE140(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(141,X),141,X)(C,F,F(141,X)) #define BOOST_PP_WHILE140(C,F,X) BOOST_PP_WHILE_C(C(142,X),141,X)(C,F,F(142,X))
#define BOOST_PREPROCESSOR_WHILE141(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(142,X),142,X)(C,F,F(142,X)) #define BOOST_PP_WHILE141(C,F,X) BOOST_PP_WHILE_C(C(143,X),142,X)(C,F,F(143,X))
#define BOOST_PREPROCESSOR_WHILE142(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(143,X),143,X)(C,F,F(143,X)) #define BOOST_PP_WHILE142(C,F,X) BOOST_PP_WHILE_C(C(144,X),143,X)(C,F,F(144,X))
#define BOOST_PREPROCESSOR_WHILE143(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(144,X),144,X)(C,F,F(144,X)) #define BOOST_PP_WHILE143(C,F,X) BOOST_PP_WHILE_C(C(145,X),144,X)(C,F,F(145,X))
#define BOOST_PREPROCESSOR_WHILE144(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(145,X),145,X)(C,F,F(145,X)) #define BOOST_PP_WHILE144(C,F,X) BOOST_PP_WHILE_C(C(146,X),145,X)(C,F,F(146,X))
#define BOOST_PREPROCESSOR_WHILE145(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(146,X),146,X)(C,F,F(146,X)) #define BOOST_PP_WHILE145(C,F,X) BOOST_PP_WHILE_C(C(147,X),146,X)(C,F,F(147,X))
#define BOOST_PREPROCESSOR_WHILE146(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(147,X),147,X)(C,F,F(147,X)) #define BOOST_PP_WHILE146(C,F,X) BOOST_PP_WHILE_C(C(148,X),147,X)(C,F,F(148,X))
#define BOOST_PREPROCESSOR_WHILE147(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(148,X),148,X)(C,F,F(148,X)) #define BOOST_PP_WHILE147(C,F,X) BOOST_PP_WHILE_C(C(149,X),148,X)(C,F,F(149,X))
#define BOOST_PREPROCESSOR_WHILE148(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(149,X),149,X)(C,F,F(149,X)) #define BOOST_PP_WHILE148(C,F,X) BOOST_PP_WHILE_C(C(150,X),149,X)(C,F,F(150,X))
#define BOOST_PREPROCESSOR_WHILE149(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(150,X),150,X)(C,F,F(150,X)) #define BOOST_PP_WHILE149(C,F,X) BOOST_PP_WHILE_C(C(151,X),150,X)(C,F,F(151,X))
#define BOOST_PREPROCESSOR_WHILE150(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(151,X),151,X)(C,F,F(151,X)) #define BOOST_PP_WHILE150(C,F,X) BOOST_PP_WHILE_C(C(152,X),151,X)(C,F,F(152,X))
#define BOOST_PREPROCESSOR_WHILE151(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(152,X),152,X)(C,F,F(152,X)) #define BOOST_PP_WHILE151(C,F,X) BOOST_PP_WHILE_C(C(153,X),152,X)(C,F,F(153,X))
#define BOOST_PREPROCESSOR_WHILE152(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(153,X),153,X)(C,F,F(153,X)) #define BOOST_PP_WHILE152(C,F,X) BOOST_PP_WHILE_C(C(154,X),153,X)(C,F,F(154,X))
#define BOOST_PREPROCESSOR_WHILE153(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(154,X),154,X)(C,F,F(154,X)) #define BOOST_PP_WHILE153(C,F,X) BOOST_PP_WHILE_C(C(155,X),154,X)(C,F,F(155,X))
#define BOOST_PREPROCESSOR_WHILE154(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(155,X),155,X)(C,F,F(155,X)) #define BOOST_PP_WHILE154(C,F,X) BOOST_PP_WHILE_C(C(156,X),155,X)(C,F,F(156,X))
#define BOOST_PREPROCESSOR_WHILE155(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(156,X),156,X)(C,F,F(156,X)) #define BOOST_PP_WHILE155(C,F,X) BOOST_PP_WHILE_C(C(157,X),156,X)(C,F,F(157,X))
#define BOOST_PREPROCESSOR_WHILE156(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(157,X),157,X)(C,F,F(157,X)) #define BOOST_PP_WHILE156(C,F,X) BOOST_PP_WHILE_C(C(158,X),157,X)(C,F,F(158,X))
#define BOOST_PREPROCESSOR_WHILE157(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(158,X),158,X)(C,F,F(158,X)) #define BOOST_PP_WHILE157(C,F,X) BOOST_PP_WHILE_C(C(159,X),158,X)(C,F,F(159,X))
#define BOOST_PREPROCESSOR_WHILE158(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(159,X),159,X)(C,F,F(159,X)) #define BOOST_PP_WHILE158(C,F,X) BOOST_PP_WHILE_C(C(160,X),159,X)(C,F,F(160,X))
#define BOOST_PREPROCESSOR_WHILE159(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(160,X),160,X)(C,F,F(160,X)) #define BOOST_PP_WHILE159(C,F,X) BOOST_PP_WHILE_C(C(161,X),160,X)(C,F,F(161,X))
#define BOOST_PREPROCESSOR_WHILE160(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(161,X),161,X)(C,F,F(161,X)) #define BOOST_PP_WHILE160(C,F,X) BOOST_PP_WHILE_C(C(162,X),161,X)(C,F,F(162,X))
#define BOOST_PREPROCESSOR_WHILE161(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(162,X),162,X)(C,F,F(162,X)) #define BOOST_PP_WHILE161(C,F,X) BOOST_PP_WHILE_C(C(163,X),162,X)(C,F,F(163,X))
#define BOOST_PREPROCESSOR_WHILE162(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(163,X),163,X)(C,F,F(163,X)) #define BOOST_PP_WHILE162(C,F,X) BOOST_PP_WHILE_C(C(164,X),163,X)(C,F,F(164,X))
#define BOOST_PREPROCESSOR_WHILE163(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(164,X),164,X)(C,F,F(164,X)) #define BOOST_PP_WHILE163(C,F,X) BOOST_PP_WHILE_C(C(165,X),164,X)(C,F,F(165,X))
#define BOOST_PREPROCESSOR_WHILE164(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(165,X),165,X)(C,F,F(165,X)) #define BOOST_PP_WHILE164(C,F,X) BOOST_PP_WHILE_C(C(166,X),165,X)(C,F,F(166,X))
#define BOOST_PREPROCESSOR_WHILE165(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(166,X),166,X)(C,F,F(166,X)) #define BOOST_PP_WHILE165(C,F,X) BOOST_PP_WHILE_C(C(167,X),166,X)(C,F,F(167,X))
#define BOOST_PREPROCESSOR_WHILE166(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(167,X),167,X)(C,F,F(167,X)) #define BOOST_PP_WHILE166(C,F,X) BOOST_PP_WHILE_C(C(168,X),167,X)(C,F,F(168,X))
#define BOOST_PREPROCESSOR_WHILE167(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(168,X),168,X)(C,F,F(168,X)) #define BOOST_PP_WHILE167(C,F,X) BOOST_PP_WHILE_C(C(169,X),168,X)(C,F,F(169,X))
#define BOOST_PREPROCESSOR_WHILE168(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(169,X),169,X)(C,F,F(169,X)) #define BOOST_PP_WHILE168(C,F,X) BOOST_PP_WHILE_C(C(170,X),169,X)(C,F,F(170,X))
#define BOOST_PREPROCESSOR_WHILE169(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(170,X),170,X)(C,F,F(170,X)) #define BOOST_PP_WHILE169(C,F,X) BOOST_PP_WHILE_C(C(171,X),170,X)(C,F,F(171,X))
#define BOOST_PREPROCESSOR_WHILE170(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(171,X),171,X)(C,F,F(171,X)) #define BOOST_PP_WHILE170(C,F,X) BOOST_PP_WHILE_C(C(172,X),171,X)(C,F,F(172,X))
#define BOOST_PREPROCESSOR_WHILE171(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(172,X),172,X)(C,F,F(172,X)) #define BOOST_PP_WHILE171(C,F,X) BOOST_PP_WHILE_C(C(173,X),172,X)(C,F,F(173,X))
#define BOOST_PREPROCESSOR_WHILE172(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(173,X),173,X)(C,F,F(173,X)) #define BOOST_PP_WHILE172(C,F,X) BOOST_PP_WHILE_C(C(174,X),173,X)(C,F,F(174,X))
#define BOOST_PREPROCESSOR_WHILE173(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(174,X),174,X)(C,F,F(174,X)) #define BOOST_PP_WHILE173(C,F,X) BOOST_PP_WHILE_C(C(175,X),174,X)(C,F,F(175,X))
#define BOOST_PREPROCESSOR_WHILE174(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(175,X),175,X)(C,F,F(175,X)) #define BOOST_PP_WHILE174(C,F,X) BOOST_PP_WHILE_C(C(176,X),175,X)(C,F,F(176,X))
#define BOOST_PREPROCESSOR_WHILE175(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(176,X),176,X)(C,F,F(176,X)) #define BOOST_PP_WHILE175(C,F,X) BOOST_PP_WHILE_C(C(177,X),176,X)(C,F,F(177,X))
#define BOOST_PREPROCESSOR_WHILE176(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(177,X),177,X)(C,F,F(177,X)) #define BOOST_PP_WHILE176(C,F,X) BOOST_PP_WHILE_C(C(178,X),177,X)(C,F,F(178,X))
#define BOOST_PREPROCESSOR_WHILE177(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(178,X),178,X)(C,F,F(178,X)) #define BOOST_PP_WHILE177(C,F,X) BOOST_PP_WHILE_C(C(179,X),178,X)(C,F,F(179,X))
#define BOOST_PREPROCESSOR_WHILE178(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(179,X),179,X)(C,F,F(179,X)) #define BOOST_PP_WHILE178(C,F,X) BOOST_PP_WHILE_C(C(180,X),179,X)(C,F,F(180,X))
#define BOOST_PREPROCESSOR_WHILE179(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(180,X),180,X)(C,F,F(180,X)) #define BOOST_PP_WHILE179(C,F,X) BOOST_PP_WHILE_C(C(181,X),180,X)(C,F,F(181,X))
#define BOOST_PREPROCESSOR_WHILE180(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(181,X),181,X)(C,F,F(181,X)) #define BOOST_PP_WHILE180(C,F,X) BOOST_PP_WHILE_C(C(182,X),181,X)(C,F,F(182,X))
#define BOOST_PREPROCESSOR_WHILE181(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(182,X),182,X)(C,F,F(182,X)) #define BOOST_PP_WHILE181(C,F,X) BOOST_PP_WHILE_C(C(183,X),182,X)(C,F,F(183,X))
#define BOOST_PREPROCESSOR_WHILE182(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(183,X),183,X)(C,F,F(183,X)) #define BOOST_PP_WHILE182(C,F,X) BOOST_PP_WHILE_C(C(184,X),183,X)(C,F,F(184,X))
#define BOOST_PREPROCESSOR_WHILE183(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(184,X),184,X)(C,F,F(184,X)) #define BOOST_PP_WHILE183(C,F,X) BOOST_PP_WHILE_C(C(185,X),184,X)(C,F,F(185,X))
#define BOOST_PREPROCESSOR_WHILE184(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(185,X),185,X)(C,F,F(185,X)) #define BOOST_PP_WHILE184(C,F,X) BOOST_PP_WHILE_C(C(186,X),185,X)(C,F,F(186,X))
#define BOOST_PREPROCESSOR_WHILE185(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(186,X),186,X)(C,F,F(186,X)) #define BOOST_PP_WHILE185(C,F,X) BOOST_PP_WHILE_C(C(187,X),186,X)(C,F,F(187,X))
#define BOOST_PREPROCESSOR_WHILE186(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(187,X),187,X)(C,F,F(187,X)) #define BOOST_PP_WHILE186(C,F,X) BOOST_PP_WHILE_C(C(188,X),187,X)(C,F,F(188,X))
#define BOOST_PREPROCESSOR_WHILE187(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(188,X),188,X)(C,F,F(188,X)) #define BOOST_PP_WHILE187(C,F,X) BOOST_PP_WHILE_C(C(189,X),188,X)(C,F,F(189,X))
#define BOOST_PREPROCESSOR_WHILE188(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(189,X),189,X)(C,F,F(189,X)) #define BOOST_PP_WHILE188(C,F,X) BOOST_PP_WHILE_C(C(190,X),189,X)(C,F,F(190,X))
#define BOOST_PREPROCESSOR_WHILE189(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(190,X),190,X)(C,F,F(190,X)) #define BOOST_PP_WHILE189(C,F,X) BOOST_PP_WHILE_C(C(191,X),190,X)(C,F,F(191,X))
#define BOOST_PREPROCESSOR_WHILE190(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(191,X),191,X)(C,F,F(191,X)) #define BOOST_PP_WHILE190(C,F,X) BOOST_PP_WHILE_C(C(192,X),191,X)(C,F,F(192,X))
#define BOOST_PREPROCESSOR_WHILE191(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(192,X),192,X)(C,F,F(192,X)) #define BOOST_PP_WHILE191(C,F,X) BOOST_PP_WHILE_C(C(193,X),192,X)(C,F,F(193,X))
#define BOOST_PREPROCESSOR_WHILE192(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(193,X),193,X)(C,F,F(193,X)) #define BOOST_PP_WHILE192(C,F,X) BOOST_PP_WHILE_C(C(194,X),193,X)(C,F,F(194,X))
#define BOOST_PREPROCESSOR_WHILE193(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(194,X),194,X)(C,F,F(194,X)) #define BOOST_PP_WHILE193(C,F,X) BOOST_PP_WHILE_C(C(195,X),194,X)(C,F,F(195,X))
#define BOOST_PREPROCESSOR_WHILE194(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(195,X),195,X)(C,F,F(195,X)) #define BOOST_PP_WHILE194(C,F,X) BOOST_PP_WHILE_C(C(196,X),195,X)(C,F,F(196,X))
#define BOOST_PREPROCESSOR_WHILE195(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(196,X),196,X)(C,F,F(196,X)) #define BOOST_PP_WHILE195(C,F,X) BOOST_PP_WHILE_C(C(197,X),196,X)(C,F,F(197,X))
#define BOOST_PREPROCESSOR_WHILE196(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(197,X),197,X)(C,F,F(197,X)) #define BOOST_PP_WHILE196(C,F,X) BOOST_PP_WHILE_C(C(198,X),197,X)(C,F,F(198,X))
#define BOOST_PREPROCESSOR_WHILE197(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(198,X),198,X)(C,F,F(198,X)) #define BOOST_PP_WHILE197(C,F,X) BOOST_PP_WHILE_C(C(199,X),198,X)(C,F,F(199,X))
#define BOOST_PREPROCESSOR_WHILE198(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(199,X),199,X)(C,F,F(199,X)) #define BOOST_PP_WHILE198(C,F,X) BOOST_PP_WHILE_C(C(200,X),199,X)(C,F,F(200,X))
#define BOOST_PREPROCESSOR_WHILE199(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(200,X),200,X)(C,F,F(200,X)) #define BOOST_PP_WHILE199(C,F,X) BOOST_PP_WHILE_C(C(201,X),200,X)(C,F,F(201,X))
#define BOOST_PREPROCESSOR_WHILE200(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(201,X),201,X)(C,F,F(201,X)) #define BOOST_PP_WHILE200(C,F,X) BOOST_PP_WHILE_C(C(202,X),201,X)(C,F,F(202,X))
#define BOOST_PREPROCESSOR_WHILE201(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(202,X),202,X)(C,F,F(202,X)) #define BOOST_PP_WHILE201(C,F,X) BOOST_PP_WHILE_C(C(203,X),202,X)(C,F,F(203,X))
#define BOOST_PREPROCESSOR_WHILE202(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(203,X),203,X)(C,F,F(203,X)) #define BOOST_PP_WHILE202(C,F,X) BOOST_PP_WHILE_C(C(204,X),203,X)(C,F,F(204,X))
#define BOOST_PREPROCESSOR_WHILE203(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(204,X),204,X)(C,F,F(204,X)) #define BOOST_PP_WHILE203(C,F,X) BOOST_PP_WHILE_C(C(205,X),204,X)(C,F,F(205,X))
#define BOOST_PREPROCESSOR_WHILE204(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(205,X),205,X)(C,F,F(205,X)) #define BOOST_PP_WHILE204(C,F,X) BOOST_PP_WHILE_C(C(206,X),205,X)(C,F,F(206,X))
#define BOOST_PREPROCESSOR_WHILE205(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(206,X),206,X)(C,F,F(206,X)) #define BOOST_PP_WHILE205(C,F,X) BOOST_PP_WHILE_C(C(207,X),206,X)(C,F,F(207,X))
#define BOOST_PREPROCESSOR_WHILE206(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(207,X),207,X)(C,F,F(207,X)) #define BOOST_PP_WHILE206(C,F,X) BOOST_PP_WHILE_C(C(208,X),207,X)(C,F,F(208,X))
#define BOOST_PREPROCESSOR_WHILE207(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(208,X),208,X)(C,F,F(208,X)) #define BOOST_PP_WHILE207(C,F,X) BOOST_PP_WHILE_C(C(209,X),208,X)(C,F,F(209,X))
#define BOOST_PREPROCESSOR_WHILE208(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(209,X),209,X)(C,F,F(209,X)) #define BOOST_PP_WHILE208(C,F,X) BOOST_PP_WHILE_C(C(210,X),209,X)(C,F,F(210,X))
#define BOOST_PREPROCESSOR_WHILE209(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(210,X),210,X)(C,F,F(210,X)) #define BOOST_PP_WHILE209(C,F,X) BOOST_PP_WHILE_C(C(211,X),210,X)(C,F,F(211,X))
#define BOOST_PREPROCESSOR_WHILE210(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(211,X),211,X)(C,F,F(211,X)) #define BOOST_PP_WHILE210(C,F,X) BOOST_PP_WHILE_C(C(212,X),211,X)(C,F,F(212,X))
#define BOOST_PREPROCESSOR_WHILE211(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(212,X),212,X)(C,F,F(212,X)) #define BOOST_PP_WHILE211(C,F,X) BOOST_PP_WHILE_C(C(213,X),212,X)(C,F,F(213,X))
#define BOOST_PREPROCESSOR_WHILE212(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(213,X),213,X)(C,F,F(213,X)) #define BOOST_PP_WHILE212(C,F,X) BOOST_PP_WHILE_C(C(214,X),213,X)(C,F,F(214,X))
#define BOOST_PREPROCESSOR_WHILE213(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(214,X),214,X)(C,F,F(214,X)) #define BOOST_PP_WHILE213(C,F,X) BOOST_PP_WHILE_C(C(215,X),214,X)(C,F,F(215,X))
#define BOOST_PREPROCESSOR_WHILE214(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(215,X),215,X)(C,F,F(215,X)) #define BOOST_PP_WHILE214(C,F,X) BOOST_PP_WHILE_C(C(216,X),215,X)(C,F,F(216,X))
#define BOOST_PREPROCESSOR_WHILE215(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(216,X),216,X)(C,F,F(216,X)) #define BOOST_PP_WHILE215(C,F,X) BOOST_PP_WHILE_C(C(217,X),216,X)(C,F,F(217,X))
#define BOOST_PREPROCESSOR_WHILE216(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(217,X),217,X)(C,F,F(217,X)) #define BOOST_PP_WHILE216(C,F,X) BOOST_PP_WHILE_C(C(218,X),217,X)(C,F,F(218,X))
#define BOOST_PREPROCESSOR_WHILE217(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(218,X),218,X)(C,F,F(218,X)) #define BOOST_PP_WHILE217(C,F,X) BOOST_PP_WHILE_C(C(219,X),218,X)(C,F,F(219,X))
#define BOOST_PREPROCESSOR_WHILE218(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(219,X),219,X)(C,F,F(219,X)) #define BOOST_PP_WHILE218(C,F,X) BOOST_PP_WHILE_C(C(220,X),219,X)(C,F,F(220,X))
#define BOOST_PREPROCESSOR_WHILE219(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(220,X),220,X)(C,F,F(220,X)) #define BOOST_PP_WHILE219(C,F,X) BOOST_PP_WHILE_C(C(221,X),220,X)(C,F,F(221,X))
#define BOOST_PREPROCESSOR_WHILE220(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(221,X),221,X)(C,F,F(221,X)) #define BOOST_PP_WHILE220(C,F,X) BOOST_PP_WHILE_C(C(222,X),221,X)(C,F,F(222,X))
#define BOOST_PREPROCESSOR_WHILE221(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(222,X),222,X)(C,F,F(222,X)) #define BOOST_PP_WHILE221(C,F,X) BOOST_PP_WHILE_C(C(223,X),222,X)(C,F,F(223,X))
#define BOOST_PREPROCESSOR_WHILE222(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(223,X),223,X)(C,F,F(223,X)) #define BOOST_PP_WHILE222(C,F,X) BOOST_PP_WHILE_C(C(224,X),223,X)(C,F,F(224,X))
#define BOOST_PREPROCESSOR_WHILE223(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(224,X),224,X)(C,F,F(224,X)) #define BOOST_PP_WHILE223(C,F,X) BOOST_PP_WHILE_C(C(225,X),224,X)(C,F,F(225,X))
#define BOOST_PREPROCESSOR_WHILE224(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(225,X),225,X)(C,F,F(225,X)) #define BOOST_PP_WHILE224(C,F,X) BOOST_PP_WHILE_C(C(226,X),225,X)(C,F,F(226,X))
#define BOOST_PREPROCESSOR_WHILE225(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(226,X),226,X)(C,F,F(226,X)) #define BOOST_PP_WHILE225(C,F,X) BOOST_PP_WHILE_C(C(227,X),226,X)(C,F,F(227,X))
#define BOOST_PREPROCESSOR_WHILE226(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(227,X),227,X)(C,F,F(227,X)) #define BOOST_PP_WHILE226(C,F,X) BOOST_PP_WHILE_C(C(228,X),227,X)(C,F,F(228,X))
#define BOOST_PREPROCESSOR_WHILE227(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(228,X),228,X)(C,F,F(228,X)) #define BOOST_PP_WHILE227(C,F,X) BOOST_PP_WHILE_C(C(229,X),228,X)(C,F,F(229,X))
#define BOOST_PREPROCESSOR_WHILE228(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(229,X),229,X)(C,F,F(229,X)) #define BOOST_PP_WHILE228(C,F,X) BOOST_PP_WHILE_C(C(230,X),229,X)(C,F,F(230,X))
#define BOOST_PREPROCESSOR_WHILE229(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(230,X),230,X)(C,F,F(230,X)) #define BOOST_PP_WHILE229(C,F,X) BOOST_PP_WHILE_C(C(231,X),230,X)(C,F,F(231,X))
#define BOOST_PREPROCESSOR_WHILE230(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(231,X),231,X)(C,F,F(231,X)) #define BOOST_PP_WHILE230(C,F,X) BOOST_PP_WHILE_C(C(232,X),231,X)(C,F,F(232,X))
#define BOOST_PREPROCESSOR_WHILE231(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(232,X),232,X)(C,F,F(232,X)) #define BOOST_PP_WHILE231(C,F,X) BOOST_PP_WHILE_C(C(233,X),232,X)(C,F,F(233,X))
#define BOOST_PREPROCESSOR_WHILE232(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(233,X),233,X)(C,F,F(233,X)) #define BOOST_PP_WHILE232(C,F,X) BOOST_PP_WHILE_C(C(234,X),233,X)(C,F,F(234,X))
#define BOOST_PREPROCESSOR_WHILE233(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(234,X),234,X)(C,F,F(234,X)) #define BOOST_PP_WHILE233(C,F,X) BOOST_PP_WHILE_C(C(235,X),234,X)(C,F,F(235,X))
#define BOOST_PREPROCESSOR_WHILE234(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(235,X),235,X)(C,F,F(235,X)) #define BOOST_PP_WHILE234(C,F,X) BOOST_PP_WHILE_C(C(236,X),235,X)(C,F,F(236,X))
#define BOOST_PREPROCESSOR_WHILE235(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(236,X),236,X)(C,F,F(236,X)) #define BOOST_PP_WHILE235(C,F,X) BOOST_PP_WHILE_C(C(237,X),236,X)(C,F,F(237,X))
#define BOOST_PREPROCESSOR_WHILE236(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(237,X),237,X)(C,F,F(237,X)) #define BOOST_PP_WHILE236(C,F,X) BOOST_PP_WHILE_C(C(238,X),237,X)(C,F,F(238,X))
#define BOOST_PREPROCESSOR_WHILE237(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(238,X),238,X)(C,F,F(238,X)) #define BOOST_PP_WHILE237(C,F,X) BOOST_PP_WHILE_C(C(239,X),238,X)(C,F,F(239,X))
#define BOOST_PREPROCESSOR_WHILE238(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(239,X),239,X)(C,F,F(239,X)) #define BOOST_PP_WHILE238(C,F,X) BOOST_PP_WHILE_C(C(240,X),239,X)(C,F,F(240,X))
#define BOOST_PREPROCESSOR_WHILE239(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(240,X),240,X)(C,F,F(240,X)) #define BOOST_PP_WHILE239(C,F,X) BOOST_PP_WHILE_C(C(241,X),240,X)(C,F,F(241,X))
#define BOOST_PREPROCESSOR_WHILE240(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(241,X),241,X)(C,F,F(241,X)) #define BOOST_PP_WHILE240(C,F,X) BOOST_PP_WHILE_C(C(242,X),241,X)(C,F,F(242,X))
#define BOOST_PREPROCESSOR_WHILE241(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(242,X),242,X)(C,F,F(242,X)) #define BOOST_PP_WHILE241(C,F,X) BOOST_PP_WHILE_C(C(243,X),242,X)(C,F,F(243,X))
#define BOOST_PREPROCESSOR_WHILE242(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(243,X),243,X)(C,F,F(243,X)) #define BOOST_PP_WHILE242(C,F,X) BOOST_PP_WHILE_C(C(244,X),243,X)(C,F,F(244,X))
#define BOOST_PREPROCESSOR_WHILE243(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(244,X),244,X)(C,F,F(244,X)) #define BOOST_PP_WHILE243(C,F,X) BOOST_PP_WHILE_C(C(245,X),244,X)(C,F,F(245,X))
#define BOOST_PREPROCESSOR_WHILE244(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(245,X),245,X)(C,F,F(245,X)) #define BOOST_PP_WHILE244(C,F,X) BOOST_PP_WHILE_C(C(246,X),245,X)(C,F,F(246,X))
#define BOOST_PREPROCESSOR_WHILE245(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(246,X),246,X)(C,F,F(246,X)) #define BOOST_PP_WHILE245(C,F,X) BOOST_PP_WHILE_C(C(247,X),246,X)(C,F,F(247,X))
#define BOOST_PREPROCESSOR_WHILE246(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(247,X),247,X)(C,F,F(247,X)) #define BOOST_PP_WHILE246(C,F,X) BOOST_PP_WHILE_C(C(248,X),247,X)(C,F,F(248,X))
#define BOOST_PREPROCESSOR_WHILE247(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(248,X),248,X)(C,F,F(248,X)) #define BOOST_PP_WHILE247(C,F,X) BOOST_PP_WHILE_C(C(249,X),248,X)(C,F,F(249,X))
#define BOOST_PREPROCESSOR_WHILE248(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(249,X),249,X)(C,F,F(249,X)) #define BOOST_PP_WHILE248(C,F,X) BOOST_PP_WHILE_C(C(250,X),249,X)(C,F,F(250,X))
#define BOOST_PREPROCESSOR_WHILE249(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(250,X),250,X)(C,F,F(250,X)) #define BOOST_PP_WHILE249(C,F,X) BOOST_PP_WHILE_C(C(251,X),250,X)(C,F,F(251,X))
#define BOOST_PREPROCESSOR_WHILE250(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(251,X),251,X)(C,F,F(251,X)) #define BOOST_PP_WHILE250(C,F,X) BOOST_PP_WHILE_C(C(252,X),251,X)(C,F,F(252,X))
#define BOOST_PREPROCESSOR_WHILE251(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(252,X),252,X)(C,F,F(252,X)) #define BOOST_PP_WHILE251(C,F,X) BOOST_PP_WHILE_C(C(253,X),252,X)(C,F,F(253,X))
#define BOOST_PREPROCESSOR_WHILE252(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(253,X),253,X)(C,F,F(253,X)) #define BOOST_PP_WHILE252(C,F,X) BOOST_PP_WHILE_C(C(254,X),253,X)(C,F,F(254,X))
#define BOOST_PREPROCESSOR_WHILE253(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(254,X),254,X)(C,F,F(254,X)) #define BOOST_PP_WHILE253(C,F,X) BOOST_PP_WHILE_C(C(255,X),254,X)(C,F,F(255,X))
#define BOOST_PREPROCESSOR_WHILE254(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(255,X),255,X)(C,F,F(255,X)) #define BOOST_PP_WHILE254(C,F,X) BOOST_PP_WHILE_C(C(256,X),255,X)(C,F,F(256,X))
#define BOOST_PREPROCESSOR_WHILE255(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(256,X),256,X)(C,F,F(256,X)) #define BOOST_PP_WHILE255(C,F,X) BOOST_PP_WHILE_C(C(257,X),256,X)(C,F,F(257,X))
#define BOOST_PREPROCESSOR_WHILE256(C,F,X) BOOST_PREPROCESSOR_WHILE_C(C(257,X),257,X)(C,F,F(257,X)) #define BOOST_PP_WHILE256(C,F,X) BOOST_PP_WHILE_C(C(258,X),257,X)(C,F,F(258,X))
#define BOOST_PREPROCESSOR_WHILE257(C,F,X) RECURSION DEPTH EXCEEDED! #define BOOST_PP_WHILE257(C,F,X) BOOST_PP_WHILE_C(C(259,X),258,X)(C,F,F(259,X))
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ #define BOOST_PP_WHILE258(C,F,X) RECURSION DEPTH EXCEEDED!
#define BOOST_PP_WHILE259(C,F,X) RECURSION DEPTH EXCEEDED!
#endif
#endif #endif