cpp-coding-standards
基于C++核心指南(isocpp.github.io)的C++编码标准。在编写、审查或重构C++代码时使用,以强制实施现代、安全和惯用的实践。
适用对象:软件开发与测试。自动收录 · 待核查。
原作者说明节选
从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。
查看中文原文
原文涵盖的主题
- C++ 编码标准(C++ 核心准则)
- 何时使用
- 何时不应使用
- 贯穿性原则
- 哲学与接口 (P.\, I.\)
- 关键规则
- 应该做
- 不应该做
源自 C++ 核心准则 的现代 C++(C++17/20/23)综合编码标准。强制执行类型安全、资源安全、不变性和清晰性。 编写新的 C++ 代码(类、函数、模板) 审查或重构现有的 C++ 代码 在 C++ 项目中做出架构决策 在 C++ 代码库中强制执行一致的风格 在语言特性之间做出选择(例如,enum 对比 enum class,原始指针对比智能指针) 非 C++ 项目 无法采用现代 C++ 特性的遗留 C 代码库 特定准则与硬件限制冲突的嵌入式/裸机环境(选择性适配) 这些主题在整个准则中反复出现,并构成了基础: 1. 处处使用 RAII (P.8, R.1, E.6, CP.20):将资源生命周期绑定到对象生命周期 2. 默认为不可变性 (P.10, Con.1-5, ES.25):从 const/constexpr 开始;可变性是例外 3. 类型安全 (P.4, I.4, ES.46-49, Enum.3):使用类型系统在编译时防止错误 4. 表达意图 (P.3, F.1, NL.1-2, T.10):名称、类型和概念应传达目的 5. 最小化复杂性 (F.2-3, ES.5, Per.4-5):简单的代码就是正确的代码 6. 值语义优于指针语义 (C.10, R.3-5, F.20, CP.31):优先按值返回和作用域对象 | 规则 | 摘要 | |------|---------| | P.1 | 直接在代码中表达想法 | | P.3 | 表达意图 | | P.4 | 理想情况下,程序应是静态类型安全的 | | P.5 | 优先编译时检查而非运行时检查 | | P.8 | 不要泄漏任何资源 | | P.10 | 优先不可变数据而非可变数据 | | I.1 | 使接口明确 | | I.2 | 避免非 const 全局变量 | | I.4 | 使接口精确且强类型化 | | I.11 | 切勿通过原始指针或引用转移所有权 | | I.23 | 保持函数参数数量少 | | 规则 | 摘要 | |------|---------| | F.1 | 将有意义的操作打包为精心命名的函数 | | F.2 | 函数应执行单一逻辑操作 | | F.3 | 保持函数简短简单 | | F.4 | 如果函数可能在编译时求值,则将其声明为 constexpr | | F.6 | 如果你的函数绝不能抛出异常,则将其声明为 noexcept | | F.8 | 优先纯函数 | | F.16 | 对于 "输入" 参数,按值传递廉价可复制类型,其他类型通过 const& 传递 | | F.20 | 对于 "输出" 值,优先返回值而非输出参数 | | F.21 | 要返回多个 "输出" 值,优先返回结构体 | | F.43 | 切勿返回指向局部对象的指针或引用 | 从函数返回 T&
这里只展示节选,请以完整原文和当前要求为准。
- 来源仓库
- affaan-m/ECC
- 源文件
- docs/zh-CN/skills/cpp-coding-standards/SKILL.md
- 固定版本
- d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
来源与内容状态
本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。
原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T14:01:50.270Z。
分类由名称、说明与路径规则生成,分类不代表已核实适配。
许可与权利归属
MIT。第三方内容及版权归原作者,使用条件以原文为准。
许可原文 ↗本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。
限制与注意事项
- 元数据收录不代表本站已经安装、适配、实测或进行安全审查。