统一代码风格 · 捕获潜在缺陷 · 提升团队效率
本仓库包含团队 C++ 项目的强制规范与工具配置,开箱即用。
| 工具 | 解决什么问题 | 你的收益 |
|---|---|---|
.clang-format | 代码缩进/括号/空格不一致 | 告别格式争论,PR 只关注逻辑 |
.clang-tidy | 潜在 Bug / 安全漏洞 / 过时实践 | 提前拦截 80% 低级错误 |
| 配套指南 | 配置复杂、踩坑多 | 5 分钟集成,专注写代码 |
git submodule add https://github.com/RgerColdline/cpp-coding-standards.git
# 自动同步规范更新cp -r cpp-coding-standards/.clang* cpp-coding-standards/*.md your-project/| 文档 | 内容 | 适合谁 |
|---|---|---|
| clang-tidy-guide.md | Clang-Tidy 集成/配置/避坑指南 | 所有 C++ 开发者 |
| clang-format-guide.md | Clang-Format 规则详解与自定义 | 关注代码风格者 |
| .clang-tidy | 核心规则文件(含安全/性能检查) | CI/工具链维护者 |
| .clang-format | 核心格式文件(缩进/括号/行宽) | 所有提交代码者 |
Checks: > bugprone-*, # 悬空指针、未初始化等 cert-*, # 安全漏洞(缓冲区溢出等) cppcoreguidelines-*, # 现代 C++ 实践 modernize-use-nullptr, # NULL → nullptr readability-identifier-naming # 命名规范💡 原则:安全 > 性能 > 可读性(详细规则:查看 .clang-tidy)
A:规范聚焦安全与可维护性,非个人偏好。
- 若遇合理场景需豁免:在代码中添加
// NOLINT注释- 规则调整需团队评审(贡献指南)
A:
# 检查单个文件 clang-tidy src/main.cpp -- -Isrc # 格式化预览(不修改) clang-format --dry-run -Werror src/main.cpp
发现规则不合理?欢迎改进!
- 🍴 Fork 本仓库
- 🌿 创建分支 (
git checkout -b fix/rule-name) - ✏️ 修改
.clang-tidy/.clang-format+ 更新文档 - 📤 提交 PR(附修改理由与示例)
- 👥 团队评审后合并
📌 原则:
- 安全规则修改需提供漏洞案例
- 风格规则修改需团队共识
- 所有 PR 需通过 CI 检查
本规范采用 MIT License — 欢迎 fork 与改进!
- 🐞 发现问题?创建 Issue
- 💡 有改进建议?直接提 PR!
- 📧 紧急问题?联系 [@规范维护者](替换为实际负责人)
规范因讨论而完善,代码因规范而健壮 ✨