DevX Tech Tip “Performance of typeid vs. dynamic_cast<>” specifies that it is advised to use typeid in place of dynamic_cast in deeply-rooted class hierarchies to achieve better performance.
However, keep in mind that using typeid incurs certain cross-platform/cross compiler issues. typeid returns a refrence to type_info. The type_info.name() function returns a class name which exists in an implementation-specific format depending on compiler/platform used.
Thus, typeid should be used cautiously when an application is targeted for multiple platforms.
Also remember that char* returned from type_info.name() function should not be deleted.