mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-07-21 08:22:04 +02:00
PREPROCESSOR -> PP. WHILE documented.
[SVN r12162]
This commit is contained in:
@ -76,7 +76,7 @@ vec<T,n>&
|
||||
|
||||
<hr>
|
||||
<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>
|
||||
<pre>template<class base>
|
||||
@ -100,7 +100,7 @@ const typename implement_subscript_using_begin_subscript<base>::value_type
|
||||
</blockquote>
|
||||
|
||||
<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>
|
||||
<pre>enum
|
||||
@ -113,7 +113,7 @@ typedef char
|
||||
</pre>
|
||||
</blockquote>
|
||||
<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>
|
||||
<pre>#pragma message("examples.cpp" "(" "20" ") : " "TBD!")</pre>
|
||||
</blockquote>
|
||||
@ -121,12 +121,12 @@ typedef char
|
||||
<p><strong><a name="ENUM_PARAMS"></a><a href="tutorial.htm#ENUM_PARAMS">EXAMPLE</a>:</strong>
|
||||
Use:</p>
|
||||
<ul>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS, or</li>
|
||||
<li>BOOST_PREPROCESSOR_REPEAT, and</li>
|
||||
<li> BOOST_PREPROCESSOR_COMMA_IF</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS,</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT,</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS,</li>
|
||||
<li> BOOST_PP_ENUM_SHIFTED_PARAMS, or</li>
|
||||
<li>BOOST_PP_REPEAT, and</li>
|
||||
<li> BOOST_PP_COMMA_IF</li>
|
||||
</ul>
|
||||
<p>to avoid O(N) repetition on lists in general</p>
|
||||
<blockquote>
|
||||
@ -177,7 +177,7 @@ public:
|
||||
|
||||
<hr>
|
||||
<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>
|
||||
|
||||
<blockquote>
|
||||
@ -238,7 +238,7 @@ catch (long double t)
|
||||
|
||||
<hr>
|
||||
<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>
|
||||
<pre>vec()
|
||||
@ -302,7 +302,7 @@ vec(T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7)
|
||||
<p>
|
||||
<hr>
|
||||
<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>
|
||||
<pre>false == false;
|
||||
|
@ -1,40 +1,41 @@
|
||||
BOOST_PREPROCESSOR_ADD
|
||||
BOOST_PREPROCESSOR_AND
|
||||
BOOST_PREPROCESSOR_ASSERT_MSG
|
||||
BOOST_PREPROCESSOR_BOOL
|
||||
BOOST_PREPROCESSOR_CAT
|
||||
BOOST_PREPROCESSOR_COMMA
|
||||
BOOST_PREPROCESSOR_COMMA_IF
|
||||
BOOST_PREPROCESSOR_DEC
|
||||
BOOST_PREPROCESSOR_DIV
|
||||
BOOST_PREPROCESSOR_EMPTY
|
||||
BOOST_PREPROCESSOR_ENUM_PARAMS
|
||||
BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT
|
||||
BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS
|
||||
BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS
|
||||
BOOST_PREPROCESSOR_EQUAL
|
||||
BOOST_PREPROCESSOR_GREATER
|
||||
BOOST_PREPROCESSOR_GREATER_EQUAL
|
||||
BOOST_PREPROCESSOR_IDENTITY
|
||||
BOOST_PREPROCESSOR_IF
|
||||
BOOST_PREPROCESSOR_INC
|
||||
BOOST_PREPROCESSOR_LESS
|
||||
BOOST_PREPROCESSOR_LESS_EQUAL
|
||||
BOOST_PREPROCESSOR_LIMIT_DIM
|
||||
BOOST_PREPROCESSOR_LIMIT_MAG
|
||||
BOOST_PREPROCESSOR_LIMIT_TUPLE
|
||||
BOOST_PREPROCESSOR_MAX
|
||||
BOOST_PREPROCESSOR_MIN
|
||||
BOOST_PREPROCESSOR_MOD
|
||||
BOOST_PREPROCESSOR_MUL
|
||||
BOOST_PREPROCESSOR_NOR
|
||||
BOOST_PREPROCESSOR_NOT
|
||||
BOOST_PREPROCESSOR_NOT_EQUAL
|
||||
BOOST_PREPROCESSOR_OR
|
||||
BOOST_PREPROCESSOR_REPEAT
|
||||
BOOST_PREPROCESSOR_REPEAT_2ND
|
||||
BOOST_PREPROCESSOR_REPEAT_3RD
|
||||
BOOST_PREPROCESSOR_STRINGIZE
|
||||
BOOST_PREPROCESSOR_SUB
|
||||
BOOST_PREPROCESSOR_TUPLE_ELEM
|
||||
BOOST_PREPROCESSOR_XOR
|
||||
BOOST_PP_ADD
|
||||
BOOST_PP_AND
|
||||
BOOST_PP_ASSERT_MSG
|
||||
BOOST_PP_BOOL
|
||||
BOOST_PP_CAT
|
||||
BOOST_PP_COMMA
|
||||
BOOST_PP_COMMA_IF
|
||||
BOOST_PP_DEC
|
||||
BOOST_PP_DIV
|
||||
BOOST_PP_EMPTY
|
||||
BOOST_PP_ENUM_PARAMS
|
||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
|
||||
BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS
|
||||
BOOST_PP_ENUM_SHIFTED_PARAMS
|
||||
BOOST_PP_EQUAL
|
||||
BOOST_PP_GREATER
|
||||
BOOST_PP_GREATER_EQUAL
|
||||
BOOST_PP_IDENTITY
|
||||
BOOST_PP_IF
|
||||
BOOST_PP_INC
|
||||
BOOST_PP_LESS
|
||||
BOOST_PP_LESS_EQUAL
|
||||
BOOST_PP_LIMIT_DIM
|
||||
BOOST_PP_LIMIT_MAG
|
||||
BOOST_PP_LIMIT_TUPLE
|
||||
BOOST_PP_MAX
|
||||
BOOST_PP_MIN
|
||||
BOOST_PP_MOD
|
||||
BOOST_PP_MUL
|
||||
BOOST_PP_NOR
|
||||
BOOST_PP_NOT
|
||||
BOOST_PP_NOT_EQUAL
|
||||
BOOST_PP_OR
|
||||
BOOST_PP_REPEAT
|
||||
BOOST_PP_REPEAT_2ND
|
||||
BOOST_PP_REPEAT_3RD
|
||||
BOOST_PP_STRINGIZE
|
||||
BOOST_PP_SUB
|
||||
BOOST_PP_TUPLE_ELEM
|
||||
BOOST_PP_WHILE
|
||||
BOOST_PP_XOR
|
||||
|
20
doc/plan.txt
20
doc/plan.txt
@ -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
|
||||
them to vesa.karvonen@housemarque.fi.
|
||||
|
||||
Issues:
|
||||
- case studies
|
||||
- more isolated examples & less complex examples in tutorial
|
||||
-> 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
|
||||
Current R&D:
|
||||
- Faster arithmetic
|
||||
- Data structures (cons list)
|
||||
|
@ -46,8 +46,8 @@ int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't
|
||||
macro that does work on MWCW:</p>
|
||||
<blockquote>
|
||||
<pre>#define NUMBERED_EXPRESSION(n, x) \
|
||||
BOOST_PREPROCESSOR_CAT(BOOST_, \
|
||||
BOOST_PREPROCESSOR_IF( \
|
||||
BOOST_PP_CAT(BOOST_, \
|
||||
BOOST_PP_IF( \
|
||||
n \
|
||||
, PREPROCESSOR_IDENTITY(x##n) \
|
||||
, PREPROCESSOR_EMPTY \
|
||||
@ -74,11 +74,11 @@ typedef char yes_type;
|
||||
|
||||
#define IS_FUNCTION_HELPER(I,A)\
|
||||
template\
|
||||
<BOOST_PREPROCESSOR_ENUM_PARAMS(BOOST_PREPROCESSOR_INC(I),class P)>\
|
||||
<BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(I),class P)>\
|
||||
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
|
||||
</pre></blockquote>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="add_8hpp.html#a1">BOOST_PREPROCESSOR_ADD</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic/add.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the sum of X and Y.
|
||||
Obsolete. Use <a class="el" href="add_8hpp.html#a0">BOOST_PP_ADD</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="and_8hpp.html#a1">BOOST_PREPROCESSOR_AND</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/and.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the logical AND of the operands.
|
||||
Obsolete. Use <a class="el" href="and_8hpp.html#a0">BOOST_PP_AND</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -11,6 +11,8 @@
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
Includes all arithmetic headers.
|
||||
<p>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="assert__msg_8hpp.html#a0">BOOST_PP_ASSERT_MSG</a>(C, MSG)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="assert__msg_8hpp.html#a1">BOOST_PREPROCESSOR_ASSERT_MSG</a>(C, MSG)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/assert_msg.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">C, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>MSG </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,45 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="bool_8hpp.html#a0">BOOST_PP_BOOL</a>(X)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="bool_8hpp.html#a1">BOOST_PREPROCESSOR_BOOL</a>(X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/bool.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,7 +70,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>(L, R)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="cat_8hpp.html#a1">BOOST_PREPROCESSOR_CAT</a>(L, R)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/cat.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_CAT</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">L, <tr>
|
||||
<td></td>
|
||||
@ -49,11 +51,11 @@ Example:
|
||||
<pre><div class="fragment"><pre>
|
||||
#define STATIC_ASSERT(EXPR)\
|
||||
enum\
|
||||
{ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
|
||||
{ BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
|
||||
};\
|
||||
typedef char\
|
||||
BOOST_PREPROCESSOR_CAT(static_assert_,__LINE__)\
|
||||
[ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__)\
|
||||
BOOST_PP_CAT(static_assert_,__LINE__)\
|
||||
[ BOOST_PP_CAT(static_check_,__LINE__)\
|
||||
]
|
||||
|
||||
// ...
|
||||
@ -73,7 +75,7 @@ The above expands to:
|
||||
];
|
||||
</pre></div></pre>
|
||||
<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>
|
||||
<pre><div class="fragment"><pre>
|
||||
enum
|
||||
@ -86,6 +88,38 @@ Using <a class="el" href="cat_8hpp.html#a0">BOOST_PREPROCESSOR_CAT</a>() above l
|
||||
</pre></div></pre> </td>
|
||||
</tr>
|
||||
</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">( </td>
|
||||
<td class="md" nowrap valign="top">L, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>R </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Obsolete. Use <a class="el" href="cat_8hpp.html#a0">BOOST_PP_CAT</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,45 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="comma_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA</a>()</td></tr>
|
||||
<tr><td> </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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="comma_8hpp.html#a0">BOOST_PP_COMMA</a>()</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="comma_8hpp.html#a1">BOOST_PREPROCESSOR_COMMA</a>()</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comma.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
</td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,9 +70,9 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
See <a class="el" href="comma__if_8hpp.html#a0">BOOST_PREPROCESSOR_COMMA_IF</a>(). </td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,45 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="comma__if_8hpp.html#a0">BOOST_PP_COMMA_IF</a>(C)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="comma__if_8hpp.html#a1">BOOST_PREPROCESSOR_COMMA_IF</a>(C)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comma_if.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">C </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,7 +70,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -11,6 +11,8 @@
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
Includes all comparison headers.
|
||||
<p>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,49 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>(X)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="dec_8hpp.html#a1">BOOST_PREPROCESSOR_DEC</a>(X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/dec.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,11 +74,9 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Decrements X expanding to a single token.
|
||||
Obsolete. Use <a class="el" href="dec_8hpp.html#a0">BOOST_PP_DEC</a>().
|
||||
<p>
|
||||
<a class="el" href="dec_8hpp.html#a0">BOOST_PREPROCESSOR_DEC</a>() uses saturation arithmetic. Decrementing 0 yeilds a 0.
|
||||
<p>
|
||||
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are supported. </td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="div_8hpp.html#a1">BOOST_PREPROCESSOR_DIV</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic/div.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the quotient of X and Y.
|
||||
Obsolete. Use <a class="el" href="div_8hpp.html#a0">BOOST_PP_DIV</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="empty_8hpp.html#a0">BOOST_PREPROCESSOR_EMPTY</a>()</td></tr>
|
||||
<tr><td> </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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="empty_8hpp.html#a0">BOOST_PP_EMPTY</a>()</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="empty_8hpp.html#a1">BOOST_PREPROCESSOR_EMPTY</a>()</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/empty.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_EMPTY</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
</td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
@ -39,19 +41,19 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
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>
|
||||
<pre><div class="fragment"><pre>
|
||||
#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)()
|
||||
</pre></div></pre>
|
||||
<p>
|
||||
Example usage as an unused macro parameter:
|
||||
<p>
|
||||
<pre><div class="fragment"><pre>
|
||||
#define BOOST_PREPROCESSOR_DEF(CV)\
|
||||
#define BOOST_PP_DEF(CV)\
|
||||
template<class base> \
|
||||
CV typename implement_subscript_using_begin_subscript<base>::value_type&\
|
||||
implement_subscript_using_begin_subscript<base>::operator[]\
|
||||
@ -61,9 +63,9 @@ Example usage as an unused macro parameter:
|
||||
{ return base::begin()[i]; \
|
||||
}
|
||||
|
||||
BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY())
|
||||
BOOST_PREPROCESSOR_DEF(const)
|
||||
#undef BOOST_PREPROCESSOR_DEF
|
||||
BOOST_PP_DEF(BOOST_PP_EMPTY())
|
||||
BOOST_PP_DEF(const)
|
||||
#undef BOOST_PP_DEF
|
||||
</pre></div></pre>
|
||||
<p>
|
||||
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>
|
||||
</tr>
|
||||
</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">( </td>
|
||||
</td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Obsolete. Use <a class="el" href="empty_8hpp.html#a0">BOOST_PP_EMPTY</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="enum__params_8hpp.html#a0">BOOST_PP_ENUM_PARAMS</a>(N, P)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="enum__params_8hpp.html#a1">BOOST_PREPROCESSOR_ENUM_PARAMS</a>(N, P)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/enum_params.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
@ -50,7 +52,39 @@ In other words, expands to the sequence:
|
||||
P##0, P##1, ..., P##N-1
|
||||
</pre></div></pre>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>P </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Obsolete. Use <a class="el" href="enum__params_8hpp.html#a0">BOOST_PP_ENUM_PARAMS</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </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> </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 </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> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/enum_shifted_params.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_ENUM_SHIFTED_PARAMS</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
@ -50,13 +52,45 @@ In other words, expands to the sequence:
|
||||
P##1, P##2, ..., P##N-1
|
||||
</pre></div></pre>
|
||||
<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>
|
||||
RATIONALE:<ul>
|
||||
<li>This macro facilitates a typical usage of the library. Shifted parameter lists are common in template metaprograms. </ul>
|
||||
</td>
|
||||
</tr>
|
||||
</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">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>P </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </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> </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 </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> </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>
|
||||
<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>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
@ -53,7 +55,42 @@ In other words, expands to the sequence:
|
||||
P##0 = D, P##1 = D, ..., P##N-1 = D
|
||||
</pre></div></pre>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </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> </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 </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> </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>
|
||||
<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>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<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
|
||||
</pre></div></pre>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="equal_8hpp.html#a0">BOOST_PP_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="equal_8hpp.html#a1">BOOST_PREPROCESSOR_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/equal.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -7,48 +7,88 @@
|
||||
<center>
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </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>
|
||||
<li>BOOST_PREPROCESSOR_ADD
|
||||
: <a class="el" href="add_8hpp.html#a0">add.hpp</a><li>BOOST_PREPROCESSOR_AND
|
||||
: <a class="el" href="and_8hpp.html#a0">and.hpp</a><li>BOOST_PREPROCESSOR_ASSERT_MSG
|
||||
: <a class="el" href="assert__msg_8hpp.html#a0">assert_msg.hpp</a><li>BOOST_PREPROCESSOR_BOOL
|
||||
: <a class="el" href="bool_8hpp.html#a0">bool.hpp</a><li>BOOST_PREPROCESSOR_CAT
|
||||
: <a class="el" href="cat_8hpp.html#a0">cat.hpp</a><li>BOOST_PREPROCESSOR_COMMA
|
||||
: <a class="el" href="comma_8hpp.html#a0">comma.hpp</a><li>BOOST_PREPROCESSOR_COMMA_IF
|
||||
: <a class="el" href="comma__if_8hpp.html#a0">comma_if.hpp</a><li>BOOST_PREPROCESSOR_DEC
|
||||
: <a class="el" href="dec_8hpp.html#a0">dec.hpp</a><li>BOOST_PREPROCESSOR_DIV
|
||||
: <a class="el" href="div_8hpp.html#a0">div.hpp</a><li>BOOST_PREPROCESSOR_EMPTY
|
||||
: <a class="el" href="empty_8hpp.html#a0">empty.hpp</a><li>BOOST_PREPROCESSOR_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_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_defaults.htm#a0">enum_params_with_defaults.hpp</a><li>BOOST_PREPROCESSOR_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="equal_8hpp.html#a0">equal.hpp</a><li>BOOST_PREPROCESSOR_GREATER
|
||||
: <a class="el" href="greater_8hpp.html#a0">greater.hpp</a><li>BOOST_PREPROCESSOR_GREATER_EQUAL
|
||||
: <a class="el" href="greater__equal_8hpp.html#a0">greater_equal.hpp</a><li>BOOST_PREPROCESSOR_IDENTITY
|
||||
: <a class="el" href="identity_8hpp.html#a0">identity.hpp</a><li>BOOST_PREPROCESSOR_IF
|
||||
: <a class="el" href="if_8hpp.html#a0">if.hpp</a><li>BOOST_PREPROCESSOR_INC
|
||||
: <a class="el" href="inc_8hpp.html#a0">inc.hpp</a><li>BOOST_PREPROCESSOR_LESS
|
||||
: <a class="el" href="less_8hpp.html#a0">less.hpp</a><li>BOOST_PREPROCESSOR_LESS_EQUAL
|
||||
: <a class="el" href="less__equal_8hpp.html#a0">less_equal.hpp</a><li>BOOST_PREPROCESSOR_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#a1">limits.hpp</a><li>BOOST_PREPROCESSOR_LIMIT_TUPLE
|
||||
: <a class="el" href="limits_8hpp.html#a2">limits.hpp</a><li>BOOST_PREPROCESSOR_MAX
|
||||
: <a class="el" href="max_8hpp.html#a0">max.hpp</a><li>BOOST_PREPROCESSOR_MIN
|
||||
: <a class="el" href="min_8hpp.html#a0">min.hpp</a><li>BOOST_PREPROCESSOR_MOD
|
||||
: <a class="el" href="mod_8hpp.html#a0">mod.hpp</a><li>BOOST_PREPROCESSOR_MUL
|
||||
: <a class="el" href="mul_8hpp.html#a0">mul.hpp</a><li>BOOST_PREPROCESSOR_NOR
|
||||
: <a class="el" href="nor_8hpp.html#a0">nor.hpp</a><li>BOOST_PREPROCESSOR_NOT
|
||||
: <a class="el" href="not_8hpp.html#a0">not.hpp</a><li>BOOST_PREPROCESSOR_NOT_EQUAL
|
||||
: <a class="el" href="not__equal_8hpp.html#a0">not_equal.hpp</a><li>BOOST_PREPROCESSOR_OR
|
||||
: <a class="el" href="or_8hpp.html#a0">or.hpp</a><li>BOOST_PREPROCESSOR_REPEAT
|
||||
: <a class="el" href="repeat_8hpp.html#a0">repeat.hpp</a><li>BOOST_PREPROCESSOR_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__3rd_8hpp.html#a0">repeat_3rd.hpp</a><li>BOOST_PREPROCESSOR_STRINGIZE
|
||||
: <a class="el" href="stringize_8hpp.html#a0">stringize.hpp</a><li>BOOST_PREPROCESSOR_SUB
|
||||
: <a class="el" href="sub_8hpp.html#a0">sub.hpp</a><li>BOOST_PREPROCESSOR_TUPLE_ELEM
|
||||
: <a class="el" href="tuple_8hpp.html#a0">tuple.hpp</a><li>BOOST_PREPROCESSOR_WHILE
|
||||
: <a class="el" href="while_8hpp.html#a0">while.hpp</a><li>BOOST_PREPROCESSOR_XOR
|
||||
: <a class="el" href="xor_8hpp.html#a0">xor.hpp</a></ul>
|
||||
<li>BOOST_PP_ADD
|
||||
: <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_PP_ASSERT_MSG
|
||||
: <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_PP_CAT
|
||||
: <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_PP_COMMA_IF
|
||||
: <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_PP_DIV
|
||||
: <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_PP_ENUM_PARAMS
|
||||
: <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_PP_ENUM_PARAMS_WITH_DEFAULTS
|
||||
: <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_PP_EQUAL
|
||||
: <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_PP_GREATER_EQUAL
|
||||
: <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_PP_IF
|
||||
: <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_PP_LESS
|
||||
: <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_PP_LIMIT_DIM
|
||||
: <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_PP_LIMIT_TUPLE
|
||||
: <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_PP_MIN
|
||||
: <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_PP_MUL
|
||||
: <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_PP_NOT
|
||||
: <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_PP_OR
|
||||
: <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_PP_REPEAT_2ND
|
||||
: <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_PP_STRINGIZE
|
||||
: <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_PP_TUPLE_ELEM
|
||||
: <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_PP_XOR
|
||||
: <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>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="greater_8hpp.html#a0">BOOST_PP_GREATER</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="greater_8hpp.html#a1">BOOST_PREPROCESSOR_GREATER</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/greater.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X>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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X>Y and 0 otherwise.
|
||||
Obsolete. Use <a class="el" href="greater_8hpp.html#a0">BOOST_PP_GREATER</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="greater__equal_8hpp.html#a0">BOOST_PP_GREATER_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="greater__equal_8hpp.html#a1">BOOST_PREPROCESSOR_GREATER_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/greater_equal.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X>=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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X>=Y and 0 otherwise.
|
||||
Obsolete. Use <a class="el" href="greater__equal_8hpp.html#a0">BOOST_PP_GREATER_EQUAL</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,60 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>(X)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="identity_8hpp.html#a1">BOOST_PREPROCESSOR_IDENTITY</a>(X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/identity.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,24 +85,9 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to X once invoked.
|
||||
Obsolete. Use <a class="el" href="identity_8hpp.html#a0">BOOST_PP_IDENTITY</a>().
|
||||
<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.
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,51 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="if_8hpp.html#a0">BOOST_PP_IF</a>(C, T, E)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="if_8hpp.html#a1">BOOST_PREPROCESSOR_IF</a>(C, T, E)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/if.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -45,9 +82,9 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,49 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>(X)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="inc_8hpp.html#a1">BOOST_PREPROCESSOR_INC</a>(X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/inc.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,11 +74,9 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Increments X expanding to a single token.
|
||||
Obsolete. Use <a class="el" href="inc_8hpp.html#a0">BOOST_PP_INC</a>().
|
||||
<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.
|
||||
<p>
|
||||
Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are supported. </td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="less_8hpp.html#a0">BOOST_PP_LESS</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="less_8hpp.html#a1">BOOST_PREPROCESSOR_LESS</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/less.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X<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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X<Y and 0 otherwise.
|
||||
Obsolete. Use <a class="el" href="less_8hpp.html#a0">BOOST_PP_LESS</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="less__equal_8hpp.html#a0">BOOST_PP_LESS_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="less__equal_8hpp.html#a1">BOOST_PREPROCESSOR_LESS_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/less_equal.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X<=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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to 1 if X<=Y and 0 otherwise.
|
||||
Obsolete. Use <a class="el" href="less__equal_8hpp.html#a0">BOOST_PP_LESS_EQUAL</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,18 +8,100 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a0">BOOST_PP_LIMIT_DIM</a></td></tr>
|
||||
<tr><td> </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 </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a1">BOOST_PP_LIMIT_MAG</a></td></tr>
|
||||
<tr><td> </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 </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a2">BOOST_PP_LIMIT_TUPLE</a></td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a3">BOOST_PREPROCESSOR_LIMIT_DIM</a></td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a4">BOOST_PREPROCESSOR_LIMIT_MAG</a></td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="limits_8hpp.html#a5">BOOST_PREPROCESSOR_LIMIT_TUPLE</a></td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/limits.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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>
|
||||
|
||||
</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>
|
||||
|
||||
</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>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -38,12 +120,12 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the number of dimensions of repeat supported by the library.
|
||||
Obsolete. Use BOOST_PP_LIMIT_DIM.
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -62,14 +144,12 @@ Expands to the number of dimensions of repeat supported by the library.
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the maximum straight numeric literal supported by the library.
|
||||
Obsolete. Use BOOST_PP_LIMIT_MAG.
|
||||
<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>
|
||||
</tr>
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -88,7 +168,7 @@ NOTES:<ul>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the maximum tuple length supported by the library.
|
||||
Obsolete. Use BOOST_PP_LIMIT_TUPLE.
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -11,6 +11,8 @@
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
Includes all logical headers.
|
||||
<p>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="max_8hpp.html#a1">BOOST_PREPROCESSOR_MAX</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/max.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the maximum of X and Y.
|
||||
Obsolete. Use <a class="el" href="max_8hpp.html#a0">BOOST_PP_MAX</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="min_8hpp.html#a1">BOOST_PREPROCESSOR_MIN</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/min.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the minimum of X and Y.
|
||||
Obsolete. Use <a class="el" href="min_8hpp.html#a0">BOOST_PP_MIN</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="mod_8hpp.html#a1">BOOST_PREPROCESSOR_MOD</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic/mod.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the remainder of X and Y.
|
||||
Obsolete. Use <a class="el" href="mod_8hpp.html#a0">BOOST_PP_MOD</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="mul_8hpp.html#a1">BOOST_PREPROCESSOR_MUL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic/mul.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the product of X and Y.
|
||||
Obsolete. Use <a class="el" href="mul_8hpp.html#a0">BOOST_PP_MUL</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="nor_8hpp.html#a0">BOOST_PP_NOR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="nor_8hpp.html#a1">BOOST_PREPROCESSOR_NOR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/nor.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,45 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>(X)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="not_8hpp.html#a1">BOOST_PREPROCESSOR_NOT</a>(X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/not.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -39,7 +70,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the logical NOT of the operand.
|
||||
Obsolete. Use <a class="el" href="not_8hpp.html#a0">BOOST_PP_NOT</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="not__equal_8hpp.html#a0">BOOST_PP_NOT_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="not__equal_8hpp.html#a1">BOOST_PREPROCESSOR_NOT_EQUAL</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/comparison/not_equal.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="or_8hpp.html#a1">BOOST_PREPROCESSOR_OR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/or.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Expands to the logical OR of the operands.
|
||||
Obsolete. Use <a class="el" href="or_8hpp.html#a0">BOOST_PP_OR</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>(N, M, P)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="repeat_8hpp.html#a1">BOOST_PREPROCESSOR_REPEAT</a>(N, M, P)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/repeat.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_REPEAT</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">N, <tr>
|
||||
<td></td>
|
||||
@ -53,7 +55,42 @@ In other words, expands to the sequence:
|
||||
M(0,P) M(1,P) ... M(N-1,P)
|
||||
</pre></div></pre>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Obsolete. Use <a class="el" href="repeat_8hpp.html#a0">BOOST_PP_REPEAT</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,14 +8,51 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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> </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 nowrap align=right valign=top>#define </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> </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 </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> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/repeat_2nd.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -45,7 +82,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,51 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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> </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 nowrap align=right valign=top>#define </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> </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 </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> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/repeat_3rd.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -45,7 +82,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,20 +8,22 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>(E)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="stringize_8hpp.html#a1">BOOST_PREPROCESSOR_STRINGIZE</a>(E)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/stringize.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<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" nowrap valign="top"> #define BOOST_PP_STRINGIZE</td>
|
||||
<td class="md" valign="top">( </td>
|
||||
<td class="md" nowrap valign="top">E </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
@ -45,7 +47,7 @@ Example:
|
||||
<p>
|
||||
<pre><div class="fragment"><pre>
|
||||
#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!")
|
||||
</pre></div></pre>
|
||||
<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>
|
||||
<pre><div class="fragment"><pre>
|
||||
#pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!")
|
||||
</pre></div></pre> </td>
|
||||
</tr>
|
||||
</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">( </td>
|
||||
<td class="md" nowrap valign="top">E </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>
|
||||
Obsolete. Use <a class="el" href="stringize_8hpp.html#a0">BOOST_PP_STRINGIZE</a>().
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<p><EFBFBD> Copyright Housemarque Oy 2001</p>
|
||||
<p>Permission to copy, use, modify, sell and distribute this document is granted
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="sub_8hpp.html#a0">BOOST_PP_SUB</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="sub_8hpp.html#a1">BOOST_PREPROCESSOR_SUB</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/arithmetic/sub.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -8,14 +8,73 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="tuple_8hpp.html#a0">BOOST_PP_TUPLE_ELEM</a>(N, I, T)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="tuple_8hpp.html#a1">BOOST_PREPROCESSOR_TUPLE_ELEM</a>(N, I, T)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/tuple.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </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 </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -45,27 +104,9 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
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_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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
|
@ -8,20 +8,20 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="while_8hpp.html#a0">BOOST_PREPROCESSOR_WHILE</a>(C, F, X)</td></tr>
|
||||
<tr><td> </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 nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="while_8hpp.html#a0">BOOST_PP_WHILE</a>(C, F, X)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/while.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
<table cellpadding="0" cellspacing="0" border="0">
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">C, <tr>
|
||||
<td></td>
|
||||
@ -45,10 +45,84 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
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>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -8,14 +8,48 @@
|
||||
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="globals.html">File Members</a> </center>
|
||||
<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 nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="xor_8hpp.html#a0">BOOST_PP_XOR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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 </td><td valign=bottom><a class="el" href="xor_8hpp.html#a1">BOOST_PREPROCESSOR_XOR</a>(X, Y)</td></tr>
|
||||
<tr><td> </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>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<a href="../../../../boost/preprocessor/logical/xor.hpp">Click here to see the header.</a>
|
||||
<p>
|
||||
<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">( </td>
|
||||
<td class="md" nowrap valign="top">X, <tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="md" nowrap>Y </td>
|
||||
<td class="mdname1" valign="top" nowrap> </td>
|
||||
<td class="md" valign="top">) </td>
|
||||
<td class="md" nowrap>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellspacing=5 cellpadding=0 border=0>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</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">
|
||||
<tr>
|
||||
<td class="md">
|
||||
@ -42,7 +76,7 @@
|
||||
<td>
|
||||
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
215
doc/tutorial.htm
215
doc/tutorial.htm
@ -15,15 +15,15 @@
|
||||
<li><a href="#Techniques">Preprocessor Metaprogramming Techniques</a>
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="#CAT">Use BOOST_PREPROCESSOR_CAT instead of ## when necessary</a></li>
|
||||
<li><a href="#STRINGIZE">Use BOOST_PREPROCESSOR_STRINGIZE instead of # whenever necessary</a></li>
|
||||
<li><a href="#CAT">Use BOOST_PP_CAT instead of ## when 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="#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="#2ND_REPEAT">Use BOOST_PREPROCESSOR_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="#2ND_REPEAT">Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition</a></li>
|
||||
<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>
|
||||
</ul>
|
||||
@ -99,10 +99,10 @@ yes_type is_function_tester(R (*)(A0, A1, A2));
|
||||
|
||||
<blockquote>
|
||||
<pre>#define IS_FUNCTION_TESTER(N,_)\
|
||||
template<class R BOOST_PREPROCESSOR_COMMA_IF(N) BOOST_PREPROCESSOR_ENUM_PARAMS(N, class A)>\
|
||||
yes_type is_function_tester(R (*)(BOOST_PREPROCESSOR_ENUM_PARAMS(N,A)));
|
||||
template<class R BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class 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
|
||||
</pre>
|
||||
</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>
|
||||
|
||||
<blockquote>
|
||||
<pre>#define BOOST_PREPROCESSOR_DEF(OP)\
|
||||
template<class T, int n> \
|
||||
vec<T,n>& \
|
||||
operator OP##= \
|
||||
( vec<T,n>& \
|
||||
lhs \
|
||||
, const vec<T,n>& \
|
||||
rhs \
|
||||
) \
|
||||
{ for (int i=0; i<n; ++i) \
|
||||
lhs(i) OP##= rhs(i); \
|
||||
return lhs; \
|
||||
<pre>#define BOOST_PP_DEF(OP) \
|
||||
template<class T, int n> \
|
||||
vec<T,n>& \
|
||||
operator OP##= \
|
||||
( vec<T,n>& \
|
||||
lhs \
|
||||
, const vec<T,n>& \
|
||||
rhs \
|
||||
) \
|
||||
{ for (int i=0; i<n; ++i)\
|
||||
lhs(i) OP##= rhs(i); \
|
||||
return lhs; \
|
||||
}
|
||||
|
||||
BOOST_PREPROCESSOR_DEF(+)
|
||||
BOOST_PREPROCESSOR_DEF(-)
|
||||
BOOST_PREPROCESSOR_DEF(*)
|
||||
BOOST_PREPROCESSOR_DEF(/)
|
||||
#undef BOOST_PREPROCESSOR_DEF
|
||||
BOOST_PP_DEF(+)
|
||||
BOOST_PP_DEF(-)
|
||||
BOOST_PP_DEF(*)
|
||||
BOOST_PP_DEF(/)
|
||||
#undef BOOST_PP_DEF
|
||||
</pre>
|
||||
</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
|
||||
immediate site of its use.</P>
|
||||
<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>
|
||||
<HR>
|
||||
<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>
|
||||
<pre>#define BOOST_PREPROCESSOR_DEF(CV)\
|
||||
template<class base> \
|
||||
<pre>#define BOOST_PP_DEF(CV) \
|
||||
template<class base> \
|
||||
CV typename implement_subscript_using_begin_subscript<base>::value_type&\
|
||||
implement_subscript_using_begin_subscript<base>::operator[]\
|
||||
( index_type \
|
||||
i \
|
||||
) CV \
|
||||
{ return base::begin()[i]; \
|
||||
( index_type \
|
||||
i \
|
||||
) CV \
|
||||
{ return base::begin()[i];\
|
||||
}
|
||||
|
||||
BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY())
|
||||
BOOST_PREPROCESSOR_DEF(const)
|
||||
#undef BOOST_PREPROCESSOR_DEF
|
||||
BOOST_PP_DEF(BOOST_PP_EMPTY())
|
||||
BOOST_PP_DEF(const)
|
||||
#undef BOOST_PP_DEF
|
||||
</pre>
|
||||
</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>
|
||||
<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>
|
||||
<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
|
||||
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>
|
||||
<P><B>TIP:</B> Use syntax highlighting on preprocessor metaprogramming macro and
|
||||
parameter identifiers such as</P>
|
||||
<ul>
|
||||
<li> BOOST_PREPROCESSOR_DEF,</li>
|
||||
<li>BOOST_PREPROCESSOR_EMPTY,</li>
|
||||
<li> BOOST_PREPROCESSOR_REPEAT,</li>
|
||||
<li> BOOST_PP_DEF,</li>
|
||||
<li>BOOST_PP_EMPTY,</li>
|
||||
<li> BOOST_PP_REPEAT,</li>
|
||||
<li> OP,</li>
|
||||
<li> CV,</li>
|
||||
<li> ...</li>
|
||||
</ul>
|
||||
<p>It can greatly improve readability.</p>
|
||||
<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>
|
||||
<pre>#define STATIC_ASSERT(EXPR)\
|
||||
enum\
|
||||
{ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
|
||||
{ BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
|
||||
};\
|
||||
typedef char\
|
||||
BOOST_PREPROCESSOR_CAT(static_assert_,__LINE__)\
|
||||
[ BOOST_PREPROCESSOR_CAT(static_check_,__LINE__)\
|
||||
BOOST_PP_CAT(static_assert_,__LINE__)\
|
||||
[ BOOST_PP_CAT(static_check_,__LINE__)\
|
||||
]
|
||||
|
||||
// ...
|
||||
@ -215,10 +215,10 @@ STATIC_ASSERT(sizeof(int) <= sizeof(long));
|
||||
prevents the preprocessor from performing macro expansion, therefore it
|
||||
is often necessary to delay token concatenation.</P>
|
||||
<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>
|
||||
<pre>#define NOTE(STR)\
|
||||
message(__FILE__ "(" BOOST_PREPROCESSOR_STRINGIZE(__LINE__) ") : " STR)
|
||||
message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
|
||||
|
||||
// ...
|
||||
|
||||
@ -232,19 +232,19 @@ STATIC_ASSERT(sizeof(int) <= sizeof(long));
|
||||
<P><B><a name="ENUM_PARAMS"></a><a href="examples_preprocessed.htm#ENUM_PARAMS">EXAMPLE</a>:</B>
|
||||
Use:</P>
|
||||
<ul>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS,</li>
|
||||
<li> BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS, or</li>
|
||||
<li>BOOST_PREPROCESSOR_REPEAT, and</li>
|
||||
<li> BOOST_PREPROCESSOR_COMMA_IF</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS,</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT,</li>
|
||||
<li> BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS,</li>
|
||||
<li> BOOST_PP_ENUM_SHIFTED_PARAMS, or</li>
|
||||
<li>BOOST_PP_REPEAT, and</li>
|
||||
<li> BOOST_PP_COMMA_IF</li>
|
||||
</ul>
|
||||
<p>to avoid O(N) repetition on lists in general</p>
|
||||
<blockquote>
|
||||
<pre>struct make_type_list_end;
|
||||
|
||||
template
|
||||
< BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT
|
||||
< BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
|
||||
( MAKE_TYPE_LIST_MAX_LENGTH
|
||||
, class T
|
||||
, make_type_list_end
|
||||
@ -269,7 +269,7 @@ public:
|
||||
< end
|
||||
, type_identity<end>
|
||||
, make_type_list
|
||||
< BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS
|
||||
< BOOST_PP_ENUM_SHIFTED_PARAMS
|
||||
( MAKE_TYPE_LIST_MAX_LENGTH
|
||||
, T
|
||||
)
|
||||
@ -281,24 +281,24 @@ public:
|
||||
</pre>
|
||||
</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>
|
||||
<pre>#define BOOST_PREPROCESSOR_REPEAT(N,M,P) BOOST_PREPROCESSOR_REPEAT##N(M,P)
|
||||
#define BOOST_PREPROCESSOR_REPEAT0(M,P)
|
||||
#define BOOST_PREPROCESSOR_REPEAT1(M,P) M(0,P)
|
||||
#define BOOST_PREPROCESSOR_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_PREPROCESSOR_REPEAT4(M,P) BOOST_PREPROCESSOR_REPEAT3(M,P) M(3,P)
|
||||
<pre>#define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT##N(M,P)
|
||||
#define BOOST_PP_REPEAT0(M,P)
|
||||
#define BOOST_PP_REPEAT1(M,P) M(0,P)
|
||||
#define BOOST_PP_REPEAT2(M,P) M(0,P) M(1,P)
|
||||
#define BOOST_PP_REPEAT3(M,P) BOOST_PP_REPEAT2(M,P) M(2,P)
|
||||
#define BOOST_PP_REPEAT4(M,P) BOOST_PP_REPEAT3(M,P) M(3,P)
|
||||
// ...
|
||||
</pre>
|
||||
</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>
|
||||
|
||||
<HR>
|
||||
@ -318,7 +318,7 @@ enable user configuration of code repetition based on need rather than some
|
||||
code.</P>
|
||||
<HR>
|
||||
<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>
|
||||
|
||||
<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)\
|
||||
{ report_typeid(t);\
|
||||
report_value(t);\
|
||||
}
|
||||
BOOST_PREPROCESSOR_REPEAT
|
||||
BOOST_PP_REPEAT
|
||||
( ARITHMETIC_TYPE_CNT
|
||||
, BOOST_PREPROCESSOR_DEF
|
||||
, BOOST_PP_DEF
|
||||
, _
|
||||
)
|
||||
#undef BOOST_PREPROCESSOR_DEF
|
||||
#undef BOOST_PP_DEF
|
||||
|
||||
// ...
|
||||
</pre>
|
||||
@ -363,7 +363,7 @@ categorical repetition of operator tokens can not be completely eliminated by
|
||||
using template metaprogramming.</P>
|
||||
<HR>
|
||||
<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>
|
||||
<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 DEF_VEC_CTOR_FUN(I,_)\
|
||||
vec( BOOST_PREPROCESSOR_REPEAT(I,ARG_FUN,_) )\
|
||||
{ BOOST_PREPROCESSOR_REPEAT(I,ASSIGN_FUN,_)\
|
||||
vec( BOOST_PP_REPEAT(I,ARG_FUN,_) )\
|
||||
{ BOOST_PP_REPEAT(I,ASSIGN_FUN,_)\
|
||||
}
|
||||
|
||||
BOOST_PREPROCESSOR_REPEAT_2ND
|
||||
( BOOST_PREPROCESSOR_INC(MAX_VEC_ARG_CNT)
|
||||
BOOST_PP_REPEAT_2ND
|
||||
( BOOST_PP_INC(MAX_VEC_ARG_CNT)
|
||||
, DEF_VEC_CTOR_FUN
|
||||
, _
|
||||
)
|
||||
@ -395,46 +395,47 @@ BOOST_PREPROCESSOR_REPEAT_2ND
|
||||
</blockquote>
|
||||
|
||||
|
||||
<P><B>HOW:</B> BOOST_PREPROCESSOR_REPEAT_2ND is implemented separately, so it
|
||||
is possible to combine BOOST_PREPROCESSOR_REPEAT and BOOST_PREPROCESSOR_REPEAT_2ND.</P>
|
||||
<P><B>HOW:</B> BOOST_PP_REPEAT_2ND is implemented separately, so it
|
||||
is possible to combine BOOST_PP_REPEAT and BOOST_PP_REPEAT_2ND.</P>
|
||||
<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>
|
||||
<pre>#define BOOST_PREPROCESSOR_COMMA_IF(C)\
|
||||
BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)()
|
||||
<pre>#define BOOST_PP_COMMA_IF(C)\
|
||||
BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
|
||||
|
||||
BOOST_PREPROCESSOR_IF(0,true,false) == false;
|
||||
BOOST_PREPROCESSOR_IF(1,true,false) == true;
|
||||
BOOST_PP_IF(0,true,false) == false;
|
||||
BOOST_PP_IF(1,true,false) == true;
|
||||
</pre>
|
||||
</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
|
||||
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
|
||||
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>
|
||||
<blockquote>
|
||||
<pre>#define NUMBERED_EXPRESSION(I,X) \
|
||||
BOOST_PREPROCESSOR_IF \
|
||||
( I \
|
||||
, BOOST_PREPROCESSOR_IDENTITY(X##I)\
|
||||
, BOOST_PREPROCESSOR_EMPTY \
|
||||
)()</pre></blockquote>
|
||||
<pre>#define NUMBERED_EXPRESSION(I,X)\
|
||||
BOOST_PP_IF \
|
||||
( I \
|
||||
, BOOST_PP_IDENTITY(X##I) \
|
||||
, BOOST_PP_EMPTY \
|
||||
)()</pre>
|
||||
</blockquote>
|
||||
<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
|
||||
invoked, the code would not expand correctly, because the EMPTY parameter would
|
||||
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>
|
||||
<blockquote>
|
||||
<pre>#define BOOST_PREPROCESSOR_IF(C,THEN,ELSE) BOOST_PREPROCESSOR_IF##C(THEN,ELSE)
|
||||
#define BOOST_PREPROCESSOR_IF0(THEN,ELSE) ELSE
|
||||
#define BOOST_PREPROCESSOR_IF1(THEN,ELSE) THEN
|
||||
#define BOOST_PREPROCESSOR_IF2(THEN,ELSE) THEN
|
||||
<pre>#define BOOST_PP_IF(C,THEN,ELSE) BOOST_PP_IF##C(THEN,ELSE)
|
||||
#define BOOST_PP_IF0(THEN,ELSE) ELSE
|
||||
#define BOOST_PP_IF1(THEN,ELSE) THEN
|
||||
#define BOOST_PP_IF2(THEN,ELSE) THEN
|
||||
// ...
|
||||
</pre>
|
||||
</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>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
|
||||
at a desired position. For example: E0, E1, S, E2. Consider the following example:</p>
|
||||
|
||||
<blockquote>
|
||||
<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_PREPROCESSOR_ENUM_PARAMS(I,ELEM)\
|
||||
BOOST_PREPROCESSOR_COMMA_IF(I) SPECIAL\
|
||||
BOOST_PREPROCESSOR_REPEAT(BOOST_PREPROCESSOR_SUB(\
|
||||
BOOST_PREPROCESSOR_DEC(N),I),SPECIAL_NUMBERED_LIST_HELPER,(ELEM,I))
|
||||
BOOST_PP_ASSERT_MSG(BOOST_PP_LESS(I,N),BAD PARAMS FOR SPECIAL_NUMBERED_LIST!)\
|
||||
BOOST_PP_ENUM_PARAMS(I,ELEM)\
|
||||
BOOST_PP_COMMA_IF(I) SPECIAL\
|
||||
BOOST_PP_REPEAT(BOOST_PP_SUB(\
|
||||
BOOST_PP_DEC(N),I),SPECIAL_NUMBERED_LIST_HELPER,(ELEM,I))
|
||||
#define SPECIAL_NUMBERED_LIST_HELPER(I,ELEM_BASE)\
|
||||
,\
|
||||
BOOST_PREPROCESSOR_CAT\
|
||||
( BOOST_PREPROCESSOR_TUPLE_ELEM(2,0,ELEM_BASE)\
|
||||
, BOOST_PREPROCESSOR_ADD\
|
||||
BOOST_PP_CAT\
|
||||
( BOOST_PP_TUPLE_ELEM(2,0,ELEM_BASE)\
|
||||
, BOOST_PP_ADD\
|
||||
( I\
|
||||
, BOOST_PREPROCESSOR_TUPLE_ELEM(2,1,ELEM_BASE)\
|
||||
, BOOST_PP_TUPLE_ELEM(2,1,ELEM_BASE)\
|
||||
)\
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user