0
template<typename T>
T foo(std::string key, T &def_value) {return def_value;}

template<>
std::string foo<std::string>(std::string key, std::string &def_value) {return def_value;}

致命错误 LNK1169:找到一个或多个多重定义的符号

如果我删除第二个定义,它编译得很好。

4

1 回答 1

10

全特化不再是一个模板,而是一个普通的函数。

如果它包含在多个翻译单元中,则必须声明inline

于 2012-12-03T10:00:27.233 回答