From 49c5b4723093c4692a0a08c077068477945672f1 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Thu, 26 May 2016 12:58:22 +0200 Subject: [PATCH] CloseHandle deleter added --- include/stdex/common.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/include/stdex/common.h b/include/stdex/common.h index 052860144..43f347f89 100644 --- a/include/stdex/common.h +++ b/include/stdex/common.h @@ -55,3 +55,34 @@ // #define STDEX_VERSION_STR "1.0" #define STDEX_BUILD_YEAR_STR "2016" + + +namespace stdex +{ + /// + /// Deleter for unique_ptr using CloseHandle + /// + template struct CloseHandle_delete + { + typedef CloseHandle_delete<_Ty> _Myt; + + /// + /// Default construct + /// + CloseHandle_delete() {} + + /// + /// Construct from another CloseHandle_delete + /// + template CloseHandle_delete(const CloseHandle_delete<_Ty2>&) {} + + /// + /// Delete a pointer + /// + void operator()(_Ty *_Ptr) const + { + if (_Ptr) + CloseHandle(_Ptr); + } + }; +}