Boost logo

Boost Users :

From: Ronald Garcia (garcia_at_[hidden])
Date: 2008-06-18 12:51:01

Hi Joey,

I have looked at your self-contained example, so I get the gist of
what you're trying to do. Rather than assigning to the array view,
you can assign to an indices object and build the view after the
fact. Here's how to do the 2-dimensional case that you had commented

                      //This doesn't work, but I would love a generic
version of this:

                      if (desired_slice [0] == -1)
                        myindices = indices [range ()][desired_slice
                      if (desired_slice [1] == -1)
                        myindices = indices [desired_slice [0]][range

                      array_type::const_array_view <1>::type OneDView
                        = multi_array[myindices];

                      ret_val = (OneDView [whichPosition]);


On Jun 14, 2008, at 10:32 AM, Joey Mukherjee wrote:

> I am trying to use boost::multi_array and want to create a view
> where I am
> lowering the number of dimensions, but I wish the dimension to be
> reduced
> to be decided at runtime.
> I have a vector of integers and this vector size is the same as the
> number
> of dimensions. If the vector [1] value is -1, then the first
> dimension
> will have all values (i.e. range ()), otherwise it will be a number
> indicating what slice to use.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at