个人C++代码库
宗旨:
- 仅头文件(Header-Only),即包即用,免去二进制复用的无尽烦恼。
- 原则上应该跨平台。
- 尽量使用最新C++标准。
- 包纳所有能够跨项目复用的东西。
仅头文件编码指导:
- 所有代码都编写在头文件中,不添加任何源文件。
- 必要的namespace防止名称冲突。
- 所有头文件都要有必要的包含守卫(include guard)。
- 类模板与函数模板直接放在头文件中即可。
- 非模板类所有成员函数全部类内实现,隐式内联。由于依赖关系不好类内实现则全部显式声明为inline。
- 非模板函数全部声明为inline。
- 避免任何全局对象定义,使用单例模式或者内联全局变量(C++17)代替。
- 不要在任何头文件中全局使用
using namespace xxx;
。
命名与编码风格:
- 类名大驼峰,函数名变量名小驼峰,宏名全大写下划线连接。
- 4空格缩进,大括号换行。