如何使模板成员函数专门化从继承类?



需要一些关于模板成员函数特化的帮助,如下代码;

class Base
{
public:
template <int>  void MyFunc();
};

class Object : public Base
{
public:
//template <int>    void MyFunc(); // with this works !!!
template <> void MyFunc<3>()
{
}
};

谢谢! !

你不能。

原因是当编译器看到Object的声明时,它对Base的模板函数一无所知。所以它不能为Object生成MyFunc的专门化。

唯一的方法是在基类中声明MyFunc的专门化。

成员函数模板不能被继承。

最新更新