我有一个使用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