Я работаю над приложением (содержит 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'