https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82336
Mukesh Kapoor <mukesh.kapoor at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mukesh.kapoor at oracle dot com --- Comment #2 from Mukesh Kapoor <mukesh.kapoor at oracle dot com> --- The compiler fails to generate the constructor bar::bar(). If you change the line void qux(baz = {}){} to void qux(baz = (baz){}){} it works fine.