我有一个不使用命名空间的C ++库。我想将它移植到Objective-C。问题是两者之间的名称冲突。我希望它在Objective-C中具有相同的名称,即C ++对象的名称。但是,我只是无法找到最好的方法来做到这一点,而不是它变得一团糟。我希望有一个解决方案。
答案 0 :(得分:1)
以与在Mac上编写框架相同的方式为您的所有Objective-C类添加前缀,而Apple则使用其框架。
答案 1 :(得分:0)
您可以使用#define
和#undef
临时重命名代码中的类/函数等 - 只需确保在调用C ++代码时它们是未定义的。
e.g。在包装器的标题中有#define Bar_Function Foo_Function
,然后用#undef Bar_Function
和#define Bar_Function Foo_Function
和{{1}}包围调用库的Bar_Function的代码位
现在唯一的问题是你需要导出自己的Bar_Function ......
不要这样做 - 它很傻,只是解决它。 :)