我有一个模板:
template <typename T>
class MyThing {
public:
static void Write(T value) { ... }
static void Flush() { ... }
}
对于特定类型,例如bool
,我想在不修改其他方法的情况下专门化Write
方法。像这样......
// Specialize Write() behavior for <bool> ...
// This won't work. Mything<bool> no longer has a Flush() method!
template <>
class MyThing<bool> {
public:
static void Write(bool value) { ... }
}
如何专门化模板类中的一种方法?
答案 0 :(得分:3)
对此的修复变得简单......
我需要做的就是在我的.cc文件中定义方法:
template <>
void MyThing<bool>::Write(bool value) { ... }
然后在我的.h文件中声明它:
template <>
void MyThing<bool>::Write(bool value);
我花了一段时间来弄清楚这一点,所以我想我会发布它。