#include <ge_autoptr.h>
This class handles automatic deallocation of objects with TYPE::Free(). It is similar in function to AutoAlloc, but the object has to have been previously allocated.
Public Member Functions | |
| AutoFree () | |
| AutoFree (AutoFree &&src) | |
| MAXON_OPERATOR_MOVE_ASSIGNMENT (AutoFree) | |
| AutoFree (TYPE *p) | |
| ~AutoFree () | |
| void | Set (TYPE *p) |
| operator TYPE * () const | |
| operator TYPE & () const | |
| TYPE * | operator-> () const |
| TYPE *const * | operator& () const |
| TYPE * | Disconnect () |
| TYPE * | Release () |
| void | Free () |
| void | Assign (TYPE *p) |
Private Member Functions | |
| const AutoFree< TYPE > & | operator= (const AutoFree< TYPE > &p) |
| AutoFree (const AutoFree< TYPE > &p) | |
Private Attributes | |
| TYPE * | ptr |
Friends | |
| MAXON_ATTRIBUTE_FORCE_INLINE friend void | operator% (const AutoFree< TYPE > &alloc, maxon::ThreadReferencedError &err) |
| AutoFree | ( | ) |
Default constructor.
|
explicit |
Stores the pointer p internally.
| [in] | p | A pointer to an object to be freed with TYPE::Free(p). The AutoFree instance takes over the ownership of the pointed object. |
| ~AutoFree | ( | ) |
Calls TYPE::Free(ptr), where ptr is the internally stored pointer.
| MAXON_OPERATOR_MOVE_ASSIGNMENT | ( | AutoFree< TYPE > | ) |
| void Set | ( | TYPE * | p | ) |
Sets p as the internal pointer.
| [in] | p | A pointer to an object to be freed with TYPE::Free(p). The AutoFree instance takes over the ownership of the pointed object. |
| operator TYPE * | ( | ) | const |
Conversion to a raw pointer to TYPE. Makes it possible to pass the object directly to functions like Function(TYPE* t).
| operator TYPE & | ( | ) | const |
Conversion to a reference to TYPE. Makes it possible to pass the object directly to functions like Function(TYPE& t).
| TYPE* operator-> | ( | ) | const |
Used for calls like myauto->Function().
| TYPE* const* operator& | ( | ) | const |
| TYPE* Disconnect | ( | ) |
Retrieves the internal pointer and then sets it to nullptr. Thus the ownership is transfered to the caller.
| TYPE* Release | ( | ) |
Deprecated. Use Disconnect().
| void Free | ( | ) |
Calls TYPE::Free(ptr) with the internal pointer and sets it to nullptr.
| void Assign | ( | TYPE * | p | ) |
Assigns p as the internal pointer.
| [in] | p | A pointer to an object to be freed with TYPE::Free(p). The AutoFree instance takes over the ownership of the pointed object. |
|
friend |
|
private |