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