第1章 Boost程序库总论
1.1 关于Boost
本节将带领读者快速浏览Boost程序库,了解它的历史、组成和基本使用方式。
1.1.1 什么是Boost
Boost库是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++(www.cppentry.com)程序库。
1998年,Beman G.Dawes(C++(www.cppentry.com)标准委员会成员之一)发起倡议并建立了Boost社区,目的是向C++(www.cppentry.com)程序员提供免费的(free)、同行审查的(peer review)、可移植的(portable)高质量C++(www.cppentry.com)源程序库。Boost强调程序库要与C++(www.cppentry.com)标准库很好地共同工作,建立在"既有的实践"之上和提供参考实现,使得Boost库可以适合最后的标准化。自创立以来,Boost社区的工作已经取得了卓越的成果,C++(www.cppentry.com)11标准库中有三分之二来自Boost库,而且将来还会有更多的库进入新标准。
C++(www.cppentry.com)三十余年的发展历史中产生了数不清的程序库,有影响力的也不计其数(如微软的MFC、Borland的OWL),然而没有一个能够与Boost相提并论,Boost有着与其他程序库无法比拟的优点。
首先,许多Boost库的作者本身就是C++(www.cppentry.com)标准委员会成员,因此Boost天然成为了标准库的后备,负责向新标准输送组件,也使得Boost获得了"准"标准库的美誉 。其次,Boost库独特的同行审查制度保证了每一个Boost库组件都经过了严格的审查和验证,使库具有很高的工业强度,甚至超过大多数商业产品的实现。Boost库采用了类似STL的编程(www.cppentry.com)范式,但却并没有STL那样晦涩难懂,代码格式优美清晰、易于阅读,而且附带丰富的说明文档--它既是一个程序库,同时也是一个很有价值的学习现代C++(www.cppentry.com)编程(www.cppentry.com)的范本。最后,Boost的发布采用Boost Software License,这是一个不同于GPL、Apache的非常宽松的许可证,允许库用户将Boost用于任何用途,既鼓励商业用途,也鼓励非商业用途。用户无须支付任何费用,不受任何限制,即可轻松享有Boost的全部功能。
本书内容基于Boost官方于2012年8月发布的Boost1.51版,共包含117个库(组件),分为25大类,涵盖字符串与文本处理、容器、迭代器、算法、图像处理、模板元编程(www.cppentry.com)、并发编程(www.cppentry.com)等许多领域--使用Boost,将大大增强C++(www.cppentry.com)的功能和表现力。
虽然本书主要讨论Boost1.51版,但由于Boost库中的许多组件已经相当稳定,故书中的论述对1.51版之前和之后的版本也基本适用。