Remove Any::GetType() and rely on type name when comparing types
std::type_info::operator==() uses pointers to type names on some
implementations (e.g. gcc with __GXX_MERGED_TYPEINFO_NAMES defined).
This leads to problems such that types created in different translation
units could be treated as different even though they refer to the
Working with type_info directly seems unreliable and names of the
types should be used in comparisons directly.
Fixed the implementation of Any::IsTypeCompatible<T>() to use type
names and remove Any::GetType() to avoid any future problems for
client code to compare the type information manually.
Added Any::GetTypeName() and Any::GetUndecoratedTypeName() for
5 files changed