【问题标题】:Template and Forward declaration in Apple LLVM 3.0Apple LLVM 3.0 中的模板和前向声明
【发布时间】:2011-11-21 09:41:58
【问题描述】:

我正在开发一个应用程序(包含 3 个项目,2 个在 c++ 中,一个在 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”中抛出错误

【问题讨论】:

    标签: xcode gcc llvm-gcc llvm-clang


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多