X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7db064f60f2d60bcfea44a9973a18e6c2bf2161d..cde23b64b5194f0d71cf16c85ea33d28419c815f:/include/wx/typeinfo.h diff --git a/include/wx/typeinfo.h b/include/wx/typeinfo.h index c1efb1b0c9..becacc5547 100644 --- a/include/wx/typeinfo.h +++ b/include/wx/typeinfo.h @@ -14,10 +14,14 @@ // // This file defines wxTypeId macro that should be used internally in // wxWidgets instead of typeid(), for compatibility with builds that do -// not implement C++ RTTI. Also, type defining macros in this file are also +// not implement C++ RTTI. Also, type defining macros in this file are // intended for internal use only at this time and may change in future // versions. // +// The reason why we need this simple RTTI system in addition to the older +// wxObject-based one is that the latter does not work in template +// classes. +// #include "wx/defs.h" @@ -40,20 +44,20 @@ // wxTypeId could of course simply be defined as typeid. // -class wxTypeInfo +class wxTypeIdentifier { public: - wxTypeInfo(const char* className) + wxTypeIdentifier(const char* className) { m_className = className; } - bool operator==(const wxTypeInfo& other) + bool operator==(const wxTypeIdentifier& other) { return strcmp(m_className, other.m_className) == 0; } - bool operator!=(const wxTypeInfo& other) + bool operator!=(const wxTypeIdentifier& other) { return strcmp(m_className, other.m_className) != 0; } @@ -61,7 +65,7 @@ private: const char* m_className; }; -#define wxTypeId(OBJ) wxTypeInfo(typeid(OBJ).name()) +#define wxTypeId(OBJ) wxTypeIdentifier(typeid(OBJ).name()) #else // if !wxNO_RTTI