If that user-written default constructor would be ill-formed,
the program is ill-formed
. If that user-written default constructor would be constexpr-suitable (
[dcl.constexpr]),
the implicitly-defined
default constructor is
constexpr. Before the defaulted default constructor for a class is
implicitly defined,
all the non-user-provided default constructors for its base classes and
its non-static data members are implicitly defined
. [
Note 1:
An implicitly-declared default constructor has an
exception specification (
[except.spec])
. An explicitly-defaulted definition might have an
implicit exception specification, see
[dcl.fct.def]. —
end note]