1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// Build don't run: struct S {}; struct T : public S {}; struct U : public T {}; void f(int T::*) {} void f(int U::*); void g(void (T::*)(int)) {} void g(void (U::*)(int)); int main() { int S::*ip; void (S::*fp)(int); f(ip); g(fp); }