2011-11-21 29 views
0

我正在研究一個完全爲LLVM GCC編譯器編譯的應用程序(包含3個項目,2個在C++中,另一個在Objective-C中)。但是,當我切換編譯器「蘋果LLVM編譯器3.0」我發現一個奇怪的錯誤如下: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; 

任何人可以請讓我知道爲什麼它編譯好與海灣合作委員會,並引發錯誤的「 Apple LLVM編譯器3.0'

回答