On Thursday, 17 September 2020 at 22:07:54 UTC, Simen Kjærås wrote:
Usually, that would be:

struct V {
    int x;

    mixin assign!"+" a;
    mixin assign!"-" b;
    alias opOpAssign = a.opOpAssign;
    alias opOpAssign = b.opOpAssign;
}

However, I can't seem to get that working. It seems to be an instance of this issue:
https://issues.dlang.org/show_bug.cgi?id=18118

Yes, I tried that. It didn't work so I assumed that it must have been wrong. Is this a bug in the compiler or an issue in the language specification?

btw, I'm somewhat surprised by your use of a template this parameter (https://dlang.org/spec/template.html#template_this_parameter). Generally this will work, but you're probably better off with

ref auto opOpAssign(string op)(typeof(this) rhs) if (op == op_)

I learned it from here: http://ddili.org/ders/d.en/mixin.html, could you elaborate on why this is not advisable?

Reply via email to