+#ifndef __NONCOPYABLE_H__
+#define __NONCOPYABLE_H__
+
+class NONCOPYABLE
+{
+protected:
+ NONCOPYABLE() {}
+ virtual ~NONCOPYABLE() {}
+private: // emphasize the following members are private
+ NONCOPYABLE(const NONCOPYABLE &);
+ const NONCOPYABLE & operator=(const NONCOPYABLE &);
+};
+
+#endif