我正在將一個項目移植到iPhone系統,我面臨以下問題: 我有一個包含C++模板的標頭 如果我將它重命名爲.mm,它不會編譯(因爲它應該是一個標題),如果我將其保留爲.h,則將其解釋爲目標C標題在iPhone項目中的C++模板
您是否有解決此問題的解決方法?
在此先感謝!
問候,
編輯:添加錯誤消息和代碼
template <typename T>
class CML_Matrix
{
public:
//rest of teh template
};
錯誤消息是 「找不到類型名稱協議聲明」
感謝您的回答。我仍然有一個疑問:我有一個模板類定義在一個頭文件中#ifdef __cplusplus //模板在這裏 #endif 集團包裝。 如何在客觀的c應用程序中使用它? 在此先感謝! – 2010-02-18 19:50:18
您不能在Objective C中使用C++模板 - 模板不是Objective C中的語言特性。然而,在Objective C++中,它們是。將源重命名爲.mm並實例化。我剛剛嘗試了一個玩具iPhone項目 - 將main.m重命名爲main.mm,並且它編譯得很好。即使在模板定義附近使用了#ifdef __cplusplus。 – 2010-02-18 20:33:44