假设我有一个文件alpha.h:如何专门化非模板类的模板化成员函数?
class Alpha {
public:
template<typename T> void foo();
};
template<> void Alpha::foo<int>() {}
template<> void Alpha::foo<float>() {}
如果我有alpha.h在一个以上的CPP文件,并使用GCC编译4.4,它抱怨有多个目标文件的foo<int>
和foo<float>
多种定义。对我来说很有意义,所以我在最后两行更改为:
template<> extern void Alpha::foo<int>() {}
template<> extern void Alpha::foo<float>() {}
但随后GCC说:
明确的模板特 不能有存储类
确定..那么我该如何正确地做到这一点?我担心C++不允许我想要做的事情,在这种情况下是否有一个很好的习惯用法可以完成同样的事情?
您可以使用 '内联'? – sje397 2010-07-16 16:18:07