use wx_static_cast() inside wxDynamicCast to catch impossible casts at compile-time instead of run-time

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2004-04-16 10:57:06 +00:00
parent f29fe16932
commit 5232d996cd
2 changed files with 7 additions and 1 deletions

View File

@ -92,6 +92,9 @@ OTHER CHANGES
All:
- Hindi translations added (Dhananjaya Sharma)
- wxDynamicCast() now uses static_cast<wxObject *> internally and so using it
with anything not deriving from wxObject will fail at compile time (instead
of run-time) now
All (GUI):

View File

@ -333,7 +333,10 @@ name##PluginSentinel m_pluginsentinel;
// to be replaced by dynamic_cast<> in the future
#define wxDynamicCast(obj, className) \
((className *) wxCheckDynamicCast((wxObject*)(obj), &className::ms_classInfo))
((className *) wxCheckDynamicCast( \
wx_const_cast(wxObject *, wx_static_cast(const wxObject *, \
wx_const_cast(className *, wx_static_cast(const className *, obj)))), \
&className::ms_classInfo))
// The 'this' pointer is always true, so use this version
// to cast the this pointer and avoid compiler warnings.