Eris  1.3.21
DeleteLater.h
1 #ifndef ERIS_DELETE_LATER_H
2 #define ERIS_DELETE_LATER_H
3 
4 namespace Eris
5 {
6 
8 {
9 public:
10  virtual ~BaseDeleteLater() = 0;
11 };
12 
13 
14 template <class T>
16 {
17 public:
18  DerivedDeleteLater(T* ins) : m_instance(ins) { }
19  virtual ~DerivedDeleteLater()
20  {
21  delete m_instance;
22  }
23 
24 private:
25  T* m_instance;
26 };
27 
28 void pushDeleteLater(BaseDeleteLater* bl);
29 
30 void execDeleteLaters();
31 
32 template <class T>
33 void deleteLater(T* ins)
34 {
35  pushDeleteLater(new DerivedDeleteLater<T>(ins));
36 }
37 
38 } // of namespace
39 
40 #endif // ERIS_DELETE_LATER_H
Definition: Account.cpp:35
Definition: DeleteLater.h:15
Definition: DeleteLater.h:7