我必须使用外部库,但是如果使用 std::string 调用它,则会从以下模板函数及其显式特化中得到“多重定义错误”。
template <typename T>
void foo(T& value);
template <>
void foo(std::string& value);
即使我将第二个功能更改为
void foo(std::string& value);
问题是一样的。
根据 [1],至少应该优先使用没有模板的版本(“普通旧功能”)而不是模板版本。
有没有人有线索,问题可能出在哪里?