How to sum multidimensional arrays?
p.shkadzko
p.shkadzko at gmail.com
Sat Feb 29 19:04:12 UTC 2020
On Friday, 28 February 2020 at 16:51:10 UTC, AB wrote:
> On Thursday, 27 February 2020 at 14:15:26 UTC, p.shkadzko wrote:
>>[...]
>
> Your Example with a minimal 2D array.
>
> ------------
> module test2;
>
> import std.random : Xorshift, unpredictableSeed, uniform;
> import std.range : generate, take, chunks;
> import std.array : array;
> import std.stdio : writeln;
>
> struct Matrix(T)
> {
> int rows;
> T[] data;
> alias data this;
> int cols() {return cast(int) data.length/rows;}
> this(int r, int c) { data=new int[r*c]; rows=r;}
> this(int r, int c, T[] d) {assert(r*c==data.length); data=d;
> rows=r; }
>
> auto opIndex(int r, int c) {return data[rows*c+r];}
>
> }
Can you please explain what is the purpose of "alias data this"
in your Matrix struct? As I remember "alias <member> this" is
used for implicit type conversions but I don't see where "data"
is converted.
More information about the Digitalmars-d-learn
mailing list