diff --git a/libraries/shared/src/DependencyManager.h b/libraries/shared/src/DependencyManager.h index 3868bf14da..01b755fdd0 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 DeleterFunction; + protected: virtual ~Dependency() {} virtual void customDeleter() { - delete this; + _customDeleter(this); } - + + void setCustomDeleter(DeleterFunction customDeleter) { _customDeleter = customDeleter; } + DeleterFunction _customDeleter = [](Dependency* pointer) { delete pointer; }; + friend class DependencyManager; };