1: 
   2: 
   3: #ifndef WWWI_MIND_WATCHPTR_H 
   4: #define WWWI_MIND_WATCHPTR_H 
   5: 
   6: /*
   7:  *  The WatchPtr class is used to allow a pointer to obtain automatic 
   8:  *  destruction when the current stack frame exits.  This is primarily useful
   9:  *  to clean up when exceptions occur and memory has been allocated with new.
  10:  */
  11: 
  12: template <class T> class WatchPtr {
  13: public:
  14:   WatchPtr(T &i_t) { m_tp = &i_t; m_bProtect=true; }
  15:   void  Release(void) { m_bProtect = false; }
  16:   ~WatchPtr(void) { if (m_bProtect==false) return; SoftDelete(*m_tp); }
  17: protected:
  18:   T *m_tp;
  19:   bool m_bProtect;
  20: };
  21: 
  22: 
  23: #endif 
  24: 
  25: 
  26: