On Thursday, 2 June 2016 at 18:55:36 UTC, Steven Schveighoffer
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;
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
Thanks for the feedback! I will update the post tomorrow or on