https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116769
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org --- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> --- I believe GCC, deliberately as an extension, treats NSDMIs as within the "immediate context" of a defaulted default constructor synthesis. So if NSDMI instantiation fails the defaulted constructor gets defined as deleted instead of issuing a hard error. Strictly speaking the code is ill-formed though IIUC. There's probably an existing PR about this.