是否有另一种模板基类继承的解决方法?

cam*_*ilk 1 c++ inheritance gcc templates

此代码在GNU编译器中产生错误:

class A
{
public:
    int X;
};

template<class T>
class Foo : public T
{
public:
    void doStuff();
};

template<class T>
void Foo<T>::doStuff()
{
    X++;
}
Run Code Online (Sandbox Code Playgroud)

已经有一个答案为什么这是一个错误.我想知道是否有另一种解决此错误的方法而不是使用

T::X
Run Code Online (Sandbox Code Playgroud)

每次我想引用X成员.我试过这个:

template<class T>
void Foo<T>::doStuff()
{
    using T::X;
    X++;
}
Run Code Online (Sandbox Code Playgroud)

但是GCC给出了一个错误:"不允许使用类限定名称"

Naw*_*waz 8

using T::X应该管用.如果它给出了错误,那么代码还有其他问题,或者它必须是编译器错误.看看自己:http://www.ideone.com/MI9fM


演示:http://www.ideone.com/NIucO


演示:http://www.ideone.com/PswvG