在C++中std :: is_trivially_copy_constructible中有什么简单的操作

vit*_*aut 14 c++ type-traits c++11

以下是cppreference.com上std :: is_copy_constructible(1)和std :: is_trivially_copy_constructible(2)文档的摘录:

1)检查类型是否为CopyConstructible,即具有可访问的显式或隐式复制构造函数.如果满足要求,则提供成员常量值等于true,否则值为false.

2)与(1)相同,但复制构造函数表达式不会调用任何不重要的操作.

那么这里被认为是一项微不足道的操作呢?

R. *_*des 16

正如我之前说的那样:

那么,那些琐碎和琐碎的事情是什么呢?

如果不是用户提供的,则类X的复制/移动构造函数是微不足道的

- 类X没有虚函数(10.3),没有虚基类(10.1),和

- 选择复制/移动每个直接基类子对象的构造函数是微不足道的,并且

- 对于类类型(或其数组)的X的每个非静态数据成员,选择复制/移动该成员的构造函数是微不足道的;

否则复制/移动构造函数是非平凡的.

基本上这意味着如果复制或移动构造函数不是用户提供的,则该复制或移动构造函数是微不足道的,该类中没有虚拟内容,并且此属性以递归方式保存在类的所有成员和基类中.