Dependency::customDeleter uses a lambda

This commit is contained in:
Atlante45 2015-03-12 18:53:29 +01:00
parent f91a19a918
commit 0bd97ce40c

View file

@ -17,18 +17,25 @@
#include <QSharedPointer>
#include <QWeakPointer>
#include <functional>
#include <typeinfo>
#define SINGLETON_DEPENDENCY \
friend class DependencyManager;
class Dependency {
public:
typedef std::function<void(Dependency* pointer)> 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;
};