1、constexpr和常量表达式
常量表达式(const expression)是指值不会改变并且在编译过程就能得到的计算结果。
C++11 新标准规定, 允许将变量声明为constexpr类型以便由编译器来验证变量的值是否一个常量表达式。声明为constexpr的变量一定是一个常量, 而且必须用常量表达式初始化。
2、auto类型说明符与decltype类型指示符
auto类型说明符,是能让编译器替我们去分析表达式所属的类型。自动辨析数据(对象)类型。
decltype类型指示符,作用是选择并返回操作数的数据类型。自动选择(判断)并返回操作数的数据类型。
切记:
decltype((variable))(注意是双层括号)的结果永远是引用,而decltype(variable)结果只有当variable本身就是一个引用时才是引用。
区别:
decltype的结果类型与表达式形式密切相关。
3、类数据成员,新标准规定,可以为数据成员提供一个类内初始值。创建对象时,类内初始值将用于初始化数据成员。没有初始值的成员将被默认初始化。
4、预处理的指令:
#ifdef 当且仅当变量已定义是为真, #ifndef当且仅当变量未定义时为真。一旦检查结果为真,则执行后续操作直至遇到#endif指令为止。