template<class T>
class TBase
{
public:
typedef int Int;
struct TItem
{
T Data;
};
int value;
};
template<class T>
class TClass:public TBase<T>
{
public:
TBase<T>::TItem item; // error here. only when using type defined in base class.
void func()
{
TBase<T>::value ++; // no error here!
}
};
int main(int argc, char *argv[])
{
TClass<int> obj;
return 0;
}
В компиляторе VC и Borland C ++ они оба могут его скомпилировать. Но gcc не может скомпилировать его, поскольку он использует два раза для работы с шаблонами. VC или BCB не волнует неизвестное имя шаблона. Есть ли способ подавить эту функцию gcc? Спасибо!