cppreference定义“简单移动构造函数”:
如果满足以下所有条件,则类 T 的移动构造函数是微不足道的:
它不是用户提供的(意味着它是隐式定义或默认的);
T 没有虚成员函数;T 没有虚基类;
为 T 的每个直接基选择的移动构造函数是微不足道的;
为 T 的每个非静态类类型(或类类型数组)成员选择的移动构造函数是微不足道的。
cppreference还定义了“隐式定义的移动构造函数”:
如果隐式声明的移动构造函数既不是删除的也不是平凡的,则它由编译器定义(即生成并编译函数体)(如果 odr 使用或需要进行常量求值)。
显然,不能删除隐式声明的移动构造函数。但“这一定不是微不足道的”让我听起来很困惑。
这是否意味着如果它不是微不足道的,那么它应该是“用户提供的”?如果它已经是“用户提供的”,那么为什么必须“隐式声明的”呢?
那么这里出了什么问题呢?隐式声明的移动构造函数必须不重要的意义是什么?请帮忙。