On Monday, 26 February 2018 at 13:09:40 UTC, ParticlePeter wrote:
Thanks for clarification, unfortunately your suggestion doesn't
work.
Since when is alias this = something; supposed to work?
alias Common.this this; doesn't work as well and following also
not:
struct Baz {
Foo foo;
alias foo this;
this( int m, int n ) { m_member = m * n; }
}
auto baz = Baz(1); // Error, same as above
Not sure if I do require an enhancement, I just stumbled on
that and was wondering.
The workaround for now is to define your other constructor in
another mixin template:
struct Bar {
mixin Common;
mixin template Common2() {this( int m, float n ) { m_member =
cast(int)(m * n); } };
mixin Common2;
}
It's not exactly pretty, but it works.
An issue has already been filed for this:
https://issues.dlang.org/show_bug.cgi?id=17055.
--
Simen