Subject: Re: [boost] Try out a multi-dimensional adapter class template?
From: Robert Ramey (ramey_at_[hidden])
Date: 2013-10-08 12:50:54
Daryle Walker wrote:
> I added a new class template for my library at
> <https://github.com/CTMacUser/ArrayMD>. It's called "multiarray,"
> and it's an adapter class like stack and queue. But the new
> interface is only for accessing elements. Besides the element and
> container types, the template header for the class takes the number
> of dimensions. The class uses at, operator  and operator () to
> access an element. It has methods to read/write the shape of the
> array and the priority of each index. There are no methods to change
> the number of elements stored; you have to either use a fixed-size
> container or sub-class the multi-array to add methods to change the
> size. (The container sub-object is protected, like the Standard
> adapters.) I split the main code into two base class templates,
> because the code for computing the offset from an index tuple and the
> code for referencing an element were nearly distinct. This really
> screws up my attempt at Doxygen comments. Any ideas? Or is my case
> too complex for what Doxygen's author thought could be handled.
I've looked at the document above. It would seem to me that this
is similar or equivalent to boost.multi-array with extents set at
compile time rather than at runtime. Is my understanding of this
correct? If not how is it wrong.
I've used multi-array on various occasions and have been struck
by how well it's done. (and better than average documented).
Have you considered just augmentting multi-array with some
constructors or "re-sizer" which use extents defined as template
parameters? It seem that if you could do this, one would be able
to leverage all that is done already. Even if this is not possible,
it would be nice to have an interface as close as possible to
mult-array to leverage on one's understanding of both libraries.
> Daryle W.
> Unsubscribe & other changes: