Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
Boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。
VS2010下配置Boost库:
- 去Boost官网下载最新的Boost库,我下载的是boost_1_56_0.7z,解压到D盘根目录;
- 点击“开始”-->Microsoft Visual Studio 2010-->Visual Studio Tools-->Visual Studio 命令提示(2010);
- 进入Boost库目录,输入命令:cd D:oost_1_56_0;
- 输入bootstrap(当前目录下的一个.bat文件),便生成bjam.exe文件;
- 输入bjam toolset=msvc-10.0 variant=debug,release threading=multi link=static,便生成boost库(大约半个小时);
- 修改项目属性:配置属性-->C/C++-->常规-->附加包含目录:D:oost_1_56_0;配置属性-->链接器-->常规-->附加库目录:D:oost_1_56_0stagelib;
用VS2010新建一个控制台程序,其源代码如下:
#include <iostream> #include <boost/thread/thread.hpp> void HelloWorld() { std::cout << "Hello world, I'm a thread!" << std::endl; } int main() { boost::thread thread1(&HelloWorld); thread1.join(); system("pause");
return 0; }
运行结果如下:
Boost库学习链接:
Boost官方网站:http://www.boost.org
读《Boost程序库完全开发指南》:http://dearymz.blog.163.com/blog/static/2056574201141883716608/