这是一个非常简单的模板问题(我认为对C++专家来说很简单),涉及制作通用数学函数.我有一个简单的Epsilon函数,如下所示:
template<class T>
static T Epsilon()
{
return std::numeric_limits<T>::Min();
}
Run Code Online (Sandbox Code Playgroud)
我想将它分配给一些变量,如下所示:
float epsilon = Math::Epsilon();
Run Code Online (Sandbox Code Playgroud)
,唉,我收到编译错误:
错误C2783:'T Math :: Epsilon(void)':无法推断'T'的模板参数
我可以像这样分配它,没有错误:
float epsilon = Math::Epsilon<float>();
Run Code Online (Sandbox Code Playgroud)
我以为模板引擎能够看到我的T是"浮动",但显然它不能.我在这里没有理解什么?