]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <html> |
2 | <head> | |
3 | <meta content="text/html; charset=windows-1252" http-equiv="content-type"> | |
4 | <title>arrays.html</title> | |
5 | <link rel="stylesheet" type="text/css" href="../styles.css"> | |
6 | </head> | |
7 | <body> | |
8 | <h4>Arrays</h4> | |
9 | <div> An <i>array</i> is a data structure consisting of a two-element <i>tuple</i>. | |
10 | The first element is the number of elements in the <i>array</i>. | |
11 | The second element is another <i>tuple</i> of the elements in the <i>array</i>. | |
12 | For example, </div> | |
13 | <div class="code"> (<i>3</i>, (<i>a</i>, <i>b</i>, <i>c</i>)) </div> | |
14 | <div> ...is an <i>array</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and | |
15 | <i>c</i>. </div> | |
16 | <div> The primary strength of <i>arrays</i> is that they store their own | |
17 | size. Because of this, access to elements does not require the | |
18 | size. It only requires that an element exists at a certain index. </div> | |
19 | <div> This allows macro parameters to be variable in size and allows data | |
20 | states to change size without the user explicitly keeping track of the | |
21 | size independently.<br> | |
22 | <br> | |
23 | An <i>array </i>can be empty and have no elements. An empty array has a | |
24 | 0 size. The notation for an empty array is '(0,())'.<br> | |
25 | <br> | |
26 | <span style="font-style: italic;"> </span></div> | |
27 | <div>With variadic macro support a <i>tuple </i>has all of the | |
28 | functionality as an <i>array</i>, knows its own size, and is easier | |
29 | syntactically to use. Because of that an <i>array</i> should be used, as | |
30 | opposed to a <i>tuple</i>, only if your compiler does not support | |
31 | variadic macros. The only advantage an <i>array </i>has over a <i>tuple | |
32 | </i>is that an <i>array </i>can be empty while a <i>tuple </i>always | |
33 | has at least one element and therefore can never have a size of 0.<br> | |
34 | <br> | |
35 | Elements of an <i>array</i> can be extracted with <b>BOOST_PP_ARRAY_ELEM</b>, | |
36 | an <i>array's</i> size can be extracted with <b>BOOST_PP_ARRAY_SIZE</b>, | |
37 | and an <i>array</i> can be converted to the more primitive <i>tuple</i> | |
38 | data structure with <b>BOOST_PP_ARRAY_DATA</b>. </div> | |
39 | <h4>Primitives</h4> | |
40 | <ul> | |
41 | <li><a href="../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li> | |
42 | <li><a href="../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li> | |
43 | <li><a href="../ref/array_size.html">BOOST_PP_ARRAY_SIZE</a></li> | |
44 | </ul> | |
45 | <hr size="1"> | |
46 |