X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce00f59b5b169752d2f05ce3bb1a88ddc1b38b4c..9c805dec6caf3c98a3797898cffe795b5b56e606:/include/wx/typeinfo.h diff --git a/include/wx/typeinfo.h b/include/wx/typeinfo.h index 9d6ceb437d..734783af50 100644 --- a/include/wx/typeinfo.h +++ b/include/wx/typeinfo.h @@ -27,6 +27,17 @@ #ifndef wxNO_RTTI +// +// Let's trust that Visual C++ versions 9.0 and later implement C++ +// RTTI well enough, so we can use it and work around harmless memory +// leaks reported by the static run-time libraries. +// +#if wxCHECK_VISUALC_VERSION(9) + #define wxTRUST_CPP_RTTI 1 +#else + #define wxTRUST_CPP_RTTI 0 +#endif + #include #include @@ -36,6 +47,12 @@ #define WX_DEFINE_TYPEINFO(CLS) #define WX_DECLARE_ABSTRACT_TYPEINFO(CLS) +#if wxTRUST_CPP_RTTI + +#define wxTypeId typeid + +#else /* !wxTRUST_CPP_RTTI */ + // // For improved type-safety, let's make the check using class name // comparison. Most modern compilers already do this, but we cannot @@ -67,8 +84,12 @@ private: #define wxTypeId(OBJ) wxTypeIdentifier(typeid(OBJ).name()) +#endif /* wxTRUST_CPP_RTTI/!wxTRUST_CPP_RTTI */ + #else // if !wxNO_RTTI +#define wxTRUST_CPP_RTTI 0 + // // When C++ RTTI is not available, we will have to make the type comparison // using pointer to a dummy static member function. This will fail if