因此,我一直在阅读,看来Boost库在实践中得到了很多使用(尽管不是在我的商店里)。为什么是这样?是什么让它如此美妙?
因此,我一直在阅读,看来Boost库在实践中得到了很多使用(尽管不是在我的商店里)。为什么是这样?是什么让它如此美妙?
Answers:
Boost之所以被广泛使用是因为:
在主页上:
“ ...世界上最受尊敬且设计最专业的C ++库项目之一。” — Herb Sutter和Andrei Alexandrescu,C ++编码标准
“第55项:熟悉Boost。” — Scott Meyers,Effective C ++,第三版。
“对于大多数程序员而言,显而易见的解决方案是使用一个库,该库提供独立于所需服务的优雅且高效的平台。示例是BOOST ...” — Bjarne Stroustrup,抽象,库和C ++中的效率
因此,它是一系列广泛使用和接受的库,但是为什么需要它呢?
如果你需要:
由于它们向标准库中添加了许多缺失的内容,因此其中的一些东西已包含在标准中。
助推人不撒谎:
组织为什么应该使用Boost?
总之,生产力。使用诸如Boost之类的高质量库可以加快初始开发速度,减少错误,减少重新设计,并降低长期维护成本。而且由于Boost库倾向于成为事实上的或法律上的标准,因此许多程序员已经熟悉它们。
C ++标准库的TR1中包含了十个Boost库,因此计划用于以后的全面标准化。更多的Boost库正在准备用于TR2。使用Boost库使组织可以在采用新技术方面抢先一步。
许多组织已经在使用通过Boost实现的程序,例如Adobe Acrobat Reader 7.0。
一些Boost类非常有用(shared_ptr),但我认为它们在Boost中具有一些特质和概念。与任何模板繁多的代码一样,Boost的编译时间和巨大的二进制大小完全是疯狂的。必须保持平衡。我不确定Boost是否找到了它。
它添加的库允许使用更现代的C ++编程方法。
以我的经验,很多C ++程序员实际上是1990年代初期的C ++程序员,几乎编写C ++类,而没有大量使用泛型。更为现代的方法使用泛型将软件组合在一起,这更像是动态语言,但最终您仍然可以获得类型检查/性能。看起来有点难看。但是一旦您克服了语法问题,它的确是相当不错的。Boost提供了许多轻松组成内容所需的工具。智能指针,函数,lambda,绑定等。然后是boost库,它们利用这种较新的C ++编写方式来提供网络,正则表达式等内容。
如果您正在编写大量的for循环,手动滚动函数对象或进行内存管理,那么您绝对应该检查一下boost。
BOOST集合了许多C ++项目共同需要的库。通常,它们的确将正确性,可重用性,可移植性,运行时性能和空间效率放在BOOST实现代码的可读性(有时是编译时间)之上。它们往往不能满足完整的高级功能需求(例如,应用程序框架),而是(谢天谢地)提供可以更自由地组合而无需决定或主导应用程序设计的构建块。
考虑使用BOOST的重要原因包括:
这些库在以下两行中描述:http : //www.boost.org/doc/libs/。
与Kevlin Henney参与的任何事情都应引起注意。
我使用文件系统库退出了一些,boost :: shared_ptr非常漂亮。我听说它也做其他事情。