monarch_dodra:
Ideally, I wish we could allocate static arrays on the heap
easily:
"int[2]* p = new int[2]()"
To do that I wrap the array inside a static struct:
struct Arr {
int[2] a;
}
Arr* data = new Arr;
writeln(data.a[1]);
Anybody know why this doesn't work?
Maybe it's just a matter of syntax. You see it if you use:
struct Arr {
int[2] a;
alias this = a;
}
Arr* data = new Arr;
Now what's data[1]? It's data.a[1] or is it the second (missing)
struct Arr?
So to do that you need transparent references, like "ref int[2]",
that in D are only present inside functions.
Bye,
bearophile