Apple LLVM 3.0中的模板和前向声明

问题描述:

我正在研究一个完全为LLVM GCC编译器编译的应用程序(包含3个项目,2个在C++中,另一个在Objective-C中)。但是,当我切换编译器“苹果LLVM编译器3.0”我发现一个奇怪的错误如下:Apple LLVM 3.0中的模板和前向声明

error: implicit instantiation of undefined template 'EList<ETemplateString<char>>' 

和上面的错误表现在以下几行代码:

EList<EString> outlist; 

与正向声明的EList如下:

template <class T> class EList; // forward decls 

为EString声明如下:

typedef ETemplateString<TCHAR>   EString; 

和休息使用的模板被定义为:

template <class T> class ETemplateString 
{ 
// 
// 
// 
} 

和TCHAR声明为:

typedef char TCHAR; 

任何人可以请让我知道为什么它编译好与海湾合作委员会,并引发错误的“ Apple LLVM编译器3.0'