非模板的模板定义

时间:2011-07-07 15:40:36

标签: c++ templates inheritance

在尝试实现这样的事情时,我得到了“非模板的模板定义”编译错误:

class BaseFoo
{
    BaseFoo();
    ~BaseFoo();

    virtual void method();
};

template <class A>
class Foo : public BaseFoo
{
 Foo();
    ~Foo();

    virtual void method();
};

如果先前在模板类中定义了一个不是模板化类的基类,是否可以重新定义模板类中的方法?

2 个答案:

答案 0 :(得分:3)

显然这是一个最终在gcc 4.2中修复的错误。请参阅http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27211

答案 1 :(得分:0)

是的,这种事情是完全合法的。您提供的代码在gcc 4.2.1中编译良好。

这是您收到错误的确切代码吗?你使用什么编译器?