X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d9550df507d5522ac76887e5876b314b729ed50..3a61f5db2c1292d1f6cbfc5bff1edfbdf7b1fc99:/include/wx/debug.h diff --git a/include/wx/debug.h b/include/wx/debug.h index 80099fa474..3d49a9e523 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -19,6 +19,7 @@ #include "wx/chartype.h" // for __TFILE__ and wxChar #include "wx/cpp.h" // for __WXFUNCTION__ +#include "wx/dlimpexp.h" // for WXDLLIMPEXP_FWD_BASE class WXDLLIMPEXP_FWD_BASE wxString; class WXDLLIMPEXP_FWD_BASE wxCStrData; @@ -147,7 +148,7 @@ inline void wxDisableAsserts() { wxSetAssertHandler(NULL); } /* A macro which disables asserts for applications compiled in release build. - By default, IMPLEMENT_APP (or rather IMPLEMENT_WXWIN_MAIN) disable the + By default, wxIMPLEMENT_APP (or rather wxIMPLEMENT_WXWIN_MAIN) disable the asserts in the applications compiled in the release build by calling this. It does nothing if NDEBUG is not defined. */ @@ -379,6 +380,24 @@ extern void WXDLLIMPEXP_BASE wxOnAssert(const char *file, unsigned int msg: expr; \ wxMAKE_UNIQUE_ASSERT_NAME() { wxUnusedVar(msg); } \ } +#elif defined( __VMS ) +namespace wxdebug{ + +// HP aCC cannot deal with missing names for template value parameters +template struct STATIC_ASSERTION_FAILURE; + +template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; + +// HP aCC cannot deal with missing names for template value parameters +template struct static_assert_test{}; + +} + #define WX_JOIN( X, Y ) X##Y + #define WX_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) + #define wxCOMPILE_TIME_ASSERT(expr, msg) \ + typedef ::wxdebug::static_assert_test<\ + sizeof(::wxdebug::STATIC_ASSERTION_FAILURE< WX_STATIC_ASSERT_BOOL_CAST( expr ) >)>\ + WX_JOIN(wx_static_assert_typedef_, __LINE__) #else #define wxCOMPILE_TIME_ASSERT(expr, msg) \ struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }