<html>
<head><title>Resolutions to fixed-size array issues</title>



<pre>
                                                             N1624=04-0064
                                                             Matt Austern
                                                             24 Mar 2004

</pre>

<h1>Resolutions to fixed-size array issues</h1> 

<h2>Resolution to issue 8.2:</h2>
<pre>
Add a clause to section 6.2.2 [tr.array.array]: "The effect of calling
front() or back() for a zero-sized array is implementation defined."
</pre>

<h2>Resolution to issue 8.4:</h2>

<pre>
6.1.1 Header &lt;tuple> synopsis

Add:

template &lt;class T, size_t N > struct array;

template &lt;class T, size_t N>        struct tuple_size&lt;array&lt;T, N> >;
template &lt;int I, class T, size_t N> struct tuple_element&lt;I, array&lt;T, N> >;

template &lt;int I, class T, size_t N>       T&amp; get(      array&lt;T, N>&amp;); 
template &lt;int I, class T, size_t N> const T&amp; get(const array&lt;T, N>&amp;); 


6.1.4

Add a new section 6.1.4

tuple_size&lt;array&lt;T, N> >::value

Type:  integral constant expression.
Value:  N

tuple_element&lt;I, array&lt;T, N> >::type

Requires:  0 &lt;= I &lt; N.   The program is ill-formed if I is out of bounds.
Value:  The type T.

template &lt;int I, class T, size_t N> T&amp; get(array&lt;T, N>&amp; a); 

Requires: 0 &lt;= I &lt; N. The program is ill-formed if I is out of bounds.
Return type:  T&amp;.
Returns: A reference to the Ith element of a, where indexing is zero-based.

template &lt;int I, class T, size_t N> const T&amp; get(const array&lt;T, N>&amp; a); 

Requires: 0 &lt;= I &lt; N. The program is ill-formed if I is out of bounds.
Return type:  const T&amp;.
Returns: A const reference to the Ith element of a, where indexing is zero-based.
</pre>

</body>
</html>
