http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56050
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> 2013-01-20 11:41:39 UTC --- This is not a bug, it's called name hiding. For d.to() the compiler does name lookup for "to" in the scope of derived and finds a name, so it stops looking. Then overload resolution tries to match the arguments to the function and fails. You need to re-declare the names in the derived class so all overloaded names are visible in the derived class. using base::to; using base::from;