X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9c4f54ef38fed9c6da95d9a496d622ada2bd5a7..6b30ffedb18b86329fdc41ac1be27bc85bd758ff:/include/wx/debug.h diff --git a/include/wx/debug.h b/include/wx/debug.h index 46c676359b..af091bcc7f 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -148,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. */ @@ -312,7 +312,7 @@ extern void WXDLLIMPEXP_BASE wxOnAssert(const char *file, wxCHECK_RET( p != NULL, "pointer can't be NULL" ) */ -// the generic macro: takes the condition to check, the statement to be execute +// the generic macro: takes the condition to check, the statement to be executed // in case the condition is false and the message to pass to the assert handler #define wxCHECK2_MSG(cond, op, msg) \ if ( cond ) \ @@ -380,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; }