仅需要头文件的c++库
FMT
C++格式化字符串一直是个老大难,要么用系统API,要么用C库函数,要么自己写。最近std::format终于在C++20来了。。。cpp在一边不停加入新特性,实用的东西还是不少,比如cpp11的多线程支持,cpp17的filesystem等等,而网络库还不知道在哪。但是这些东西似乎来得太迟。cpp的现状却是很惨。其它语言很快崛起很大的原因就是基础库很全,你可以烂,可以不好用,但你不能没有啊。什么轮子都要自己造。吐槽完毕。
而vs2019仍然没有加入std::format支持,所以先自己用fmt::format。当然这个库可以编译成动态静态库,也可以header-only。
不想编译,我直接用它的header-only 先在项目属性的预处理器里加上FMT_HEADER_ONLY=1,把fmt的include加入附加包含目录然后在项目 加入如下头文件。如果使用库方式则不需要format.cc。但是需要链接相应的库。
参考:
spdlog
spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11。
特性:
- 非常快
- 只包含头文件
- 无需依赖第三方库
- 支持跨平台 - Linux / Windows on 32/64 bits
- 支持多线程
- 可对日志文件进行循环输出
- 可每日生成日志文件
- 支持控制台日志输出
- 可选的异步日志
- 支持日志输出级别
- 自定义日志格式
参考:
JSON for Modern C++
nlohmann/json 是一个用于解析json的开源c++库,口碑一流,号称有业界最好的性能,并且使用非常方便直观,是很多c++程序员的首选。开源官网处有详细说明用法,但篇幅过长,不便于迅速阅读抓重点。而且,所举例的某些用法实践上其实比较少用到,而某些实践上常用到的一些用法,官网却缺例子。所以自己简要总结了一下它的主要用法,并加上自己写的示例,希望能给到新接触该库的朋友一些帮助。
参考:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 水 流 记!