6#ifndef _ZFI_ZFCoreUtilAutoPtr_h_
7#define _ZFI_ZFCoreUtilAutoPtr_h_
17 _ZFP_zfscopeFreeContainer(
ZF_IN void *p) : p(p) {}
18 ~_ZFP_zfscopeFreeContainer(
void) {
36#define zfscopeFree(obj) \
37 _ZFP_zfscopeFreeContainer ZFUniqueName(zfscopeFree_)(obj)
44#define zfscopeCleanup_1(action \
47 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
49 ZFUniqueName(zfscopeCleanup_T)(P0 &p0) \
52 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
57 } ZFUniqueName(zfscopeCleanup_)(p0)
59#define zfscopeCleanup_2(action \
63 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
65 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
71 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
77 } ZFUniqueName(zfscopeCleanup_)(p0 \
81#define zfscopeCleanup_3(action \
86 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
88 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
96 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
103 } ZFUniqueName(zfscopeCleanup_)(p0 \
108#define zfscopeCleanup_4(action \
114 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
116 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
126 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
134 } ZFUniqueName(zfscopeCleanup_)(p0 \
140#define zfscopeCleanup_5(action \
147 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
149 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
161 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
170 } ZFUniqueName(zfscopeCleanup_)(p0 \
177#define zfscopeCleanup_6(action \
185 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
187 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
201 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
211 } ZFUniqueName(zfscopeCleanup_)(p0 \
219#define zfscopeCleanup_7(action \
228 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
230 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
246 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
257 } ZFUniqueName(zfscopeCleanup_)(p0 \
266#define zfscopeCleanup_8(action \
276 zfclassLikePOD ZFUniqueName(zfscopeCleanup_T) { \
278 ZFUniqueName(zfscopeCleanup_T)(P0 &p0 \
296 ~ZFUniqueName(zfscopeCleanup_T)(void) { \
308 } ZFUniqueName(zfscopeCleanup_)(p0 \
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define zfclassLikePOD
shows the class is not a POD type, but you may use it like a POD except memset it to 0
Definition ZFCoreTypeDef_ClassType.h:41
#define zffree(ptr)
same as free defined for future use, do nothing if ptr is NULL
Definition ZFCoreTypeDef_ClassType.h:104
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98