ZFFramework
 
Loading...
Searching...
No Matches
ZFMethodDeclare.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFMethodDeclare_h_
7#define _ZFI_ZFMethodDeclare_h_
8
9#include "ZFMethod.h"
11
12// ============================================================
13#define _ZFP_ZFMethodAccess(OwnerClass, MethodName) \
14 (OwnerClass::_ZFP_Mtd_##MethodName(zfnull))
16#define ZFMethodAccess(OwnerClass, MethodName) \
17 _ZFP_ZFMethodAccess(OwnerClass, MethodName)
18
19#define _ZFP_ZFMethodAccessDetail(...) \
20 _ZFP_MtdD_EXPAND(_ZFP_ZFMethodAccessDetail_(__VA_ARGS__))
21#define _ZFP_ZFMethodAccessDetail_(OwnerClass, MethodName \
22 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
23 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
24 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
25 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
26 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
27 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
28 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
29 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
30 ) \
31 (OwnerClass::_ZFP_Mtd_##MethodName((void (*)( \
32 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
33 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
34 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
35 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
36 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
37 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
38 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
39 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
40 ))zfnull))
42#define ZFMethodAccessDetail_0(OwnerClass, MethodName \
43 ) \
44 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
45 , _ZFP_ZFMP_DUMMY() \
46 , _ZFP_ZFMP_DUMMY() \
47 , _ZFP_ZFMP_DUMMY() \
48 , _ZFP_ZFMP_DUMMY() \
49 , _ZFP_ZFMP_DUMMY() \
50 , _ZFP_ZFMP_DUMMY() \
51 , _ZFP_ZFMP_DUMMY() \
52 , _ZFP_ZFMP_DUMMY() \
53 )
55#define ZFMethodAccessDetail_1(OwnerClass, MethodName \
56 , ZFMP_0 \
57 ) \
58 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
59 , _ZFP_MtdP_EXPAND(ZFMP_0) \
60 , _ZFP_ZFMP_DUMMY() \
61 , _ZFP_ZFMP_DUMMY() \
62 , _ZFP_ZFMP_DUMMY() \
63 , _ZFP_ZFMP_DUMMY() \
64 , _ZFP_ZFMP_DUMMY() \
65 , _ZFP_ZFMP_DUMMY() \
66 , _ZFP_ZFMP_DUMMY() \
67 )
69#define ZFMethodAccessDetail_2(OwnerClass, MethodName \
70 , ZFMP_0 \
71 , ZFMP_1 \
72 ) \
73 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
74 , _ZFP_MtdP_EXPAND(ZFMP_0) \
75 , _ZFP_MtdP_EXPAND(ZFMP_1) \
76 , _ZFP_ZFMP_DUMMY() \
77 , _ZFP_ZFMP_DUMMY() \
78 , _ZFP_ZFMP_DUMMY() \
79 , _ZFP_ZFMP_DUMMY() \
80 , _ZFP_ZFMP_DUMMY() \
81 , _ZFP_ZFMP_DUMMY() \
82 )
84#define ZFMethodAccessDetail_3(OwnerClass, MethodName \
85 , ZFMP_0 \
86 , ZFMP_1 \
87 , ZFMP_2 \
88 ) \
89 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
90 , _ZFP_MtdP_EXPAND(ZFMP_0) \
91 , _ZFP_MtdP_EXPAND(ZFMP_1) \
92 , _ZFP_MtdP_EXPAND(ZFMP_2) \
93 , _ZFP_ZFMP_DUMMY() \
94 , _ZFP_ZFMP_DUMMY() \
95 , _ZFP_ZFMP_DUMMY() \
96 , _ZFP_ZFMP_DUMMY() \
97 , _ZFP_ZFMP_DUMMY() \
98 )
100#define ZFMethodAccessDetail_4(OwnerClass, MethodName \
101 , ZFMP_0 \
102 , ZFMP_1 \
103 , ZFMP_2 \
104 , ZFMP_3 \
105 ) \
106 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
107 , _ZFP_MtdP_EXPAND(ZFMP_0) \
108 , _ZFP_MtdP_EXPAND(ZFMP_1) \
109 , _ZFP_MtdP_EXPAND(ZFMP_2) \
110 , _ZFP_MtdP_EXPAND(ZFMP_3) \
111 , _ZFP_ZFMP_DUMMY() \
112 , _ZFP_ZFMP_DUMMY() \
113 , _ZFP_ZFMP_DUMMY() \
114 , _ZFP_ZFMP_DUMMY() \
115 )
117#define ZFMethodAccessDetail_5(OwnerClass, MethodName \
118 , ZFMP_0 \
119 , ZFMP_1 \
120 , ZFMP_2 \
121 , ZFMP_3 \
122 , ZFMP_4 \
123 ) \
124 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
125 , _ZFP_MtdP_EXPAND(ZFMP_0) \
126 , _ZFP_MtdP_EXPAND(ZFMP_1) \
127 , _ZFP_MtdP_EXPAND(ZFMP_2) \
128 , _ZFP_MtdP_EXPAND(ZFMP_3) \
129 , _ZFP_MtdP_EXPAND(ZFMP_4) \
130 , _ZFP_ZFMP_DUMMY() \
131 , _ZFP_ZFMP_DUMMY() \
132 , _ZFP_ZFMP_DUMMY() \
133 )
135#define ZFMethodAccessDetail_6(OwnerClass, MethodName \
136 , ZFMP_0 \
137 , ZFMP_1 \
138 , ZFMP_2 \
139 , ZFMP_3 \
140 , ZFMP_4 \
141 , ZFMP_5 \
142 ) \
143 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
144 , _ZFP_MtdP_EXPAND(ZFMP_0) \
145 , _ZFP_MtdP_EXPAND(ZFMP_1) \
146 , _ZFP_MtdP_EXPAND(ZFMP_2) \
147 , _ZFP_MtdP_EXPAND(ZFMP_3) \
148 , _ZFP_MtdP_EXPAND(ZFMP_4) \
149 , _ZFP_MtdP_EXPAND(ZFMP_5) \
150 , _ZFP_ZFMP_DUMMY() \
151 , _ZFP_ZFMP_DUMMY() \
152 )
154#define ZFMethodAccessDetail_7(OwnerClass, MethodName \
155 , ZFMP_0 \
156 , ZFMP_1 \
157 , ZFMP_2 \
158 , ZFMP_3 \
159 , ZFMP_4 \
160 , ZFMP_5 \
161 , ZFMP_6 \
162 ) \
163 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
164 , _ZFP_MtdP_EXPAND(ZFMP_0) \
165 , _ZFP_MtdP_EXPAND(ZFMP_1) \
166 , _ZFP_MtdP_EXPAND(ZFMP_2) \
167 , _ZFP_MtdP_EXPAND(ZFMP_3) \
168 , _ZFP_MtdP_EXPAND(ZFMP_4) \
169 , _ZFP_MtdP_EXPAND(ZFMP_5) \
170 , _ZFP_MtdP_EXPAND(ZFMP_6) \
171 , _ZFP_ZFMP_DUMMY() \
172 )
174#define ZFMethodAccessDetail_8(OwnerClass, MethodName \
175 , ZFMP_0 \
176 , ZFMP_1 \
177 , ZFMP_2 \
178 , ZFMP_3 \
179 , ZFMP_4 \
180 , ZFMP_5 \
181 , ZFMP_6 \
182 , ZFMP_7 \
183 ) \
184 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
185 , _ZFP_MtdP_EXPAND(ZFMP_0) \
186 , _ZFP_MtdP_EXPAND(ZFMP_1) \
187 , _ZFP_MtdP_EXPAND(ZFMP_2) \
188 , _ZFP_MtdP_EXPAND(ZFMP_3) \
189 , _ZFP_MtdP_EXPAND(ZFMP_4) \
190 , _ZFP_MtdP_EXPAND(ZFMP_5) \
191 , _ZFP_MtdP_EXPAND(ZFMP_6) \
192 , _ZFP_MtdP_EXPAND(ZFMP_7) \
193 )
194
195// ============================================================
196#define _ZFP_ZFMethod_AutoRegister_notAutoRegister(MethodName, RegSig \
197 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
198 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
199 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
200 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
201 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
202 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
203 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
204 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
205 )
206#define _ZFP_ZFMethod_AutoRegister(autoRegisterOrNot, MethodName, RegSig \
207 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
208 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
209 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
210 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
211 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
212 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
213 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
214 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
215 ) \
216 _ZFP_ZFMethod_AutoRegister_##autoRegisterOrNot(MethodName, RegSig \
217 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
218 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
219 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
220 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
221 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
222 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
223 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
224 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
225 )
226
227#define _ZFP_ZFMethod_initClassMemberType_accessType_public ZFMethodAccessTypePublic
228#define _ZFP_ZFMethod_initClassMemberType_accessType_protected ZFMethodAccessTypeProtected
229#define _ZFP_ZFMethod_initClassMemberType_accessType_private ZFMethodAccessTypePrivate
230#define _ZFP_ZFMethod_initClassMemberType_accessType(accessType) _ZFP_ZFMethod_initClassMemberType_accessType_##accessType
231
232// ============================================================
233#define _ZFP_ZFMethod_AutoRegister_isAutoRegister(MethodName, RegSig \
234 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
235 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
236 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
237 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
238 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
239 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
240 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
241 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
242 ) \
243 zfclassNotPOD _ZFP_MtdReg_##MethodName##_##RegSig { \
244 public: \
245 _ZFP_MtdReg_##MethodName##_##RegSig(void) { \
246 (void)zfself::_ZFP_Mtd_##MethodName((void (*)( \
247 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
248 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
249 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
250 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
251 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
252 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
253 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
254 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
255 ))zfnull); \
256 } \
257 }; \
258 _ZFP_MtdReg_##MethodName##_##RegSig _ZFP_MtdRegI_##MethodName##_##RegSig; \
259 friend zfclassFwd _ZFP_MtdReg_##MethodName##_##RegSig;
260#define _ZFP_ZFMETHOD_INLINE(...) \
261 _ZFP_MtdD_EXPAND(_ZFP_ZFMETHOD_INLINE_(__VA_ARGS__))
262#define _ZFP_ZFMETHOD_INLINE_( \
263 autoRegisterOrNot, \
264 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
265 ReturnType, MethodName \
266 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
267 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
268 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
269 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
270 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
271 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
272 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
273 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
274 ) \
275 /* required to make Doxygen doc placed at right pos */ \
276 private: \
277 _ZFP_ZFMethod_AutoRegister(autoRegisterOrNot, MethodName, RegSig \
278 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
279 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
280 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
281 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
282 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
283 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
284 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
285 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
286 ) \
287 zfclassNotPOD _ZFP_MtdH_##MethodName##_##RegSig { \
288 public: \
289 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
290 ReturnType \
291 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
292 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
293 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
294 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
295 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
296 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
297 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
298 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
299 ) \
300 }; \
301 private: \
302 static ReturnType _ZFP_MtdI_##MethodName( \
303 ZF_IN const ZFMethod *invokerMethod, \
304 ZF_IN zfany const &invokerObject \
305 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0 param0) \
306 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
307 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
308 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
309 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
310 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
311 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
312 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
313 ) { \
314 return zfcast(zfself *, invokerObject)->MethodName( \
315 ParamExpandOrEmpty0( param0) \
316 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
317 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
318 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
319 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
320 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
321 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
322 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
323 ); \
324 } \
325 public: \
326 static const ZFMethod *_ZFP_Mtd_##MethodName(void (*)( \
327 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
328 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
329 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
330 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
331 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
332 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
333 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
334 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
335 )) /* tricks to support overload method */ { \
336 static _ZFP_ZFMethodRegisterHolder _methodHolder(zffalse \
337 , zffalse \
338 , zfnull \
339 , reinterpret_cast<ZFFuncAddrType>((ReturnType (*)( \
340 ZF_IN const ZFMethod *invokerMethod, \
341 ZF_IN zfany const &invokerObject \
342 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0) \
343 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
344 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
345 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
346 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
347 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
348 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
349 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
350 ))&zfself::_ZFP_MtdI_##MethodName) \
351 , _ZFP_ZFMETHOD_GENERIC_INVOKER_ADDR(_ZFP_MtdH_##MethodName##_##RegSig) \
352 , ZFMethodType_ \
353 , zfself::ClassData() \
354 , _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate) \
355 , zfnull \
356 , zftext(#MethodName) \
357 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
358 , _ZFP_ZFMethodMP() \
359 ParamExpandOrEmpty0(.add( \
360 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
361 , zftext(#param0) \
362 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
363 )) \
364 ParamExpandOrEmpty1(.add( \
365 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
366 , zftext(#param1) \
367 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
368 )) \
369 ParamExpandOrEmpty2(.add( \
370 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
371 , zftext(#param2) \
372 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
373 )) \
374 ParamExpandOrEmpty3(.add( \
375 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
376 , zftext(#param3) \
377 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
378 )) \
379 ParamExpandOrEmpty4(.add( \
380 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
381 , zftext(#param4) \
382 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
383 )) \
384 ParamExpandOrEmpty5(.add( \
385 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
386 , zftext(#param5) \
387 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
388 )) \
389 ParamExpandOrEmpty6(.add( \
390 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
391 , zftext(#param6) \
392 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
393 )) \
394 ParamExpandOrEmpty7(.add( \
395 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
396 , zftext(#param7) \
397 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
398 )) \
399 ); \
400 return _methodHolder.method; \
401 } \
402 \
403 PublicOrProtectedOrPrivate: \
404 \
405 _ZFP_ZFMethodTypeChain(ZFMethodType_, \
406 zffinal inline zfself *c_##MethodName( \
407 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
408 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
409 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
410 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
411 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
412 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
413 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
414 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
415 ) { \
416 this->MethodName( \
417 ParamExpandOrEmpty0( param0) \
418 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
419 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
420 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
421 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
422 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
423 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
424 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
425 ); \
426 return this; \
427 } \
428 ) \
429 \
430 _ZFP_ZFMethodType(ZFMethodType_) ReturnType MethodName( \
431 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
432 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
433 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
434 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
435 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
436 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
437 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
438 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
439 )
440
441// ============================================================
442#define _ZFP_ZFMETHOD_DECLARE_isPureVirtual() = 0
443#define _ZFP_ZFMETHOD_DECLARE_notPureVirtual()
444
445#define _ZFP_ZFMETHOD_DECLARE(...) \
446 _ZFP_MtdD_EXPAND(_ZFP_ZFMETHOD_DECLARE_(__VA_ARGS__))
447#define _ZFP_ZFMETHOD_DECLARE_( \
448 PublicOrProtectedOrPrivate, ZFMethodType_, pureVirtualOrNot, \
449 ReturnType, MethodName \
450 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
451 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
452 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
453 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
454 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
455 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
456 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
457 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
458 ) \
459 /* required to make Doxygen doc placed at right pos */ \
460 private: \
461 static ReturnType _ZFP_MtdI_##MethodName( \
462 ZF_IN const ZFMethod *invokerMethod, \
463 ZF_IN zfany const &invokerObject \
464 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0 param0) \
465 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
466 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
467 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
468 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
469 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
470 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
471 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
472 ) { \
473 return zfcast(zfself *, invokerObject)->MethodName( \
474 ParamExpandOrEmpty0( param0) \
475 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
476 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
477 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
478 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
479 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
480 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
481 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
482 ); \
483 } \
484 static inline ZFMethodAccessType _ZFP_MtdS_P_##MethodName(void (*)( \
485 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
486 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
487 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
488 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
489 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
490 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
491 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
492 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
493 )) { \
494 return _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate); \
495 } \
496 static inline ZFMethodType _ZFP_MtdS_T_##MethodName(void (*)( \
497 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
498 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
499 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
500 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
501 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
502 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
503 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
504 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
505 )) { \
506 return ZFMethodType_; \
507 } \
508 public: \
509 static const ZFMethod *_ZFP_Mtd_##MethodName(void (*)( \
510 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
511 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
512 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
513 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
514 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
515 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
516 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
517 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
518 )); /* tricks to support overload method */ \
519 \
520 PublicOrProtectedOrPrivate: \
521 \
522 _ZFP_ZFMethodTypeChain(ZFMethodType_, \
523 zffinal inline zfself *c_##MethodName( \
524 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
525 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
526 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
527 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
528 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
529 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
530 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
531 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
532 ) { \
533 this->MethodName( \
534 ParamExpandOrEmpty0( param0) \
535 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
536 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
537 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
538 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
539 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
540 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
541 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
542 ); \
543 return this; \
544 } \
545 ) \
546 \
547 _ZFP_ZFMethodType(ZFMethodType_) ReturnType MethodName( \
548 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
549 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
550 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
551 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
552 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
553 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
554 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
555 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
556 ) pureVirtualOrNot();
557
558#define _ZFP_ZFMETHOD_DEFINE_isPureVirtual(...)
559#define _ZFP_ZFMETHOD_DEFINE_notPureVirtual(...) __VA_ARGS__
560
561#define _ZFP_ZFMETHOD_DEFINE(...) \
562 _ZFP_MtdD_EXPAND(_ZFP_ZFMETHOD_DEFINE_(__VA_ARGS__))
563#define _ZFP_ZFMETHOD_DEFINE_(OwnerClass, pureVirtualOrNot, RegSig, \
564 ReturnType, MethodName \
565 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
566 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
567 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
568 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
569 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
570 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
571 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
572 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
573 ) \
574 zfclassNotPOD _ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig { \
575 public: \
576 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
577 ReturnType \
578 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
579 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
580 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
581 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
582 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
583 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
584 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
585 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
586 ) \
587 }; \
588 const ZFMethod *OwnerClass::_ZFP_Mtd_##MethodName(void (*_dummy)( \
589 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
590 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
591 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
592 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
593 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
594 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
595 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
596 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
597 )) { \
598 static _ZFP_ZFMethodRegisterHolder _methodHolder(zffalse \
599 , zffalse \
600 , zfnull \
601 , reinterpret_cast<ZFFuncAddrType>((ReturnType (*)( \
602 ZF_IN const ZFMethod *invokerMethod, \
603 ZF_IN zfany const &invokerObject \
604 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0) \
605 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
606 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
607 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
608 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
609 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
610 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
611 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
612 ))&zfself::_ZFP_MtdI_##MethodName) \
613 , _ZFP_ZFMETHOD_GENERIC_INVOKER_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig) \
614 , zfself::_ZFP_MtdS_T_##MethodName(_dummy) \
615 , zfself::ClassData() \
616 , zfself::_ZFP_MtdS_P_##MethodName(_dummy) \
617 , zfnull \
618 , zftext(#MethodName) \
619 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
620 , _ZFP_ZFMethodMP() \
621 ParamExpandOrEmpty0(.add( \
622 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
623 , zftext(#param0) \
624 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
625 )) \
626 ParamExpandOrEmpty1(.add( \
627 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
628 , zftext(#param1) \
629 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
630 )) \
631 ParamExpandOrEmpty2(.add( \
632 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
633 , zftext(#param2) \
634 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
635 )) \
636 ParamExpandOrEmpty3(.add( \
637 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
638 , zftext(#param3) \
639 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
640 )) \
641 ParamExpandOrEmpty4(.add( \
642 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
643 , zftext(#param4) \
644 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
645 )) \
646 ParamExpandOrEmpty5(.add( \
647 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
648 , zftext(#param5) \
649 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
650 )) \
651 ParamExpandOrEmpty6(.add( \
652 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
653 , zftext(#param6) \
654 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
655 )) \
656 ParamExpandOrEmpty7(.add( \
657 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
658 , zftext(#param7) \
659 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
660 )) \
661 ); \
662 return _methodHolder.method; \
663 } \
664 ZF_STATIC_REGISTER_INIT(MtdD_##OwnerClass##_##MethodName##_##RegSig) { \
665 (void)OwnerClass::_ZFP_Mtd_##MethodName((void (*)( \
666 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
667 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
668 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
669 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
670 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
671 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
672 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
673 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
674 ))zfnull); \
675 } \
676 ZF_STATIC_REGISTER_END(MtdD_##OwnerClass##_##MethodName##_##RegSig) \
677 pureVirtualOrNot( \
678 ReturnType OwnerClass::MethodName( \
679 ParamExpandOrEmpty0( ParamType0 param0) \
680 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
681 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
682 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
683 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
684 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
685 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
686 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
687 ) \
688 )
689
690// ============================================================
691// 0 param method declare
693#define ZFMETHOD_DECLARE_0(ReturnType, MethodName \
694 ) \
695 _ZFP_ZFMETHOD_DECLARE( \
696 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
697 ReturnType, MethodName \
698 , _ZFP_ZFMP_DUMMY() \
699 , _ZFP_ZFMP_DUMMY() \
700 , _ZFP_ZFMP_DUMMY() \
701 , _ZFP_ZFMP_DUMMY() \
702 , _ZFP_ZFMP_DUMMY() \
703 , _ZFP_ZFMP_DUMMY() \
704 , _ZFP_ZFMP_DUMMY() \
705 , _ZFP_ZFMP_DUMMY() \
706 )
708#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName \
709 ) \
710 _ZFP_ZFMETHOD_DECLARE( \
711 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
712 ReturnType, MethodName \
713 , _ZFP_ZFMP_DUMMY() \
714 , _ZFP_ZFMP_DUMMY() \
715 , _ZFP_ZFMP_DUMMY() \
716 , _ZFP_ZFMP_DUMMY() \
717 , _ZFP_ZFMP_DUMMY() \
718 , _ZFP_ZFMP_DUMMY() \
719 , _ZFP_ZFMP_DUMMY() \
720 , _ZFP_ZFMP_DUMMY() \
721 )
723#define ZFMETHOD_DECLARE_PROTECTED_0(ReturnType, MethodName \
724 ) \
725 _ZFP_ZFMETHOD_DECLARE( \
726 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
727 ReturnType, MethodName \
728 , _ZFP_ZFMP_DUMMY() \
729 , _ZFP_ZFMP_DUMMY() \
730 , _ZFP_ZFMP_DUMMY() \
731 , _ZFP_ZFMP_DUMMY() \
732 , _ZFP_ZFMP_DUMMY() \
733 , _ZFP_ZFMP_DUMMY() \
734 , _ZFP_ZFMP_DUMMY() \
735 , _ZFP_ZFMP_DUMMY() \
736 )
738#define ZFMETHOD_DECLARE_DETAIL_0( \
739 PublicOrProtectedOrPrivate, ZFMethodType_, \
740 ReturnType, MethodName \
741 ) \
742 _ZFP_ZFMETHOD_DECLARE( \
743 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
744 ReturnType, MethodName \
745 , _ZFP_ZFMP_DUMMY() \
746 , _ZFP_ZFMP_DUMMY() \
747 , _ZFP_ZFMP_DUMMY() \
748 , _ZFP_ZFMP_DUMMY() \
749 , _ZFP_ZFMP_DUMMY() \
750 , _ZFP_ZFMP_DUMMY() \
751 , _ZFP_ZFMP_DUMMY() \
752 , _ZFP_ZFMP_DUMMY() \
753 )
755#define ZFMETHOD_INLINE_0(ReturnType, MethodName \
756 ) \
757 _ZFP_ZFMETHOD_INLINE( \
758 isAutoRegister, \
759 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
760 ReturnType, MethodName \
761 , _ZFP_ZFMP_DUMMY() \
762 , _ZFP_ZFMP_DUMMY() \
763 , _ZFP_ZFMP_DUMMY() \
764 , _ZFP_ZFMP_DUMMY() \
765 , _ZFP_ZFMP_DUMMY() \
766 , _ZFP_ZFMP_DUMMY() \
767 , _ZFP_ZFMP_DUMMY() \
768 , _ZFP_ZFMP_DUMMY() \
769 )
771#define ZFMETHOD_INLINE_STATIC_0(ReturnType, MethodName \
772 ) \
773 _ZFP_ZFMETHOD_INLINE( \
774 isAutoRegister, \
775 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
776 ReturnType, MethodName \
777 , _ZFP_ZFMP_DUMMY() \
778 , _ZFP_ZFMP_DUMMY() \
779 , _ZFP_ZFMP_DUMMY() \
780 , _ZFP_ZFMP_DUMMY() \
781 , _ZFP_ZFMP_DUMMY() \
782 , _ZFP_ZFMP_DUMMY() \
783 , _ZFP_ZFMP_DUMMY() \
784 , _ZFP_ZFMP_DUMMY() \
785 )
787#define ZFMETHOD_INLINE_PROTECTED_0(ReturnType, MethodName \
788 ) \
789 _ZFP_ZFMETHOD_INLINE( \
790 isAutoRegister, \
791 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
792 ReturnType, MethodName \
793 , _ZFP_ZFMP_DUMMY() \
794 , _ZFP_ZFMP_DUMMY() \
795 , _ZFP_ZFMP_DUMMY() \
796 , _ZFP_ZFMP_DUMMY() \
797 , _ZFP_ZFMP_DUMMY() \
798 , _ZFP_ZFMP_DUMMY() \
799 , _ZFP_ZFMP_DUMMY() \
800 , _ZFP_ZFMP_DUMMY() \
801 )
803#define ZFMETHOD_INLINE_DETAIL_0( \
804 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
805 ReturnType, MethodName \
806 ) \
807 _ZFP_ZFMETHOD_INLINE( \
808 isAutoRegister, \
809 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
810 ReturnType, MethodName \
811 , _ZFP_ZFMP_DUMMY() \
812 , _ZFP_ZFMP_DUMMY() \
813 , _ZFP_ZFMP_DUMMY() \
814 , _ZFP_ZFMP_DUMMY() \
815 , _ZFP_ZFMP_DUMMY() \
816 , _ZFP_ZFMP_DUMMY() \
817 , _ZFP_ZFMP_DUMMY() \
818 , _ZFP_ZFMP_DUMMY() \
819 )
821#define ZFMETHOD_DEFINE_0(OwnerClass, \
822 ReturnType, MethodName \
823 ) \
824 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
825 ReturnType, MethodName \
826 , _ZFP_ZFMP_DUMMY() \
827 , _ZFP_ZFMP_DUMMY() \
828 , _ZFP_ZFMP_DUMMY() \
829 , _ZFP_ZFMP_DUMMY() \
830 , _ZFP_ZFMP_DUMMY() \
831 , _ZFP_ZFMP_DUMMY() \
832 , _ZFP_ZFMP_DUMMY() \
833 , _ZFP_ZFMP_DUMMY() \
834 )
836#define ZFMETHOD_DEFINE_DETAIL_0(OwnerClass, RegSig, \
837 ReturnType, MethodName \
838 ) \
839 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
840 ReturnType, MethodName \
841 , _ZFP_ZFMP_DUMMY() \
842 , _ZFP_ZFMP_DUMMY() \
843 , _ZFP_ZFMP_DUMMY() \
844 , _ZFP_ZFMP_DUMMY() \
845 , _ZFP_ZFMP_DUMMY() \
846 , _ZFP_ZFMP_DUMMY() \
847 , _ZFP_ZFMP_DUMMY() \
848 , _ZFP_ZFMP_DUMMY() \
849 )
850
851// ============================================================
852// 1 param method declare
854#define ZFMETHOD_DECLARE_1(ReturnType, MethodName \
855 , ZFMP_0 \
856 ) \
857 _ZFP_ZFMETHOD_DECLARE( \
858 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
859 ReturnType, MethodName \
860 , _ZFP_MtdP_EXPAND(ZFMP_0) \
861 , _ZFP_ZFMP_DUMMY() \
862 , _ZFP_ZFMP_DUMMY() \
863 , _ZFP_ZFMP_DUMMY() \
864 , _ZFP_ZFMP_DUMMY() \
865 , _ZFP_ZFMP_DUMMY() \
866 , _ZFP_ZFMP_DUMMY() \
867 , _ZFP_ZFMP_DUMMY() \
868 )
870#define ZFMETHOD_DECLARE_STATIC_1(ReturnType, MethodName \
871 , ZFMP_0 \
872 ) \
873 _ZFP_ZFMETHOD_DECLARE( \
874 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
875 ReturnType, MethodName \
876 , _ZFP_MtdP_EXPAND(ZFMP_0) \
877 , _ZFP_ZFMP_DUMMY() \
878 , _ZFP_ZFMP_DUMMY() \
879 , _ZFP_ZFMP_DUMMY() \
880 , _ZFP_ZFMP_DUMMY() \
881 , _ZFP_ZFMP_DUMMY() \
882 , _ZFP_ZFMP_DUMMY() \
883 , _ZFP_ZFMP_DUMMY() \
884 )
886#define ZFMETHOD_DECLARE_PROTECTED_1(ReturnType, MethodName \
887 , ZFMP_0 \
888 ) \
889 _ZFP_ZFMETHOD_DECLARE( \
890 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
891 ReturnType, MethodName \
892 , _ZFP_MtdP_EXPAND(ZFMP_0) \
893 , _ZFP_ZFMP_DUMMY() \
894 , _ZFP_ZFMP_DUMMY() \
895 , _ZFP_ZFMP_DUMMY() \
896 , _ZFP_ZFMP_DUMMY() \
897 , _ZFP_ZFMP_DUMMY() \
898 , _ZFP_ZFMP_DUMMY() \
899 , _ZFP_ZFMP_DUMMY() \
900 )
902#define ZFMETHOD_DECLARE_DETAIL_1( \
903 PublicOrProtectedOrPrivate, ZFMethodType_, \
904 ReturnType, MethodName \
905 , ZFMP_0 \
906 ) \
907 _ZFP_ZFMETHOD_DECLARE( \
908 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
909 ReturnType, MethodName \
910 , _ZFP_MtdP_EXPAND(ZFMP_0) \
911 , _ZFP_ZFMP_DUMMY() \
912 , _ZFP_ZFMP_DUMMY() \
913 , _ZFP_ZFMP_DUMMY() \
914 , _ZFP_ZFMP_DUMMY() \
915 , _ZFP_ZFMP_DUMMY() \
916 , _ZFP_ZFMP_DUMMY() \
917 , _ZFP_ZFMP_DUMMY() \
918 )
920#define ZFMETHOD_INLINE_1(ReturnType, MethodName \
921 , ZFMP_0 \
922 ) \
923 _ZFP_ZFMETHOD_INLINE( \
924 isAutoRegister, \
925 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
926 ReturnType, MethodName \
927 , _ZFP_MtdP_EXPAND(ZFMP_0) \
928 , _ZFP_ZFMP_DUMMY() \
929 , _ZFP_ZFMP_DUMMY() \
930 , _ZFP_ZFMP_DUMMY() \
931 , _ZFP_ZFMP_DUMMY() \
932 , _ZFP_ZFMP_DUMMY() \
933 , _ZFP_ZFMP_DUMMY() \
934 , _ZFP_ZFMP_DUMMY() \
935 )
937#define ZFMETHOD_INLINE_STATIC_1(ReturnType, MethodName \
938 , ZFMP_0 \
939 ) \
940 _ZFP_ZFMETHOD_INLINE( \
941 isAutoRegister, \
942 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
943 ReturnType, MethodName \
944 , _ZFP_MtdP_EXPAND(ZFMP_0) \
945 , _ZFP_ZFMP_DUMMY() \
946 , _ZFP_ZFMP_DUMMY() \
947 , _ZFP_ZFMP_DUMMY() \
948 , _ZFP_ZFMP_DUMMY() \
949 , _ZFP_ZFMP_DUMMY() \
950 , _ZFP_ZFMP_DUMMY() \
951 , _ZFP_ZFMP_DUMMY() \
952 )
954#define ZFMETHOD_INLINE_PROTECTED_1(ReturnType, MethodName \
955 , ZFMP_0 \
956 ) \
957 _ZFP_ZFMETHOD_INLINE( \
958 isAutoRegister, \
959 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
960 ReturnType, MethodName \
961 , _ZFP_MtdP_EXPAND(ZFMP_0) \
962 , _ZFP_ZFMP_DUMMY() \
963 , _ZFP_ZFMP_DUMMY() \
964 , _ZFP_ZFMP_DUMMY() \
965 , _ZFP_ZFMP_DUMMY() \
966 , _ZFP_ZFMP_DUMMY() \
967 , _ZFP_ZFMP_DUMMY() \
968 , _ZFP_ZFMP_DUMMY() \
969 )
971#define ZFMETHOD_INLINE_DETAIL_1( \
972 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
973 ReturnType, MethodName \
974 , ZFMP_0 \
975 ) \
976 _ZFP_ZFMETHOD_INLINE( \
977 isAutoRegister, \
978 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
979 ReturnType, MethodName \
980 , _ZFP_MtdP_EXPAND(ZFMP_0) \
981 , _ZFP_ZFMP_DUMMY() \
982 , _ZFP_ZFMP_DUMMY() \
983 , _ZFP_ZFMP_DUMMY() \
984 , _ZFP_ZFMP_DUMMY() \
985 , _ZFP_ZFMP_DUMMY() \
986 , _ZFP_ZFMP_DUMMY() \
987 , _ZFP_ZFMP_DUMMY() \
988 )
990#define ZFMETHOD_DEFINE_1(OwnerClass, \
991 ReturnType, MethodName \
992 , ZFMP_0 \
993 ) \
994 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
995 ReturnType, MethodName \
996 , _ZFP_MtdP_EXPAND(ZFMP_0) \
997 , _ZFP_ZFMP_DUMMY() \
998 , _ZFP_ZFMP_DUMMY() \
999 , _ZFP_ZFMP_DUMMY() \
1000 , _ZFP_ZFMP_DUMMY() \
1001 , _ZFP_ZFMP_DUMMY() \
1002 , _ZFP_ZFMP_DUMMY() \
1003 , _ZFP_ZFMP_DUMMY() \
1004 )
1006#define ZFMETHOD_DEFINE_DETAIL_1(OwnerClass, RegSig, \
1007 ReturnType, MethodName \
1008 , ZFMP_0 \
1009 ) \
1010 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1011 ReturnType, MethodName \
1012 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1013 , _ZFP_ZFMP_DUMMY() \
1014 , _ZFP_ZFMP_DUMMY() \
1015 , _ZFP_ZFMP_DUMMY() \
1016 , _ZFP_ZFMP_DUMMY() \
1017 , _ZFP_ZFMP_DUMMY() \
1018 , _ZFP_ZFMP_DUMMY() \
1019 , _ZFP_ZFMP_DUMMY() \
1020 )
1021
1022// ============================================================
1023// 2 param method declare
1025#define ZFMETHOD_DECLARE_2(ReturnType, MethodName \
1026 , ZFMP_0 \
1027 , ZFMP_1 \
1028 ) \
1029 _ZFP_ZFMETHOD_DECLARE( \
1030 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1031 ReturnType, MethodName \
1032 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1033 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1034 , _ZFP_ZFMP_DUMMY() \
1035 , _ZFP_ZFMP_DUMMY() \
1036 , _ZFP_ZFMP_DUMMY() \
1037 , _ZFP_ZFMP_DUMMY() \
1038 , _ZFP_ZFMP_DUMMY() \
1039 , _ZFP_ZFMP_DUMMY() \
1040 )
1042#define ZFMETHOD_DECLARE_STATIC_2(ReturnType, MethodName \
1043 , ZFMP_0 \
1044 , ZFMP_1 \
1045 ) \
1046 _ZFP_ZFMETHOD_DECLARE( \
1047 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1048 ReturnType, MethodName \
1049 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1050 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1051 , _ZFP_ZFMP_DUMMY() \
1052 , _ZFP_ZFMP_DUMMY() \
1053 , _ZFP_ZFMP_DUMMY() \
1054 , _ZFP_ZFMP_DUMMY() \
1055 , _ZFP_ZFMP_DUMMY() \
1056 , _ZFP_ZFMP_DUMMY() \
1057 )
1059#define ZFMETHOD_DECLARE_PROTECTED_2(ReturnType, MethodName \
1060 , ZFMP_0 \
1061 , ZFMP_1 \
1062 ) \
1063 _ZFP_ZFMETHOD_DECLARE( \
1064 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1065 ReturnType, MethodName \
1066 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1067 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1068 , _ZFP_ZFMP_DUMMY() \
1069 , _ZFP_ZFMP_DUMMY() \
1070 , _ZFP_ZFMP_DUMMY() \
1071 , _ZFP_ZFMP_DUMMY() \
1072 , _ZFP_ZFMP_DUMMY() \
1073 , _ZFP_ZFMP_DUMMY() \
1074 )
1076#define ZFMETHOD_DECLARE_DETAIL_2( \
1077 PublicOrProtectedOrPrivate, ZFMethodType_, \
1078 ReturnType, MethodName \
1079 , ZFMP_0 \
1080 , ZFMP_1 \
1081 ) \
1082 _ZFP_ZFMETHOD_DECLARE( \
1083 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1084 ReturnType, MethodName \
1085 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1086 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1087 , _ZFP_ZFMP_DUMMY() \
1088 , _ZFP_ZFMP_DUMMY() \
1089 , _ZFP_ZFMP_DUMMY() \
1090 , _ZFP_ZFMP_DUMMY() \
1091 , _ZFP_ZFMP_DUMMY() \
1092 , _ZFP_ZFMP_DUMMY() \
1093 )
1095#define ZFMETHOD_INLINE_2(ReturnType, MethodName \
1096 , ZFMP_0 \
1097 , ZFMP_1 \
1098 ) \
1099 _ZFP_ZFMETHOD_INLINE( \
1100 isAutoRegister, \
1101 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1102 ReturnType, MethodName \
1103 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1104 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1105 , _ZFP_ZFMP_DUMMY() \
1106 , _ZFP_ZFMP_DUMMY() \
1107 , _ZFP_ZFMP_DUMMY() \
1108 , _ZFP_ZFMP_DUMMY() \
1109 , _ZFP_ZFMP_DUMMY() \
1110 , _ZFP_ZFMP_DUMMY() \
1111 )
1113#define ZFMETHOD_INLINE_STATIC_2(ReturnType, MethodName \
1114 , ZFMP_0 \
1115 , ZFMP_1 \
1116 ) \
1117 _ZFP_ZFMETHOD_INLINE( \
1118 isAutoRegister, \
1119 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1120 ReturnType, MethodName \
1121 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1122 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1123 , _ZFP_ZFMP_DUMMY() \
1124 , _ZFP_ZFMP_DUMMY() \
1125 , _ZFP_ZFMP_DUMMY() \
1126 , _ZFP_ZFMP_DUMMY() \
1127 , _ZFP_ZFMP_DUMMY() \
1128 , _ZFP_ZFMP_DUMMY() \
1129 )
1131#define ZFMETHOD_INLINE_PROTECTED_2(ReturnType, MethodName \
1132 , ZFMP_0 \
1133 , ZFMP_1 \
1134 ) \
1135 _ZFP_ZFMETHOD_INLINE( \
1136 isAutoRegister, \
1137 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1138 ReturnType, MethodName \
1139 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1140 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1141 , _ZFP_ZFMP_DUMMY() \
1142 , _ZFP_ZFMP_DUMMY() \
1143 , _ZFP_ZFMP_DUMMY() \
1144 , _ZFP_ZFMP_DUMMY() \
1145 , _ZFP_ZFMP_DUMMY() \
1146 , _ZFP_ZFMP_DUMMY() \
1147 )
1149#define ZFMETHOD_INLINE_DETAIL_2( \
1150 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1151 ReturnType, MethodName \
1152 , ZFMP_0 \
1153 , ZFMP_1 \
1154 ) \
1155 _ZFP_ZFMETHOD_INLINE( \
1156 isAutoRegister, \
1157 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1158 ReturnType, MethodName \
1159 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1160 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1161 , _ZFP_ZFMP_DUMMY() \
1162 , _ZFP_ZFMP_DUMMY() \
1163 , _ZFP_ZFMP_DUMMY() \
1164 , _ZFP_ZFMP_DUMMY() \
1165 , _ZFP_ZFMP_DUMMY() \
1166 , _ZFP_ZFMP_DUMMY() \
1167 )
1169#define ZFMETHOD_DEFINE_2(OwnerClass, \
1170 ReturnType, MethodName \
1171 , ZFMP_0 \
1172 , ZFMP_1 \
1173 ) \
1174 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1175 ReturnType, MethodName \
1176 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1177 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1178 , _ZFP_ZFMP_DUMMY() \
1179 , _ZFP_ZFMP_DUMMY() \
1180 , _ZFP_ZFMP_DUMMY() \
1181 , _ZFP_ZFMP_DUMMY() \
1182 , _ZFP_ZFMP_DUMMY() \
1183 , _ZFP_ZFMP_DUMMY() \
1184 )
1186#define ZFMETHOD_DEFINE_DETAIL_2(OwnerClass, RegSig, \
1187 ReturnType, MethodName \
1188 , ZFMP_0 \
1189 , ZFMP_1 \
1190 ) \
1191 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1192 ReturnType, MethodName \
1193 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1194 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1195 , _ZFP_ZFMP_DUMMY() \
1196 , _ZFP_ZFMP_DUMMY() \
1197 , _ZFP_ZFMP_DUMMY() \
1198 , _ZFP_ZFMP_DUMMY() \
1199 , _ZFP_ZFMP_DUMMY() \
1200 , _ZFP_ZFMP_DUMMY() \
1201 )
1202
1203// ============================================================
1204// 3 param method declare
1206#define ZFMETHOD_DECLARE_3(ReturnType, MethodName \
1207 , ZFMP_0 \
1208 , ZFMP_1 \
1209 , ZFMP_2 \
1210 ) \
1211 _ZFP_ZFMETHOD_DECLARE( \
1212 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1213 ReturnType, MethodName \
1214 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1215 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1216 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1217 , _ZFP_ZFMP_DUMMY() \
1218 , _ZFP_ZFMP_DUMMY() \
1219 , _ZFP_ZFMP_DUMMY() \
1220 , _ZFP_ZFMP_DUMMY() \
1221 , _ZFP_ZFMP_DUMMY() \
1222 )
1224#define ZFMETHOD_DECLARE_STATIC_3(ReturnType, MethodName \
1225 , ZFMP_0 \
1226 , ZFMP_1 \
1227 , ZFMP_2 \
1228 ) \
1229 _ZFP_ZFMETHOD_DECLARE( \
1230 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1231 ReturnType, MethodName \
1232 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1233 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1234 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1235 , _ZFP_ZFMP_DUMMY() \
1236 , _ZFP_ZFMP_DUMMY() \
1237 , _ZFP_ZFMP_DUMMY() \
1238 , _ZFP_ZFMP_DUMMY() \
1239 , _ZFP_ZFMP_DUMMY() \
1240 )
1242#define ZFMETHOD_DECLARE_PROTECTED_3(ReturnType, MethodName \
1243 , ZFMP_0 \
1244 , ZFMP_1 \
1245 , ZFMP_2 \
1246 ) \
1247 _ZFP_ZFMETHOD_DECLARE( \
1248 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1249 ReturnType, MethodName \
1250 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1251 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1252 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1253 , _ZFP_ZFMP_DUMMY() \
1254 , _ZFP_ZFMP_DUMMY() \
1255 , _ZFP_ZFMP_DUMMY() \
1256 , _ZFP_ZFMP_DUMMY() \
1257 , _ZFP_ZFMP_DUMMY() \
1258 )
1260#define ZFMETHOD_DECLARE_DETAIL_3( \
1261 PublicOrProtectedOrPrivate, ZFMethodType_, \
1262 ReturnType, MethodName \
1263 , ZFMP_0 \
1264 , ZFMP_1 \
1265 , ZFMP_2 \
1266 ) \
1267 _ZFP_ZFMETHOD_DECLARE( \
1268 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1269 ReturnType, MethodName \
1270 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1271 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1272 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1273 , _ZFP_ZFMP_DUMMY() \
1274 , _ZFP_ZFMP_DUMMY() \
1275 , _ZFP_ZFMP_DUMMY() \
1276 , _ZFP_ZFMP_DUMMY() \
1277 , _ZFP_ZFMP_DUMMY() \
1278 )
1280#define ZFMETHOD_INLINE_3(ReturnType, MethodName \
1281 , ZFMP_0 \
1282 , ZFMP_1 \
1283 , ZFMP_2 \
1284 ) \
1285 _ZFP_ZFMETHOD_INLINE( \
1286 isAutoRegister, \
1287 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1288 ReturnType, MethodName \
1289 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1290 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1291 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1292 , _ZFP_ZFMP_DUMMY() \
1293 , _ZFP_ZFMP_DUMMY() \
1294 , _ZFP_ZFMP_DUMMY() \
1295 , _ZFP_ZFMP_DUMMY() \
1296 , _ZFP_ZFMP_DUMMY() \
1297 )
1299#define ZFMETHOD_INLINE_STATIC_3(ReturnType, MethodName \
1300 , ZFMP_0 \
1301 , ZFMP_1 \
1302 , ZFMP_2 \
1303 ) \
1304 _ZFP_ZFMETHOD_INLINE( \
1305 isAutoRegister, \
1306 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1307 ReturnType, MethodName \
1308 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1309 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1310 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1311 , _ZFP_ZFMP_DUMMY() \
1312 , _ZFP_ZFMP_DUMMY() \
1313 , _ZFP_ZFMP_DUMMY() \
1314 , _ZFP_ZFMP_DUMMY() \
1315 , _ZFP_ZFMP_DUMMY() \
1316 )
1318#define ZFMETHOD_INLINE_PROTECTED_3(ReturnType, MethodName \
1319 , ZFMP_0 \
1320 , ZFMP_1 \
1321 , ZFMP_2 \
1322 ) \
1323 _ZFP_ZFMETHOD_INLINE( \
1324 isAutoRegister, \
1325 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1326 ReturnType, MethodName \
1327 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1328 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1329 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1330 , _ZFP_ZFMP_DUMMY() \
1331 , _ZFP_ZFMP_DUMMY() \
1332 , _ZFP_ZFMP_DUMMY() \
1333 , _ZFP_ZFMP_DUMMY() \
1334 , _ZFP_ZFMP_DUMMY() \
1335 )
1337#define ZFMETHOD_INLINE_DETAIL_3( \
1338 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1339 ReturnType, MethodName \
1340 , ZFMP_0 \
1341 , ZFMP_1 \
1342 , ZFMP_2 \
1343 ) \
1344 _ZFP_ZFMETHOD_INLINE( \
1345 isAutoRegister, \
1346 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1347 ReturnType, MethodName \
1348 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1349 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1350 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1351 , _ZFP_ZFMP_DUMMY() \
1352 , _ZFP_ZFMP_DUMMY() \
1353 , _ZFP_ZFMP_DUMMY() \
1354 , _ZFP_ZFMP_DUMMY() \
1355 , _ZFP_ZFMP_DUMMY() \
1356 )
1358#define ZFMETHOD_DEFINE_3(OwnerClass, \
1359 ReturnType, MethodName \
1360 , ZFMP_0 \
1361 , ZFMP_1 \
1362 , ZFMP_2 \
1363 ) \
1364 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1365 ReturnType, MethodName \
1366 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1367 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1368 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1369 , _ZFP_ZFMP_DUMMY() \
1370 , _ZFP_ZFMP_DUMMY() \
1371 , _ZFP_ZFMP_DUMMY() \
1372 , _ZFP_ZFMP_DUMMY() \
1373 , _ZFP_ZFMP_DUMMY() \
1374 )
1376#define ZFMETHOD_DEFINE_DETAIL_3(OwnerClass, RegSig, \
1377 ReturnType, MethodName \
1378 , ZFMP_0 \
1379 , ZFMP_1 \
1380 , ZFMP_2 \
1381 ) \
1382 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1383 ReturnType, MethodName \
1384 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1385 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1386 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1387 , _ZFP_ZFMP_DUMMY() \
1388 , _ZFP_ZFMP_DUMMY() \
1389 , _ZFP_ZFMP_DUMMY() \
1390 , _ZFP_ZFMP_DUMMY() \
1391 , _ZFP_ZFMP_DUMMY() \
1392 )
1393
1394// ============================================================
1395// 4 param method declare
1397#define ZFMETHOD_DECLARE_4(ReturnType, MethodName \
1398 , ZFMP_0 \
1399 , ZFMP_1 \
1400 , ZFMP_2 \
1401 , ZFMP_3 \
1402 ) \
1403 _ZFP_ZFMETHOD_DECLARE( \
1404 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1405 ReturnType, MethodName \
1406 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1407 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1408 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1409 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1410 , _ZFP_ZFMP_DUMMY() \
1411 , _ZFP_ZFMP_DUMMY() \
1412 , _ZFP_ZFMP_DUMMY() \
1413 , _ZFP_ZFMP_DUMMY() \
1414 )
1416#define ZFMETHOD_DECLARE_STATIC_4(ReturnType, MethodName \
1417 , ZFMP_0 \
1418 , ZFMP_1 \
1419 , ZFMP_2 \
1420 , ZFMP_3 \
1421 ) \
1422 _ZFP_ZFMETHOD_DECLARE( \
1423 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1424 ReturnType, MethodName \
1425 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1426 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1427 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1428 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1429 , _ZFP_ZFMP_DUMMY() \
1430 , _ZFP_ZFMP_DUMMY() \
1431 , _ZFP_ZFMP_DUMMY() \
1432 , _ZFP_ZFMP_DUMMY() \
1433 )
1435#define ZFMETHOD_DECLARE_PROTECTED_4(ReturnType, MethodName \
1436 , ZFMP_0 \
1437 , ZFMP_1 \
1438 , ZFMP_2 \
1439 , ZFMP_3 \
1440 ) \
1441 _ZFP_ZFMETHOD_DECLARE( \
1442 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1443 ReturnType, MethodName \
1444 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1445 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1446 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1447 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1448 , _ZFP_ZFMP_DUMMY() \
1449 , _ZFP_ZFMP_DUMMY() \
1450 , _ZFP_ZFMP_DUMMY() \
1451 , _ZFP_ZFMP_DUMMY() \
1452 )
1454#define ZFMETHOD_DECLARE_DETAIL_4( \
1455 PublicOrProtectedOrPrivate, ZFMethodType_, \
1456 ReturnType, MethodName \
1457 , ZFMP_0 \
1458 , ZFMP_1 \
1459 , ZFMP_2 \
1460 , ZFMP_3 \
1461 ) \
1462 _ZFP_ZFMETHOD_DECLARE( \
1463 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1464 ReturnType, MethodName \
1465 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1466 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1467 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1468 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1469 , _ZFP_ZFMP_DUMMY() \
1470 , _ZFP_ZFMP_DUMMY() \
1471 , _ZFP_ZFMP_DUMMY() \
1472 , _ZFP_ZFMP_DUMMY() \
1473 )
1475#define ZFMETHOD_INLINE_4(ReturnType, MethodName \
1476 , ZFMP_0 \
1477 , ZFMP_1 \
1478 , ZFMP_2 \
1479 , ZFMP_3 \
1480 ) \
1481 _ZFP_ZFMETHOD_INLINE( \
1482 isAutoRegister, \
1483 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1484 ReturnType, MethodName \
1485 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1486 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1487 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1488 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1489 , _ZFP_ZFMP_DUMMY() \
1490 , _ZFP_ZFMP_DUMMY() \
1491 , _ZFP_ZFMP_DUMMY() \
1492 , _ZFP_ZFMP_DUMMY() \
1493 )
1495#define ZFMETHOD_INLINE_STATIC_4(ReturnType, MethodName \
1496 , ZFMP_0 \
1497 , ZFMP_1 \
1498 , ZFMP_2 \
1499 , ZFMP_3 \
1500 ) \
1501 _ZFP_ZFMETHOD_INLINE( \
1502 isAutoRegister, \
1503 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1504 ReturnType, MethodName \
1505 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1506 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1507 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1508 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1509 , _ZFP_ZFMP_DUMMY() \
1510 , _ZFP_ZFMP_DUMMY() \
1511 , _ZFP_ZFMP_DUMMY() \
1512 , _ZFP_ZFMP_DUMMY() \
1513 )
1515#define ZFMETHOD_INLINE_PROTECTED_4(ReturnType, MethodName \
1516 , ZFMP_0 \
1517 , ZFMP_1 \
1518 , ZFMP_2 \
1519 , ZFMP_3 \
1520 ) \
1521 _ZFP_ZFMETHOD_INLINE( \
1522 isAutoRegister, \
1523 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1524 ReturnType, MethodName \
1525 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1526 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1527 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1528 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1529 , _ZFP_ZFMP_DUMMY() \
1530 , _ZFP_ZFMP_DUMMY() \
1531 , _ZFP_ZFMP_DUMMY() \
1532 , _ZFP_ZFMP_DUMMY() \
1533 )
1535#define ZFMETHOD_INLINE_DETAIL_4( \
1536 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1537 ReturnType, MethodName \
1538 , ZFMP_0 \
1539 , ZFMP_1 \
1540 , ZFMP_2 \
1541 , ZFMP_3 \
1542 ) \
1543 _ZFP_ZFMETHOD_INLINE( \
1544 isAutoRegister, \
1545 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1546 ReturnType, MethodName \
1547 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1548 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1549 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1550 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1551 , _ZFP_ZFMP_DUMMY() \
1552 , _ZFP_ZFMP_DUMMY() \
1553 , _ZFP_ZFMP_DUMMY() \
1554 , _ZFP_ZFMP_DUMMY() \
1555 )
1557#define ZFMETHOD_DEFINE_4(OwnerClass, \
1558 ReturnType, MethodName \
1559 , ZFMP_0 \
1560 , ZFMP_1 \
1561 , ZFMP_2 \
1562 , ZFMP_3 \
1563 ) \
1564 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1565 ReturnType, MethodName \
1566 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1567 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1568 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1569 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1570 , _ZFP_ZFMP_DUMMY() \
1571 , _ZFP_ZFMP_DUMMY() \
1572 , _ZFP_ZFMP_DUMMY() \
1573 , _ZFP_ZFMP_DUMMY() \
1574 )
1576#define ZFMETHOD_DEFINE_DETAIL_4(OwnerClass, RegSig, \
1577 ReturnType, MethodName \
1578 , ZFMP_0 \
1579 , ZFMP_1 \
1580 , ZFMP_2 \
1581 , ZFMP_3 \
1582 ) \
1583 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1584 ReturnType, MethodName \
1585 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1586 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1587 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1588 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1589 , _ZFP_ZFMP_DUMMY() \
1590 , _ZFP_ZFMP_DUMMY() \
1591 , _ZFP_ZFMP_DUMMY() \
1592 , _ZFP_ZFMP_DUMMY() \
1593 )
1594
1595// ============================================================
1596// 5 param method declare
1598#define ZFMETHOD_DECLARE_5(ReturnType, MethodName \
1599 , ZFMP_0 \
1600 , ZFMP_1 \
1601 , ZFMP_2 \
1602 , ZFMP_3 \
1603 , ZFMP_4 \
1604 ) \
1605 _ZFP_ZFMETHOD_DECLARE( \
1606 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1607 ReturnType, MethodName \
1608 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1609 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1610 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1611 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1612 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1613 , _ZFP_ZFMP_DUMMY() \
1614 , _ZFP_ZFMP_DUMMY() \
1615 , _ZFP_ZFMP_DUMMY() \
1616 )
1618#define ZFMETHOD_DECLARE_STATIC_5(ReturnType, MethodName \
1619 , ZFMP_0 \
1620 , ZFMP_1 \
1621 , ZFMP_2 \
1622 , ZFMP_3 \
1623 , ZFMP_4 \
1624 ) \
1625 _ZFP_ZFMETHOD_DECLARE( \
1626 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1627 ReturnType, MethodName \
1628 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1629 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1630 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1631 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1632 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1633 , _ZFP_ZFMP_DUMMY() \
1634 , _ZFP_ZFMP_DUMMY() \
1635 , _ZFP_ZFMP_DUMMY() \
1636 )
1638#define ZFMETHOD_DECLARE_PROTECTED_5(ReturnType, MethodName \
1639 , ZFMP_0 \
1640 , ZFMP_1 \
1641 , ZFMP_2 \
1642 , ZFMP_3 \
1643 , ZFMP_4 \
1644 ) \
1645 _ZFP_ZFMETHOD_DECLARE( \
1646 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1647 ReturnType, MethodName \
1648 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1649 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1650 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1651 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1652 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1653 , _ZFP_ZFMP_DUMMY() \
1654 , _ZFP_ZFMP_DUMMY() \
1655 , _ZFP_ZFMP_DUMMY() \
1656 )
1658#define ZFMETHOD_DECLARE_DETAIL_5( \
1659 PublicOrProtectedOrPrivate, ZFMethodType_, \
1660 ReturnType, MethodName \
1661 , ZFMP_0 \
1662 , ZFMP_1 \
1663 , ZFMP_2 \
1664 , ZFMP_3 \
1665 , ZFMP_4 \
1666 ) \
1667 _ZFP_ZFMETHOD_DECLARE( \
1668 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1669 ReturnType, MethodName \
1670 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1671 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1672 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1673 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1674 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1675 , _ZFP_ZFMP_DUMMY() \
1676 , _ZFP_ZFMP_DUMMY() \
1677 , _ZFP_ZFMP_DUMMY() \
1678 )
1680#define ZFMETHOD_INLINE_5(ReturnType, MethodName \
1681 , ZFMP_0 \
1682 , ZFMP_1 \
1683 , ZFMP_2 \
1684 , ZFMP_3 \
1685 , ZFMP_4 \
1686 ) \
1687 _ZFP_ZFMETHOD_INLINE( \
1688 isAutoRegister, \
1689 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1690 ReturnType, MethodName \
1691 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1692 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1693 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1694 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1695 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1696 , _ZFP_ZFMP_DUMMY() \
1697 , _ZFP_ZFMP_DUMMY() \
1698 , _ZFP_ZFMP_DUMMY() \
1699 )
1701#define ZFMETHOD_INLINE_STATIC_5(ReturnType, MethodName \
1702 , ZFMP_0 \
1703 , ZFMP_1 \
1704 , ZFMP_2 \
1705 , ZFMP_3 \
1706 , ZFMP_4 \
1707 ) \
1708 _ZFP_ZFMETHOD_INLINE( \
1709 isAutoRegister, \
1710 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1711 ReturnType, MethodName \
1712 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1713 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1714 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1715 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1716 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1717 , _ZFP_ZFMP_DUMMY() \
1718 , _ZFP_ZFMP_DUMMY() \
1719 , _ZFP_ZFMP_DUMMY() \
1720 )
1722#define ZFMETHOD_INLINE_PROTECTED_5(ReturnType, MethodName \
1723 , ZFMP_0 \
1724 , ZFMP_1 \
1725 , ZFMP_2 \
1726 , ZFMP_3 \
1727 , ZFMP_4 \
1728 ) \
1729 _ZFP_ZFMETHOD_INLINE( \
1730 isAutoRegister, \
1731 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1732 ReturnType, MethodName \
1733 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1734 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1735 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1736 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1737 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1738 , _ZFP_ZFMP_DUMMY() \
1739 , _ZFP_ZFMP_DUMMY() \
1740 , _ZFP_ZFMP_DUMMY() \
1741 )
1743#define ZFMETHOD_INLINE_DETAIL_5( \
1744 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1745 ReturnType, MethodName \
1746 , ZFMP_0 \
1747 , ZFMP_1 \
1748 , ZFMP_2 \
1749 , ZFMP_3 \
1750 , ZFMP_4 \
1751 ) \
1752 _ZFP_ZFMETHOD_INLINE( \
1753 isAutoRegister, \
1754 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1755 ReturnType, MethodName \
1756 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1757 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1758 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1759 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1760 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1761 , _ZFP_ZFMP_DUMMY() \
1762 , _ZFP_ZFMP_DUMMY() \
1763 , _ZFP_ZFMP_DUMMY() \
1764 )
1766#define ZFMETHOD_DEFINE_5(OwnerClass, \
1767 ReturnType, MethodName \
1768 , ZFMP_0 \
1769 , ZFMP_1 \
1770 , ZFMP_2 \
1771 , ZFMP_3 \
1772 , ZFMP_4 \
1773 ) \
1774 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1775 ReturnType, MethodName \
1776 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1777 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1778 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1779 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1780 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1781 , _ZFP_ZFMP_DUMMY() \
1782 , _ZFP_ZFMP_DUMMY() \
1783 , _ZFP_ZFMP_DUMMY() \
1784 )
1786#define ZFMETHOD_DEFINE_DETAIL_5(OwnerClass, RegSig, \
1787 ReturnType, MethodName \
1788 , ZFMP_0 \
1789 , ZFMP_1 \
1790 , ZFMP_2 \
1791 , ZFMP_3 \
1792 , ZFMP_4 \
1793 ) \
1794 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1795 ReturnType, MethodName \
1796 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1797 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1798 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1799 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1800 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1801 , _ZFP_ZFMP_DUMMY() \
1802 , _ZFP_ZFMP_DUMMY() \
1803 , _ZFP_ZFMP_DUMMY() \
1804 )
1805
1806// ============================================================
1807// 6 param method declare
1809#define ZFMETHOD_DECLARE_6(ReturnType, MethodName \
1810 , ZFMP_0 \
1811 , ZFMP_1 \
1812 , ZFMP_2 \
1813 , ZFMP_3 \
1814 , ZFMP_4 \
1815 , ZFMP_5 \
1816 ) \
1817 _ZFP_ZFMETHOD_DECLARE( \
1818 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1819 ReturnType, MethodName \
1820 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1821 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1822 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1823 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1824 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1825 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1826 , _ZFP_ZFMP_DUMMY() \
1827 , _ZFP_ZFMP_DUMMY() \
1828 )
1830#define ZFMETHOD_DECLARE_STATIC_6(ReturnType, MethodName \
1831 , ZFMP_0 \
1832 , ZFMP_1 \
1833 , ZFMP_2 \
1834 , ZFMP_3 \
1835 , ZFMP_4 \
1836 , ZFMP_5 \
1837 ) \
1838 _ZFP_ZFMETHOD_DECLARE( \
1839 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1840 ReturnType, MethodName \
1841 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1842 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1843 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1844 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1845 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1846 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1847 , _ZFP_ZFMP_DUMMY() \
1848 , _ZFP_ZFMP_DUMMY() \
1849 )
1851#define ZFMETHOD_DECLARE_PROTECTED_6(ReturnType, MethodName \
1852 , ZFMP_0 \
1853 , ZFMP_1 \
1854 , ZFMP_2 \
1855 , ZFMP_3 \
1856 , ZFMP_4 \
1857 , ZFMP_5 \
1858 ) \
1859 _ZFP_ZFMETHOD_DECLARE( \
1860 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1861 ReturnType, MethodName \
1862 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1863 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1864 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1865 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1866 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1867 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1868 , _ZFP_ZFMP_DUMMY() \
1869 , _ZFP_ZFMP_DUMMY() \
1870 )
1872#define ZFMETHOD_DECLARE_DETAIL_6( \
1873 PublicOrProtectedOrPrivate, ZFMethodType_, \
1874 ReturnType, MethodName \
1875 , ZFMP_0 \
1876 , ZFMP_1 \
1877 , ZFMP_2 \
1878 , ZFMP_3 \
1879 , ZFMP_4 \
1880 , ZFMP_5 \
1881 ) \
1882 _ZFP_ZFMETHOD_DECLARE( \
1883 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1884 ReturnType, MethodName \
1885 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1886 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1887 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1888 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1889 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1890 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1891 , _ZFP_ZFMP_DUMMY() \
1892 , _ZFP_ZFMP_DUMMY() \
1893 )
1895#define ZFMETHOD_INLINE_6(ReturnType, MethodName \
1896 , ZFMP_0 \
1897 , ZFMP_1 \
1898 , ZFMP_2 \
1899 , ZFMP_3 \
1900 , ZFMP_4 \
1901 , ZFMP_5 \
1902 ) \
1903 _ZFP_ZFMETHOD_INLINE( \
1904 isAutoRegister, \
1905 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1906 ReturnType, MethodName \
1907 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1908 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1909 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1910 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1911 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1912 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1913 , _ZFP_ZFMP_DUMMY() \
1914 , _ZFP_ZFMP_DUMMY() \
1915 )
1917#define ZFMETHOD_INLINE_STATIC_6(ReturnType, MethodName \
1918 , ZFMP_0 \
1919 , ZFMP_1 \
1920 , ZFMP_2 \
1921 , ZFMP_3 \
1922 , ZFMP_4 \
1923 , ZFMP_5 \
1924 ) \
1925 _ZFP_ZFMETHOD_INLINE( \
1926 isAutoRegister, \
1927 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1928 ReturnType, MethodName \
1929 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1930 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1931 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1932 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1933 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1934 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1935 , _ZFP_ZFMP_DUMMY() \
1936 , _ZFP_ZFMP_DUMMY() \
1937 )
1939#define ZFMETHOD_INLINE_PROTECTED_6(ReturnType, MethodName \
1940 , ZFMP_0 \
1941 , ZFMP_1 \
1942 , ZFMP_2 \
1943 , ZFMP_3 \
1944 , ZFMP_4 \
1945 , ZFMP_5 \
1946 ) \
1947 _ZFP_ZFMETHOD_INLINE( \
1948 isAutoRegister, \
1949 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1950 ReturnType, MethodName \
1951 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1952 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1953 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1954 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1955 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1956 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1957 , _ZFP_ZFMP_DUMMY() \
1958 , _ZFP_ZFMP_DUMMY() \
1959 )
1961#define ZFMETHOD_INLINE_DETAIL_6( \
1962 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1963 ReturnType, MethodName \
1964 , ZFMP_0 \
1965 , ZFMP_1 \
1966 , ZFMP_2 \
1967 , ZFMP_3 \
1968 , ZFMP_4 \
1969 , ZFMP_5 \
1970 ) \
1971 _ZFP_ZFMETHOD_INLINE( \
1972 isAutoRegister, \
1973 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1974 ReturnType, MethodName \
1975 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1976 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1977 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1978 , _ZFP_MtdP_EXPAND(ZFMP_3) \
1979 , _ZFP_MtdP_EXPAND(ZFMP_4) \
1980 , _ZFP_MtdP_EXPAND(ZFMP_5) \
1981 , _ZFP_ZFMP_DUMMY() \
1982 , _ZFP_ZFMP_DUMMY() \
1983 )
1985#define ZFMETHOD_DEFINE_6(OwnerClass, \
1986 ReturnType, MethodName \
1987 , ZFMP_0 \
1988 , ZFMP_1 \
1989 , ZFMP_2 \
1990 , ZFMP_3 \
1991 , ZFMP_4 \
1992 , ZFMP_5 \
1993 ) \
1994 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1995 ReturnType, MethodName \
1996 , _ZFP_MtdP_EXPAND(ZFMP_0) \
1997 , _ZFP_MtdP_EXPAND(ZFMP_1) \
1998 , _ZFP_MtdP_EXPAND(ZFMP_2) \
1999 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2000 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2001 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2002 , _ZFP_ZFMP_DUMMY() \
2003 , _ZFP_ZFMP_DUMMY() \
2004 )
2006#define ZFMETHOD_DEFINE_DETAIL_6(OwnerClass, RegSig, \
2007 ReturnType, MethodName \
2008 , ZFMP_0 \
2009 , ZFMP_1 \
2010 , ZFMP_2 \
2011 , ZFMP_3 \
2012 , ZFMP_4 \
2013 , ZFMP_5 \
2014 ) \
2015 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2016 ReturnType, MethodName \
2017 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2018 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2019 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2020 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2021 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2022 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2023 , _ZFP_ZFMP_DUMMY() \
2024 , _ZFP_ZFMP_DUMMY() \
2025 )
2026
2027// ============================================================
2028// 7 param method declare
2030#define ZFMETHOD_DECLARE_7(ReturnType, MethodName \
2031 , ZFMP_0 \
2032 , ZFMP_1 \
2033 , ZFMP_2 \
2034 , ZFMP_3 \
2035 , ZFMP_4 \
2036 , ZFMP_5 \
2037 , ZFMP_6 \
2038 ) \
2039 _ZFP_ZFMETHOD_DECLARE( \
2040 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2041 ReturnType, MethodName \
2042 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2043 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2044 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2045 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2046 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2047 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2048 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2049 , _ZFP_ZFMP_DUMMY() \
2050 )
2052#define ZFMETHOD_DECLARE_STATIC_7(ReturnType, MethodName \
2053 , ZFMP_0 \
2054 , ZFMP_1 \
2055 , ZFMP_2 \
2056 , ZFMP_3 \
2057 , ZFMP_4 \
2058 , ZFMP_5 \
2059 , ZFMP_6 \
2060 ) \
2061 _ZFP_ZFMETHOD_DECLARE( \
2062 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2063 ReturnType, MethodName \
2064 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2065 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2066 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2067 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2068 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2069 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2070 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2071 , _ZFP_ZFMP_DUMMY() \
2072 )
2074#define ZFMETHOD_DECLARE_PROTECTED_7(ReturnType, MethodName \
2075 , ZFMP_0 \
2076 , ZFMP_1 \
2077 , ZFMP_2 \
2078 , ZFMP_3 \
2079 , ZFMP_4 \
2080 , ZFMP_5 \
2081 , ZFMP_6 \
2082 ) \
2083 _ZFP_ZFMETHOD_DECLARE( \
2084 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2085 ReturnType, MethodName \
2086 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2087 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2088 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2089 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2090 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2091 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2092 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2093 , _ZFP_ZFMP_DUMMY() \
2094 )
2096#define ZFMETHOD_DECLARE_DETAIL_7( \
2097 PublicOrProtectedOrPrivate, ZFMethodType_, \
2098 ReturnType, MethodName \
2099 , ZFMP_0 \
2100 , ZFMP_1 \
2101 , ZFMP_2 \
2102 , ZFMP_3 \
2103 , ZFMP_4 \
2104 , ZFMP_5 \
2105 , ZFMP_6 \
2106 ) \
2107 _ZFP_ZFMETHOD_DECLARE( \
2108 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2109 ReturnType, MethodName \
2110 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2111 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2112 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2113 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2114 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2115 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2116 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2117 , _ZFP_ZFMP_DUMMY() \
2118 )
2120#define ZFMETHOD_INLINE_7(ReturnType, MethodName \
2121 , ZFMP_0 \
2122 , ZFMP_1 \
2123 , ZFMP_2 \
2124 , ZFMP_3 \
2125 , ZFMP_4 \
2126 , ZFMP_5 \
2127 , ZFMP_6 \
2128 ) \
2129 _ZFP_ZFMETHOD_INLINE( \
2130 isAutoRegister, \
2131 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2132 ReturnType, MethodName \
2133 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2134 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2135 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2136 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2137 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2138 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2139 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2140 , _ZFP_ZFMP_DUMMY() \
2141 )
2143#define ZFMETHOD_INLINE_STATIC_7(ReturnType, MethodName \
2144 , ZFMP_0 \
2145 , ZFMP_1 \
2146 , ZFMP_2 \
2147 , ZFMP_3 \
2148 , ZFMP_4 \
2149 , ZFMP_5 \
2150 , ZFMP_6 \
2151 ) \
2152 _ZFP_ZFMETHOD_INLINE( \
2153 isAutoRegister, \
2154 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
2155 ReturnType, MethodName \
2156 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2157 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2158 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2159 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2160 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2161 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2162 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2163 , _ZFP_ZFMP_DUMMY() \
2164 )
2166#define ZFMETHOD_INLINE_PROTECTED_7(ReturnType, MethodName \
2167 , ZFMP_0 \
2168 , ZFMP_1 \
2169 , ZFMP_2 \
2170 , ZFMP_3 \
2171 , ZFMP_4 \
2172 , ZFMP_5 \
2173 , ZFMP_6 \
2174 ) \
2175 _ZFP_ZFMETHOD_INLINE( \
2176 isAutoRegister, \
2177 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2178 ReturnType, MethodName \
2179 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2180 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2181 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2182 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2183 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2184 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2185 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2186 , _ZFP_ZFMP_DUMMY() \
2187 )
2189#define ZFMETHOD_INLINE_DETAIL_7( \
2190 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2191 ReturnType, MethodName \
2192 , ZFMP_0 \
2193 , ZFMP_1 \
2194 , ZFMP_2 \
2195 , ZFMP_3 \
2196 , ZFMP_4 \
2197 , ZFMP_5 \
2198 , ZFMP_6 \
2199 ) \
2200 _ZFP_ZFMETHOD_INLINE( \
2201 isAutoRegister, \
2202 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2203 ReturnType, MethodName \
2204 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2205 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2206 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2207 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2208 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2209 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2210 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2211 , _ZFP_ZFMP_DUMMY() \
2212 )
2214#define ZFMETHOD_DEFINE_7(OwnerClass, \
2215 ReturnType, MethodName \
2216 , ZFMP_0 \
2217 , ZFMP_1 \
2218 , ZFMP_2 \
2219 , ZFMP_3 \
2220 , ZFMP_4 \
2221 , ZFMP_5 \
2222 , ZFMP_6 \
2223 ) \
2224 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
2225 ReturnType, MethodName \
2226 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2227 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2228 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2229 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2230 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2231 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2232 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2233 , _ZFP_ZFMP_DUMMY() \
2234 )
2236#define ZFMETHOD_DEFINE_DETAIL_7(OwnerClass, RegSig, \
2237 ReturnType, MethodName \
2238 , ZFMP_0 \
2239 , ZFMP_1 \
2240 , ZFMP_2 \
2241 , ZFMP_3 \
2242 , ZFMP_4 \
2243 , ZFMP_5 \
2244 , ZFMP_6 \
2245 ) \
2246 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2247 ReturnType, MethodName \
2248 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2249 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2250 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2251 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2252 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2253 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2254 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2255 , _ZFP_ZFMP_DUMMY() \
2256 )
2257
2258// ============================================================
2259// 8 param method declare
2261#define ZFMETHOD_DECLARE_8(ReturnType, MethodName \
2262 , ZFMP_0 \
2263 , ZFMP_1 \
2264 , ZFMP_2 \
2265 , ZFMP_3 \
2266 , ZFMP_4 \
2267 , ZFMP_5 \
2268 , ZFMP_6 \
2269 , ZFMP_7 \
2270 ) \
2271 _ZFP_ZFMETHOD_DECLARE( \
2272 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2273 ReturnType, MethodName \
2274 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2275 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2276 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2277 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2278 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2279 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2280 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2281 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2282 )
2284#define ZFMETHOD_DECLARE_STATIC_8(ReturnType, MethodName \
2285 , ZFMP_0 \
2286 , ZFMP_1 \
2287 , ZFMP_2 \
2288 , ZFMP_3 \
2289 , ZFMP_4 \
2290 , ZFMP_5 \
2291 , ZFMP_6 \
2292 , ZFMP_7 \
2293 ) \
2294 _ZFP_ZFMETHOD_DECLARE( \
2295 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2296 ReturnType, MethodName \
2297 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2298 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2299 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2300 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2301 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2302 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2303 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2304 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2305 )
2307#define ZFMETHOD_DECLARE_PROTECTED_8(ReturnType, MethodName \
2308 , ZFMP_0 \
2309 , ZFMP_1 \
2310 , ZFMP_2 \
2311 , ZFMP_3 \
2312 , ZFMP_4 \
2313 , ZFMP_5 \
2314 , ZFMP_6 \
2315 , ZFMP_7 \
2316 ) \
2317 _ZFP_ZFMETHOD_DECLARE( \
2318 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2319 ReturnType, MethodName \
2320 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2321 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2322 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2323 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2324 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2325 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2326 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2327 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2328 )
2330#define ZFMETHOD_DECLARE_DETAIL_8( \
2331 PublicOrProtectedOrPrivate, ZFMethodType_, \
2332 ReturnType, MethodName \
2333 , ZFMP_0 \
2334 , ZFMP_1 \
2335 , ZFMP_2 \
2336 , ZFMP_3 \
2337 , ZFMP_4 \
2338 , ZFMP_5 \
2339 , ZFMP_6 \
2340 , ZFMP_7 \
2341 ) \
2342 _ZFP_ZFMETHOD_DECLARE( \
2343 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2344 ReturnType, MethodName \
2345 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2346 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2347 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2348 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2349 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2350 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2351 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2352 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2353 )
2355#define ZFMETHOD_INLINE_8(ReturnType, MethodName \
2356 , ZFMP_0 \
2357 , ZFMP_1 \
2358 , ZFMP_2 \
2359 , ZFMP_3 \
2360 , ZFMP_4 \
2361 , ZFMP_5 \
2362 , ZFMP_6 \
2363 , ZFMP_7 \
2364 ) \
2365 _ZFP_ZFMETHOD_INLINE( \
2366 isAutoRegister, \
2367 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2368 ReturnType, MethodName \
2369 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2370 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2371 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2372 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2373 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2374 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2375 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2376 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2377 )
2379#define ZFMETHOD_INLINE_STATIC_8(ReturnType, MethodName \
2380 , ZFMP_0 \
2381 , ZFMP_1 \
2382 , ZFMP_2 \
2383 , ZFMP_3 \
2384 , ZFMP_4 \
2385 , ZFMP_5 \
2386 , ZFMP_6 \
2387 , ZFMP_7 \
2388 ) \
2389 _ZFP_ZFMETHOD_INLINE( \
2390 isAutoRegister, \
2391 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
2392 ReturnType, MethodName \
2393 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2394 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2395 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2396 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2397 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2398 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2399 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2400 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2401 )
2403#define ZFMETHOD_INLINE_PROTECTED_8(ReturnType, MethodName \
2404 , ZFMP_0 \
2405 , ZFMP_1 \
2406 , ZFMP_2 \
2407 , ZFMP_3 \
2408 , ZFMP_4 \
2409 , ZFMP_5 \
2410 , ZFMP_6 \
2411 , ZFMP_7 \
2412 ) \
2413 _ZFP_ZFMETHOD_INLINE( \
2414 isAutoRegister, \
2415 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2416 ReturnType, MethodName \
2417 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2418 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2419 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2420 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2421 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2422 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2423 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2424 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2425 )
2427#define ZFMETHOD_INLINE_DETAIL_8( \
2428 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2429 ReturnType, MethodName \
2430 , ZFMP_0 \
2431 , ZFMP_1 \
2432 , ZFMP_2 \
2433 , ZFMP_3 \
2434 , ZFMP_4 \
2435 , ZFMP_5 \
2436 , ZFMP_6 \
2437 , ZFMP_7 \
2438 ) \
2439 _ZFP_ZFMETHOD_INLINE( \
2440 isAutoRegister, \
2441 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2442 ReturnType, MethodName \
2443 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2444 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2445 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2446 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2447 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2448 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2449 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2450 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2451 )
2453#define ZFMETHOD_DEFINE_8(OwnerClass, \
2454 ReturnType, MethodName \
2455 , ZFMP_0 \
2456 , ZFMP_1 \
2457 , ZFMP_2 \
2458 , ZFMP_3 \
2459 , ZFMP_4 \
2460 , ZFMP_5 \
2461 , ZFMP_6 \
2462 , ZFMP_7 \
2463 ) \
2464 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
2465 ReturnType, MethodName \
2466 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2467 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2468 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2469 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2470 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2471 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2472 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2473 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2474 )
2476#define ZFMETHOD_DEFINE_DETAIL_8(OwnerClass, RegSig, \
2477 ReturnType, MethodName \
2478 , ZFMP_0 \
2479 , ZFMP_1 \
2480 , ZFMP_2 \
2481 , ZFMP_3 \
2482 , ZFMP_4 \
2483 , ZFMP_5 \
2484 , ZFMP_6 \
2485 , ZFMP_7 \
2486 ) \
2487 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2488 ReturnType, MethodName \
2489 , _ZFP_MtdP_EXPAND(ZFMP_0) \
2490 , _ZFP_MtdP_EXPAND(ZFMP_1) \
2491 , _ZFP_MtdP_EXPAND(ZFMP_2) \
2492 , _ZFP_MtdP_EXPAND(ZFMP_3) \
2493 , _ZFP_MtdP_EXPAND(ZFMP_4) \
2494 , _ZFP_MtdP_EXPAND(ZFMP_5) \
2495 , _ZFP_MtdP_EXPAND(ZFMP_6) \
2496 , _ZFP_MtdP_EXPAND(ZFMP_7) \
2497 )
2498
2499/* ZFMETHOD_MAX_PARAM */
2500
2502#endif // #ifndef _ZFI_ZFMethodDeclare_h_
2503
reflectable method definination 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