🔧 chore(standards): sync cpp rules and gitattributes

This commit is contained in:
csh 2026-01-08 15:58:04 +08:00
parent 488785f08f
commit f204115823
3 changed files with 20 additions and 8 deletions

View File

@ -4,12 +4,15 @@
## 1. 总体要求
- C++ 代码遵守 `docs/cpp/code_style.md``docs/cpp/naming.md`(在目标项目中通常 vendoring 到标准快照路径)。
- 统一使用 `clang-format`Google 基线)保持格式一致;不要手工“对齐排版”制造 diff 噪音。
- C++ 代码遵守 `docs/cpp/code_style.md`
`docs/cpp/naming.md`(在目标项目中通常 vendoring 到标准快照路径)。
- 统一使用
`clang-format`Google 基线)保持格式一致;不要手工“对齐排版”制造 diff 噪音。
- 改动聚焦目标;避免“顺手重构”。
- API 变更要显式说明影响与迁移方式。
- 涉及三方依赖(例如 Conan的改动必须说明动机、替代方案与影响面默认不“顺手升级依赖”。
- 涉及 C++ Modules 的改动(`.cppm` 或 `export module` 变更)必须同步更新构建系统的模块清单与相关 target 配置。
- 涉及 C++ Modules 的改动(`.cppm` 或 `export module`
变更)必须同步更新构建系统的模块清单与相关 target 配置。
## 2. 可读性

View File

@ -25,12 +25,18 @@
## C++ 必要约定(必须遵守)
- 语言标准C++23含 Modules
- 格式化:统一使用 `clang-format`Google 基线);避免手工排版对齐造成 diff 噪音。
- 格式化:统一使用
`clang-format`Google 基线);避免手工排版对齐造成 diff 噪音。
- 文件与命名:遵守 `docs/cpp/` 下的规范(或目标项目 vendoring 的标准快照路径)。
- Modulesmodule 名建议使用点分层级;每段用 `lower_snake_case`module interface unit 推荐 `.cppm`
- Modules 工程:新增/删除/重命名 `.cppm` 或修改 `export module` 时,必须更新 CMake target 的模块 file-set/清单(否则构建容易漂移)。
- Windows不支持原生 Windows 开发环境Windows 产物通过 Linux + Clang 交叉编译 profile 验证profile 的 `[settings] os=Windows`)。
- 依赖管理(如使用 Conan必须提供统一 preset`conan-release`/`conan-debug`);优先通过 `conan install` + `cmake --preset ...` 验证;如遇 Conan 家目录权限问题可临时设置 `CONAN_HOME=/tmp/conan-home`
- Modulesmodule 名建议使用点分层级;每段用 `lower_snake_case`module
interface unit 推荐 `.cppm`
- Modules 工程:新增/删除/重命名 `.cppm` 或修改 `export module`
时,必须更新 CMake target 的模块 file-set/清单(否则构建容易漂移)。
- Windows不支持原生 Windows 开发环境Windows 产物通过 Linux +
Clang 交叉编译 profile 验证profile 的 `[settings] os=Windows`)。
- 依赖管理(如使用 Conan必须提供统一 preset`conan-release`/`conan-debug`);优先通过
`conan install` + `cmake --preset ...`
验证;如遇 Conan 家目录权限问题可临时设置 `CONAN_HOME=/tmp/conan-home`
## 与开发规范的关系

3
.gitattributes vendored
View File

@ -83,3 +83,6 @@ CMakePresets.json text eol=lf
*.tar binary
*.exe binary
# END playbook .gitattributes
# Added from playbook .gitattributes (source: docs/standards/playbook/.gitattributes)
*.bat text eol=crlf