// PR c++/57831 struct A { void f(); }; template struct B : T { typedef T base; using base::f; // If I write "using B::f" it's ok void g( ) { B::f(); // This is OK as expected (this->*&T::f)(); // This is also OK (this->*&B::f)(); // This causes error } }; template struct B< A >;