我有一個使用C++庫提供的功能的Objective-C/C++應用程序。混合Objective-C和C++代碼
其中一個C++類的包括這樣一個枚舉:
class TheClass
{
public:
[...]
enum TheEnum
{
YES,
NO,
};
[...]
};
包括(使用#import -if該事宜)與一個Objective-C/C上述類聲明頭文件++源文件(* .mm)將導致編譯失敗,因爲預處理器將用「(BOOL)1」替代「YES」(同樣用「(BOOL)0」替代「NO」)。
有沒有辦法解決這個問題,而不重命名的枚舉值?
YES和NO在Objective-C中定義了宏,不能將這些術語用作標識符。 – xtofl 2009-08-10 12:02:24
好的,但在這種情況下,不會扭轉聲明仍然有效的順序? – 2009-08-10 12:08:27
#import使MIDL編譯器生成一個包含導入庫的C++表示的頭文件,該文件由預處理器隨後包含。 – xtofl 2009-08-10 12:10:25