Boost logo

Boost Users :

Subject: Re: [Boost-users] question about multi_array use
From: Alle Meije Wink (a.m.wink_at_[hidden])
Date: 2009-08-08 18:51:38


Dear Overmind and Anton, thanks for your answers.

Let's see if I understand!

Yes, multi_array<int, 2> and multi_array<int,3> are different types
(classes?). But I wouldn't mind using a template class to wrap it if
that meant I could code it once, instead of 8 times for 8 different
possible dimensionalities.

Would it be able to define a template class in the way I described?

Overmind, I guess compared to what I had in mind (define the data
container of the image [template?] class as a multi_array with a
dimensionality given as a size_t parameter), the CRTP struct you are
talking about specifies all of the possible types. Is that correct?

If I understand it correctly then this does what I want, but does that
mean that in the worst-case scenario, I have to write out the
functionality for all different dimensionalities? If the parameterised
template class idea is possible, that would save some typing!

Best wishes,
Alle Meije
> From: OvermindDL1 <overminddl1_at_[hidden]>
> To: boost-users_at_[hidden]
> Subject: Re: [Boost-users] question about multi_array use
> Message-ID:
> <3f49a9f40908071709rbd1ad80k4c5170093588f4d_at_[hidden]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> On Fri, Aug 7, 2009 at 2:04 PM, Anton Daneyko<self_at_[hidden]> wrote:
>
>> Hello,
>>
>> I might be wrong, but it seems the answer is "no you can't do that", because
>> the dimensionality is a template parameter multi_array<int, 2> and
>> multi_array<int, 3> are different types. However I would like to hear some
>> else' opinion as well.
>>
>> Regards,
>> Anton Daneyko.
>>
>> On Fri, Aug 7, 2009 at 3:48 PM, Alle Meije Wink <a.m.wink_at_[hidden]> wrote:
>>
>>> Hello,
>>>
>>> I would like to use the multi_array container to handle imaging data. The
>>> image data can be anything up to 8-dimensional (usually up to 4) and
>>> dimension information is found in records that accompany the binary data.
>>>
>>> Would it be possible to create an image class that takes the
>>> dimensionality and extents list as parameters, so that images of all
>>> dimensionalities can be treated as one class?
>>>
>>> For example, could the dimensionality be passed as a size_t argument?
>>>
>>> What I understand from the multi_array paper is that the extents list
>>> would only be required whan the array is initialised.
>>>
>
> You could always just wrap up each of the possible dimensions in a
> struct that can handle the (de)serialization and everything too,
> perhaps use crtp to put identical functionality in a non-virtual base
> class.
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net