//return (void(*)(int*,int)) &Test2::Func1; 1
return &Test2::Func1; 2
How would you expect the compiler to resolve the ambiguity inherent in statement 2, anyway???
Why did you deep-six statement 1? Could YOU, a sentient being, resolve the ambiguity without a hint??? Exactly what is your purpose in your approach?