diff --git a/include/wx/debug.h b/include/wx/debug.h index 10966502ec..436a05ab29 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -178,9 +178,10 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; get a warning about an unnamed struct not used to define an object!). */ -#define wxMAKE_ASSERT_NAME_HELPER(line) wxAssert_ ## line -#define wxMAKE_ASSERT_NAME(line) wxMAKE_ASSERT_NAME_HELPER(line) -#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_ASSERT_NAME(__LINE__) +#define wxMAKE_ASSERT_NAME_HELPER(line) wxAssert_ ## line +#define wxMAKE_ASSERT_NAME(line) wxMAKE_ASSERT_NAME_HELPER(line) +#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_ASSERT_NAME(__LINE__) +#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxMAKE_ASSERT_NAME(text) /* The second argument of this macro must be a valid C++ identifier and not a @@ -193,6 +194,9 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; #define wxCOMPILE_TIME_ASSERT(expr, msg) \ struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; } +#define wxCOMPILE_TIME_ASSERT2(expr, msg, text) \ + struct wxMAKE_UNIQUE_ASSERT_NAME2(text) { unsigned int msg: expr; } + // helpers for wxCOMPILE_TIME_ASSERT below, for private use only #define wxMAKE_BITSIZE_MSG(type, size) type ## SmallerThan ## size ## Bits diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index d96553737a..f70cc6c2f3 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -186,8 +186,9 @@ private: // ---------------------------------------------------------------------------- #define _WX_DEFINE_ARRAY(T, name, classexp) \ -wxCOMPILE_TIME_ASSERT(sizeof(T) <= sizeof(long), \ - TypeIsTooBigToBeStoredInWxArray); \ +wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(long), \ + TypeIsTooBigToBeStoredInWxArray, \ + name); \ typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \ classexp name : public wxBaseArray \ { \ @@ -230,8 +231,9 @@ public: \ // ---------------------------------------------------------------------------- #define _WX_DEFINE_SORTED_ARRAY(T, name, defcomp, classexp) \ -wxCOMPILE_TIME_ASSERT(sizeof(T) <= sizeof(long), \ - TypeIsTooBigToBeStoredInWxArray); \ +wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(long), \ + TypeIsTooBigToBeStoredInWxArray, \ + name); \ typedef int (CMPFUNC_CONV *SCMPFUNC##T)(T pItem1, T pItem2); \ classexp name : public wxBaseArray \ { \