#ifdef __cplusplus
/* Use of wxFalse instead of false suppresses compiler warnings about testing */
/* constant expression */
- WXDLLIMPEXP_DATA_BASE(extern const bool) wxFalse;
+ extern WXDLLIMPEXP_DATA_BASE(const bool) wxFalse;
#endif
#define wxAssertFailure wxFalse
It may be used both within a function and in the global scope.
*/
-#define wxCOMPILE_TIME_ASSERT(expr, msg) \
- struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }
+#if defined(__WATCOMC__) && defined(__cplusplus)
+ /* avoid "unused symbol" warning */
+ #define wxCOMPILE_TIME_ASSERT(expr, msg) \
+ class wxMAKE_UNIQUE_ASSERT_NAME { \
+ unsigned int msg: expr; \
+ 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
/* other miscellaneous debugger-related functions */
/* ---------------------------------------------------------------------------- */
-/* return true if we're running under debugger */
-/* */
-/* currently this only really works under Mac in CodeWarrior builds, it always */
-/* returns false otherwise */
+/*
+ Return true if we're running under debugger.
+
+ Currently this only really works under Win32 and Mac in CodeWarrior builds,
+ it always returns false in other cases.
+ */
#ifdef __cplusplus
- #ifdef __WXMAC__
+ /* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */
+ #if defined(__WXMAC__) || defined(__WIN32__)
extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning();
#else /* !Mac */
inline bool wxIsDebuggerRunning() { return false; }
#endif /* __cplusplus */
#endif /* _WX_DEBUG_H_ */
-