On Monday, 16 June 2014 at 22:03:28 UTC, Mark Blume wrote:
Why exactly isn't a constructor without any parameters is not
allowed?
Why does
"Struct()" calls "Struct.opCall()," which means "Struct.init"
initially,
while
"Struct(params)" calls "Struct.this(params)?"
Does "Struct(params)" also call "Struct.opCall(params)?"
I am new to D and I can't seem to understand this.
http://stackoverflow.com/questions/16648273/why-can-i-not-implement-default-constructors-for-structs-in-d/16650477#16650477
Right now I think this decision was not worth it and at least
CTFE-only constructors should be allowed. But this is not a
simple thing to change.
Fun fact : originally in D1 days (long time ago in a galaxy far
away) constructors were not allowed for structs at all. Good it
has been changed :)