如果说我看得比别人更远些,那是因为我站在巨人的肩膀上
牛顿这句话非常契合现在的软件开发,因为基本上很少有人写的软件是从零开始。就我而 言,任何一项开发任务的迭代周期的起点都是了解已经存在的巨人。在C++的世界里其实有大量的轮子。这个系列的文章,主要总结一些我用过的比较好用的轮子,当时自己的一个学习笔记吧,我平时学习这些库的时候比较喜欢去翻一翻库的实现源码,所以这个系列的文章在涉及怎么用的同时也会涉及到如何实现。
主要内容包括:
- C++ 标准库
- 准标准库 – boost
- 其他库
C++ 标准库
C++ 标准库其实非常庞大,并且在逐年的增长。介绍 C++ 标准库的使用方面的书最好的可能是 Nicolai M·Josuttis 的《C++标准库》第二版。在线文档可以可以通过[devdocs][] 查询。这个系列的文章中无法涵盖 C++ 标准库中的所有内容,只是选取下面一些常用的库做介绍。此外因为 boost 库中有很大一部分都收录到了 11,14,17 的标准库中,11 之后的这些库会放到 boost 中去讲解,一方面是因为 boost 支持 03 标准,另一方面是因为 boost 的源码更容易阅读。因此标准库中这一部分只会介绍下面这些组件:
- STL
- string
boost
boost
有准标准库之称,里面包含非常多的好用的库,有很大一部分的库都被 11,14,17
这几个版本的标准陆续的收纳到标准库中。这个系列的文章无法讲解全部的内容,会介绍下面这些我用过的boost
库。
- asio
- uuid
- bind
- function
- thread
- option
- variant
- smart ptr
其他库
除了上面提到的这些库之外,之前还用过其他一些比较好用的C++库会在也会在这个系列的文章中做简要的介绍。
- fmt
- json
- spdlog