Я создал собственный класс векторов переменной длины Vec
со следующими перегруженными операторами:
float& operator[](int i);
Vec& operator+=(Vec& rhs);
Vec operator+(Vec& rhs);
Vec& operator-=(Vec& rhs);
Vec operator-(Vec& rhs);
Vec& operator*=(float rhs);
Vec operator*(float rhs);
Vec& operator/=(float rhs);
Vec operator/(float rhs);
Эти перегрузки работают индивидуально, и я получаю правильные результаты, но когда я пытаюсь их объединить, я получаю ошибки компиляции с template argument deduction/substitution failed
. У кого-нибудь есть идеи почему?
Это работает:
Vec multiplier = d * time;
Vec collision = e + multiplier;
Это не удалось:
Vec collision = e + (d * time);
e и d имеют тип Vec
, время имеет тип float