繁体   English   中英

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

[英]Why should I use Apache C++ Standard Library rather than any other STL implementation along with Boost?

我从Apache C ++标准库中获得了什么好处,而我从编译器和Boost库附带的STL实现中得不到什么好处?

stdxx声称对我的优势stdxx似乎是正确的:

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

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

最新版本的Rogue Wave STL在其生产模式中具有独立的容器迭代器,但某些标准容器的迭代器在调试模式下不是独立的。 N2911解释说,这些依赖关系实际上并不需要用于调试目的,并且可以轻松删除。

因此,如果stdxx基于Rogue Wave STL ,它可能已经实现了这个想法。

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

这种C ++标准库实现的最显着特点是它可以移植到大量的C ++编译器,操作系统和硬件架构。

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

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

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

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

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

  1. Lambda表达式/瓶盖
  2. 模板和预处理器元编程
  3. 信号和插槽/ Observer / Listener模式实现
  4. 参考包装器
  5. 很多其他随机的事情,你不可能在一个库中的其他地方找到

这一切都取决于您需要的设施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM