8.4 其他C++特性

(1) 智能指针
如需使用,仅允许使用局部化的scoped_ptr,禁止使用auto_ptr。
(2) const
引用形参用const,否则使用指针形参
(3)函数重载的使用要清晰、易读
(4)禁止使用缺省函数参数(测试框架例外)
(5)禁止使用变长数组
(6)合理使用友元
(7)禁止使用C++异常,测试框架例外
(8)禁止使用RTTI
(9)类型转换
使用static_cast<>()等C++的类型转换,禁止使用强制类型转换。
(10)禁止使用流
除日志接口需要,其他场景禁止使用流,使用printf代替。
(11)前置自增和自减
迭代器和其他模板对象要求使用前置自增、自减运算符。其他场景优先使用前置自增、自减。
(12)const的使用
任何可以使用的场景都要使用const,且const在前。
(13)使用确定大小的整型
使用确定大小的整型,除表示数组位数外的场景禁止使用无符号型
(14)可移植性
格式化输出及结构对其时,注意32位和64位系统差异
(15)预处理宏
除字符串化和连接的场景外,一律禁止使用宏。要求使用内联函数、枚举和常量代替宏。
(16)0和NULL
整数用0,实数用0.0,指针用NULL,字符(串)用'0'
(17)sizeof
用sizeof(变量名)代替sizeof(变量类型)
(18)Boost库
仅使用Boost中被认可的库