ZFFramework
Loading...
Searching...
No Matches
ZFCoreUtilAutoPtr.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFCoreUtilAutoPtr_h_
7#define _ZFI_ZFCoreUtilAutoPtr_h_
8
9#include "ZFCoreTypeDef.h"
10
12
13// ============================================================
14// zfcleanupInScope
18#define zfcleanupInScope_1(action \
19 , P0, p0 \
20 ) \
21 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
22 public: \
23 ZFUniqueName(zfcleanupInScope_T)(P0 &p0) \
24 : p0(p0) \
25 {} \
26 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
27 action \
28 } \
29 private: \
30 P0 &p0; \
31 } ZFUniqueName(zfcleanupInScope_)(p0)
33#define zfcleanupInScope_2(action \
34 , P0, p0 \
35 , P1, p1 \
36 ) \
37 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
38 public: \
39 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
40 , P1 &p1 \
41 ) \
42 : p0(p0) \
43 , p1(p1) \
44 {} \
45 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
46 action \
47 } \
48 private: \
49 P0 &p0; \
50 P1 &p1; \
51 } ZFUniqueName(zfcleanupInScope_)(p0 \
52 , p1 \
53 )
55#define zfcleanupInScope_3(action \
56 , P0, p0 \
57 , P1, p1 \
58 , P2, p2 \
59 ) \
60 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
61 public: \
62 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
63 , P1 &p1 \
64 , P2 &p2 \
65 ) \
66 : p0(p0) \
67 , p1(p1) \
68 , p2(p2) \
69 {} \
70 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
71 action \
72 } \
73 private: \
74 P0 &p0; \
75 P1 &p1; \
76 P2 &p2; \
77 } ZFUniqueName(zfcleanupInScope_)(p0 \
78 , p1 \
79 , p2 \
80 )
82#define zfcleanupInScope_4(action \
83 , P0, p0 \
84 , P1, p1 \
85 , P2, p2 \
86 , P3, p3 \
87 ) \
88 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
89 public: \
90 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
91 , P1 &p1 \
92 , P2 &p2 \
93 , P3 &p3 \
94 ) \
95 : p0(p0) \
96 , p1(p1) \
97 , p2(p2) \
98 , p3(p3) \
99 {} \
100 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
101 action \
102 } \
103 private: \
104 P0 &p0; \
105 P1 &p1; \
106 P2 &p2; \
107 P3 &p3; \
108 } ZFUniqueName(zfcleanupInScope_)(p0 \
109 , p1 \
110 , p2 \
111 , p3 \
112 )
114#define zfcleanupInScope_5(action \
115 , P0, p0 \
116 , P1, p1 \
117 , P2, p2 \
118 , P3, p3 \
119 , P4, p4 \
120 ) \
121 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
122 public: \
123 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
124 , P1 &p1 \
125 , P2 &p2 \
126 , P3 &p3 \
127 , P4 &p4 \
128 ) \
129 : p0(p0) \
130 , p1(p1) \
131 , p2(p2) \
132 , p3(p3) \
133 , p4(p4) \
134 {} \
135 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
136 action \
137 } \
138 private: \
139 P0 &p0; \
140 P1 &p1; \
141 P2 &p2; \
142 P3 &p3; \
143 P4 &p4; \
144 } ZFUniqueName(zfcleanupInScope_)(p0 \
145 , p1 \
146 , p2 \
147 , p3 \
148 , p4 \
149 )
151#define zfcleanupInScope_6(action \
152 , P0, p0 \
153 , P1, p1 \
154 , P2, p2 \
155 , P3, p3 \
156 , P4, p4 \
157 , P5, p5 \
158 ) \
159 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
160 public: \
161 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
162 , P1 &p1 \
163 , P2 &p2 \
164 , P3 &p3 \
165 , P4 &p4 \
166 , P5 &p5 \
167 ) \
168 : p0(p0) \
169 , p1(p1) \
170 , p2(p2) \
171 , p3(p3) \
172 , p4(p4) \
173 , p5(p5) \
174 {} \
175 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
176 action \
177 } \
178 private: \
179 P0 &p0; \
180 P1 &p1; \
181 P2 &p2; \
182 P3 &p3; \
183 P4 &p4; \
184 P5 &p5; \
185 } ZFUniqueName(zfcleanupInScope_)(p0 \
186 , p1 \
187 , p2 \
188 , p3 \
189 , p4 \
190 , p5 \
191 )
193#define zfcleanupInScope_7(action \
194 , P0, p0 \
195 , P1, p1 \
196 , P2, p2 \
197 , P3, p3 \
198 , P4, p4 \
199 , P5, p5 \
200 , P6, p6 \
201 ) \
202 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
203 public: \
204 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
205 , P1 &p1 \
206 , P2 &p2 \
207 , P3 &p3 \
208 , P4 &p4 \
209 , P5 &p5 \
210 , P6 &p6 \
211 ) \
212 : p0(p0) \
213 , p1(p1) \
214 , p2(p2) \
215 , p3(p3) \
216 , p4(p4) \
217 , p5(p5) \
218 , p6(p6) \
219 {} \
220 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
221 action \
222 } \
223 private: \
224 P0 &p0; \
225 P1 &p1; \
226 P2 &p2; \
227 P3 &p3; \
228 P4 &p4; \
229 P5 &p5; \
230 P6 &p6; \
231 } ZFUniqueName(zfcleanupInScope_)(p0 \
232 , p1 \
233 , p2 \
234 , p3 \
235 , p4 \
236 , p5 \
237 , p6 \
238 )
240#define zfcleanupInScope_8(action \
241 , P0, p0 \
242 , P1, p1 \
243 , P2, p2 \
244 , P3, p3 \
245 , P4, p4 \
246 , P5, p5 \
247 , P6, p6 \
248 , P7, p7 \
249 ) \
250 zfclassLikePOD ZFUniqueName(zfcleanupInScope_T) { \
251 public: \
252 ZFUniqueName(zfcleanupInScope_T)(P0 &p0 \
253 , P1 &p1 \
254 , P2 &p2 \
255 , P3 &p3 \
256 , P4 &p4 \
257 , P5 &p5 \
258 , P6 &p6 \
259 , P7 &p7 \
260 ) \
261 : p0(p0) \
262 , p1(p1) \
263 , p2(p2) \
264 , p3(p3) \
265 , p4(p4) \
266 , p5(p5) \
267 , p6(p6) \
268 , p7(p7) \
269 {} \
270 ~ZFUniqueName(zfcleanupInScope_T)(void) { \
271 action \
272 } \
273 private: \
274 P0 &p0; \
275 P1 &p1; \
276 P2 &p2; \
277 P3 &p3; \
278 P4 &p4; \
279 P5 &p5; \
280 P6 &p6; \
281 P7 &p7; \
282 } ZFUniqueName(zfcleanupInScope_)(p0 \
283 , p1 \
284 , p2 \
285 , p3 \
286 , p4 \
287 , p5 \
288 , p6 \
289 , p7 \
290 )
291
293
294#endif // #ifndef _ZFI_ZFCoreUtilAutoPtr_h_
295
types for ZFFramework
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98