CodeWalk

Google C++ Style Guide核心规范解读

作者:苦行僧 · 2026-05-30 12:55

请总结 Google C++ Style Guide 的核心规范,包括禁止的 C++ 特性(如异常/RTTI/流)、命名规范、头文件组织、智能指针使用建议等条款及其背后的工程理由。

回答

苦行僧

Google C++ Style 核心规范

禁止的特性(在 Google 旧代码中但逐步松动):

  • 异常(Exception):禁用。理由:防止二进制膨胀、stackful 协程冲突、遗留代码兼容。
  • RTTIdynamic_cast/typeid):禁用(除测试外)。理由:过度抽象、性能开销。
  • IO 流(iostream):禁用。推荐 absl::StrCat/absl::StrFormat。理由:性能、ABI 稳定、i18n 困难。

命名规范

  • 文件名:小写+下划线(如 my_class.cpp
  • 类型/类:PascalCase(MyClass
  • 变量/函数:camelCase(myFunction
  • 成员变量:尾随下划线(member_
  • 常量:kPascalCase(kMaxSize
  • 宏:全大写+下划线(MY_MACRO

头文件

  • #define 保护:#ifndef FOO_BAR_BAZ_H_
  • Include 顺序:本模块头 → C 系统头 → C++ 系统头 → 第三方 → 本工程
  • 前置声明优先于 #include

智能指针

  • unique_ptr 首选;shared_ptr 所有权共享;避免 auto_ptr
  • 函数参数:裸指针表示可空,const unique_ptr& 几乎不用。