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'