Boost常⽤的库很多都已经被包含到C++11、C++14或者C++17中,本文总结已加入到C++标准库中的boost模块。
常⽤功能库:
- 关于时间的 chrono库, 已加⼊C++11标准;
- 关于随机数的random库,已加⼊C++11标准;
- 关于正则表达式的regex库,已加⼊C++11标准。
内存管理:
主要是智能指针
- scoped_ptr和scoped_array,对应于在c++11中的unique_ptr;
- shared_ptr,已加⼊ c++11标准;
- weak_ptr,已加⼊ c++11标准;
- shared_array,多数情况可以使用shared_ptr或者vector<shared_ptrt>来代替。
实用⼯具:
- noncopyable,允许程序轻松实现⼀个禁⽌拷贝的类。它将拷贝构造函数和拷贝赋值函数设置为private,禁⽌进⾏拷贝和赋值。将默认构
造函数设置为protected,禁⽌直接产出⽆意义的noncopyable对象。 - ignore_unused,使⽤可变参数模板,可以⽀持任意数量、任意类型的变量,把它们作为函数的参数“使⽤”了⼀下,达到了与(void)var
完全相同的效果。但它的命名更清晰,写法更简单,⽽且由于是inline函数,完全没有运⾏时的效率损失。 - uuid, ⽤来⽣成全局唯⼀的UUID。
容器与数据结构:
- 定长数组类array,已加⼊C++11标准;
- 散列容器(⽆序关联容器)unordered_set、unordered_mulitset、unordered_map、unordered_multimap,已加⼊C++11标准;
- 元组tuple,已加⼊C++11标准;
- any,⽤来容纳任何类型的元素。 已加⼊C++17标准;
- 环形缓冲区circular_buffer。
函数与回调:
- ref库,定义了⼀个很⼩很简单的引⽤类型的包装器,可以⽤来进⾏引⽤传递。 已加⼊C++11标准。
- bind库,是对C++98标准中函数适配器bind1st/bind2nd的泛化和增强,可以适配任意的可调⽤对象,包括函数指针,函数引⽤,成员函
数指针和函数对象。已加⼊到C++11标准。 - function是⼀个函数对象的“容器”,概念上像是C/C++中函数指针类型的泛化,是⼀种“智能函数指针”。它以对象的形式封装了原始
的函数指针或函数对象,能够容纳任意符合函数签名的可调⽤对象。因此可以被⽤于回调机制,暂时保管函数或函数对象,在之后需要的时机再调⽤,使回调机制拥有更多的弹性。 已加⼊到C++11标准。
并发编程:
- atomic实现原⼦操作。它封装了不同计算机硬件的底层操作原语,提供了跨平台的原⼦操作功能,让我们完全摆脱并发编程读写变量的困
扰。已加⼊到C++11标准。 - thread库实现了操作系统⾥的线程表⽰,赋值启动和管理线程对象。已加⼊到C++11标准。
- asio库基于前摄器模式封装了操作系统的select、kqueue、poll/epoll、overlapped I/O 等机制,实现了异步IO模型。
参考
《boost程序库完全开发指南》
百度文库:https://wenku.baidu.com/view/64baefde740bf78a6529647d27284b73f2423695.html