On Sunday, 26 April 2015 at 10:17:59 UTC, Manu wrote:
I find that my lazy ranges often end up on the stack, but I can't
assign/initialise directly: float[] a = b.transform[];
Instead I need to: float[] a;  b.transform.copy(a[]);

To enable the first line, builtin arrays would need to be able to recognize arbitrary range types and do the right thing. You can always do this:

  float[] a = b[].transform.array;

I've got a lib to enable this syntax:

  Array!float a = b[].transform_1;
  a[i..j] = c[x..y].transform_2;

for arbitrary user-defined or composed n-dimensional range types.

here: https://github.com/evenex/autodata

where ranges are made more interoperable by common mixin templates which also cut down on a lot of boilerplate.

(see examples in:
https://github.com/evenex/autodata/tree/master/source/spaces)

Reply via email to