bearophile Wrote: > qwerty: > > My opEquals takes an Vec2 and not a *Vec2, is this wrong? > > It's OK. D1 docs say: > Structs and unions (hereafter just called structs) can provide a member > function: > int opEquals(S s) > or: > int opEquals(S* s) > > > > Why is return value of the rotate function compared and not the rotated > > struct literal? > > You can add a return this or return *this at the end of the rotate method. If I return *this, I should also provide the *S version of opEquals? int opEquals(S* s) { return (i1 ==*s.i1 && i2 ==*s.i2); }
What happens with the return value if it isn't used? Vec2(1,2).rotate(90); I mean, where will the *this end up? Or will the compiler not return it at all? > > Bye, > bearophile