added wxStaticCast, moved wxConstCast from wx/object.h to wx/defs.h for consistency

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2004-02-10 22:11:14 +00:00
parent ecfd48ca08
commit 0613b80c17
2 changed files with 18 additions and 10 deletions

View File

@@ -266,8 +266,8 @@ typedef int wxWindowID;
#define wxEXPLICIT #define wxEXPLICIT
#endif /* HAVE_EXPLICIT/!HAVE_EXPLICIT */ #endif /* HAVE_EXPLICIT/!HAVE_EXPLICIT */
/* check for static/const/reinterpret_cast<>() */ /* check for static/const_cast<>() (we don't use the other ones for now) */
#ifndef HAVE_STATIC_CAST #ifndef HAVE_CXX_CASTS
#if defined(__VISUALC__) && (__VISUALC__ >= 1100) #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
/* VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?) */ /* VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?) */
#define HAVE_CXX_CASTS #define HAVE_CXX_CASTS
@@ -276,14 +276,29 @@ typedef int wxWindowID;
/* GCC 2.95 has C++ casts, what about earlier versions? */ /* GCC 2.95 has C++ casts, what about earlier versions? */
#define HAVE_CXX_CASTS #define HAVE_CXX_CASTS
#endif #endif
#endif /* HAVE_STATIC_CAST */ #endif /* !HAVE_CXX_CASTS */
#ifdef HAVE_CXX_CASTS #ifdef HAVE_CXX_CASTS
#ifndef HAVE_CONST_CAST #ifndef HAVE_CONST_CAST
#define HAVE_CONST_CAST #define HAVE_CONST_CAST
#endif #endif
#ifndef HAVE_STATIC_CAST
#define HAVE_STATIC_CAST
#endif
#endif /* HAVE_CXX_CASTS */ #endif /* HAVE_CXX_CASTS */
#ifdef HAVE_CONST_CAST
#define wxConstCast(obj, className) const_cast<className *>(obj)
#else
#define wxConstCast(obj, className) ((className *)(obj))
#endif
#ifdef HAVE_STATIC_CAST
#define wxStaticCast(val, type) static_cast<type>(val)
#else
#define wxStaticCast(val, type) ((type)(val))
#endif
#ifndef HAVE_STD_WSTRING #ifndef HAVE_STD_WSTRING
#if defined(__VISUALC__) && (__VISUALC__ >= 1100) #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
/* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */ /* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */

View File

@@ -340,13 +340,6 @@ name##PluginSentinel m_pluginsentinel;
#define wxDynamicCastThis(className) \ #define wxDynamicCastThis(className) \
(IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0) (IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0)
#ifdef HAVE_CONST_CAST
#define wxConstCast(obj, className) const_cast<className *>(obj)
#else
#define wxConstCast(obj, className) ((className *)(obj))
#endif
#ifdef __WXDEBUG__ #ifdef __WXDEBUG__
inline void* wxCheckCast(void *ptr) inline void* wxCheckCast(void *ptr)
{ {