lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
cloneable.h
00001 /*****************************************************/
00002 /* lean Smart                   (c) Tobias Zirr 2011 */
00003 /*****************************************************/
00004 
00005 #ifndef LEAN_SMART_CLONEABLE
00006 #define LEAN_SMART_CLONEABLE
00007 
00008 namespace lean
00009 {
00010 namespace smart
00011 {
00012 
00014 class cloneable
00015 {
00016 protected:
00017 #ifndef LEAN_OPTIMIZE_DEFAULT_DESTRUCTOR
00018     ~cloneable() throw() { };
00019 #endif
00020 
00021 public:
00023     virtual cloneable* clone() const = 0;
00025     virtual void destroy() const = 0;
00026 };
00027 
00028 } // namespace
00029 
00030 using smart::cloneable;
00031 
00032 } // namespace
00033 
00034 #endif