]> git.saurik.com Git - wxWidgets.git/commitdiff
use static_cast<> for wxStaticCast; updated comment in front of wxDynamicCast()
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 8 Mar 2005 13:09:25 +0000 (13:09 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 8 Mar 2005 13:09:25 +0000 (13:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/object.h

index 43e96756ebbd4ecfe6fd7c815613544f70245f25..5c5393eb9672e4ca7bc3a4318c8765d80da7601b 100644 (file)
@@ -304,7 +304,11 @@ name##PluginSentinel  m_pluginsentinel;
 // Just seems a bit nicer-looking (pretend it's not a macro)
 #define wxIsKindOf(obj, className) obj->IsKindOf(&className::ms_classInfo)
 
-// to be replaced by dynamic_cast<> in the future
+// this cast does some more checks at compile time as it uses static_cast
+// internally
+//
+// note that it still has different semantics from dynamic_cast<> and so can't
+// be replaced by it as long as there are any compilers not supporting it
 #define wxDynamicCast(obj, className) \
     ((className *) wxCheckDynamicCast( \
         wx_const_cast(wxObject *, wx_static_cast(const wxObject *, \
@@ -314,7 +318,7 @@ name##PluginSentinel  m_pluginsentinel;
 // The 'this' pointer is always true, so use this version
 // to cast the this pointer and avoid compiler warnings.
 #define wxDynamicCastThis(className) \
- (IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0)
    (IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0)
 
 #ifdef __WXDEBUG__
 inline void* wxCheckCast(void *ptr)
@@ -326,7 +330,7 @@ inline void* wxCheckCast(void *ptr)
  ((className *)wxCheckCast(wxDynamicCast(obj, className)))
 
 #else  // !__WXDEBUG__
-#define wxStaticCast(obj, className) ((className *)(obj))
+#define wxStaticCast(obj, className) wx_static_cast(className *, obj)
 
 #endif  // __WXDEBUG__