#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
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)
public:
wxScopeGuardImplBase() : m_wasDismissed(false) { }
+ wxScopeGuardImplBase(const wxScopeGuardImplBase& other)
+ : m_wasDismissed(other.m_wasDismissed)
+ {
+ other.Dismiss();
+ }
+
void Dismiss() const { m_wasDismissed = true; }
// for OnScopeExit() only (we can't make it friend, unfortunately)!
protected:
~wxScopeGuardImplBase() { }
- wxScopeGuardImplBase(const wxScopeGuardImplBase& other)
- : m_wasDismissed(other.m_wasDismissed)
- {
- other.Dismiss();
- }
-
// must be mutable for copy ctor to work
mutable bool m_wasDismissed;