added and documented wx_const/static_cast<>
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
4d4f4290ea
commit
f29fe16932
@ -235,6 +235,8 @@ the corresponding topic.
|
||||
\helpref{wxWakeUpIdle}{wxwakeupidle}\\
|
||||
\helpref{wxWriteResource}{wxwriteresource}\\
|
||||
\helpref{wxYield}{wxyield}\\
|
||||
\helpref{wx\_const\_cast}{wxconstcastraw}\\
|
||||
\helpref{wx\_static\_cast}{wxstaticcastraw}\\
|
||||
\helpref{\_}{underscore}\\
|
||||
\helpref{\_T}{underscoret}
|
||||
|
||||
@ -3289,6 +3291,7 @@ supports {\it const\_cast} or into an old, C-style cast, otherwise.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wx\_const\_cast}{wxconstcastraw}\\
|
||||
\helpref{wxDynamicCast}{wxdynamiccast}\\
|
||||
\helpref{wxStaticCast}{wxstaticcast}
|
||||
|
||||
@ -3376,10 +3379,42 @@ This macro checks that the cast is valid in debug mode (an assert failure will
|
||||
result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
|
||||
result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wx\_static\_cast}{wxstaticcastraw}\\
|
||||
\helpref{wxDynamicCast}{wxdynamiccast}\\
|
||||
\helpref{wxConstCast}{wxconstcast}
|
||||
|
||||
|
||||
\membersection{wx\_const\_cast}\label{wxconstcastraw}
|
||||
|
||||
\func{T}{wx\_const\_cast}{T, x}
|
||||
|
||||
Same as \texttt{const\_cast<T>(x)} if the compiler supports const cast or
|
||||
\texttt{(T)x} for old compilers. Unlike \helpref{wxConstCast}{wxconstcast},
|
||||
the cast it to the type \arg{T} and not to \texttt{T *} and also the order of
|
||||
arguments is the same as for the standard cast.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wx\_static\_cast}{wxstaticcastraw}\\
|
||||
|
||||
|
||||
\membersection{wx\_static\_cast}\label{wxstaticcastraw}
|
||||
|
||||
\func{T}{wx\_static\_cast}{T, x}
|
||||
|
||||
Same as \texttt{static\_cast<T>(x)} if the compiler supports static cast or
|
||||
\texttt{(T)x} for old compilers. Unlike \helpref{wxStaticCast}{wxstaticcast},
|
||||
there are no checks being done and the meaning of the macro arguments is exactly
|
||||
the same as for the standard static cast, i.e. \arg{T} is the full type name and
|
||||
star is not appended to it.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wx\_const\_cast}{wxconstcastraw}\\
|
||||
|
||||
|
||||
|
||||
\section{Log functions}\label{logfunctions}
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
/**
|
||||
* Name: defs.h
|
||||
* Purpose: Declarations/definitions common to all wx source files
|
||||
* Author: Julian Smart and others
|
||||
* Name: defs.h
|
||||
* Purpose: Declarations/definitions common to all wx source files
|
||||
* Author: Julian Smart and others
|
||||
* Modified by: Ryan Norton (Converted to C)
|
||||
* Created: 01/02/97
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c)
|
||||
* Licence: wxWindows licence
|
||||
* Created: 01/02/97
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c)
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
|
||||
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
#include "wx/platform.h"
|
||||
|
||||
/* RN - only double-check the environment when building in C++
|
||||
/* RN - only double-check the environment when building in C++
|
||||
Shouldn't configure pass the environment to all sub-libs too? */
|
||||
#ifdef __cplusplus
|
||||
/* Make sure the environment is set correctly */
|
||||
@ -283,12 +283,21 @@ typedef int wxWindowID;
|
||||
#endif
|
||||
#endif /* HAVE_CXX_CASTS */
|
||||
|
||||
#ifdef HAVE_CONST_CAST
|
||||
#define wxConstCast(obj, className) const_cast<className *>(obj)
|
||||
#ifdef HAVE_STATIC_CAST
|
||||
#define wx_static_cast(t, x) static_cast<t>(x)
|
||||
#else
|
||||
#define wxConstCast(obj, className) ((className *)(obj))
|
||||
#define wx_static_cast(t, x) ((t)(x))
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CONST_CAST
|
||||
#define wx_const_cast(t, x) const_cast<t>(x)
|
||||
#else
|
||||
#define wx_const_cast(t, x) ((t)(x))
|
||||
#endif
|
||||
|
||||
/* for consistency with wxStatic/DynamicCast defined in wx/object.h */
|
||||
#define wxConstCast(obj, className) wx_const_cast(className *, obj)
|
||||
|
||||
#ifndef HAVE_STD_WSTRING
|
||||
#if defined(__VISUALC__) && (__VISUALC__ >= 1100)
|
||||
/* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */
|
||||
@ -744,7 +753,7 @@ typedef wxUint32 wxDword;
|
||||
#define wxLongLongSuffix l
|
||||
#define wxLongLongFmtSpec _T("l")
|
||||
#define wxLongLongIsLong
|
||||
#elif (defined(__VISUALC__) && defined(__WIN32__))
|
||||
#elif (defined(__VISUALC__) && defined(__WIN32__))
|
||||
#define wxLongLong_t __int64
|
||||
#define wxLongLongSuffix i64
|
||||
#define wxLongLongFmtSpec _T("I64")
|
||||
@ -756,7 +765,7 @@ typedef wxUint32 wxDword;
|
||||
#define wxLongLong_t __int64
|
||||
#define wxLongLongSuffix i64
|
||||
#define wxLongLongFmtSpec _T("Ld")
|
||||
#elif defined(__DIGITALMARS__)
|
||||
#elif defined(__DIGITALMARS__)
|
||||
#define wxLongLong_t __int64
|
||||
#define wxLongLongSuffix LL
|
||||
#define wxLongLongFmtSpec _T("ll")
|
||||
|
@ -57,11 +57,7 @@ typedef int wxEventType;
|
||||
|
||||
// this is used to make the event table entry type safe, so that for an event
|
||||
// handler only a function with proper parameter list can be given.
|
||||
#ifdef HAVE_STATIC_CAST
|
||||
#define wxStaticCastEvent(type, val) static_cast<type>(val)
|
||||
#else
|
||||
#define wxStaticCastEvent(type, val) ((type)(val))
|
||||
#endif
|
||||
#define wxStaticCastEvent(type, val) wx_static_cast(type, val)
|
||||
|
||||
// in previous versions of wxWindows the event types used to be constants
|
||||
// which created difficulties with custom/user event types definition
|
||||
|
@ -544,7 +544,7 @@ public:
|
||||
// get the runtime identity of this object
|
||||
wxClassInfo *GetClassInfo() const
|
||||
{
|
||||
return const_cast<wxClassInfo*>((const wxClassInfo*)m_classInfo);
|
||||
return wx_const_cast(wxClassInfo *, m_classInfo);
|
||||
}
|
||||
|
||||
wxObject* GetSuperClassInstance() const
|
||||
|
Loading…
Reference in New Issue
Block a user