On Friday, 19 June 2015 at 01:46:05 UTC, jmh530 wrote:
On Monday, 15 June 2015 at 08:40:31 UTC, Ilya Yaroshenko wrote:
PR and Examples:
N-dimensional slices is real world example where `static
foreach` would be useful.
Corresponding lines was marked with //TODO: static foreach
The operator overloading and slicing mechanics look great, but
I'm probably more excited about the future work you have listed.
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
You can slice fixed size arrays:
auto tensor = data.sliced(256, 16);
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.
Denis had the same concept already implemented in his `unstd`
So, ndslice is going to have it too.
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;
I will add this kind of functionality:
auto A = 4.iota.sliced(2, 2);
auto B = cast(float) A;
auto C = A.to!(float); //calls opCast