Updated limitations docs.

This commit is contained in:
Edward Diener
2020-09-14 18:26:49 -04:00
parent ae836b12e4
commit 8288ce7575
8 changed files with 151 additions and 52 deletions

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_FOR</title> <title>BOOST_PP_LIMIT_FOR</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
@ -12,15 +12,24 @@
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_FOR</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_FOR</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div>This macro expands by default to <i>256</i>. The end-user can <div>This macro expands by default to <i>256</i>. For a C++
change this to 512 or 1024 by defining this macro to either value standard conforming preprocessor, the end-user can change this to
before including any library headers, as long as the end-user also 512 or 1024 by defining this macro to either value before
including any library headers, as long as the end-user also
defines the <a defines the <a
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a> href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
macro to be equal to or greater than this value.</div> macro to be equal to or greater than this value.</div>
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_ITERATION</title> <title>BOOST_PP_LIMIT_ITERATION</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
@ -13,15 +13,24 @@
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_ITERATION</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_ITERATION</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div> This macro expands by default to <i>256</i>. The end-user can <div> This macro expands by default to <i>256</i>. For a C++
change this to 512 or 1024 by defining this macro to either value standard conforming preprocessor, the end-user can change this to
before including any library headers, as long as the end-user also 512 or 1024 by defining this macro to either value before
including any library headers, as long as the end-user also
defines the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a> defines the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
macro to be equal to or greater than this value. <br> macro to be equal to or greater than this value. <br>
</div> </div>
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_MAG</title> <title>BOOST_PP_LIMIT_MAG</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
@ -12,12 +12,21 @@
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_MAG</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_MAG</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div> This macro expands by default to <i>256</i>. The end-user can <div> This macro expands by default to <i>256</i>. For a C++
change this to 512 or 1024 by defining this macro to either value standard conforming preprocessor, the end-user can change this to
before including any library headers.</div> 512 or 1024 by defining this macro to either value before
including any library headers.</div>
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,4 +1,4 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta content="text/html; charset=windows-1252" <meta content="text/html; charset=windows-1252"
@ -13,9 +13,10 @@
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_REPEAT</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_REPEAT</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div>This macro expands by default to <i>256</i>. The end-user can <div>This macro expands by default to <i>256</i>. For a C++
change this to 512 or 1024 by defining this macro to either value standard conforming preprocessor, the end-user can change this to
before including any library headers, as long as the end-user also 512 or 1024 by defining this macro to either value before
including any library headers, as long as the end-user also
defines the <a defines the <a
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a> href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
macro to be equal to or greater than this value. <br> macro to be equal to or greater than this value. <br>
@ -38,6 +39,14 @@ href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_SEQ</title> <title>BOOST_PP_LIMIT_SEQ</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
@ -12,14 +12,23 @@
<h4> Usage </h4> <h4> Usage </h4>
<div class="code"> <b>BOOST_PP_LIMIT_SEQ</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_SEQ</b> </div>
<h4> Remarks </h4> <h4> Remarks </h4>
<div>This macro expands by default to 256. The macro actually <div>This macro expands by default to 256. For a C++ standard
expands to the value of the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a> conforming preprocessor, the macro actually expands to the value
of the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
macro, but can be set to a lower value than BOOST_PP_LIMIT_MAG if macro, but can be set to a lower value than BOOST_PP_LIMIT_MAG if
desired, but never to a higher value.<br> desired, but never to a higher value.<br>
</div> </div>
<h4> Requirements </h4> <h4> Requirements </h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_TUPLE</title> <title>BOOST_PP_LIMIT_TUPLE</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
@ -13,16 +13,25 @@
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_TUPLE</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_TUPLE</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div> This macro expands by default to <i>64</i>. The end-user can <div> This macro expands by default to <i>64</i>. For a C++
change this to 128 or 256 by defining this macro to either value standard conforming preprocessor, the end-user can change this to
before including any library headers. If the end-user changes the 128 or 256 by defining this macro to either value before including
value of the macro the <a href="../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a> any library headers. If the end-user changes the value of the
macro the <a href="../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a>
macro is changed to the same value unless the end-user has changed macro is changed to the same value unless the end-user has changed
BOOST_PP_LIMIT_VARIADIC to a higher value.<br> BOOST_PP_LIMIT_VARIADIC to a higher value.<br>
</div> </div>
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a <div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
href="http://www.housemarque.com" target="_top">Housemarque Oy</a> href="http://www.housemarque.com" target="_top">Housemarque Oy</a>

View File

@ -1,35 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="content-type" content="text/html;
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> charset=windows-1252">
<title>BOOST_PP_LIMIT_VARIADIC</title> <title>BOOST_PP_LIMIT_VARIADIC</title>
<link rel="stylesheet" type="text/css" href="../styles.css"> <link rel="stylesheet" type="text/css" href="../styles.css">
</head> </head>
<body> <body>
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b> <div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b>
macro macro defines the maximum <i>variadic data</i>
defines the maximum <i>variadic data</i> size&nbsp;supported by size&nbsp;supported by the library. </div>
the library. </div>
<h4>Usage</h4> <h4>Usage</h4>
<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div> <div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
<h4>Remarks</h4> <h4>Remarks</h4>
<div>This macro expands by default to <i>64</i>. The end-user can <div>This macro expands by default to <i>64</i>. For a C++ standard
change this to 128 or 256 by defining this macro to either value conforming preprocessor, the end-user can change this to 128 or
before including any library headers. This value can never be less 256 by defining this macro to either value before including any
than the value of <a href="../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a>.<br> library headers. This value can never be less than the value of <a
href="../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a>.<br>
</div> </div>
<h4>Requirements</h4> <h4>Requirements</h4>
<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a> <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
</div> </div>
<b>See also<br>
</b>
<ul>
<li><a href="../topics/limitations.html">Limitations</a></li>
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
</li>
</ul>
<br>
<hr size="1"> <hr size="1">
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener <div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011</i>
2011</i> </div> </div>
<div style="margin-left: 0px;"> <div style="margin-left: 0px;">
<p><small>Distributed under the Boost Software License, Version <p><small>Distributed under the Boost Software License, Version
1.0. 1.0. (See accompanying file <a
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p> copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -44,8 +44,9 @@
</p> </p>
<p>This situation has now changed and a number of the limitation <p>This situation has now changed and a number of the limitation
macros specified in config/limits.hpp are now used internally in macros specified in config/limits.hpp are now used internally in
the library code. This topic is therefore about how an end-user the library code when the preprocessor is C++ standard
can change the limitations of the library.<br> conforming. This topic is therefore about how an end-user can
change the limitations of the library.<br>
</p> </p>
</blockquote> </blockquote>
<h4>Type of limitations</h4> <h4>Type of limitations</h4>
@ -153,7 +154,9 @@
standard conforming preprocessor. If you change a limitation standard conforming preprocessor. If you change a limitation
for a compiler that is not a C++ standard conforming for a compiler that is not a C++ standard conforming
preprocessor the change is simply ignored and no preprocessor preprocessor the change is simply ignored and no preprocessor
error will occur.<br> error will occur. This is because any non-conforming
preprocessor does not actually include or use the macros in
the config/limits.hpp file.<br>
</li> </li>
<li>WARNING ! WARNING ! WARNING ! Increasing limitations may <li>WARNING ! WARNING ! WARNING ! Increasing limitations may
mean that preprocessors may fail because the compiler itself mean that preprocessors may fail because the compiler itself
@ -252,6 +255,40 @@
original&nbsp; maximum.<br> original&nbsp; maximum.<br>
</p> </p>
</blockquote> </blockquote>
<h4>Testing limitations</h4>
<blockquote>
<p>The default testing of the preprocessor library, using Boost
Build's b2 command in the preprocessor test directory, only
tests the default limitations. If you want to test, within the
test directory, any of the non-default limitations which may be
set, you can do so by invoking the b2 command with any of these
explicit targets:<br>
</p>
<ul>
<li>preprocessor_128 : arrays, tuples, and variadics with up to
128 elements</li>
<li>preprocessor_256 : arrays, tuples, and variadics with up to
256 elements</li>
<li>preprocessor_512 : numbers, lists, seqs, looping, and
iteration constructs with 512 maximum</li>
<li>preprocessor_1024 : numbers, lists, seqs, looping, and
iteration constructs with 1024 maximum</li>
<li>preprocessor_tup : both the first and second items in this
list</li>
<li>preprocessor_num : both the third and fourth items in this
list</li>
<li>preprocessor_limits : all preprocessor limitations</li>
</ul>
If you invoke b2 with the last preprocessor_limits target your
testing may take awhile for your compiler. When you choose one of
the above targets, as in <code>'b2 preprocessor_limits'</code>,
the default tests are not run. If you want the default tests run,
along with any of the targets such as preprocessor_limits, your
command would be <code>'b2 . preprocessor_limits'</code>, where
the '.' notation means all the non-explicit ( aka default )
targets.<br>
</blockquote>
<blockquote> </blockquote>
<blockquote> <blockquote>
<ul> <ul>
</ul> </ul>