]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/scopeguard.h
fixing 'main screen'
[wxWidgets.git] / include / wx / scopeguard.h
index a3a4fffa7e2ed3902a0dd6466b450e5d9b969eab..a68c9896d8bf0cd9dee2ab8c416119acd75a993e 100644 (file)
 
 #else
 
 
 #else
 
-// namespace support was first implemented in gcc-2.95,
-// so avoid using it for older versions.
-#if !defined(__GNUC__) || wxCHECK_GCC_VERSION(2, 95)
-
-#define wxHAS_NAMESPACES
-
 namespace wxPrivate
 {
 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
     // 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
@@ -84,9 +75,7 @@ namespace wxPrivate
     void Use(const T& WXUNUSED(t))
     {
     }
     void Use(const T& WXUNUSED(t))
     {
     }
-#if !defined(__GNUC__) || wxCHECK_GCC_VERSION(2, 95)
 } // namespace wxPrivate
 } // namespace wxPrivate
-#endif
 
 #define wxPrivateOnScopeExit(n) wxPrivate::OnScopeExit(n)
 #define wxPrivateUse(n) wxPrivate::Use(n)
 
 #define wxPrivateOnScopeExit(n) wxPrivate::OnScopeExit(n)
 #define wxPrivateUse(n) wxPrivate::Use(n)
@@ -366,7 +355,7 @@ public:
     static wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3>
         MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3)
     {
     static wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3>
         MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3)
     {
-        return wxObjScopeGuardImpl3<Obj, MemFun, P1, P3>(obj, memFun, p1, p2, p3);
+        return wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3>(obj, memFun, p1, p2, p3);
     }
 
     ~wxObjScopeGuardImpl3() { wxPrivateOnScopeExit(*this); }
     }
 
     ~wxObjScopeGuardImpl3() { wxPrivateOnScopeExit(*this); }
@@ -397,8 +386,6 @@ wxMakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3)
 //                   setting a variable to some value on block exit
 // ----------------------------------------------------------------------------
 
 //                   setting a variable to some value on block exit
 // ----------------------------------------------------------------------------
 
-#ifdef wxHAS_NAMESPACES
-
 namespace wxPrivate
 {
 
 namespace wxPrivate
 {
 
@@ -411,7 +398,7 @@ template <typename T, typename U>
 class VariableSetterImpl : public VariableSetterBase
 {
 public:
 class VariableSetterImpl : public VariableSetterBase
 {
 public:
-    VariableSetterImpl(T& var, const U& value)
+    VariableSetterImpl(T& var, U value)
         : m_var(var),
           m_value(value)
     {
         : m_var(var),
           m_value(value)
     {
@@ -424,7 +411,7 @@ public:
 
 private:
     T& m_var;
 
 private:
     T& m_var;
-    const U& m_value;
+    const U m_value;
 
     // suppress the warning about assignment operator not being generated
     VariableSetterImpl<T, U>& operator=(const VariableSetterImpl<T, U>&);
 
     // suppress the warning about assignment operator not being generated
     VariableSetterImpl<T, U>& operator=(const VariableSetterImpl<T, U>&);
@@ -454,7 +441,7 @@ private:
 
 template <typename T, typename U>
 inline
 
 template <typename T, typename U>
 inline
-wxPrivate::VariableSetterImpl<T, U> wxMakeVarSetter(T& var, const U& value)
+wxPrivate::VariableSetterImpl<T, U> wxMakeVarSetter(T& var, U value)
 {
       return wxPrivate::VariableSetterImpl<T, U>(var, value);
 }
 {
       return wxPrivate::VariableSetterImpl<T, U>(var, value);
 }
@@ -469,8 +456,6 @@ wxPrivate::VariableNullerImpl<T> wxMakeVarNuller(T& var)
     return wxPrivate::VariableNullerImpl<T>(var);
 }
 
     return wxPrivate::VariableNullerImpl<T>(var);
 }
 
-#endif // wxHAS_NAMESPACES
-
 // ============================================================================
 // macros for declaring unnamed scoped guards (which can't be dismissed)
 // ============================================================================
 // ============================================================================
 // macros for declaring unnamed scoped guards (which can't be dismissed)
 // ============================================================================