0

私は、LLVM GCC コンパイラ用に完全にコンパイルするアプリケーション (3 つのプロジェクト、c++ で 2 つ、Objective-C で 1 つ) に取り組んでいます。しかし、コンパイラを「Apple LLVM コンパイラ 3.0」に切り替えると、次のような奇妙なエラーが 1 つ見つかりました。

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 compiler 3.0」でエラーがスローされるのか教えてください。

4

1 に答える 1