初始化列表的效果总是慢于就地初始化, 但也快过在构造函数中进行赋值
注意: 非常量的静态变量依然要在头文件外定义从而保证在程序中只存在一个
sizeof()可以对类成员表达式使用了
类模板也可以声明友元了...(为了保证成员摆放的顺序一致)
派生类有非静态成员时, 只有一个仅有静态成员的基类(为了保证基类能被直接折叠, 因为C没有继承关系)
基类有非静态成员时, 派生类没有非静态成员(为了派生类折叠, 因为C..., 例如当存在非POD成员且这个成员有非平凡的构造函数时, 这个union的默认构造将被删除
匿名的union对外是开放的, 因此放在类的声明中可以按照构造函数的不同而初始化为不同的类型, 此时类被称为枚举式的类...failure, 不会引发error, 直到完成所有尝试
基础来说, SFINEA使得模板实例化的过程在各个编译器上都能表现出一样的效果, 且避免在不相关模板可见时实例化出错误的程序....(例如上面我们检测出Test才拥有foo定义), 一些人发现这种行为可以用来进行"编译时内省"(introspection, 例如RTTI), 也就是能在模板实例化途中检查出参数具有某些性质.