]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/scopeguard.h
The dataview sample compiles now, but doesn't work yet...
[wxWidgets.git] / include / wx / scopeguard.h
index b8152964a0b3f2a919a05972e6a6f656f2a27015..45dee8caef22e8fd08e703f46dc3afb04039cdd5 100644 (file)
 
 #else
 
+#if !defined(__GNUC__) || wxCHECK_GCC_VERSION(2, 95)
+// namespace support was first implemented in gcc-2.95,
+// so avoid using it for older versions.
 namespace wxPrivate
 {
+#else
+#define wxPrivate
+#endif
     // in the original implementation this was a member template function of
     // ScopeGuardImplBase but gcc 2.8 which is still used for OS/2 doesn't
     // support member templates and so we must make it global
@@ -75,7 +81,9 @@ namespace wxPrivate
     void Use(const T& WXUNUSED(t))
     {
     }
+#if !defined(__GNUC__) || wxCHECK_GCC_VERSION(2, 95)
 } // namespace wxPrivate
+#endif
 
 #define wxPrivateOnScopeExit(n) wxPrivate::OnScopeExit(n)
 #define wxPrivateUse(n) wxPrivate::Use(n)
@@ -336,7 +344,7 @@ typedef const wxScopeGuardImplBase& wxScopeGuard;
     wxScopeGuard n = wxMakeObjGuard(o, m); \
     wxPrivateUse(n)
 #define wxON_BLOCK_EXIT_OBJ0(o, m) \
-    wxON_BLOCK_EXIT_OBJ0_IMPL(wxGuardName, o, m)
+    wxON_BLOCK_EXIT_OBJ0_IMPL(wxGuardName, o, &m)
 
 #define wxON_BLOCK_EXIT1_IMPL(n, f, p1) \
     wxScopeGuard n = wxMakeGuard(f, p1); \
@@ -348,7 +356,7 @@ typedef const wxScopeGuardImplBase& wxScopeGuard;
     wxScopeGuard n = wxMakeObjGuard(o, m, p1); \
     wxPrivateUse(n)
 #define wxON_BLOCK_EXIT_OBJ1(o, m, p1) \
-    wxON_BLOCK_EXIT_OBJ1_IMPL(wxGuardName, o, m, p1)
+    wxON_BLOCK_EXIT_OBJ1_IMPL(wxGuardName, o, &m, p1)
 
 #define wxON_BLOCK_EXIT2_IMPL(n, f, p1, p2) \
     wxScopeGuard n = wxMakeGuard(f, p1, p2); \
@@ -360,6 +368,6 @@ typedef const wxScopeGuardImplBase& wxScopeGuard;
     wxScopeGuard n = wxMakeObjGuard(o, m, p1, p2); \
     wxPrivateUse(n)
 #define wxON_BLOCK_EXIT_OBJ2(o, m, p1, p2) \
-    wxON_BLOCK_EXIT_OBJ2_IMPL(wxGuardName, o, m, p1, p2)
+    wxON_BLOCK_EXIT_OBJ2_IMPL(wxGuardName, o, &m, p1, p2)
 
 #endif // _WX_SCOPEGUARD_H_