2 <header name=
"boost/array.hpp">
3 <namespace name=
"boost">
6 <template-type-parameter name=
"T"/>
7 <template-nontype-parameter name=
"N">
8 <type>std::size_t
</type>
9 </template-nontype-parameter>
13 <para>STL compliant container wrapper for arrays of constant size
</para>
15 <typedef name=
"value_type">
18 <typedef name=
"iterator">
21 <typedef name=
"const_iterator">
24 <typedef name=
"reverse_iterator">
26 <classname>std::reverse_iterator
</classname><iterator
>
29 <typedef name=
"const_reverse_iterator">
31 <classname>std::reverse_iterator
</classname><const_iterator
>
34 <typedef name=
"reference">
37 <typedef name=
"const_reference">
38 <type>const T
&</type>
40 <typedef name=
"size_type">
41 <type>std::size_t
</type>
43 <typedef name=
"difference_type">
44 <type>std::ptrdiff_t
</type>
47 <static-constant name=
"static_size">
48 <type>size_type
</type>
54 <template-type-parameter name=
"U"/>
56 <parameter name=
"other">
57 <paramtype>const
<classname>array
</classname><U, N
>&</paramtype>
62 std::copy(rhs.
<methodname>begin
</methodname>(),rhs.
<methodname>end
</methodname>(),
<methodname>begin
</methodname>())
68 <method-group name=
"iterator support">
69 <overloaded-method name=
"begin">
73 <signature cv=
"const">
74 <type>const_iterator
</type>
78 <simpara>iterator for the first element
</simpara>
81 <simpara>will not throw
</simpara>
85 <overloaded-method name=
"end">
89 <signature cv=
"const">
90 <type>const_iterator
</type>
94 <simpara>iterator for position after the last element
</simpara>
97 <simpara>will not throw
</simpara>
102 <method-group name=
"reverse iterator support">
103 <overloaded-method name=
"rbegin">
105 <type>reverse_iterator
</type>
107 <signature cv=
"const">
108 <type>const_reverse_iterator
</type>
112 <simpara>reverse iterator for the first element of reverse iteration
</simpara>
116 <overloaded-method name=
"rend">
118 <type>reverse_iterator
</type>
120 <signature cv=
"const">
121 <type>const_reverse_iterator
</type>
125 <simpara>reverse iterator for position after the last element in reverse iteration
</simpara>
130 <method-group name=
"capacity">
132 <type>size_type
</type>
139 <method name=
"empty">
147 <simpara>will not throw
</simpara>
150 <method name=
"max_size">
151 <type>size_type
</type>
158 <simpara>will not throw
</simpara>
163 <method-group name=
"element access">
164 <overloaded-method name=
"operator[]">
166 <type>reference
</type>
168 <paramtype>size_type
</paramtype>
172 <signature cv=
"const">
173 <type>const_reference
</type>
175 <paramtype>size_type
</paramtype>
181 <code>i
< N
</code>
186 element with index
<code>i
</code>
190 <simpara>will not throw.
</simpara>
194 <overloaded-method name=
"at">
196 <type>reference
</type>
198 <paramtype>size_type
</paramtype>
202 <signature cv=
"const">
203 <type>const_reference
</type>
205 <paramtype>size_type
</paramtype>
211 element with index
<code>i
</code>
217 <classname>std::range_error
</classname>
218 </code> if
<code>i
>= N
</code>
223 <overloaded-method name=
"front">
225 <type>reference
</type>
227 <signature cv=
"const">
228 <type>const_reference
</type>
232 <code>N
> 0</code>
236 <simpara>the first element
</simpara>
239 <simpara>will not throw
</simpara>
243 <overloaded-method name=
"back">
245 <type>reference
</type>
247 <signature cv=
"const">
248 <type>const_reference
</type>
252 <code>N
> 0</code>
256 <simpara>the last element
</simpara>
259 <simpara>will not throw
</simpara>
263 <method name=
"data" cv=
"const">
264 <type>const T*
</type>
271 <simpara>will not throw
</simpara>
275 <method name=
"c_array">
283 <simpara>will not throw
</simpara>
288 <method-group name=
"modifiers">
291 <parameter name=
"other">
292 <paramtype><classname>array
</classname><T, N
>&</paramtype>
297 std::swap_ranges(
<methodname>begin
</methodname>(),
<methodname>end
</methodname>(), other.
<methodname>begin
</methodname>())
303 linear in
<code>N
</code>
307 <method name=
"assign">
309 <parameter name=
"value">
310 <paramtype>const T
&</paramtype>
315 std::fill_n(
<methodname>begin
</methodname>(), N, value)
322 <data-member name=
"elems[N]">
327 <free-function-group name=
"specialized algorithms">
328 <function name=
"swap">
330 <template-type-parameter name=
"T"/>
331 <template-nontype-parameter name=
"N">
332 <type>std::size_t
</type>
333 </template-nontype-parameter>
339 <paramtype><classname>array
</classname><T, N
>&</paramtype>
342 <paramtype><classname>array
</classname><T, N
>&</paramtype>
348 x.
<methodname>swap
</methodname>(y)
353 <simpara>will not throw.
</simpara>
356 </free-function-group>
358 <free-function-group name=
"comparisons">
359 <function name=
"operator==">
361 <template-type-parameter name=
"T"/>
362 <template-nontype-parameter name=
"N">
363 <type>std::size_t
</type>
364 </template-nontype-parameter>
370 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
373 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
379 std::equal(x.
<methodname>begin
</methodname>(), x.
<methodname>end
</methodname>(), y.
<methodname>begin
</methodname>())
385 <function name=
"operator!=">
387 <template-type-parameter name=
"T"/>
388 <template-nontype-parameter name=
"N">
389 <type>std::size_t
</type>
390 </template-nontype-parameter>
396 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
399 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
404 <code>!(x == y)
</code>
409 <function name=
"operator<">
411 <template-type-parameter name=
"T"/>
412 <template-nontype-parameter name=
"N">
413 <type>std::size_t
</type>
414 </template-nontype-parameter>
420 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
423 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
429 std::lexicographical_compare(x.
<methodname>begin
</methodname>(), x.
<methodname>end
</methodname>(), y.
<methodname>begin
</methodname>(), y.
<methodname>end
</methodname>())
435 <function name=
"operator>">
437 <template-type-parameter name=
"T"/>
438 <template-nontype-parameter name=
"N">
439 <type>std::size_t
</type>
440 </template-nontype-parameter>
446 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
449 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
454 <code>y
< x
</code>
459 <function name=
"operator<=">
461 <template-type-parameter name=
"T"/>
462 <template-nontype-parameter name=
"N">
463 <type>std::size_t
</type>
464 </template-nontype-parameter>
470 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
473 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
478 <code>!(y
< x)
</code>
483 <function name=
"operator>=">
485 <template-type-parameter name=
"T"/>
486 <template-nontype-parameter name=
"N">
487 <type>std::size_t
</type>
488 </template-nontype-parameter>
494 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
497 <paramtype>const
<classname>array
</classname><T, N
>&</paramtype>
502 <code>!(x
< y)
</code>
506 </free-function-group>