Classes | |
class | ForwardFree< IS_DELETABLE > |
class | ForwardFree< true > |
class | NewDelete< T > |
Namespaces | |
maxon | |
maxon::details | |
Macros | |
#define | NewObj(T, ...) |
#define | NewObjPtr(T, ...) |
#define | DeleteObj(obj) |
Functions | |
template<typename T > | |
void | PrivateFreeWithDestructor (const T *obj) |
Bool | PrivateClearAllWeakReferences (const void *obj) |
template<typename T , typename... ARGS> | |
ResultPtr< T > | NewObjWithLocation (MAXON_SOURCE_LOCATION_DECLARATION, ARGS &&... args) |
template<typename T , typename... ARGS> | |
ResultPtr< T > | NewObjT (ARGS &&... args) |
template<typename T > | |
MAXON_ATTRIBUTE_FORCE_INLINE void | DeleteConstPtrObj (T *o) |
#define NewObj | ( | T, | |
... | |||
) |
Creates an object with constructor parameters (using new or T::Alloc, depending on the type). This does not throw any kind of exception, it returns null if the allocation fails. NewObj does not clear the memory. Usage: MyType* x = NewObj(MyType, optional constructor parameters);
[in] | T | Type of object. |
[in] | ... | Additional constructor parameters. |
#define NewObjPtr | ( | T, | |
... | |||
) |
Deprecated.
#define DeleteObj | ( | obj | ) |
Deletes an object. This expects a pointer as argument, the object is deleted using the destructor or T::Free, depending on the type of the object. If the destructor is private System::FreeWithDestructor() cannot be called; the destructor is called inline (after clearing weak references) and then the memory is released.
[in,out] | obj | Object pointer (can be nullptr, will be nullptr after return) |