N-dimensional slices is ready for comments!

jmh530 via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Jun 18 18:46:03 PDT 2015


On Monday, 15 June 2015 at 08:40:31 UTC, Ilya Yaroshenko wrote:
> Hi All,
>
> PR and Examples: 
> https://github.com/D-Programming-Language/phobos/pull/3397
> DUB http://code.dlang.org/packages/dip80-ndslice
>
> N-dimensional slices is real world example where `static 
> foreach` would be useful.
> Corresponding lines was marked with //TODO: static foreach
>
> Best regards,
> Ilya

The operator overloading and slicing mechanics look great, but 
I'm probably more excited about the future work you have listed.

Some thoughts:
The top line of ndslice.d says it is for "creating n-dimensional 
random access ranges". I was able to get the example for operator 
overloading working for dynamic arrays, but it doesn't seem to 
work for static. Hopefully this work can be extended. In 
addition, hopefully the future work on foreach byElement will be 
able to work on static arrays in addition to dynamic.

My second point seems to be related to a discussion on the github 
page about accessing N-dimensional arrays by index. Basically 
there are some circumstances where it is convenient to loop by 
index on an N-dimensional array.

Finally, I have been trying to do something like
auto A = 4.iota.sliced(2, 2).array;
auto B = to!(float[][])(A);
without any luck. Seems to work though for one-dimensional 
arraays. I think instead you have to do something like
auto A = iota(0.0f, 4.0f, 1).sliced(2, 2).array;


More information about the Digitalmars-d-announce mailing list