小编jmp*_*ush的帖子

gcc模板继承问题

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;
}
Run Code Online (Sandbox Code Playgroud)

在 VC 和 Borland C++ 编译器中,它们都可以编译它。但是gcc无法编译它,因为它使用两次来处理模板的东西。VC 或 BCB 不关心未知的模板名称。有没有办法抑制gcc的这个功能?谢谢!

inheritance gcc templates g++

4
推荐指数
1
解决办法
674
查看次数

标签 统计

g++ ×1

gcc ×1

inheritance ×1

templates ×1