🔧 chore(cpp): align conventions and formatter config

This commit is contained in:
csh
2026-07-20 09:08:37 +08:00
parent 502e1321c1
commit 1d5304e7b6
4 changed files with 36 additions and 27 deletions
+10 -5
View File
@@ -16,11 +16,16 @@
## C++ 核心约定(不可违反)
- 语言标准:C++23;优先使用 Modules;避免裸指针、`new/delete`、C 风格字符串
- 代码风格:Google C++ Style Guide;使用项目 `.clang-format`;头文件保护用 `#pragma once`
- 命名规范:文件 `lower_with_under.cpp/.h/.cppm`;类型 `CapWords`;函数/变量 `lower_with_under`;常量 `kCapWords`;成员 `lower_with_under_`;命名空间 `lower_with_under`
- Modules 工程:模块名点分层 `lower_snake_case`;接口文件 `.cppm`;修改 `export module` 必须更新 CMake module file-set
- 构建与依赖:Conan 需提供 `conan-release`/`conan-debug``conan install` + `cmake --preset ...`Windows 通过 Linux + Clang 交叉编译验证
- 使用 C++23,关闭编译器扩展,并固定经过验证的 CMake、编译器和 Conan 2 版本。
- 新增的项目内部组件优先使用 Modules;第三方库、C API、平台接口及工具链不支持的场景允许使用头文件。
- 使用 RAII 管理资源;禁止拥有所有权的裸指针以及直接使用 `new/delete`。非空借用使用引用,可空借用允许使用 `T*`
- 内部字符串和缓冲区优先使用 `std::string``std::string_view``std::span`C 风格接口仅限互操作边界。
- 以项目 `.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 和运行时。
## 权威来源