Source code

Revision control

Copy as Markdown

Other Tools

// Common/AutoPtr.h↩
#ifndef __COMMON_AUTOPTR_H↩
#define __COMMON_AUTOPTR_H↩
template<class T> class CMyAutoPtr↩
{↩
T *_p;↩
public:↩
CMyAutoPtr(T *p = 0) : _p(p) {}↩
CMyAutoPtr(CMyAutoPtr<T>& p): _p(p.release()) {}↩
CMyAutoPtr<T>& operator=(CMyAutoPtr<T>& p)↩
{↩
reset(p.release());↩
return (*this);↩
}↩
~CMyAutoPtr() { delete _p; }↩
T& operator*() const { return *_p; }↩
// T* operator->() const { return (&**this); }↩
T* get() const { return _p; }↩
T* release()↩
{↩
T *tmp = _p;↩
_p = 0;↩
return tmp;↩
}↩
void reset(T* p = 0)↩
{↩
if (p != _p)↩
delete _p;↩
_p = p;↩
}↩
};↩
#endif