跳转至

C++ 代码审查

此命令会调用 cpp-reviewer 代理,执行专用于 C++ 的全面代码审查。

此命令的工作方式

  1. 识别 C++ 变更:使用 git diff 查找已修改的 .cpp、.hpp、.cc、.h 文件
  2. 执行静态分析:运行 clang-tidy 和 cppcheck
  3. 内存安全扫描:检查裸 new/delete、缓冲区溢出和 use-after-free
  4. 并发审查:分析线程安全性、mutex 使用和数据竞争
  5. 现代 C++ 检查:验证代码是否遵循 C++17/20 规范和最佳实践
  6. 生成报告:按严重程度对问题进行分类

使用时机

使用 /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