19 #ifndef MIR_MODULE_DELETER_H_
20 #define MIR_MODULE_DELETER_H_
38 std::shared_ptr<mir::SharedLibrary> internal_state;
48 :
std::default_delete<T>{other},
53 detail::RefCountedLibrary get_library()
const
64 detail::RefCountedLibrary
library;
90 template<
typename Type,
typename... Args>
91 inline auto make_module_ptr(Args&&... args)
96 Deleter(
void* address)
98 } deleter(reinterpret_cast<void*>(&make_module_ptr<Type, Args...>));
All things Mir.
Definition: atomic_callback.h:25
ModuleDeleter(ModuleDeleter< U > const &other)
Definition: module_deleter.h:47
Definition: module_deleter.h:43
RefCountedLibrary & operator=(RefCountedLibrary const &)
library
Definition: module_deleter.h:49
std::unique_ptr< T, ModuleDeleter< T >> UniqueModulePtr
Use UniqueModulePtr to ensure that your loadable libray outlives instances created within it...
Definition: module_deleter.h:83
Definition: module_deleter.h:30
ModuleDeleter()
Definition: module_deleter.h:45
RefCountedLibrary(void *address)
Definition: module_deleter.cpp:52