https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99185
--- Comment #7 from kal.conley at dectris dot com --- There is no fiasco here because the default constructor of `A` does no dynamic initialization. If the definition of `A` is changed to: struct A { int value; }; then the error goes away. However, in both cases there is the same implicitly-defined default constructor generated by the compiler. Explicitly declaring `A() = default` should not change anything in this regard. Generating an error in this case is not useful.