- class WXDLLIMPEXP_FWD_BASE wxString;
- class WXDLLIMPEXP_FWD_BASE wxCStrData;
-
- /* these two work when szMsg passed to debug macro is a string,
- we also have to provide wxCStrData overload to resolve ambiguity
- which would otherwise arise from wxASSERT( s.c_str() ): */
- extern void WXDLLIMPEXP_BASE wxOnAssert(const wxString& szFile,
- int nLine,
- const wxString& szFunc,
- const wxString& szCond,
- const wxString& szMsg);
-
- extern void WXDLLIMPEXP_BASE wxOnAssert(const wxString& szFile,
- int nLine,
- const wxString& szFunc,
- const wxString& szCond);
-
- extern void WXDLLIMPEXP_BASE wxOnAssert(const char *szFile,
- int nLine,
- const char *szFunc,
- const char *szCond,
- const wxCStrData& msg);
-
- extern void WXDLLIMPEXP_BASE wxOnAssert(const char *szFile,
- int nLine,
- const char *szFunc,
- const char *szCond,
- const wxString& szMsg);
-
- // call this function to break into the debugger unconditionally (assuming
- // the program is running under debugger, of course)
- extern void WXDLLIMPEXP_BASE wxTrap();
-
- // generic assert macro
- #define wxASSERT(cond) wxASSERT_MSG(cond, (const char*)NULL)
-
-
- // assert with additional message explaining its cause
-
- // Note: some compilers will give a warning (such as
- // "possible unwanted ;") when using a ";" instead of the "{}".
- #define wxASSERT_MSG(cond, msg) \
- if ( cond ) \
- {} \
- else \
- wxOnAssert(__FILE__, __LINE__, __WXFUNCTION__, #cond, msg)
-
- // special form of assert: always triggers it (in debug mode)
- #define wxFAIL wxFAIL_MSG((const char*)NULL)
-
- // FAIL with some message
- #define wxFAIL_MSG(msg) wxFAIL_COND_MSG("wxAssertFailure", msg)
-
- // FAIL with some message and a condition
- #define wxFAIL_COND_MSG(cond, msg) \
- wxOnAssert(__FILE__, __LINE__, __WXFUNCTION__, cond, msg)
-
- // An assert helper used to avoid warning when testing constant expressions,
- // i.e. wxASSERT( sizeof(int) == 4 ) can generate a compiler warning about
- // expression being always true, but not using
- // wxASSERT( wxAssertIsEqual(sizeof(int), 4) )
- //
- // NB: this is made obsolete by wxCOMPILE_TIME_ASSERT() and should no
- // longer be used.
- extern bool WXDLLIMPEXP_BASE wxAssertIsEqual(int x, int y);
-#else
- #define wxTrap()
+// this version is for compatibility with wx 2.8 Unicode build only, we don't
+// use it ourselves any more except in ANSI-only build in which case it is all
+// we need
+extern void WXDLLIMPEXP_BASE wxOnAssert(const wxChar *file,
+ int line,
+ const char *func,
+ const wxChar *cond,
+ const wxChar *msg = NULL);
+
+// these overloads work when msg passed to debug macro is a string and we
+// also have to provide wxCStrData overload to resolve ambiguity which would
+// otherwise arise from wxASSERT( s.c_str() )
+extern void WXDLLIMPEXP_BASE wxOnAssert(const wxString& file,
+ int line,
+ const wxString& func,
+ const wxString& cond,
+ const wxString& msg);
+
+extern void WXDLLIMPEXP_BASE wxOnAssert(const wxString& file,
+ int line,
+ const wxString& func,
+ const wxString& cond);
+
+extern void WXDLLIMPEXP_BASE wxOnAssert(const char *file,
+ int line,
+ const char *func,
+ const char *cond,
+ const wxCStrData& msg);
+
+extern void WXDLLIMPEXP_BASE wxOnAssert(const char *file,
+ int line,
+ const char *func,
+ const char *cond,
+ const wxString& msg);
+
+#endif // wxDEBUG_LEVEL