通过阅读 CppCoreGuidelines 来理解现代 c++ 编码规范,同时也是对 Effective C++,Effective Modern C++,C++ Concurrency in Action 的温习。
让接口清晰
不能让接口还有一些隐藏属性,导致接口的行为是用户无法预知的。
比如下面的对浮点数取整:
1 | int round(double d) { |
有全局变量round_up
来决定函数round
来进行向上取整还是向下取整,这对用户来说是无法预知的。
为了使得接口清晰,需要让用户了解有这个设置项:
1 | int round(bool round_up, double d) { |
尽量避免non-const
全局变量
non-const
全局变量就可能: 1.
导致该变量被多处使用,造成依赖关系 2. data race