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.


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

Reply via email to