C++ 代码审查¶
此命令会调用 cpp-reviewer 代理,执行专用于 C++ 的全面代码审查。
此命令的工作方式¶
- 识别 C++ 变更:使用
git diff查找已修改的.cpp、.hpp、.cc、.h文件 - 执行静态分析:运行
clang-tidy和cppcheck - 内存安全扫描:检查裸 new/delete、缓冲区溢出和 use-after-free
- 并发审查:分析线程安全性、mutex 使用和数据竞争
- 现代 C++ 检查:验证代码是否遵循 C++17/20 规范和最佳实践
- 生成报告:按严重程度对问题进行分类
使用时机¶
使用 /cpp-review 的时机:
- 编写或修改 C++ 代码之后
- 提交 C++ 变更之前
- 审查包含 C++ 代码的拉取请求时
- 熟悉新的 C++ 代码库时
- 检查内存安全问题时
审查类别¶
CRITICAL(必须修复)¶
- 没有 RAII 的裸
new/delete - 缓冲区溢出和 use-after-free
- 无同步的数据竞争
- 通过
system()造成的命令注入 - 读取未初始化变量
- 空指针解引用
HIGH(应当修复)¶
- 违反 Rule of Five
- 缺少
std::lock_guard/std::scoped_lock - 缺少适当生命周期管理的分离线程
- 使用 C 风格转换代替
static_cast/dynamic_cast - 缺少
const正确性
MEDIUM(考虑)¶
- 不必要的拷贝(按值传递而不是
const&) - 已知大小的容器中缺少
reserve() - 头文件中的
using namespace std; - 重要返回值上缺少
[[nodiscard]] - 过度复杂的模板元编程
执行的自动检查¶
# 静的解析
clang-tidy --checks='*,-llvmlibc-*' src/*.cpp -- -std=c++17
# 追加分析
cppcheck --enable=all --suppress=missingIncludeSystem src/
# 警告付きビルド
cmake --build build -- -Wall -Wextra -Wpedantic
批准标准¶
| 状态 | 条件 |
|---|---|
| 批准 | 没有 CRITICAL 或 HIGH 问题 |
| 警告 | 仅有 MEDIUM 问题(谨慎合并) |
| 阻断 | 存在 CRITICAL 或 HIGH 问题 |
与其他命令的集成¶
- 首先使用
/cpp-test确认测试通过 - 如果发生构建错误,使用
/cpp-build - 提交前使用
/cpp-review - 对于非 C++ 特定的关注点,使用
/code-review
相关¶
- 代理:
agents/cpp-reviewer.md - 技能:
skills/cpp-coding-standards/、skills/cpp-testing/
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC