]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/except.h
Make wxComboCtrlBase::Set*groundColour() methods public.
[wxWidgets.git] / include / wx / except.h
index ef861f02b914dc738830c6328dc7964577afa560..75589163e30fb587aa67f54f1c2432151709bbd6 100644 (file)
@@ -4,9 +4,8 @@
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     17.09.2003
-// RCS-ID:      $Id$
 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_EXCEPT_H_
 // macros working whether wxUSE_EXCEPTIONS is 0 or 1
 // ----------------------------------------------------------------------------
 
-#if wxUSE_EXCEPTIONS
-    #define wxTRY try
-    #define wxCATCH_ALL(code) catch ( ... ) { code }
-#else // !wxUSE_EXCEPTIONS
+// even if the library itself was compiled with exceptions support, the user
+// code using it might be compiling with a compiler switch disabling them in
+// which cases we shouldn't use try/catch in the headers -- this results in
+// compilation errors in e.g. wx/scopeguard.h with at least g++ 4
+#if !wxUSE_EXCEPTIONS || \
+        (defined(__GNUG__) && !defined(__EXCEPTIONS))
+    #ifndef wxNO_EXCEPTIONS
+        #define wxNO_EXCEPTIONS
+    #endif
+#endif
+
+#ifdef wxNO_EXCEPTIONS
     #define wxTRY
     #define wxCATCH_ALL(code)
-#endif // wxUSE_EXCEPTIONS/!wxUSE_EXCEPTIONS
+#else // do use exceptions
+    #define wxTRY try
+    #define wxCATCH_ALL(code) catch ( ... ) { code }
+#endif // wxNO_EXCEPTIONS/!wxNO_EXCEPTIONS
 
 #endif // _WX_EXCEPT_H_