added tied scoped pointers

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2003-09-17 17:27:36 +00:00
parent f0658b1e1e
commit 38f1526768
2 changed files with 88 additions and 2 deletions

View File

@@ -182,5 +182,32 @@ void name::reset(T * p){ \
} \
}
// ----------------------------------------------------------------------------
// "Tied" scoped pointer: same as normal one but also sets the value of
// some other variable to the pointer value
// ----------------------------------------------------------------------------
#define wxDEFINE_TIED_SCOPED_PTR_TYPE(T) \
wxDEFINE_SCOPED_PTR_TYPE(T); \
class T ## TiedPtr : public T ## Ptr \
{ \
public: \
T ## TiedPtr(T **pp, T *p) \
: T ## Ptr(p), m_pp(pp) \
{ \
m_pOld = *pp; \
*pp = p; \
} \
\
~ T ## TiedPtr() \
{ \
*m_pp = m_pOld; \
} \
\
private: \
T **m_pp; \
T *m_pOld; \
}
#endif // __WX_SCOPED_POINTER__