extended array support

[SVN r15747]
This commit is contained in:
Paul Mensonides
2002-10-06 02:37:37 +00:00
parent 3807daaf45
commit b2bd498a4f
24 changed files with 770 additions and 0 deletions

View File

@ -25,6 +25,14 @@
<li>array/</li> <li>array/</li>
<li class="ps"><a href="headers/array/data.hpp.html">data.hpp</a></li> <li class="ps"><a href="headers/array/data.hpp.html">data.hpp</a></li>
<li class="ps"><a href="headers/array/elem.hpp.html">elem.hpp</a></li> <li class="ps"><a href="headers/array/elem.hpp.html">elem.hpp</a></li>
<li class="ps"><a href="headers/array/insert.hpp.html">insert.hpp</a></li>
<li class="ps"><a href="headers/array/pop_back.hpp.html">pop_back.hpp</a></li>
<li class="ps"><a href="headers/array/pop_front.hpp.html">pop_front.hpp</a></li>
<li class="ps"><a href="headers/array/push_back.hpp.html">push_back.hpp</a></li>
<li class="ps"><a href="headers/array/push_front.hpp.html">push_front.hpp</a></li>
<li class="ps"><a href="headers/array/remove.hpp.html">remove.hpp</a></li>
<li class="ps"><a href="headers/array/replace.hpp.html">replace.hpp</a></li>
<li class="ps"><a href="headers/array/reverse.hpp.html">reverse.hpp</a></li>
<li class="ps"><a href="headers/array/size.hpp.html">size.hpp</a></li> <li class="ps"><a href="headers/array/size.hpp.html">size.hpp</a></li>
<li><a href="headers/assert_msg.hpp.html">assert_msg.hpp*</a></li> <li><a href="headers/assert_msg.hpp.html">assert_msg.hpp*</a></li>
<li><a href="headers/cat.hpp.html">cat.hpp</a></li> <li><a href="headers/cat.hpp.html">cat.hpp</a></li>

View File

@ -15,6 +15,14 @@
<ul> <ul>
<li><a href="array/data.hpp.html">&lt;boost/preprocessor/array/data.hpp&gt;</a></li> <li><a href="array/data.hpp.html">&lt;boost/preprocessor/array/data.hpp&gt;</a></li>
<li><a href="array/elem.hpp.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a></li> <li><a href="array/elem.hpp.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a></li>
<li><a href="array/insert.hpp.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a></li>
<li><a href="array/pop_back.hpp.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a></li>
<li><a href="array/pop_front.hpp.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a></li>
<li><a href="array/push_back.hpp.html">&lt;boost/preprocessor/array/push_back.hpp&gt;</a></li>
<li><a href="array/push_front.hpp.html">&lt;boost/preprocessor/array/push_front.hpp&gt;</a></li>
<li><a href="array/remove.hpp.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a></li>
<li><a href="array/replace.hpp.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a></li>
<li><a href="array/reverse.hpp.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a></li>
<li><a href="array/size.hpp.html">&lt;boost/preprocessor/array/size.hpp&gt;</a></li> <li><a href="array/size.hpp.html">&lt;boost/preprocessor/array/size.hpp&gt;</a></li>
</ul> </ul>
</body> </body>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>array/insert.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/insert.hpp</b> header defines macros to insert an element into an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/insert.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_insert.html">BOOST_PP_ARRAY_INSERT</a></li>
<li><a href="../../ref/array_insert_d.html">BOOST_PP_ARRAY_INSERT_D</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>array/pop_back.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/pop_back.hpp</b> header defines macros to pop an element from the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/pop_back.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a></li>
<li><a href="../../ref/array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>array/pop_front.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/pop_front.hpp</b> header defines macros to pop an element from the beginning of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/pop_front.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a></li>
<li><a href="../../ref/array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,19 @@
<html>
<head>
<title>array/push_back.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/push_back.hpp</b> header defines a macro to append an element to the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/push_back.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_push_back.html">BOOST_PP_ARRAY_PUSH_BACK</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,19 @@
<html>
<head>
<title>array/push_front.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/push_front.hpp</b> header defines a macro to append an element to the beginning of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/push_front.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_push_front.html">BOOST_PP_ARRAY_PUSH_FRONT</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>array/remove.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/remove.hpp</b> header defines macros to remove an element from an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/remove.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_remove.html">BOOST_PP_ARRAY_REMOVE</a></li>
<li><a href="../../ref/array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,20 @@
<html>
<head>
<title>array/replace.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/replace.hpp</b> header defines macros to replace an element in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/replace.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_replace.html">BOOST_PP_ARRAY_REPLACE</a></li>
<li><a href="../../ref/array_replace_d.html">BOOST_PP_ARRAY_REPLACE_D</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,19 @@
<html>
<head>
<title>array/reverse.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/reverse.hpp</b> header defines macros to reverse the elements in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/reverse.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_reverse.html">BOOST_PP_ARRAY_REVERSE</a></li>
</ul>
</body>
</html>

View File

@ -14,6 +14,19 @@
<li><a href="ref/apply.html">APPLY</a></li> <li><a href="ref/apply.html">APPLY</a></li>
<li><a href="ref/array_data.html">ARRAY_DATA</a></li> <li><a href="ref/array_data.html">ARRAY_DATA</a></li>
<li><a href="ref/array_elem.html">ARRAY_ELEM</a></li> <li><a href="ref/array_elem.html">ARRAY_ELEM</a></li>
<li><a href="ref/array_insert.html">ARRAY_INSERT</a></li>
<li><a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
<li><a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
<li><a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
<li><a href="ref/array_pop_front.html">ARRAY_POP_FRONT</a></li>
<li><a href="ref/array_pop_front_z.html">ARRAY_POP_FRONT_Z</a></li>
<li><a href="ref/array_push_back.html">ARRAY_PUSH_BACK</a></li>
<li><a href="ref/array_push_front.html">ARRAY_PUSH_FRONT</a></li>
<li><a href="ref/array_remove.html">ARRAY_REMOVE</a></li>
<li><a href="ref/array_remove_d.html">ARRAY_REMOVE_D</a></li>
<li><a href="ref/array_replace.html">ARRAY_REPLACE</a></li>
<li><a href="ref/array_replace_d.html">ARRAY_REPLACE_D</a></li>
<li><a href="ref/array_reverse.html">ARRAY_REVERSE</a></li>
<li><a href="ref/array_size.html">ARRAY_SIZE</a></li> <li><a href="ref/array_size.html">ARRAY_SIZE</a></li>
<li><a href="ref/assert.html">ASSERT</a></li> <li><a href="ref/assert.html">ASSERT</a></li>
<li><a href="ref/assert_msg.html">ASSERT_MSG</a></li> <li><a href="ref/assert_msg.html">ASSERT_MSG</a></li>

60
doc/ref/array_insert.html Normal file
View File

@ -0,0 +1,60 @@
<html>
<head>
<title>BOOST_PP_ARRAY_INSERT</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_INSERT</b> macro inserts an element into an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_INSERT</b>(<i>array</i>, <i>i</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> into which an element is to be inserted.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> where an element is to be inserted.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>).
</dd>
<dt>elem</dt>
<dd>
The element to insert.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro inserts <i>elem</i> before the element at index <i>i</i>.
</div>
<div>
If the operation attempts to create an <i>array</i> that is larger than <b>BOOST_PP_LIMIT_TUPLE</b>,
the result is undefined.
</div>
<div>
This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
see <b>BOOST_PP_ARRAY_INSERT_D</b>.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_insert_d.html">BOOST_PP_ARRAY_INSERT_D</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/insert.hpp.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/insert.hpp.html">boost/preprocessor/array/insert.hpp</a>&gt;
#define ARRAY (3, (a, b, d))
<a href="array_insert.html">BOOST_PP_ARRAY_INSERT</a>(ARRAY, 2, c) // expands to (4, (a, b, c, d))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,52 @@
<html>
<head>
<title>BOOST_PP_ARRAY_INSERT_D</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_INSERT_D</b> macro inserts an element into an <i>array</i>.&nbsp;
It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_INSERT_D</b>(<i>d</i>, <i>array</i>, <i>i</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>d</dt>
<dd>
The next available <b>BOOST_PP_WHILE</b> iteration.
</dd>
<dt>array</dt>
<dd>
The <i>array</i> into which an element is to be inserted.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> where an element is to be inserted.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>).
</dd>
<dt>elem</dt>
<dd>
The element to insert.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro inserts <i>elem</i> before the element at index <i>i</i>.
</div>
<div>
If the operation attempts to create an <i>array</i> that is larger than <b>BOOST_PP_LIMIT_TUPLE</b>,
the result is undefined.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_insert.html">BOOST_PP_ARRAY_INSERT</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/insert.hpp.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -0,0 +1,48 @@
<html>
<head>
<title>BOOST_PP_ARRAY_POP_BACK</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_POP_BACK</b> macro pops an element from the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_POP_BACK</b>(<i>array</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> to pop an element from.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro returns <i>array</i> after removing the last element.&nbsp;
If <i>array</i> has no elements, the result of applying this macro is undefined.
</div>
<div>
This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp;
Therefore, to use the <i>z</i> parameter passed from other macros that use
<b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ARRAY_POP_BACK_Z</b>
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/pop_back.hpp.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/pop_back.hpp.html">boost/preprocessor/array/pop_back.hpp</a>&gt;
#define ARRAY (3, (a, b, c))
<a href="array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a>(ARRAY) // expands to (2, (a, b))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,40 @@
<html>
<head>
<title>BOOST_PP_ARRAY_POP_BACK_Z</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_POP_BACK_Z</b> macro pops an element from the end of an <i>array</i>.&nbsp;
It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_POP_BACK_Z</b>(<i>z</i>, <i>array</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>z</dt>
<dd>
The next available <b>BOOST_PP_REPEAT</b> dimension.
</dd>
<dt>array</dt>
<dd>
The <i>array</i> to pop an element from.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro returns <i>array</i> after removing the last element.&nbsp;
If <i>array</i> has no elements, the result of applying this macro is undefined.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/pop_back.hpp.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -0,0 +1,48 @@
<html>
<head>
<title>BOOST_PP_ARRAY_POP_FRONT</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_POP_FRONT</b> macro pops an element from the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_POP_FRONT</b>(<i>array</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> to pop an element from.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro returns <i>array</i> after removing the first element.&nbsp;
If <i>array</i> has no elements, the result of applying this macro is undefined.
</div>
<div>
This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp;
Therefore, to use the <i>z</i> parameter passed from other macros that use
<b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ARRAY_POP_FRONT_Z</b>
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/pop_front.hpp.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/pop_front.hpp.html">boost/preprocessor/array/pop_front.hpp</a>&gt;
#define ARRAY (3, (a, b, c))
<a href="array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a>(ARRAY) // expands to (2, (b, c))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,40 @@
<html>
<head>
<title>BOOST_PP_ARRAY_POP_FRONT_Z</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_POP_FRONT_Z</b> macro pops an element from the beginning of an <i>array</i>.&nbsp;
It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_POP_FRONT_Z</b>(<i>z</i>, <i>array</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>z</dt>
<dd>
The next available <b>BOOST_PP_REPEAT</b> dimension.
</dd>
<dt>array</dt>
<dd>
The <i>array</i> to pop an element from.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro returns <i>array</i> after removing the first element.&nbsp;
If <i>array</i> has no elements, the result of applying this macro is undefined.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/pop_front.hpp.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -0,0 +1,38 @@
<html>
<head>
<title>BOOST_PP_ARRAY_PUSH_BACK</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_PUSH_BACK</b> macro appends an element to the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_PUSH_BACK</b>(<i>array</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> to append an element to.
</dd>
<dt>elem</dt>
<dd>
The element to append.
</dd>
</dl>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/push_back.hpp.html">&lt;boost/preprocessor/array/push_back.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/push_back.hpp.html">boost/preprocessor/array/push_back.hpp</a>&gt;
#define ARRAY (3, (a, b, c))
<a href="array_push_back.html">BOOST_PP_ARRAY_PUSH_BACK</a>(ARRAY, d) // expands to (4, (a, b, c, d))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,38 @@
<html>
<head>
<title>BOOST_PP_ARRAY_PUSH_FRONT</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_PUSH_FRONT</b> macro appends an element to the beginning of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_PUSH_FRONT</b>(<i>array</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> to append an element to.
</dd>
<dt>elem</dt>
<dd>
The element to append.
</dd>
</dl>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/push_front.hpp.html">&lt;boost/preprocessor/array/push_front.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/push_front.hpp.html">boost/preprocessor/array/push_front.hpp</a>&gt;
#define ARRAY (3, (b, c, d))
<a href="array_push_front.html">BOOST_PP_ARRAY_PUSH_FRONT</a>(ARRAY, a) // expands to (4, (a, b, c, d))
</pre></div>
</body>
</html>

49
doc/ref/array_remove.html Normal file
View File

@ -0,0 +1,49 @@
<html>
<head>
<title>BOOST_PP_ARRAY_REMOVE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_REMOVE</b> macro removes an element from an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_REMOVE</b>(<i>array</i>, <i>i</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> from which an element is to be removed.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> of the element to be removed.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
see <b>BOOST_PP_ARRAY_REMOVE_D</b>.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/remove.hpp.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/remove.hpp.html">boost/preprocessor/array/remove.hpp</a>&gt;
#define ARRAY (3, (a, b, d))
<a href="array_remove.html">BOOST_PP_ARRAY_REMOVE</a>(ARRAY, 2) // expands to (2, (a, b))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,40 @@
<html>
<head>
<title>BOOST_PP_ARRAY_REMOVE_D</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_REMOVE_D</b> macro removes an element from an <i>array</i>.&nbsp;
It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_REMOVE_D</b>(<i>d</i>, <i>array</i>, <i>i</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>d</dt>
<dd>
The next available <b>BOOST_PP_WHILE</b> iteration.
</dd>
<dt>array</dt>
<dd>
The <i>array</i> from which an element is to be removed.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> of the element to be removed.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
</dd>
</dl>
<h4>See Also</h4>
<ul>
<li><a href="array_remove.html">BOOST_PP_ARRAY_REMOVE</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/remove.hpp.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -0,0 +1,53 @@
<html>
<head>
<title>BOOST_PP_ARRAY_REPLACE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_REPLACE</b> macro replaces an element in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_REPLACE</b>(<i>array</i>, <i>i</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
An <i>array</i> to replace an element in.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> of the element to be replaced.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
</dd>
<dt>elem</dt>
<dd>
The replacement element.
</dd>
</dl>
<h4>Remarks</h4>
<div>
This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
see <b>BOOST_PP_ARRAY_REPLACE_D</b>.
</div>
<h4>See Also</h4>
<ul>
<li><a href="array_replace_d.html">BOOST_PP_ARRAY_REPLACE_D</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/replace.hpp.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/replace.hpp.html">boost/preprocessor/array/replace.hpp</a>&gt;
#define ARRAY (3, (a, x, c))
<a href="array_replace.html">BOOST_PP_ARRAY_REPLACE</a>(ARRAY, 1, b) // expands to (3, (a, b, c))
</pre></div>
</body>
</html>

View File

@ -0,0 +1,44 @@
<html>
<head>
<title>BOOST_PP_ARRAY_REPLACE_D</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_REPLACE_D</b> macro replaces an element in an <i>array</i>.&nbsp;
It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_REPLACE_D</b>(<i>d</i>, <i>array</i>, <i>i</i>, <i>elem</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>d</dt>
<dd>
The next available <b>BOOST_PP_WHILE</b> iteration.
</dd>
<dt>array</dt>
<dd>
An <i>array</i> to replace an element in.
</dd>
<dt>i</dt>
<dd>
The zero-based position in <i>array</i> of the element to be replaced.&nbsp;
Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
</dd>
<dt>elem</dt>
<dd>
The replacement element.
</dd>
</dl>
<h4>See Also</h4>
<ul>
<li><a href="array_replace.html">BOOST_PP_ARRAY_REPLACE</a></li>
</ul>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/replace.hpp.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a>
</div>
</body>
</html>

View File

@ -0,0 +1,34 @@
<html>
<head>
<title>BOOST_PP_ARRAY_REVERSE</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>BOOST_PP_ARRAY_REVERSE</b> macro reverses the elements in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
<b>BOOST_PP_ARRAY_REVERSE</b>(<i>array</i>)
</div>
<h4>Arguments</h4>
<dl>
<dt>array</dt>
<dd>
The <i>array</i> whose elements are to be reversed.
</dd>
</dl>
<h4>Requirements</h4>
<div>
<b>Header:</b> &nbsp;<a href="../headers/array/reverse.hpp.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a>
</div>
<h4>Sample Code</h4>
<div><pre>
#include &lt;<a href="../headers/array/reverse.hpp.html">boost/preprocessor/array/reverse.hpp</a>&gt;
#define ARRAY (3, (a, b, c))
<a href="array_reverse.html">BOOST_PP_ARRAY_REVERSE</a>(ARRAY) // expands to (3, (c, b, a))
</pre></div>
</body>
</html>