lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
|
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