Om
default_moveable.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_DefaultMoveable_
16 
17  #define Om_DefaultMoveable_ \
18  Om::DefaultMoveable
19 
20  #include "om/moveable.hpp"
21 
22 namespace Om {
23 
24  // MARK: - Om::DefaultMoveable
25 
30  template <
31  typename ThisImplementation,
32  typename ThisInterface = Moveable
33  >
35  public ThisInterface {
36 
37  template <typename TheMoveable>
38  friend std::auto_ptr<TheMoveable> Move(TheMoveable &);
39 
40  public: // MARK: public (non-static)
41 
42  virtual ~DefaultMoveable() = 0;
43 
48  virtual std::auto_ptr<Moveable> Move();
49 
50  private: // MARK: private (non-static)
51 
53 
54  };
55 
56 }
57 
58  #include "om/default_moveable.cpp"
59 
60 #endif
A partial implementation of Moveable.
DefaultMoveable & operator=(DefaultMoveable const &)
virtual std::auto_ptr< Moveable > Move()
virtual ~DefaultMoveable()=0
friend std::auto_ptr< TheMoveable > Move(TheMoveable &)
Om source file.
Om header file.
The Om library.
Definition: code_point.hpp:26