Reputation: 528
The error is (using VS2013 - GLM):
more than one instance of overloaded function "glm::slerp" matches the argument list: function template "glm::detail::tquat glm::slerp(const glm::detail::tquat &x, const glm::detail::tquat &y, const T &a)" function template "T glm::slerp(const glm::detail::tquat &x, const glm::detail::tquat &y, const T &a)" argument types are: (glm::quat, glm::quat, float)
I'm calling it with two glm::quat and a constant float value, just like you would do with glm::lerp and glm::mix. The two overloaded functions shown in the error message only differs on the return type. I've been searching for an answer without any luck.
The exact call:
const float t = 0.5f;
glm::quat newQ = glm::slerp(quatA, quatB, t);
Upvotes: 1
Views: 1725
Reputation: 6775
It is impossible (hear illegal) in C++ to have function definitions that differs only by return type because the return type is not part of the signature, and therefore will violate one definition rule.
I suggest you write the template parameters explicitely, or cast to something you are sure ?
Upvotes: 1