https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87035
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Nicolas Lesser from comment #2) > Huh, interesting. TIL. Where's that rule in the standard? Because I can't > find it in [class.mem]. Is it somewhere else or did I just overlook it? C++98 paragraph numbers: See 3.3.6/1 [...] 2) A name N used in a class S shall refer to the same declaration in its context and when reevaluated in the completed scope of S. No diagnostic is required for a violation of this rule. I think that is the same as [basic.scope.class].