在Objective-C中包含带有名称空间的C ++头文件

时间:2013-06-11 21:08:52

标签: objective-c++

我正在尝试在我的iOS应用程序中使用C ++库,并且我正在使用Objective-C ++代码包装库。

我的iOS应用程序所依赖的一个头文件是一个C ++头文件,它在名称空间内声明了一些数据类型(枚举和类)。当我包含C ++标头iOS land时,我收到有关未识别的namespace关键字的编译器错误。

没有为所有C ++命名空间版本创建Objective-C ++包装类,还有另一种方法来引入C ++标题吗?

1 个答案:

答案 0 :(得分:4)

您唯一能做的就是将C ++标头导入包装在#ifdef __cplusplus指令中,这样可以保证其他Objective-C ++和C ++标头可以看到这些命名空间枚举和数据类型的值。如果使用未经检查的include,将始终存在某种形式的C ++标题污染。