Elm
1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
|
#include <elm/util/AutoDestructor.h>
Public Member Functions | |
AutoDestructor (void) | |
AutoDestructor (T *ptr) | |
~AutoDestructor (void) | |
bool | isNull (void) const |
void | clean (void) |
T * | detach (void) |
void | set (T *ptr) |
T * | get (void) const |
AutoDestructor & | operator= (T *ptr) |
AutoDestructor & | operator= (AutoDestructor &ad) |
operator T * (void) const | |
T * | operator-> (void) const |
operator bool (void) const | |
This class is wrapper around allocated pointer to manager its deletion. This type supports all operation on pointer and ensures that the pointed memory will be fried when the the pointer will be deleted. Notice that it takes as much memory as a usual pointer.
It may be useful in a generic data structure where the user has no access to the destructor.
T | Type of pointed data. |
elm::AutoDestructor< T >::AutoDestructor | ( | void | ) |
Build an autodestructor with a null pointer.
elm::AutoDestructor< T >::AutoDestructor | ( | T * | ptr | ) |
Build an autodestructor with the given pointer.
ptr | Used pointer. |
elm::AutoDestructor< T >::~AutoDestructor | ( | void | ) |
References elm::AutoDestructor< T >::clean().
void elm::AutoDestructor< T >::clean | ( | void | ) |
Free the pointed memory and set the pointer to null.
Referenced by elm::AutoDestructor< T >::operator=(), elm::AutoDestructor< T >::set(), and elm::AutoDestructor< T >::~AutoDestructor().
T * elm::AutoDestructor< T >::detach | ( | void | ) |
Return the pointer and set it in the object to null (it will no more be automatically fried).
T* elm::AutoDestructor< T >::get | ( | void | ) | const |
bool elm::AutoDestructor< T >::isNull | ( | void | ) | const |
Test if the pointer is null.
Referenced by elm::AutoDestructor< T >::operator bool().
elm::AutoDestructor< T >::operator bool | ( | void | ) | const |
Same as !isNull().
References elm::AutoDestructor< T >::isNull().
elm::AutoDestructor< T >::operator T * | ( | void | ) | const |
Same as get().
T * elm::AutoDestructor< T >::operator-> | ( | void | ) | const |
Indirect access to the members of stored pointer.
AutoDestructor & elm::AutoDestructor< T >::operator= | ( | T * | ptr | ) |
Change the pointer contained in the auto-destructor, the old pointer begin fried. Same as set().
References elm::AutoDestructor< T >::set().
AutoDestructor & elm::AutoDestructor< T >::operator= | ( | AutoDestructor< T > & | ad | ) |
Change the current pointer with the one of the given auto-destructor. The old pointer is first fried and the ad pointer is set to null.
ad | Auto-destructor to set the pointer form. |
References elm::AutoDestructor< T >::clean().
void elm::AutoDestructor< T >::set | ( | T * | ptr | ) |
References elm::AutoDestructor< T >::clean().
Referenced by elm::AutoDestructor< T >::operator=().