POD类型以及trivial 和 non-trivial
最近在看《STL源码剖析》 在第三章的traits编程技法当中的__type_traits章节,反复出现POD non-trivial trivial,而我对概念也
不是非常的明白
所以我查阅了一下,现在大概是明白啦. 写下这篇博客记录:
trivial的大致意思就是:无关痛痒
1.构造函数: ctor
2.拷贝构造函数: copy
3.赋值运算符重载: assigment
4.析构函数: dtor
基本内置类型的这四种函数都是trivial类型的,自定义类型的类就有点模糊了! 不过呢,总结出来符合下面几个条件的就是
non-trivial函数
1.显示的定义了这四种函数.
2,类中有非静态非POD的数据成员.
3.拥有带有虚函数的基类.
而POD的意思就是Plain Old Data,也就是C++的内建类型或传统的C结构体类型. POD类型必然有trivial ctor/copy/dtor/assignemnt函数.