16

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

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

2) 同(1),但复制构造函数表达式不调用任何不平凡的操作。

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

4

1 回答 1

17

正如我之前所说:

那么,所有这些琐碎和不平凡的事情是什么?

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

— X 类没有虚函数 (10.3) 和虚基类 (10.1),并且

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

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

否则复制/移动构造函数是不平凡的。

基本上,这意味着如果不是用户提供的,复制或移动构造函数是微不足道的,该类中没有任何虚拟内容,并且该属性对类的所有成员和基类递归地保持。

于 2013-03-04T23:36:07.483 回答