From 8de1759c6f4581e74df1a05358c35f047500da24 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 7 Feb 2002 12:33:40 +0000 Subject: [PATCH] added wxCOMPILE_TIME_ASSERT2() macro allowing to give the unique name to the struct used by wxCOMPILE_TIME_ASSERT() and use it in dynarray.h git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/debug.h | 10 +++++++--- include/wx/dynarray.h | 10 ++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) 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 \ { \ -- 2.45.2