Мне приходится использовать внешнюю библиотеку, но я получаю «множественную ошибку определения» из следующей функции шаблона и ее явной специализации, если она вызывается с помощью std::string.
template <typename T>
void foo(T& value);
template <>
void foo(std::string& value);
даже если я изменю вторую функцию на
void foo(std::string& value);
проблема такая же.
Согласно [1] по крайней мере версия без шаблона ("простая старая функция") должна быть предпочтительнее версии с шаблоном.
Кто-нибудь знает, где может быть проблема?
[1] http://www.gotw.ca/publications/mill17.htm