我有一个小的C ++帮助文件,它有一些std :: strings的支持函数。当我在“.cpp”文件和“.mm”文件中使用它时,我想添加一些Objective C ++帮助器函数。现在我搜索一个类似的定义:
#ifdef __APPLE__
#ifdef __I_AM_INCLUDED_IN_A_MM_FILE__
// define some Objective C++ code here
#endif
#endif
有定义吗?是否有XCode定义列表?
答案 0 :(得分:4)
__OBJC__
和__OBJC2__
。
为了将来参考,您可以按如下方式测试:
$ clang -dM -E foo.mm > mm.txt
$ clang -dM -E foo.cpp > cpp.txt
$ sdiff -s mm.txt cpp.txt
#define IBAction void)__attribute__((ibaction) <
#define IBOutlet __attribute__((iboutlet)) <
#define IBOutletCollection(ClassName) __attribute__((iboutlet <
#define OBJC_ZEROCOST_EXCEPTIONS 1 <
#define __NEXT_RUNTIME__ 1 <
#define __OBJC2__ 1 <
#define __OBJC__ 1 <
(请注意,foo.mm和foo.cpp只是空文件)