monarch_dodra:
I mean structs you can pack together in an array, eg:
S[10] s10; //10 structs S
You can't do that with classes. Sure, you can put 10 class
*references* in an array, but the *instances* themselves need
to be individually allocated.
This kind of works, with some limitations (I'll ask to remove one
limitation):
import std.stdio, std.conv, std.typecons;
class Foo {
int x;
this(int x_) { this.x = x_; }
override string toString() { return text(x); }
}
void main() {
// scoped!Foo[10] foos;
typeof(scoped!Foo(1))[10] foos; // Not initialized.
foreach (i, ref f; foos)
// f = new Foo(i * 10);
// f = scoped!Foo(i * 10);
f.x = i * 10;
// writeln(foos);
foreach (ref f; foos)
writeln(f.x);
}
Bye,
bearophile