Om
moveable.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Moveable_
16 
17  #define Om_Moveable_ \
18  Om::Moveable
19 
20  #ifndef Om_Macro_Precompilation_
21 
22  #include <memory>
23 
24  #endif
25 
26 namespace Om {
27 
28  // MARK: - Om::Moveable
29 
34  class Moveable {
35 
36  template <typename TheMoveable>
37  friend std::auto_ptr<TheMoveable> Move(TheMoveable &);
38 
39  public: // MARK: public (non-static)
40 
41  virtual ~Moveable() = 0;
42 
47  virtual std::auto_ptr<Moveable> Move() = 0;
48 
49  private: // MARK: private (non-static)
50 
52 
53  };
54 
55  // MARK: - Om::
56 
61  template <typename TheMoveable>
62  std::auto_ptr<TheMoveable> Move(TheMoveable &);
63 
64 }
65 
66  #include "om/moveable.cpp"
67 
68 #endif
An object that can be passed to Move to be moved.
Definition: moveable.hpp:34
virtual ~Moveable()=0
virtual std::auto_ptr< Moveable > Move()=0
Moveable & operator=(Moveable const &)
friend std::auto_ptr< TheMoveable > Move(TheMoveable &)
Om source file.
The Om library.
Definition: code_point.hpp:26
std::auto_ptr< TheMoveable > Move(TheMoveable &)