--- /dev/null
+#ifndef _noncopyable_\r
+#define _noncopyable_\r
+\r
+class NonCopyable\r
+{\r
+protected:\r
+ NonCopyable() {}\r
+ virtual ~NonCopyable() {}\r
+\r
+private:\r
+ // restrict copy and assignment\r
+ NonCopyable(const NonCopyable &rhs);\r
+ const NonCopyable &operator=(const NonCopyable &rhs);\r
+};\r
+\r
+#endif // _noncopyable_\r