__cplusplus 返回cpp版本, C语言则无定义, 用于混合编译
新编译特性
中提供assert()宏, 用于运行时断言; static_assert()用于编译期断言,...初始化列表的效果总是慢于就地初始化, 但也快过在构造函数中进行赋值
注意: 非常量的静态变量依然要在头文件外定义从而保证在程序中只存在一个
sizeof()可以对类成员表达式使用了
类模板也可以声明友元了...原因和extern变量一样, 普通的模板只存在于对应文件的.o中, 如果一个模板文件被多个文件实例化就会产生多份重复代码, 没有extern的话此时重复的模板会冲突....最终可以用is_pod::value直接判断是否POD
非受限联合
C++11后, 任何非引用类型都可以成为union的成员(包括函数), 因此称为非受限联合
不允许静态成员变量存在
union的一些默认函数将被删除..., 例如当存在非POD成员且这个成员有非平凡的构造函数时, 这个union的默认构造将被删除
匿名的union对外是开放的, 因此放在类的声明中可以按照构造函数的不同而初始化为不同的类型, 此时类被称为枚举式的类