void Util::scale(Vector2 *out, const Vector2 &in, const Vector2 &offset, const Vector2 &ratio) { // まずは拡大縮小 out->setMul(ratio, in); // offsetだけ動かす *out += offset; } // 回転 rotate(out, *out, rotationOffset, rotationMatrix);
みたいなコードが普通に通った。
scaleの中で、inにconstついてるけど、渡してるのはoutなので、scaleの中でinが実質的に書き換えられている。
見た目上、inが書き換えられていなければそれでいいのかなー。
constついてるのに書き換えられるとか、やばそうな匂いがぷんぷんしますが。
VC2008だけなのかな?