From 0bd97ce40c8659cbc6a164ccea0bcbbae990bfb8 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 12 Mar 2015 18:53:29 +0100 Subject: [PATCH] Dependency::customDeleter uses a lambda --- libraries/shared/src/DependencyManager.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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; };