• Header Files
  • #define Guard
  • .inl Files
  • Names and Order of Includes
  • Scoping
  • Namespaces
  • Nonmember, Static Member, and Global Functions
  • Local Variables
  • Classes
  • Doing Work in Constructors
  • Copy Constructors
  • Structs vs. Classes
  • Inheritance
  • Multiple Inheritance
  • Access Control
  • Declaration Order
  • Write Short Functions
  • Other C++ Features
  • Run-Time Type Information (RTTI)
  • Casting
  • Preincrement and Predecrement
  • Use of const
  • Integer Types
  • 64-bit Portability
  • Preprocessor Macros
  • 0 and nullptr/NULL
  • sizeof
  • auto
  • Boost
  • C++11
  • Naming
  • General Naming Rules
  • File Names
  • Type Names
  • Variable Names
  • Function Names
  • Namespace Names
  • Enumerator Names
  • Macro Names
  • Comments
  • File Comments
  • Class Comments
  • Function Comments
  • Variable Comments
  • TODO Comments
  • Deprecation Comments
  • Formatting
  • Line Length
  • Non-ASCII Characters
  • Spaces vs. Tabs
  • Function Declarations and Definitions
  • Defining code scope
  • Namespace Formatting
  • Loops and Switch Statements
  • Preprocessor Directives