On 4/4/20 8:14 AM, Robert M. Münch wrote:
On 2020-04-04 10:32:32 +0000, Ferhat Kurtulmuş said:
struct S {
float a;
float b;
S opOpAssign(string op)(ref S rhs) if (op == "+"){
this.a += rhs.a;
this.b += rhs.b;
return this;
}
}
If the struct is from some 3rd party source, how can I add such an
operator overloading to it? Is it possible to "extend" a struct later?
No. operators must be implemented by the type itself. That is
intentional (so types always act the same no matter where you import
them). The only exception is UFCS, which doesn't cover operator overloading.
However, you can make a wrapper and use alias this.
-Steve