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.
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