Operator Overloading with multiple return types
eXodiquas
exodiquas at gmail.com
Fri Mar 15 21:35:12 UTC 2019
Hi everyone,
i'm currently working on a small physics engine and I thought it
would be a nice feature to overload the operators of my vector
struct so I don't have to make ugly function calls just to add
and "multiply" my vectors. The problem now is that overloading
the addition and subtraction of my vector struct is straight
forward because both return and take a vector, dot product is not
working for me because it is not possible to overload a function
by return type (at least not that I am aware of).
My code looks like the one from the dlang docs:
Vector opBinary(string op)(Vector rhs)
{
static if (op == "+") return Vector(this.x + rhs.x, this.y +
rhs.y);
else static if (op == "-") return Vector(this.x - rhs.x,
this.y - rhs.y);
}
As you can see for the dot product the return type has to be a
float/double and not a vector. Is there any way to achive this
behaivour with D2? The opMul() function is not D2 style and I
don't want to use it.
Thank you very much,
eXodiquas
More information about the Digitalmars-d-learn
mailing list