为什么我应该使用Apache C ++标准库而不是任何其他STL实现以及Boost?

时间:2009-10-19 23:59:05

标签: c++ apache stl

我从Apache C++ standard library获得了哪些我从编译器和Boost库附带的STL实现中获得的好处?

5 个答案:

答案 0 :(得分:5)

stdxx声称的一个优点对我来说似乎是真实的:

  
      
  • 针对快速编译和优化进行了优化   极小的可执行文件大小
  •   

在本文中,Stroustrup讨论了在一些名为SCARY的C ++编译器中应用的新思想。我首先在one of his papers中阅读了它。无论如何,这个功能允许将生成的可执行文件大小减少(~1x - ~25x),并且(~1.2x - ~2.1x)更快。在第一篇论文中,他说Rogue Wave STL支持SCARY,至少在现代实现中是这样的:

  

Rogue Wave的最新版本   STL有独立的容器   迭代器处于生产模式,但是   一些标准容器'   迭代器在调试中不是独立的   模式。 N2911解释了这些   实际上并不需要依赖项   用于调试目的,可以轻松实现   被删除。

因此,如果stdxx基于Rogue Wave STL,则可能已实现此想法。

答案 1 :(得分:5)

  

Apache C ++标准库   项目是一个完整的实施   ISO / IEC 14882 C ++标准   库。

     

最显着的特征   这个C ++的实现   标准库是它的便携性   大量的C ++编译器,   操作系统和硬件   架构。

听起来如果你重视极端的便携性,这对你来说就是这样。如果不这样做,大多数人都会默认使用编译器的默认实现,所以如果遇到麻烦,社区就会变得更大。如果你没有遇到实施问题,我不明白为什么它会产生很大的不同。

我通常会因为这个意见而受到抨击,但我喜欢有一个公司可以支付以解决问题的想法,我的开发人员(和我)不够聪明(或没有时间)潜入内部并修复错误。

答案 2 :(得分:2)

不幸的是,自2013年7月起不再支持此库。请参阅邮件列表公告:http://mail-archives.apache.org/mod_mbox/stdcxx-dev/201307.mbox/browser

答案 3 :(得分:1)

Apache C ++库最初是Rogue Wave的商业库。他们声称非常密切地跟踪C ++标准,并努力确保各种操作系统和编译器的可移植性。声称Rogue Wave库已被移植到40多个编译器中。

答案 4 :(得分:0)

我不熟悉Apache C ++标准库,所以我不确定它有什么设施。如果您发现它提供了您需要的所有内容,那么使用它或使用另一个STL实现与Boost并没有太大区别。但是,Boost提供的功能远远超过一些TR1功能和智能指针等功能。它还有:

  1. lambda表达式/闭包
  2. 模板和预处理器元编程
  3. 信号和插槽/观察者/侦听器模式实现
  4. 参考包装
  5. 在单个图书馆的其他地方找不到其他很多随机的东西
  6. 这一切都取决于你需要的设施。