]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/debug.h
Bug #1040683: Remove assert when deleting menu entry.
[wxWidgets.git] / include / wx / debug.h
index 2876fa528617e4f4b1cccf04da97e6b8013d5720..5f1e1559bb782cc15f1a1a0e52cfc820b8d392c2 100644 (file)
     #define wxCOMPILE_TIME_ASSERT(expr, msg) \
         class wxMAKE_UNIQUE_ASSERT_NAME { \
           unsigned int msg: expr; \
-          wxMAKE_UNIQUE_ASSERT_NAME(){wxUnusedVar(msg);} \
+          wxMAKE_UNIQUE_ASSERT_NAME() { wxUnusedVar(msg); } \
         }
 #else
     #define wxCOMPILE_TIME_ASSERT(expr, msg) \
         struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }
 #endif
 
+/*
+   When using VC++ 6 with "Edit and Continue" on, the compiler completely
+   mishandles __LINE__ and so wxCOMPILE_TIME_ASSERT() doesn't work, provide a
+   way to make "unique" assert names by specifying a unique prefix explicitly
+ */
+#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxCONCAT(wxAssert_, text)
 
-/* for compatibility only, don't use any more, not needed */
-#define wxCOMPILE_TIME_ASSERT2(expr, msg, text) wxCOMPILE_TIME_ASSERT(expr, msg)
+#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