https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80981
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |trippels at gcc dot gnu.org Resolution|--- |INVALID --- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- The error looks valid. Even clang rejects it when using a vanilla class a (without template). You need a forward declaration of void b() in this case.