C++ 轮子系列

如果说我看得比别人更远些,那是因为我站在巨人的肩膀上

牛顿这句话非常契合现在的软件开发,因为基本上很少有人写的软件是从零开始。就我而 言,任何一项开发任务的迭代周期的起点都是了解已经存在的巨人。在C++的世界里其实有大量的轮子。这个系列的文章,主要总结一些我用过的比较好用的轮子,当时自己的一个学习笔记吧,我平时学习这些库的时候比较喜欢去翻一翻库的实现源码,所以这个系列的文章在涉及怎么用的同时也会涉及到如何实现。

主要内容包括:

  1. C++ 标准库
  2. 准标准库 – boost
  3. 其他库

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