为每个非用户定义的构造函数声明始终默认的构造函数的优缺点是什么?
考虑一个具有用户定义构造函数的类,它不需要其他用户定义构造函数,它将是:
class Foo
{
public:
Foo() { // user-defined declaration }
Foo(const Foo&) = default;
Foo(Foo&&) noexcept = default;
~Foo() = default;
Foo& operator=(const Foo&) = default;
Foo& operator=(Foo&&) = default;
}
这样做还有其他实际的优点/缺点吗?