/CppCodeBase

Personal C++ code base.

Primary LanguageC++MIT LicenseMIT

个人C++代码库

宗旨:

  • 仅头文件(Header-Only),即包即用,免去二进制复用的无尽烦恼。
  • 原则上应该跨平台。
  • 尽量使用最新C++标准。
  • 包纳所有能够跨项目复用的东西。

仅头文件编码指导:

  • 所有代码都编写在头文件中,不添加任何源文件。
  • 必要的namespace防止名称冲突。
  • 所有头文件都要有必要的包含守卫(include guard)。
  • 类模板与函数模板直接放在头文件中即可。
  • 非模板类所有成员函数全部类内实现,隐式内联。由于依赖关系不好类内实现则全部显式声明为inline。
  • 非模板函数全部声明为inline。
  • 避免任何全局对象定义,使用单例模式或者内联全局变量(C++17)代替。
  • 不要在任何头文件中全局使用using namespace xxx;

命名与编码风格:

  • 类名大驼峰,函数名变量名小驼峰,宏名全大写下划线连接。
  • 4空格缩进,大括号换行。