http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54909
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-10-12 14:25:44 UTC --- This is nothing to do with pure virtual functions, it's just the usual name hiding rule. You need to add "using A::foo;" to B to make the name visible.