compilation fixes for standard-conformant compilers and added back implicit conversion of wxWeakRef<T> to T* (part of patch 1870445)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-01-16 02:07:07 +00:00
parent dd10e6143b
commit 34bfda8a38

View File

@@ -207,21 +207,14 @@ public:
return *this;
}
virtual ~wxWeakRef() { Release(); }
virtual ~wxWeakRef() { this->Release(); }
// Smart pointer functions
T& operator*() const { return *m_pobj; }
T* operator->() const { return m_pobj; }
T& operator*() const { return *this->m_pobj; }
T* operator->() const { return this->m_pobj; }
T* get() const { return m_pobj; }
// test for pointer validity: defining conversion to unspecified_bool_type
// and not more obvious bool to avoid implicit conversions to integer types
typedef T *(wxWeakRef<T>::*unspecified_bool_type)() const;
operator unspecified_bool_type() const
{
return this->m_pobj ? &wxWeakRef<T>::get : NULL;
}
T* get() const { return this->m_pobj; }
operator T*() const { return get(); }
};