Scarab  v3.2.0
Project 8 C++ Utility Library
destroyer.hh
Go to the documentation of this file.
1 /*
2  * destroyer.hh
3  *
4  * Created on: Nov 7, 2011
5  * Author: nsoblath
6  */
7 
8 #ifndef SCARAB_DESTROYER_HH_
9 #define SCARAB_DESTROYER_HH_
10 
11 
12 namespace scarab
13 {
14 
15  template< class XDoomed >
16  class destroyer
17  {
18  public:
19  destroyer( XDoomed* = 0 );
20  ~destroyer();
21 
22  void set_doomed( XDoomed* );
23 
24  private:
25  // Prevent users from making copies of a destroyer to avoid double deletion:
27  void operator=( const destroyer< XDoomed >& );
28 
29  private:
30  XDoomed* f_doomed;
31  };
32 
33  template< class XDoomed >
35  {
36  f_doomed = d;
37  }
38 
39  template< class XDoomed >
41  {
42  delete f_doomed;
43  }
44 
45  template< class XDoomed >
47  {
48  f_doomed = d;
49  }
50 
51 } /* namespace scarab */
52 #endif /* SCARAB_DESTROYER_HH_ */
void set_doomed(XDoomed *)
Definition: destroyer.hh:46
destroyer(XDoomed *=0)
Definition: destroyer.hh:34
void operator=(const destroyer< XDoomed > &)
XDoomed * f_doomed
Definition: destroyer.hh:30