diff options
author | Wim Vriend <facetracknoir@gmail.com> | 2012-09-22 14:44:47 +0000 |
---|---|---|
committer | Wim Vriend <facetracknoir@gmail.com> | 2012-09-22 14:44:47 +0000 |
commit | e883e08c569d50f1eb0bd800167dd06167ab9bda (patch) | |
tree | 04a0c8e2a33459a66adfb8b3047df9c278d11315 /FaceTrackNoIR/AutoClosePtr.h | |
parent | 55cca927c53418bb35eb0de14c6942a56f474390 (diff) |
Removed Excel-server
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@158 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FaceTrackNoIR/AutoClosePtr.h')
-rw-r--r-- | FaceTrackNoIR/AutoClosePtr.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/FaceTrackNoIR/AutoClosePtr.h b/FaceTrackNoIR/AutoClosePtr.h deleted file mode 100644 index 690d2c62..00000000 --- a/FaceTrackNoIR/AutoClosePtr.h +++ /dev/null @@ -1,89 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////
-// Auto pointer template.
-
-#if !defined(AUTOCLOSEPTR_H)
-#define AUTOCLOSEPTR_H
-
-//////////////////////////////////////////////////////////////////////////////
-// T auto pointer (not suitable for containers).
-// This auto pointer uses T's member function to perform clean up, rather
-// than `operator Closeete'.
-//
-template<typename T, typename R, R (T::*Close)()>
-class AutoClosePtr
-{
-public:
- explicit AutoClosePtr(T* p = NULL)
- : m_p(p)
- { // construct from object pointer
- }
-
- AutoClosePtr(AutoClosePtr& Other)
- : m_p(Other.Release())
- { // construct from Other AutoClosePtr
- }
-
- AutoClosePtr& operator=(AutoClosePtr& Other)
- { // assign Other
- Reset(Other.Release());
- return (*this);
- }
-
- ~AutoClosePtr()
- { // close and destroy
- if(m_p)
- {
- (m_p->*Close)();
- m_p = NULL;
- }
- }
-
- T& operator*() const
- { // return T
- return (*m_p);
- }
-
- T** operator&()
- { // return the address of the wrapped pointer
- Reset();
- return &m_p;
- }
-
- T* operator->() const
- { // return wrapped pointer
- return Get();
- }
-
- operator bool() const
- { // check wrapped pointer for NULL
- return m_p != NULL;
- }
-
- T* Get() const
- { // return wrapped pointer
- return m_p;
- }
-
- T* Release()
- { // return wrapped pointer and give up ownership
- T* pTmp = m_p;
- m_p = NULL;
- return pTmp;
- }
-
- void Reset(T* p = NULL)
- { // destroy the object and store new pointer
- if(p != m_p)
- {
- if(m_p)
- (m_p->*Close)();
- }
-
- m_p = p;
- }
-
-private:
- T* m_p; // the wrapped raw pointer
-};
-
-#endif // AUTOCLOSEPTR_H
\ No newline at end of file |