https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63717
--- Comment #1 from Morwenn <morwenn29 at hotmail dot fr> --- I forgot to remove the outside-class =default in the second example, it should be: struct foo { unsigned value; foo() = default; foo(unsigned value): value(value) {} }; int main() { foo bar{}; } Sorry for that.