.. on the other hand, the below is a case which my patchlet, which simply tracks pointers, does *not* handle correctly: struct B { }; template <class T> struct A { }; A<void(B::*)()const>*p = 42; should be fixable by complicating a bit the tracking, telling apart member pointers. Paolo.