访问父模板的成员时,避免模板中的LLVM错误

时间:2015-01-09 13:18:54

标签: c++ clang llvm-clang

我们说我有一个像这样的简单模板类:

template<class x> class TParent 
{
public: 
    int Variable;
};

template<class x> class TChild : public TParent<x>
{
    typedef TParent<x> SUPER;
public:
    void Method() { Variable = 1; };   // *ERROR* needs to be SUPER::Variable = 1;
};

它适用于Microsoft编译器,但LLVM&amp; Clang不喜欢它,需要上面提到的改变。但它没有任何意义,如果类不是模板,它一切正常。有没有办法禁用这个荒谬的错误?

当然它很容易解决,对于较小的类是可以接受的,但如果模板是一个由数千行组成的庞大类,从父进程中一直访问成员,它就会产生代码非常丑陋,难以阅读。

0 个答案:

没有答案