22 #ifndef ELM_UTIL_AUTODESTRUCTOR_H
23 #define ELM_UTIL_AUTODESTRUCTOR_H
35 inline bool isNull(
void)
const {
return !p; }
36 inline void clean(
void) {
if(p)
delete p; p = 0; }
37 inline T *
detach(
void) { T *res = p; p = 0;
return res; }
39 inline T *
get(void)
const {
return p; }
43 {
clean(); p = ad.p; ad.p = 0;
return *
this; }
44 inline operator T *(void)
const {
return get(); }
46 inline operator bool(
void)
const {
return !
isNull(); }
54 #endif // ELM_UTIL_AUTODESTRUCTOR_H
AutoDestructor(void)
Definition: AutoDestructor.h:31
~AutoDestructor(void)
Definition: AutoDestructor.h:33
AutoDestructor & operator=(AutoDestructor &ad)
Definition: AutoDestructor.h:42
AutoDestructor(T *ptr)
Definition: AutoDestructor.h:32
T * detach(void)
Definition: AutoDestructor.h:37
void clean(void)
Definition: AutoDestructor.h:36
T * operator->(void) const
Definition: AutoDestructor.h:45
void set(T *ptr)
Definition: AutoDestructor.h:38
bool isNull(void) const
Definition: AutoDestructor.h:35
AutoDestructor & operator=(T *ptr)
Definition: AutoDestructor.h:41
Definition: AutoDestructor.h:29