https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71449
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.5.3 Known to fail| |4.8.5, 4.9.3, 5.3.0, 6.1.0, | |7.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- G++ 4.5.3 rejects both declarations so the absence of one could be considered a regression between it and 4.8. I'm not sure how difficult it might be to fix C++ 98 to accept this kind of code but if not terribly it would seem preferable to rejecting it.