在iOS开发中使用C++ STL有什么限制吗?

10

我的目的是在iOS开发中使用一些C++ STL的实现并将其打包为静态库进行重复使用。

众所周知,iOS设备基于ARM6/7系列,与*86系列有所不同,因此某些编译器选项也会有所不同。

对于移动开发,我们更喜欢在不同平台间重复使用一些C++代码,例如iOS、Android甚至PC后端。

因此,我想了解这种目的存在哪些问题或限制。

谢谢


C++ STL仅涵盖一些流行版本,我不希望覆盖所有STL库,我只是想了解针对此案例的一些常见问题。感谢指出任何一个问题。


1
当你说“一些STL实现”时,是指“任何STL实现”还是“一个特定的STL实现”?因为据我所知,随Xcode一起提供的STL与iDevices完美配合。只要你不自己编写汇编代码,我看不出有什么不能工作的。 - zneak
2个回答

8
使用标准化工具的主要目的是实现可移植性。只要按照预期使用库,不依赖于标准之外的行为,就可以将其移植到任何具有良好C++实现的平台上,而不会出现任何问题。
iOS上的标准库实现与Mac OS上的相同,没有任何区别。
ARM与x86没有任何区别。C++标准库的一个部分称为STL,完全由模板组成,因此被称为“标准模板库”。高级数据结构的模板化几乎排除了汇编技巧。

2
唯一需要注意的是,当需要进行这样的过渡时,您必须确保从STL集合优雅地过渡到Cocoa集合。尽管听起来有点晦涩,但我已经看到了几个人试图将STL强行塞入不适合它的Cocoa领域中,这只会带来更多不必要的工作,并最终导致产品质量下降。 - matthias

2

不需要 - 在我之前的雇主工作时,我们使用了一个完整的协议栈(包括一些STL)用C++编写的桌面客户端来启动我们的iPhone客户端的开发。效果非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接