X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bcffb4d1a9edaa539770382e14129ac902da68d8..d0332cbc07d487c30d83515fb3351790565ec1de:/include/wx/scopeguard.h diff --git a/include/wx/scopeguard.h b/include/wx/scopeguard.h index a3a4fffa7e..a68c9896d8 100644 --- a/include/wx/scopeguard.h +++ b/include/wx/scopeguard.h @@ -51,17 +51,8 @@ #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 { -#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 @@ -84,9 +75,7 @@ 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) @@ -366,7 +355,7 @@ public: static wxObjScopeGuardImpl3 MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3) { - return wxObjScopeGuardImpl3(obj, memFun, p1, p2, p3); + return wxObjScopeGuardImpl3(obj, memFun, p1, p2, p3); } ~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 // ---------------------------------------------------------------------------- -#ifdef wxHAS_NAMESPACES - namespace wxPrivate { @@ -411,7 +398,7 @@ template class VariableSetterImpl : public VariableSetterBase { public: - VariableSetterImpl(T& var, const U& value) + VariableSetterImpl(T& var, U value) : m_var(var), m_value(value) { @@ -424,7 +411,7 @@ public: private: T& m_var; - const U& m_value; + const U m_value; // suppress the warning about assignment operator not being generated VariableSetterImpl& operator=(const VariableSetterImpl&); @@ -454,7 +441,7 @@ private: template inline -wxPrivate::VariableSetterImpl wxMakeVarSetter(T& var, const U& value) +wxPrivate::VariableSetterImpl wxMakeVarSetter(T& var, U value) { return wxPrivate::VariableSetterImpl(var, value); } @@ -469,8 +456,6 @@ wxPrivate::VariableNullerImpl wxMakeVarNuller(T& var) return wxPrivate::VariableNullerImpl(var); } -#endif // wxHAS_NAMESPACES - // ============================================================================ // macros for declaring unnamed scoped guards (which can't be dismissed) // ============================================================================