Structs are Not Plain: A call for empty struct constructors
nkm1
t4nk074 at openmailbox.org
Thu Sep 19 11:04:40 UTC 2019
On Thursday, 19 September 2019 at 09:02:39 UTC, FeepingCreature
wrote:
> What else follows from this? We can't use immutable - because
> immutable fields can only be set in a proper constructor. We
> could do horrible workarounds like `Fixture(null)`, but that's
> just making a bad situation worse.
I have no idea why default constructors are disallowed, but your
factory doesn't need to be opCall(). E.g., this seems to me a
reasonable solution:
struct Fixture
{
int a, b;
static Fixture Default() { return Fixture(1, 2); }
}
void main()
{
import std.stdio;
with (Fixture.Default) {
writeln(a);
writeln(b);
}
}
(I actually like it more than default ctors, which is, of course,
not a reason to disallow default ctors).
More information about the Digitalmars-d
mailing list