From: Joao Abecasis (jpabecasis_at_[hidden])
Date: 2004-10-13 09:03:26


Hi all!

1) I want to report that array::at throws range_error when it should
throw out_of_range to comply to Sequence requirements.

After I decided to report this issue I learned that Nicolai Josuttis
maintains a parallel version boost/array.hpp on his website that
corrects this and has a few other changes. Namely, an overload for
0-sized arrays was added and c_array has been renamed to data. I believe
these changes were made after discussion for proposed inclusion in TR1.

2) Now I'm wondering if c_array should be renamed to data before the
next release, to avoid having to change the interface later.

3) Could get<Index> functions be added to array, in order to mimick
tuple? There are probably other things that can be done to make
boost::array behave like a tuple. I think array could also be considered
for inclusion in fusion.

4) On a side note, I wrote an initialized_array class that is very much
like array but provides the constructors (and thus cannot provide
aggregate initialization syntax):

    * default element construction
    * default array construction (boost::array provides this)
    * initialized_array<T, N>(T const & val) // elements initialized to val
    * initialized_array<T, N>(T const (&vals)[ N2 ]) // elements
initialized with array. If N2 < N remaining elements are default constructed
    * initialized_array<T, N>(InputIterator start, InputIterator finish)
// similar to previous but with iterators

Exception behaviour is the same as for arrays (accomplished with a
linear hierarchy of base classes) and each element is initialized
exactly once (except with default array construction). Is there any
interest in this class?

br,

João Abecasis