Boost logo

Boost :

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?


João Abecasis

Boost list run by bdawes at, gregod at, cpdaniel at, john at