请遵循: - 最小化修改代码,不要修改任何与解决当前问题无关的代码(包括注释),一定不能删除任何其他的代码 - 使用源代码中的格式化方式和注释风格 - 日志的字符串格式采用拼接方式,不要使用{}占位符 请遵循以下 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 进行性能测试 - 在头文件中定义函数,在源文件中实现函数