= default和没有参数的空构造函数之间的区别?
之间是否存在差异:
MyClass() {}
MyClass() = default;
答案 0 :(得分:2)
答案 1 :(得分:0)
因此,这不使用构造函数,而是使用析构函数。但它确实显示了一点。将编译以下代码,并且不会触发静态断言。
这意味着您在一个示例中有一个用户定义的析构函数,而在另一个示例中有一个__default析构函数。
#include <type_traits>
class X {
public:
~X() {}
};
class Y {
public:
~Y() = default;
};
static_assert(std::is_trivially_move_constructible<X>::value == false, "");
static_assert(std::is_trivially_move_constructible<Y>::value == true, "");