From bb6784e0e1a385cdd20b41d3254093e89a210332 Mon Sep 17 00:00:00 2001 From: pescuma Date: Wed, 31 Dec 2008 21:12:58 +0000 Subject: skins: Added SkinLib git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@120 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Plugins/skins/SkinLib/scope.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Plugins/skins/SkinLib/scope.h (limited to 'Plugins/skins/SkinLib/scope.h') diff --git a/Plugins/skins/SkinLib/scope.h b/Plugins/skins/SkinLib/scope.h new file mode 100644 index 0000000..2fad797 --- /dev/null +++ b/Plugins/skins/SkinLib/scope.h @@ -0,0 +1,37 @@ +#ifndef __PTR_H__ +# define __PTR_H__ + + +template +class scope +{ +public: + scope() : p(NULL) {} + scope(T t) : p(t) {} + ~scope() { release(); } + + void release() + { + if (p != NULL) + delete p; + p = NULL; + } + + T operator=(T t) { release(); p = t; return t; } + T operator->() const { return p; } + operator T() const { return p; } + + T detach() + { + T ret = p; + p = NULL; + return ret; + } + +private: + T p; +}; + + + +#endif // __PTR_H__ -- cgit v1.2.3