On Saturday, 12 December 2020 at 18:14:31 UTC, Paul Backus wrote:
IMO this is one of the stupider design decisions in D, but it's unlikely it will ever be fixed.

It is useful in several other contexts though, including user overriding and private data stores for the mixin.

The easiest workaround is to use string mixins instead, which work the way you'd expect them to.

But yeah. The other alternative is to alias them together:

class A {
mixin Whatever a; // need to give it a name here to reference later
   mixin Whatever b;

   // explicitly merge overloads here
   alias opBinary = a.opBinary;
   alias opBinary = b.opBinary;
}


Or you can do a forwarder function yourself but that's getting even more a hassle. Sometimes appropriate though.

Reply via email to