56 : obj_{owning_type(obj, deleter)} {}
64 return obj_.release();
70 [[nodiscard]]
void*
get() const noexcept {
75 using owning_type = std::unique_ptr<void, deleter_type>;
76 owning_type obj_{
nullptr, [](
void*) {}};
Utility class to store an arbitrary type-erased object while another object is alive.
void * release() noexcept
Release ownership of the underlying pointer.
void * get() const noexcept
void(*)(void *) deleter_type
Callback used to delete the owned object.
OwningWrapper(void *obj, deleter_type deleter)
Take ownership and responsibility for the destruction of an object.