On Thursday, 2 June 2016 at 18:55:36 UTC, Steven Schveighoffer wrote:
On 6/2/16 2:34 PM, Minas Mina wrote:
[...]

Cool. You missed one very significant thing. That is using mixins to take advantage of the operator string.

For example, opOpAssign can be done in one step:

ref Rational opOpAssign(string op)(auto ref Rational r)
    if(op == "+" || op == "-" || op == "/" || op == "*")
{
    mixin("auto tmp = this " ~ op ~ " r;");
    _n = tmp.n;
    _d = tmp.d;
    return this;
}

This is the whole reason, BTW, that operator overloads were changed from the original D1 style versions.

Some more examples of your Rational type in action would be good too.

-Steve

Thanks for the feedback! I will update the post tomorrow or on Saturday.

Reply via email to