I have discovered a couple of limitations with the TypeID article I submitted to Overload a while back. Basically, TypeID::fn :
Can't handle constructor/destructor methods (probably because their address can't be taken)
Won't work on overloaded methods in same scope (there's no way of specifying which of the overloads to use). This is particularly nasty since overloads often appear in derived classes along with a "using ..." declaration to prevent hiding the superclass's method being overloaded, in which case the overloads are all in scope and TypeID::fn can no longer cope.
Neither is unlikely to be circumventable with the current capabilities of C++'s RTTI, which shows just how useful a __FUNCTION__ macro would really be.