Lars T. Kyllingstad Wrote: > qwerty wrote: > > In my unittest I tried to test out my rotate function. > > assert(Vec2(1,2).rotate(90) == Vec(-2,1)); > > But I got these compile errors: > > vector.d(156): Error: function vector.Vec.opEquals (Vec) does not match > > parameter types (void) > > vector.d(156): Error: cannot implicitly convert expression > > (opCall(1,2).rotate(opCall(90))) of type void to Vec* > > > > 2 questions: > > My opEquals takes an Vec2 and not a *Vec2, is this wrong? > > Why is return value of the rotate function compared and not the rotated > > struct literal? > > 2 problems: > > 1. You call the struct Vec some places and Vec2 others. That's me trying to make the code more readable :( All should be Vec2
> > 2. My guess is that the compiler complains about Vec* because Vec is a > struct, not a class, and you have written 'new Vec' somewhere. Am I right? > > If that is the case, remember that for structs, 'new' returns a pointer, > whereas for classes it returns a reference. > > -Lars Sorry about my typos, bearophile luckily read right over them :)