テンプレートは初めてです。関数テンプレート専用のテンプレートを定義しようとしましたが、コンパイラがエラーを返します。これは単純なmax関数であり、テンプレートを練習するためだけに作成されています。コードは次のとおりです。
template <typename TYP1, typename TYP2> TYP1 maximum(TYP1& param1, TYP2& param2)
{
return (param1 > param2 ? param1 : param2);
}
および特殊機能:
template<> std::string maximum<std::string, std::string>(std::string prm1, std::string prm2)
{
std::cout << "Inside specialized functiion\n";
return (prm1.length() > prm2.length() ? prm1 : prm2);
}
std :: stringまたは自分で定義したクラスを含む他のタイプの特殊化を書き込もうとしても、エラーは常に同じです。
"エラーC2912:明示的な特殊化;'std :: string maximum(std :: string、std :: string)'は関数テンプレートの特殊化ではありません..."
IntelliSenseの提案:「関数テンプレートのインスタンスはありません」
これをコンパイルして正しく動作させるには、何を変更する必要がありますか?
前もって感謝します