BOOST应用初探作者:冯刚2011-8-41背景BOOST是由c++标准化委员会成员参与开发的c++标准的准官方库,他是C++标准库的发动机
下一代C++标准C++0x的标准库很多来自于boost
Boost库覆盖了广泛的领域,从数学库到智能指针,从模板元编程库到预处理器库及语法词法分析,从线程到lambda表达式,等等
所有Boost库都具有宽松的许可证,确保库可以被自由使用于商用软件
1概况Boost库涵盖了很广泛的领域,下面就常用的功能像智能指针,正则表达式,函数对象bind和function,线程和线程池,时间日期,多索引容器,哈希容器,bimap,日志,内存池,模板元编程,循环缓冲区,tuple,观察者模式signal2,网络通讯asio做一些介绍
1智能指针2
1概论smartpointers(智能指针)是存储“指向动态分配(在堆上)的对象的指针”的对象
他们的行为很像C++的内建指针,只是它们可以在适当的时候自动删除它们所指向的对象
智能指针在面对异常时有非常显著的作用,它们可以确保动态分配对象的完全析构
它们还可以用于跟踪多主人共享的动态分配对象
在概念上,智能指针可以看作拥有它所指向的对象,并因此在对象不再需要时负责将它删除
智能指针库提供了六个智能指针类模板:scoped_ptr简单的单一对象的唯一所有权
scoped_array简单的数组的唯一所有权
shared_ptr在多个指针间共享的对象所有权
shared_array在多个指针间共享的数组所有权
weak_ptr一个属于shared_ptr的对象的无所有权的观察者
intrusive_ptr带有一个侵入式引用计数的对象的共享所有权
这些模板被设计用来补充std::auto_ptr模板的不足
2智能指针shared_ptrsha