X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9c4f54ef38fed9c6da95d9a496d622ada2bd5a7..4f7c00f237b6308394adb074fc94a0de8e2391d5:/include/wx/debug.h diff --git a/include/wx/debug.h b/include/wx/debug.h index 46c676359b..3d49a9e523 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. */ @@ -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; }