错误是(使用VS2013 - GLM):
重载函数“glm :: slerp”的多个实例匹配 参数列表:函数模板“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)“ 参数类型是:(glm :: quat,glm :: quat,float)
我用两个glm :: quat和一个常量浮点值来调用它,就像你使用glm :: lerp和glm :: mix一样。错误消息中显示的两个重载函数仅在返回类型上有所不同。我一直在寻找一个没有运气的答案。
确切的电话:
const float t = 0.5f;
glm::quat newQ = glm::slerp(quatA, quatB, t);
答案 0 :(得分:1)
C ++中不可能(听到非法)函数定义只有返回类型不同,因为返回类型不是签名的一部分,因此会违反一个定义规则。
我建议您明确地编写模板参数,或者投射到您确定的内容?