
Hello all, Is there a way I can check if a class has a given member function using metaprogramming? What I need is to check at compile-time if a function is overriding a virtual function or not. In the example below, z::f is overriding x::f but not y::f (which does not exist) and the compiler knows that -- is there a way I can extract that information from the compiler? struct has_function<class Base, ... /* other parameters */ > { ... /* some implementation */ }; struct x { virtual void f() {} }; struct y { virtual void g() {} }; struct z: x, y { void f() { cout << has_function<x, &z::f>::value << endl; // print 1 cout << has_function<y, &z::f>::value << endl; // print 0 } }; (This does not compile -- I do not know how to program it so it compiles -- but it should give the idea of what I am looking for.) Thank you very much. Lorenzo