Apple LLVM 3.0中的模板和转发声明

时间:2011-11-21 09:41:59

标签: xcode gcc llvm-gcc llvm-clang

我正在开发一个应用程序(包含3个项目,2个用c ++编写,1个用于Objective-C),它们完美地编译了LLVM GCC编译器。但是当我将编译器切换到'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;

任何人都可以告诉我为什么它与GCC编译良好并在'Apple LLVM编译器3.0'中抛出错误

1 个答案:

答案 0 :(得分:1)