c++中std::is_trivially_copy_constructible中的平凡操作有哪些?

What are the trivial operations in std::is_trivially_copy_constructible in C++

本文关键字:操作 constructible is std trivially copy c++      更新时间:2023-10-16

节选自cppreference.com上的std::is_copy_constructible(1)和std::is_trivially_copy_constructible(2)的文档:

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

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

在这里什么是微不足道的操作呢?

这句话来自我之前的回答:

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

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

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

—对于X的每个类类型(或其数组)的非静态数据成员,构造函数

选择复制/移动该成员是平凡的;

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

基本上这意味着复制或移动构造函数是微不足道的,如果它不是用户提供的,类中没有任何虚的东西,而这个属性递归地为类的所有成员持有基类。