A point from n3290 draft §12.1 (Constructors) ¶5:
An implicitly-declared default constructor is an
inline publicmember of its class. A defaulted default constructor for classXis defined as deleted if:
Xis a union-like class that has a variant member with a non-trivial default constructor,- any non-static data member with no brace-or-equal-initializer is of reference type,
- any non-variant non-static data member of const-qualified type (or array thereof) with no brace-or-equal-initializer does not have a user-provided default constructor,
Xis a union and all of its variant members are of const-qualified type (or array thereof),Xis a non-union class and all members of any anonymous union member are of const-qualified type (or array thereof),- any direct or virtual base class, or non-static data member with no brace-or-equal-initializer, has class type
M(or array thereof) and eitherMhas no default constructor or overload resolution (13.3) as applied toM’s default constructor results in an ambiguity or in a function that is deleted or inaccessible from the defaulted default constructor, or- any direct or virtual base class or non-static data member has a type with a
destructor that is deleted or inaccessible from the defaulted default constructor
Please explain the defaulted default constructor with some example program.