有了extern后编译器会自动删除重复的实例化模板, 不但节省内存还节省了多余的实例化时间
注意被其他文件调用的外部模板一定要在要用到的类实例化之前实例化
局部和匿名成员可以作为模板实参了, 但仍要注意匿名类型的声明不能在参数位置...最终可以用is_pod::value直接判断是否POD
非受限联合
C++11后, 任何非引用类型都可以成为union的成员(包括函数), 因此称为非受限联合
不允许静态成员变量存在
union的一些默认函数将被删除..., 例如当存在非POD成员且这个成员有非平凡的构造函数时, 这个union的默认构造将被删除
匿名的union对外是开放的, 因此放在类的声明中可以按照构造函数的不同而初始化为不同的类型, 此时类被称为枚举式的类...可行的保留并计算匹配的精确度, 选择最佳匹配的候选函数作为结果
如果存在两个相同匹配等级的参数列, 优先保留普通函数
完全找不到匹配的函数或者产生二义性时, 引发error
这个尝试进行参数替换的过程中编译器只发生...failure, 不会引发error, 直到完成所有尝试
基础来说, SFINEA使得模板实例化的过程在各个编译器上都能表现出一样的效果, 且避免在不相关模板可见时实例化出错误的程序.