struct Base { void f() { } template static void t() {} }; struct Derived : public Base { #ifndef FIXED using Base::t; #else template static void t() {} #endif template static void t() {} }; void foo() { Derived::t<&Derived::f>(); }