我有一个带有成员模板函数的类:
// writer.h
class Writer {
public:
...
template <typename T, typename V>
void addField(const std::string& name, V v)
{
// write something
}
};
在 Writer 的源文件中,我为以下内容添加了明确的特化some_type
:
// writer.cpp
template <>
void Writer::addField<some_type, int>(const std::string& name, int v)
{
// specific some_type writing logic
}
这工作......有时。即使我确定我有正确的类型:
writer.addField<some_type>("name", static_cast<int>(some_value));
有时会调用显式特化,有时会调用主特化。是什么赋予了?