CppCoreGuidelines
由C++原作者发起的一个modern C++ guidelilne. 在这里,配套的github页面在这里。
CppCoreGuidelines 配套一组 Guideline Support Library,源码位于这里。
我只记录了对自己有启发的内容。笔记中的大部分代码片段是复制于原文,我自己增加的代码片段会标注清楚。
P.1 Express ideas directly in code.
class Date {
public:
Month month() const; // do
int month(); // don't
// ...
};
所以,推荐的做法是利用type对所有可能的概念进行建模。例如不用一个primitive类型int来表示月份,而用一个专门的Month类。但是这样做需要实现Month的一些运算用的接口,例如加法,减法。
change_speed(Speed s); // better: the meaning of s is specified
// ...
change_speed(2.3); // error: no unit
change_speed(23m / 10s)