Не работает ли следующее?
template<>
void xxx<std::string>(std::string& param)
{
std::cout << "String : "<< param.size()<< std::endl;
}
И то же самое для const std::string
?
Тем не менее, не специализируйте шаблон функции , если у вас есть выбор (и вы обычно делаете!).Вместо этого просто перегрузите функцию:
void xxx(std::string& param)
{
std::cout << "String : "<< param.size()<< std::endl;
}
Обратите внимание, это , а не шаблон.В 99% случаев это нормально.
(Что-то еще, C ++ не имеет заголовка <string.h>
, за исключением обратной совместимости с C. Заголовок C-строки в C ++ называется <cstring>
(обратите внимание на ведущий c
), но из вашего кода это выглядит так, как будто вы на самом деле имеете в виду заголовок <string>
(без начального c
).)