No real changes, just refactor wxControlContainer code a little.
[wxWidgets.git] / include / wx / except.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/except.h
3 // Purpose: C++ exception related stuff
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 17.09.2003
7 // RCS-ID: $Id$
8 // Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_EXCEPT_H_
13 #define _WX_EXCEPT_H_
14
15 #include "wx/defs.h"
16
17 // ----------------------------------------------------------------------------
18 // macros working whether wxUSE_EXCEPTIONS is 0 or 1
19 // ----------------------------------------------------------------------------
20
21 // even if the library itself was compiled with exceptions support, the user
22 // code using it might be compiling with a compiler switch disabling them in
23 // which cases we shouldn't use try/catch in the headers -- this results in
24 // compilation errors in e.g. wx/scopeguard.h with at least g++ 4
25 #if !wxUSE_EXCEPTIONS || \
26 (defined(__GNUG__) && !defined(__EXCEPTIONS))
27 #ifndef wxNO_EXCEPTIONS
28 #define wxNO_EXCEPTIONS
29 #endif
30 #endif
31
32 #ifdef wxNO_EXCEPTIONS
33 #define wxTRY
34 #define wxCATCH_ALL(code)
35 #else // do use exceptions
36 #define wxTRY try
37 #define wxCATCH_ALL(code) catch ( ... ) { code }
38 #endif // wxNO_EXCEPTIONS/!wxNO_EXCEPTIONS
39
40 #endif // _WX_EXCEPT_H_
41