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

Reply via email to