https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90904
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Declare them private, but don't define them. In 99.9% of cases you'll get an error at compile time for trying to use a private member. If the use happens from inside the class itself, the private member will be accessible and you'll get an error at link time. That still seems vastly better than just compiling and then crashing.