Я новичок в шаблонах. Я пытаюсь определить специализированный шаблон для шаблона функции, но мой компилятор возвращает ошибку. Это простая функция 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 (std :: string, std :: string)' не является специализацией шаблона функции ..."
IntelliSense предлагает: "нет экземпляра шаблона функции"
Что я должен изменить, чтобы этот компилятор работал правильно?
Заранее спасибо