书:Broadview的Effective C++第三版中文版
记法:数字表示页和行,+表示当前页正数, -表示当前页倒数
P12 -4:对于内置类型而言pass-by-value通常比pass-by-reference更高效。而用户自定义类型由于有构造和析构函数,pass-by-reference-const往往更好。而STL的迭代器和函数对象都是基于指针的,所以pass-by-value再次高效。
P15 -7:the enum hack的优势:其行为比较像#define(如不能取其地址),Enum和#define一样不会当值非必要的内存分配,实用(很多代码用了它,也是模板元编程的基础技术)。
P17 -3::用template inline函数替代类函数宏。
P18 +1:如果const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量。对于STL迭代器const和const_iterator分别表示iter是常量和iter所指为常量。
条款03太长了,很少用const,下次研究。
条款04:经验上,内置变量windows不会初始化,linux会初始化为0。
P31 +6:多个编译单元内的non-local static对象的初始化相对次序无明确定义。可以使用static a; return static a;的Singleton模式消除这个问题。但这种形式会在多线程系统中带有不确定性。