https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90960
--- Comment #4 from Alisdair Meredith <alisdairm at me dot com> --- I now believe my original bug report is invalid, due to a rarely consulted paragraph of the standard, [temp.spec.general]p8. If a function declaration acquired its function type through a dependent type (13.8.3.2) without using the syntactic form of a function declarator, the program is ill-formed. As Jonathan notes, the diagnostic could be better. In this case, we should expect a diagnostic on the line declaring `heck` as a class member, before we get to trying to form the external definition --- which is also an error that is correctly diagnosed in the first case.