On Friday, 19 October 2012 at 13:41:53 UTC, Jacob Carlborg wrote:
On 2012-10-19 11:42, Marco Leise wrote:
When you extend the length of an array, it is filled with
the static .init value for the type, which is null here. I
think you'll have to create the objects manually.
foreach (ref foo; a) foo = new Foo;
Is this possible:
a[] = new Foo;
?
Technically, it will compile and work, but you need to understand
what it is actually going to do:
It will allocate a single new Foo, and then assign that class
reference to each and every index in your array. They will
effectively all point to the same instance, rather than each to
their own.