Files
playbook/rulesets/cpp/index.md
T

2.1 KiB
Raw Blame History

C++ 智能体规则集

本规则集定义 AI/自动化智能体在处理 C++ 代码时必须遵守的核心约束。

范围与优先级

  • 作为仓库级基线规则集使用;更靠近代码目录的规则更具体并可覆盖基线。
  • 当智能体规则与 docs 冲突:安全/合规优先,其次保持仓库一致性。

智能体工作原则(铁律)

  1. 先理解目标与上下文,再动手改代码
  2. 修改要小而清晰;避免无关重构
  3. 发现安全问题(内存安全/鉴权漏洞)立即标注或修复
  4. 不引入新依赖或工具,除非明确要求

C++ 核心约定(不可违反)

  • 使用 C++23,关闭编译器扩展,并固定经过验证的 CMake、编译器和 Conan 2 版本。
  • 新增的项目内部组件优先使用 Modules;第三方库、C API、平台接口及工具链不支持的场景允许使用头文件。
  • 使用 RAII 管理资源;禁止拥有所有权的裸指针以及直接使用 new/delete。非空借用使用引用,可空借用允许使用 T*
  • 内部字符串和缓冲区优先使用 std::stringstd::string_viewstd::spanC 风格接口仅限互操作边界。
  • 以项目 .clang-format 和命名规则为准;相对 Google C++ Style Guide 的差异属于明确的项目级覆盖。
  • 头文件使用 #pragma once
  • 模块名采用点分 lower_snake_case,接口文件使用 .cppm
  • 新增、删除、移动模块接口文件或改变所属 target 时,更新 CMake FILE_SET CXX_MODULES;模块改名时更新全部 import
  • 提供明确的 Conan build/host profiles 和可复现的 Release/Debug preset,不依赖生成器的隐式命名。
  • Windows 必须进行原生 Windows 构建和测试;Linux + Clang 交叉编译仅作为附加验证,并明确目标 ABI 和运行时。

权威来源

  • 代码风格:docs/cpp/code_style.md
  • 命名规范:docs/cpp/naming.md
  • 工具链:docs/cpp/toolchain.md
  • 依赖管理:docs/cpp/dependencies_conan.md
  • clangd 配置:docs/cpp/clangd.md

Skills(按需加载)

  • $commit-message

与开发规范的关系

  • 规范文档:docs/cpp/docs/common/