Шаблон и Форвардная декларация в Apple LLVM 3.0 - PullRequest
0 голосов
/ 21 ноября 2011

Я работаю над приложением (содержит 3 проекта, 2 на c ++ и один на Objective-C), которое прекрасно компилируется для компилятора LLVM GCC.Но когда я переключил компилятор на «Apple LLVM compiler 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 compiler 3.0'

1 Ответ

1 голос
/ 22 ноября 2011
...