🔧 chore(cpp): align conventions and formatter config
This commit is contained in:
@@ -36,23 +36,21 @@ cpp/
|
||||
`export module my_project.net.http;`
|
||||
- 避免在同一模块内混用“头文件边界”和“模块边界”造成可见性混乱;对外 API 优先通过
|
||||
`export` 暴露。
|
||||
- 工程约束:新增/删除/重命名 `.cppm`(或变更
|
||||
`export module ...`)时,必须同步更新构建系统的模块清单(例如 CMake 的
|
||||
`target_sources(FILE_SET CXX_MODULES ...)`),否则容易出现“本地能编、CI/他人机器不能编”的漂移。
|
||||
- 工程约束:新增、删除、移动、重命名 `.cppm` 或改变其所属 target 时,必须同步更新
|
||||
CMake `FILE_SET CXX_MODULES`。变更 `export module ...` 名称时更新全部 `import`;仅当文件
|
||||
路径或所属 target 同时变化时才更新 file-set。
|
||||
|
||||
## 2. 格式(Formatting)
|
||||
|
||||
### 2.1 clang-format(必选)
|
||||
|
||||
- 本仓库/标准默认:`clang-format` + Google 风格。
|
||||
- 本仓库格式以 `templates/cpp/.clang-format` 为准;其中的配置属于对 Google 风格的项目级覆盖。
|
||||
- 建议在项目根目录提供 `.clang-format` 并纳入 CI/本地钩子。
|
||||
- 列宽建议与本 Playbook 其他语言保持一致:默认 100(可按项目调整,但要全仓一致)。
|
||||
- 模板:`templates/cpp/.clang-format`(参考
|
||||
`tsl-devkit/lsp-server/.clang-format` 并做了最小化泛化)。
|
||||
|
||||
### 2.2 通用格式约定
|
||||
|
||||
- 缩进使用空格,单次缩进 4 空格(Google)。
|
||||
- 不做“空格对齐排版”(避免 diff 噪音),用缩进表达结构。
|
||||
- 头文件 include 顺序建议(从上到下):
|
||||
1. 本文件对应头(如有)
|
||||
@@ -73,8 +71,8 @@ cpp/
|
||||
|
||||
## 5. Windows 支持
|
||||
|
||||
- 本规范假设 **不做原生 Windows 开发环境支持**;Windows 产物通过
|
||||
**Linux 上的 Clang 交叉编译工具链**获得(工具链路径/三元组等由项目的 Conan
|
||||
profile 或 toolchain 文件定义)。
|
||||
- Windows 目标必须在原生 Windows 环境完成构建和测试,并固定经过验证的编译器、SDK 与运行时。
|
||||
- Linux + Clang 交叉编译仅作为附加验证,不能替代原生 Windows 验证;项目必须明确记录目标三元组、
|
||||
ABI 与运行时。
|
||||
- 如需条件编译,优先用标准特性检测与最小化条件编译,并写清动机(例如 ABI/平台差异)。
|
||||
- 对路径、换行、编码、大小写敏感等行为要明确约束并在文档/测试中覆盖。
|
||||
|
||||
Reference in New Issue
Block a user