确切的错误消息
error: no matching function for call to ‘clamp<unsigned char>(div_t)’
return clamp<T>(inv(div(pow(inv(src),2),dst)));
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
有问题的违规代码
template<class T>
inline T cfFreeze(T src, T dst) {
using namespace Arithmetic;
if(dst == zeroValue<T>())
return zeroValue<T>();
return clamp<T>(inv(div(pow(inv(src),2),dst)));
}
如何解决此问题?代码看起来是正确的,但似乎由于某种原因没有匹配功能。我对编程很陌生。
答案 0 :(得分:0)
如果您尝试使用标准库中的那个,请确保使用的是c ++ 17并执行std :: clamp()而不仅仅是钳位。