所以,我一直在阅读,看起来Boost库在实践中得到了很多使用(不过在我的店里)。为什么是这样?是什么让它如此美妙?
答案 0 :(得分:122)
Boost被广泛使用,因为:
答案 1 :(得分:36)
从主页:
“......世界上最受尊敬和专业设计的C ++库项目之一。” - Herb Sutter和Andrei Alexandrescu,C ++编码标准
“第55项:熟悉Boost。” - Scott Meyers,Effective C ++,3rd Ed。
“对于大多数程序员来说,显而易见的解决方案是使用一个库来提供一个独立于所需服务的优雅高效的平台。例如BOOST ...” - Bjarne Stroustrup,抽象,库和C ++中的效率
所以,它是一系列广泛使用和接受的库,但你为什么需要呢?
如果您需要:
答案 2 :(得分:23)
因为他们在标准库中添加了许多缺失的内容,所以其中一些内容已经包含在标准库中。
Boost people没有撒谎:
组织为什么要使用Boost?
总之,生产力。用于 像Boost这样的高质量图书馆 加速初步开发,结果 减少错误,减少 重新发明,削减 长期维护费用。从那以后 Boost库往往成为de 事实上或法律上的标准,很多 程序员已经熟悉了 它们。
十个Boost库是 包含在C ++标准库中 TR1,等等以后会全部完成 标准化。更多Boost库 TR2正在筹备中。运用 Boost库为组织提供了支持 采用新的先机 技术。
许多组织已经使用了程序 与Adobe一样使用Boost实现 Acrobat Reader 7.0。
答案 3 :(得分:14)
一些Boost类非常有用(shared_ptr),但我认为它们对Boost中的特征和概念有点过分了。编译时间和巨大的二进制大小对于Boost来说是完全疯狂的,就像任何模板繁重的代码一样。必须保持平衡。我不确定Boost是否找到了它。
答案 4 :(得分:8)
它添加了库,允许更现代的C ++编程方法。
根据我的经验,许多C ++程序员实际上是20世纪90年代早期的C ++程序员,几乎都在编写C ++类,而不是使用泛型。更现代的方法使用泛型以更像动态语言的方式组合软件,但最终仍然可以获得类型检查/性能。看一下有点难看。但是一旦你克服了语法问题,它真的很不错。 Boost为您提供了很多轻松编写内容所需的工具。智能指针,函数,lambdas,绑定等。然后有一些boost库利用这种编写C ++的新方式来提供网络,正则表达式等等......
如果您正在编写大量的for循环,或者手动滚动函数对象,或者进行内存管理,那么你肯定应该检查一下。
答案 5 :(得分:8)
BOOST是一系列库,满足了许多C ++项目的共同需求。通常,它们优先考虑BOOST实现代码的可读性或有时编译时间的正确性,可重用性,可移植性,运行时性能和空间效率。它们往往不包括完整的高级功能需求(例如应用程序框架),而是(幸运的是)提供可以更自由地组合的构建块,而无需指示或支配应用程序设计。
考虑使用BOOST的重要原因包括:
这些库在这里用一两行描述:http://www.boost.org/doc/libs/。
答案 6 :(得分:6)
因为C ++标准库并非完全完成。
答案 7 :(得分:5)
任何有Kevlin Henney参与的事情都应该注意。
答案 8 :(得分:3)
基本上提升标准将成为什么,除了Boost获得的所有同行评审和使用之外,你可以非常确定你的依赖关系会得到很多好处。
然而,大多数商店不使用Boost,因为它具有外部依赖性。实际上,减少外部依赖性也非常重要。
答案 9 :(得分:3)
Boost是C ++,有点像.NET Framework是C#,但可能规模较小。
答案 10 :(得分:2)
我使用文件系统库退出了一点,而boost :: shared_ptr非常漂亮。我听说它也做其他事情。