对于POD型别(与C结构体兼容或者标量型别)的数据类型,在拷贝或者构造时,可以直接按字节进行操作或者调用STL算法。而非POD型别的数据类型则必须调用它的非平凡的构造函数或者拷贝构造函数。
STL为各种基本类型定义了_type_traits模板类的特化版本,其中
typedef _true_type/_false_type is_POD_type;
规定了此类型的POD型别(_true_type和_false_type是空结构体,因为模板的参数推导的运作必须保证它们是“类型”);
而一些编译器内置了对类型型别的推导,甚至是用户自建类型,也能正常使用_type_traits获取类型。其根据的是此类型是否有平凡的构造拷贝赋值析构函数。