bearophile wrote: > A question about D1 specs (that may be useful for LDC). > > In the following code there's anarray of structs S. Is it OK, according to > D1 specs, to not initialize the memory of this array if the compiler sees > that all fields of S have a void init? > > struct S { double x = void, y = void; } > void main() { > auto a = new S[1000]; > } > > Bye, > bearophile
That's an interesting question. The compiler does set void-initialized member variables to zeros: struct S { double x = void, y = void; } void main() { S s; // x and y are initialized to 0 } I think this is a bug. Such members should be left uninitialized or initialized to the default initializer for the type (NaN in this case) or void initialization should be disallowed for member variables.