请遵循：
- 最小化修改代码，不要修改任何与解决当前问题无关的代码（包括注释），一定不能删除任何其他的代码
- 使用源代码中的格式化方式和注释风格
- 日志的字符串格式采用拼接方式，不要使用{}占位符

请遵循以下 Markdown 规范：

1. 标题层级
   - 文档标题使用一级标题 (#)
   - 主要章节使用二级标题 (##)
   - 子章节使用三级及以下标题
   - 标题和内容之间空一行
   - 标题层级不跳跃使用

2. 列表格式
   - 无序列表统一使用 -
   - 列表项前后空一行
   - 列表嵌套使用两个空格缩进

3. 代码块
   - 使用 ```language 指定语言
   - 代码块前后空一行
   - 代码添加必要的注释

4. 内容格式
   - 中英文之间加空格
   - 使用半角标点符号
   - 代码、参数等使用反引号包裹
   - 重要内容使用加粗或斜体

5. 文档结构
   - 章节层次分明
   - 内容组织有序
   - 格式统一一致

请遵循如下 C++ 规范：
- 使用 C++17 标准
- 使用 CMake 3.14 及以上版本
- 使用 nlohmann_json 3.11.3 版本
- 使用 FetchContent 管理第三方库
- 使用 Google Test 进行单元测试
- 使用 Google Mock 进行单元测试
- 使用 Google Benchmark 进行性能测试
- 在头文件中定义函数，在源文件中实现函数