blob: 253938bcff057213e20279d784972e5365812608 [file] [log] [blame]
<library-reference>
<header name="boost/array.hpp">
<namespace name="boost">
<class name="array">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<purpose>
<para>STL compliant container wrapper for arrays of constant size</para>
</purpose>
<typedef name="value_type">
<type>T</type>
</typedef>
<typedef name="iterator">
<type>T*</type>
</typedef>
<typedef name="const_iterator">
<type>const T*</type>
</typedef>
<typedef name="reverse_iterator">
<type>
<classname>std::reverse_iterator</classname>&lt;iterator&gt;
</type>
</typedef>
<typedef name="const_reverse_iterator">
<type>
<classname>std::reverse_iterator</classname>&lt;const_iterator&gt;
</type>
</typedef>
<typedef name="reference">
<type>T&amp;</type>
</typedef>
<typedef name="const_reference">
<type>const T&amp;</type>
</typedef>
<typedef name="size_type">
<type>std::size_t</type>
</typedef>
<typedef name="difference_type">
<type>std::ptrdiff_t</type>
</typedef>
<static-constant name="static_size">
<type>size_type</type>
<default>N</default>
</static-constant>
<copy-assignment>
<template>
<template-type-parameter name="U"/>
</template>
<parameter name="other">
<paramtype>const <classname>array</classname>&lt;U, N&gt;&amp;</paramtype>
</parameter>
<effects>
<simpara>
<code>
std::copy(rhs.<methodname>begin</methodname>(),rhs.<methodname>end</methodname>(), <methodname>begin</methodname>())
</code>
</simpara>
</effects>
</copy-assignment>
<method-group name="iterator support">
<overloaded-method name="begin">
<signature>
<type>iterator</type>
</signature>
<signature cv="const">
<type>const_iterator</type>
</signature>
<returns>
<simpara>iterator for the first element</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</overloaded-method>
<overloaded-method name="end">
<signature>
<type>iterator</type>
</signature>
<signature cv="const">
<type>const_iterator</type>
</signature>
<returns>
<simpara>iterator for position after the last element</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</overloaded-method>
</method-group>
<method-group name="reverse iterator support">
<overloaded-method name="rbegin">
<signature>
<type>reverse_iterator</type>
</signature>
<signature cv="const">
<type>const_reverse_iterator</type>
</signature>
<returns>
<simpara>reverse iterator for the first element of reverse iteration</simpara>
</returns>
</overloaded-method>
<overloaded-method name="rend">
<signature>
<type>reverse_iterator</type>
</signature>
<signature cv="const">
<type>const_reverse_iterator</type>
</signature>
<returns>
<simpara>reverse iterator for position after the last element in reverse iteration</simpara>
</returns>
</overloaded-method>
</method-group>
<method-group name="capacity">
<method name="size">
<type>size_type</type>
<returns>
<simpara>
<code>N</code>
</simpara>
</returns>
</method>
<method name="empty">
<type>bool</type>
<returns>
<simpara>
<code>N==0</code>
</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</method>
<method name="max_size">
<type>size_type</type>
<returns>
<simpara>
<code>N</code>
</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</method>
</method-group>
<method-group name="element access">
<overloaded-method name="operator[]">
<signature>
<type>reference</type>
<parameter name="i">
<paramtype>size_type</paramtype>
</parameter>
</signature>
<signature cv="const">
<type>const_reference</type>
<parameter name="i">
<paramtype>size_type</paramtype>
</parameter>
</signature>
<requires>
<simpara>
<code>i &lt; N</code>
</simpara>
</requires>
<returns>
<simpara>
element with index <code>i</code>
</simpara>
</returns>
<throws>
<simpara>will not throw.</simpara>
</throws>
</overloaded-method>
<overloaded-method name="at">
<signature>
<type>reference</type>
<parameter name="i">
<paramtype>size_type</paramtype>
</parameter>
</signature>
<signature cv="const">
<type>const_reference</type>
<parameter name="i">
<paramtype>size_type</paramtype>
</parameter>
</signature>
<returns>
<simpara>
element with index <code>i</code>
</simpara>
</returns>
<throws>
<simpara>
<code>
<classname>std::range_error</classname>
</code> if <code>i &gt;= N</code>
</simpara>
</throws>
</overloaded-method>
<overloaded-method name="front">
<signature>
<type>reference</type>
</signature>
<signature cv="const">
<type>const_reference</type>
</signature>
<requires>
<simpara>
<code>N &gt; 0</code>
</simpara>
</requires>
<returns>
<simpara>the first element</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</overloaded-method>
<overloaded-method name="back">
<signature>
<type>reference</type>
</signature>
<signature cv="const">
<type>const_reference</type>
</signature>
<requires>
<simpara>
<code>N &gt; 0</code>
</simpara>
</requires>
<returns>
<simpara>the last element</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</overloaded-method>
<method name="data" cv="const">
<type>const T*</type>
<returns>
<simpara>
<code>elems</code>
</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</method>
<method name="c_array">
<type>T*</type>
<returns>
<simpara>
<code>elems</code>
</simpara>
</returns>
<throws>
<simpara>will not throw</simpara>
</throws>
</method>
</method-group>
<method-group name="modifiers">
<method name="swap">
<type>void</type>
<parameter name="other">
<paramtype><classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<effects>
<simpara>
<code>
std::swap_ranges(<methodname>begin</methodname>(), <methodname>end</methodname>(), other.<methodname>begin</methodname>())
</code>
</simpara>
</effects>
<complexity>
<simpara>
linear in <code>N</code>
</simpara>
</complexity>
</method>
<method name="assign">
<type>void</type>
<parameter name="value">
<paramtype>const T&amp;</paramtype>
</parameter>
<effects>
<simpara>
<code>
std::fill_n(<methodname>begin</methodname>(), N, value)
</code>
</simpara>
</effects>
</method>
</method-group>
<data-member name="elems[N]">
<!-- HACK -->
<type>T</type>
</data-member>
<free-function-group name="specialized algorithms">
<function name="swap">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>void</type>
<parameter name="x">
<paramtype><classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype><classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<effects>
<simpara>
<code>
x.<methodname>swap</methodname>(y)
</code>
</simpara>
</effects>
<throws>
<simpara>will not throw.</simpara>
</throws>
</function>
</free-function-group>
<free-function-group name="comparisons">
<function name="operator==">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>
std::equal(x.<methodname>begin</methodname>(), x.<methodname>end</methodname>(), y.<methodname>begin</methodname>())
</code>
</simpara>
</returns>
</function>
<function name="operator!=">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>!(x == y)</code>
</simpara>
</returns>
</function>
<function name="operator&lt;">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>
std::lexicographical_compare(x.<methodname>begin</methodname>(), x.<methodname>end</methodname>(), y.<methodname>begin</methodname>(), y.<methodname>end</methodname>())
</code>
</simpara>
</returns>
</function>
<function name="operator&gt;">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>y &lt; x</code>
</simpara>
</returns>
</function>
<function name="operator&lt;=">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>!(y &lt; x)</code>
</simpara>
</returns>
</function>
<function name="operator&gt;=">
<template>
<template-type-parameter name="T"/>
<template-nontype-parameter name="N">
<type>std::size_t</type>
</template-nontype-parameter>
</template>
<type>bool</type>
<parameter name="x">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<parameter name="y">
<paramtype>const <classname>array</classname>&lt;T, N&gt;&amp;</paramtype>
</parameter>
<returns>
<simpara>
<code>!(x &lt; y)</code>
</simpara>
</returns>
</function>
</free-function-group>
</class>
</namespace>
</header>
</library-reference>