/**
-* Name: wx/debug.h
-* Purpose: Misc debug functions and macros
-* Author: Vadim Zeitlin
+* Name: wx/debug.h
+* Purpose: Misc debug functions and macros
+* Author: Vadim Zeitlin
* Modified by: Ryan Norton (Converted to C)
-* Created: 29/01/98
-* RCS-ID: $Id$
-* Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-* Licence: wxWindows licence
+* Created: 29/01/98
+* RCS-ID: $Id$
+* Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+* Licence: wxWindows licence
*/
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
/* */
/* All debugging macros rely on ASSERT() which in turn calls user-defined */
/* OnAssert() function. To keep things simple, it's called even when the */
-/* expression is TRUE (i.e. everything is ok) and by default does nothing: just */
+/* expression is true (i.e. everything is ok) and by default does nothing: just */
/* returns the same value back. But if you redefine it to do something more sexy */
/* (popping up a message box in your favourite GUI, sending you e-mail or */
/* whatever) it will affect all ASSERTs, FAILs and CHECKs in your code. */
#endif /* __WXDEBUG__ */
#ifdef __cplusplus
- /* Use of wxFalse instead of FALSE suppresses compiler warnings about testing */
+ /* 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; }
+#ifdef __WATCOMC__
+ /* 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
/* 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; }