Этот код вызывает ошибку в компиляторе GNU:
class A
{
public:
int X;
};
template<class T>
class Foo : public T
{
public:
void doStuff();
};
template<class T>
void Foo<T>::doStuff()
{
X++;
}
Уже есть ответ , почему это ошибка.Я хотел бы знать, есть ли другой способ обойти эту ошибку, вместо использования
T::X
каждый раз, когда я хочу сослаться на член X.Я пробовал это:
template<class T>
void Foo<T>::doStuff()
{
using T::X;
X++;
}
Но GCC выдает ошибку: "квалифицированное имя класса не допускается"