diff --git a/libraries/shared/src/DependencyManager.h b/libraries/shared/src/DependencyManager.h index 3868bf14da..a6abe77c3f 100644 --- a/libraries/shared/src/DependencyManager.h +++ b/libraries/shared/src/DependencyManager.h @@ -17,18 +17,25 @@ #include #include +#include #include #define SINGLETON_DEPENDENCY \ friend class DependencyManager; class Dependency { +public: + typedef std::function DeleterFct; + protected: virtual ~Dependency() {} virtual void customDeleter() { - delete this; + _customDeleterFct(this); } - + + void setCustomDeleterFct(DeleterFct customDeleterFct) { _customDeleterFct = customDeleterFct; } + DeleterFct _customDeleterFct = [](Dependency* pointer) { delete pointer; }; + friend class DependencyManager; };