https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111426
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I meant that g++5 emitted 111426.C:7:3: error: use of deleted function ‘D::D()’ D d; ^ 111426.C:6:7: note: ‘D::D()’ is implicitly deleted because the default definition would be ill-formed: class D : public X { }; ^ 111426.C:6:7: error: use of deleted function ‘X::~X()’ 111426.C:3:3: note: declared here ~X() = delete; ^ which seems more user-friendly than 4 errors, and saying that X::~X() is deleted twice. clang++ emits only one error. But, maybe it's not that bad after all. Feel free to close this.