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:找到一个或多个多重定义的符号
如果我删除第二个定义,它编译就好了。
答案 0 :(得分:10)
完全专业化不再是模板,而是普通的功能。
如果它包含在多个翻译单元中,则必须声明inline
。