--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/misc/autodelete.h Wed Jan 16 22:39:43 2008 +0100
@@ -0,0 +1,26 @@
+#ifndef VMAILMGR__AUTO_DELETE__H__
+#define VMAILMGR__AUTO_DELETE__H__
+
+#include <sys/types.h>
+
+template<class T>
+class autodelete
+{
+private:
+ T* ptr;
+public:
+ autodelete() : ptr(0) { }
+ autodelete(T* p) : ptr(p) { }
+ ~autodelete() { if(ptr) delete ptr; }
+ operator T*&() { return ptr; }
+ operator const T*() const { return ptr; }
+ const T* operator=(T* p) { return ptr = p; }
+ T* operator->() { return ptr; }
+ const T* operator->() const { return ptr; }
+ T& operator[](size_t i) { return ptr[i]; }
+ const T& operator[](size_t i) const { return ptr[i]; }
+ bool operator!() const { return !ptr; }
+ operator bool() const { return ptr; }
+};
+
+#endif