これは、一般的な数学関数を作成することを含む、非常に単純なテンプレートの問題です (C++ の専門家にとっては単純だと思います)。次のような単純なイプシロン関数があります。
template<class T>
static T Epsilon()
{
return std::numeric_limits<T>::Min();
}
次のように、変数に割り当てたいと思います。
float epsilon = Math::Epsilon();
残念ながら、コンパイル エラーが発生します。
エラー C2783: 'T Math::Epsilon(void)': 'T' のテンプレート引数を推定できませんでした
エラーなしで、次のように割り当てることができます。
float epsilon = Math::Epsilon<float>();
テンプレート エンジンは私の T が "float" であることを認識できると思っていましたが、どうやらできないようです。ここで何が理解できなかったのですか?