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_m_##MethodName(zfnull))
16#define ZFMethodAccess(OwnerClass, MethodName) \
17 _ZFP_ZFMethodAccess(OwnerClass, MethodName)
18
19#define _ZFP_ZFMethodAccessDetail(...) \
20 _ZFP_mD_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_m_##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_mP_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_mP_EXPAND(ZFMP_0) \
75 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
91 , _ZFP_mP_EXPAND(ZFMP_1) \
92 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
108 , _ZFP_mP_EXPAND(ZFMP_1) \
109 , _ZFP_mP_EXPAND(ZFMP_2) \
110 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
126 , _ZFP_mP_EXPAND(ZFMP_1) \
127 , _ZFP_mP_EXPAND(ZFMP_2) \
128 , _ZFP_mP_EXPAND(ZFMP_3) \
129 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
145 , _ZFP_mP_EXPAND(ZFMP_1) \
146 , _ZFP_mP_EXPAND(ZFMP_2) \
147 , _ZFP_mP_EXPAND(ZFMP_3) \
148 , _ZFP_mP_EXPAND(ZFMP_4) \
149 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
165 , _ZFP_mP_EXPAND(ZFMP_1) \
166 , _ZFP_mP_EXPAND(ZFMP_2) \
167 , _ZFP_mP_EXPAND(ZFMP_3) \
168 , _ZFP_mP_EXPAND(ZFMP_4) \
169 , _ZFP_mP_EXPAND(ZFMP_5) \
170 , _ZFP_mP_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_mP_EXPAND(ZFMP_0) \
186 , _ZFP_mP_EXPAND(ZFMP_1) \
187 , _ZFP_mP_EXPAND(ZFMP_2) \
188 , _ZFP_mP_EXPAND(ZFMP_3) \
189 , _ZFP_mP_EXPAND(ZFMP_4) \
190 , _ZFP_mP_EXPAND(ZFMP_5) \
191 , _ZFP_mP_EXPAND(ZFMP_6) \
192 , _ZFP_mP_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_mReg_##MethodName##_##RegSig { \
244 public: \
245 _ZFP_mReg_##MethodName##_##RegSig(void) { \
246 (void)zfself::_ZFP_m_##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_mReg_##MethodName##_##RegSig _ZFP_mRegI_##MethodName##_##RegSig;
259#define _ZFP_ZFMETHOD_INLINE(...) \
260 _ZFP_mD_EXPAND(_ZFP_ZFMETHOD_INLINE_(__VA_ARGS__))
261#define _ZFP_ZFMETHOD_INLINE_( \
262 autoRegisterOrNot, \
263 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
264 ReturnType, MethodName \
265 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
266 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
267 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
268 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
269 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
270 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
271 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
272 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
273 ) \
274 /* required to make Doxygen doc placed at right pos */ \
275 private: \
276 _ZFP_ZFMethod_AutoRegister(autoRegisterOrNot, MethodName, RegSig \
277 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
278 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
279 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
280 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
281 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
282 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
283 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
284 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
285 ) \
286 zfclassNotPOD _ZFP_mH_##MethodName##_##RegSig { \
287 public: \
288 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
289 ReturnType \
290 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
291 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
292 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
293 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
294 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
295 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
296 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
297 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
298 ) \
299 }; \
300 private: \
301 static ReturnType _ZFP_mI_##MethodName( \
302 ZF_IN const ZFMethod *invokerMethod, \
303 ZF_IN zfany const &invokerObject \
304 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0 param0) \
305 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
306 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
307 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
308 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
309 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
310 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
311 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
312 ) { \
313 return zfcast(zfself *, invokerObject)->MethodName( \
314 ParamExpandOrEmpty0( param0) \
315 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
316 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
317 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
318 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
319 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
320 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
321 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
322 ); \
323 } \
324 public: \
325 static const ZFMethod *_ZFP_m_##MethodName(void (*)( \
326 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
327 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
328 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
329 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
330 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
331 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
332 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
333 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
334 )) /* tricks to support overload method */ { \
335 static _ZFP_ZFMethodRegisterHolder h(zffalse \
336 , zffalse \
337 , zfnull \
338 , reinterpret_cast<ZFFuncAddrType>((ReturnType (*)( \
339 ZF_IN const ZFMethod *invokerMethod, \
340 ZF_IN zfany const &invokerObject \
341 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0) \
342 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
343 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
344 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
345 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
346 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
347 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
348 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
349 ))&zfself::_ZFP_mI_##MethodName) \
350 , _ZFP_ZFMETHOD_GENERIC_INVOKER_ADDR(_ZFP_mH_##MethodName##_##RegSig) \
351 , ZFMethodType_ \
352 , zfself::ClassData() \
353 , _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate) \
354 , zfnull \
355 , zftext(#MethodName) \
356 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
357 , _ZFP_ZFMethodMP() \
358 ParamExpandOrEmpty0(.add( \
359 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
360 , zftext(#param0) \
361 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
362 )) \
363 ParamExpandOrEmpty1(.add( \
364 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
365 , zftext(#param1) \
366 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
367 )) \
368 ParamExpandOrEmpty2(.add( \
369 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
370 , zftext(#param2) \
371 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
372 )) \
373 ParamExpandOrEmpty3(.add( \
374 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
375 , zftext(#param3) \
376 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
377 )) \
378 ParamExpandOrEmpty4(.add( \
379 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
380 , zftext(#param4) \
381 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
382 )) \
383 ParamExpandOrEmpty5(.add( \
384 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
385 , zftext(#param5) \
386 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
387 )) \
388 ParamExpandOrEmpty6(.add( \
389 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
390 , zftext(#param6) \
391 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
392 )) \
393 ParamExpandOrEmpty7(.add( \
394 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
395 , zftext(#param7) \
396 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
397 )) \
398 ); \
399 return h.method; \
400 } \
401 \
402 PublicOrProtectedOrPrivate: \
403 \
404 _ZFP_ZFMethodTypeChain(ZFMethodType_, \
405 zffinal inline zfself *c_##MethodName( \
406 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
407 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
408 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
409 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
410 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
411 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
412 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
413 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
414 ) { \
415 this->MethodName( \
416 ParamExpandOrEmpty0( param0) \
417 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
418 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
419 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
420 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
421 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
422 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
423 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
424 ); \
425 return this; \
426 } \
427 ) \
428 \
429 _ZFP_ZFMethodType(ZFMethodType_) ReturnType MethodName( \
430 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
431 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
432 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
433 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
434 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
435 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
436 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
437 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
438 )
439
440// ============================================================
441#define _ZFP_ZFMETHOD_DECLARE_isPureVirtual() = 0
442#define _ZFP_ZFMETHOD_DECLARE_notPureVirtual()
443
444#define _ZFP_ZFMETHOD_DECLARE(...) \
445 _ZFP_mD_EXPAND(_ZFP_ZFMETHOD_DECLARE_(__VA_ARGS__))
446#define _ZFP_ZFMETHOD_DECLARE_( \
447 PublicOrProtectedOrPrivate, ZFMethodType_, pureVirtualOrNot, \
448 ReturnType, MethodName \
449 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
450 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
451 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
452 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
453 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
454 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
455 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
456 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
457 ) \
458 /* required to make Doxygen doc placed at right pos */ \
459 private: \
460 static ReturnType _ZFP_mI_##MethodName( \
461 ZF_IN const ZFMethod *invokerMethod, \
462 ZF_IN zfany const &invokerObject \
463 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0 param0) \
464 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
465 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
466 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
467 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
468 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
469 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
470 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
471 ) { \
472 return zfcast(zfself *, invokerObject)->MethodName( \
473 ParamExpandOrEmpty0( param0) \
474 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
475 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
476 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
477 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
478 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
479 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
480 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
481 ); \
482 } \
483 static inline ZFMethodAccessType _ZFP_mS_P_##MethodName(void (*)( \
484 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
485 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
486 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
487 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
488 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
489 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
490 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
491 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
492 )) { \
493 return _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate); \
494 } \
495 static inline ZFMethodType _ZFP_mS_T_##MethodName(void (*)( \
496 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
497 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
498 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
499 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
500 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
501 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
502 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
503 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
504 )) { \
505 return ZFMethodType_; \
506 } \
507 public: \
508 static const ZFMethod *_ZFP_m_##MethodName(void (*)( \
509 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
510 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
511 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
512 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
513 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
514 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
515 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
516 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
517 )); /* tricks to support overload method */ \
518 \
519 PublicOrProtectedOrPrivate: \
520 \
521 _ZFP_ZFMethodTypeChain(ZFMethodType_, \
522 zffinal inline zfself *c_##MethodName( \
523 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
524 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
525 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
526 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
527 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
528 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
529 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
530 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
531 ) { \
532 this->MethodName( \
533 ParamExpandOrEmpty0( param0) \
534 ParamExpandOrEmpty1(ZFM_COMMA() param1) \
535 ParamExpandOrEmpty2(ZFM_COMMA() param2) \
536 ParamExpandOrEmpty3(ZFM_COMMA() param3) \
537 ParamExpandOrEmpty4(ZFM_COMMA() param4) \
538 ParamExpandOrEmpty5(ZFM_COMMA() param5) \
539 ParamExpandOrEmpty6(ZFM_COMMA() param6) \
540 ParamExpandOrEmpty7(ZFM_COMMA() param7) \
541 ); \
542 return this; \
543 } \
544 ) \
545 \
546 _ZFP_ZFMethodType(ZFMethodType_) ReturnType MethodName( \
547 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
548 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
549 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
550 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
551 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
552 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
553 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
554 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
555 ) pureVirtualOrNot();
556
557#define _ZFP_ZFMETHOD_DEFINE_isPureVirtual(...)
558#define _ZFP_ZFMETHOD_DEFINE_notPureVirtual(...) __VA_ARGS__
559
560#define _ZFP_ZFMETHOD_DEFINE(...) \
561 _ZFP_mD_EXPAND(_ZFP_ZFMETHOD_DEFINE_(__VA_ARGS__))
562#define _ZFP_ZFMETHOD_DEFINE_(OwnerClass, pureVirtualOrNot, RegSig, \
563 ReturnType, MethodName \
564 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
565 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
566 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
567 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
568 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
569 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
570 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
571 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
572 ) \
573 zfclassNotPOD _ZFP_mH_##OwnerClass##_##MethodName##_##RegSig { \
574 public: \
575 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
576 ReturnType \
577 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
578 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
579 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
580 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
581 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
582 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
583 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
584 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
585 ) \
586 }; \
587 const ZFMethod *OwnerClass::_ZFP_m_##MethodName(void (*_dummy)( \
588 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
589 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
590 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
591 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
592 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
593 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
594 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
595 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
596 )) { \
597 static _ZFP_ZFMethodRegisterHolder h(zffalse \
598 , zffalse \
599 , zfnull \
600 , reinterpret_cast<ZFFuncAddrType>((ReturnType (*)( \
601 ZF_IN const ZFMethod *invokerMethod, \
602 ZF_IN zfany const &invokerObject \
603 ParamExpandOrEmpty0(ZFM_COMMA() ParamType0) \
604 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
605 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
606 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
607 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
608 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
609 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
610 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
611 ))&zfself::_ZFP_mI_##MethodName) \
612 , _ZFP_ZFMETHOD_GENERIC_INVOKER_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig) \
613 , zfself::_ZFP_mS_T_##MethodName(_dummy) \
614 , zfself::ClassData() \
615 , zfself::_ZFP_mS_P_##MethodName(_dummy) \
616 , zfnull \
617 , zftext(#MethodName) \
618 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
619 , _ZFP_ZFMethodMP() \
620 ParamExpandOrEmpty0(.add( \
621 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
622 , zftext(#param0) \
623 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
624 )) \
625 ParamExpandOrEmpty1(.add( \
626 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
627 , zftext(#param1) \
628 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
629 )) \
630 ParamExpandOrEmpty2(.add( \
631 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
632 , zftext(#param2) \
633 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
634 )) \
635 ParamExpandOrEmpty3(.add( \
636 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
637 , zftext(#param3) \
638 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
639 )) \
640 ParamExpandOrEmpty4(.add( \
641 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
642 , zftext(#param4) \
643 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
644 )) \
645 ParamExpandOrEmpty5(.add( \
646 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
647 , zftext(#param5) \
648 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
649 )) \
650 ParamExpandOrEmpty6(.add( \
651 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
652 , zftext(#param6) \
653 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
654 )) \
655 ParamExpandOrEmpty7(.add( \
656 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
657 , zftext(#param7) \
658 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
659 )) \
660 ); \
661 return h.method; \
662 } \
663 ZF_STATIC_REGISTER_INIT(MtdD_##OwnerClass##_##MethodName##_##RegSig) { \
664 (void)OwnerClass::_ZFP_m_##MethodName((void (*)( \
665 ParamExpandOrEmpty0(ZFM_EMPTY() ParamType0) \
666 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1) \
667 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2) \
668 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3) \
669 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4) \
670 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5) \
671 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6) \
672 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7) \
673 ))zfnull); \
674 } \
675 ZF_STATIC_REGISTER_END(MtdD_##OwnerClass##_##MethodName##_##RegSig) \
676 pureVirtualOrNot( \
677 ReturnType OwnerClass::MethodName( \
678 ParamExpandOrEmpty0( ParamType0 param0) \
679 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
680 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
681 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
682 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
683 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
684 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
685 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
686 ) \
687 )
688
689// ============================================================
690// 0 param method declare
692#define ZFMETHOD_DECLARE_0(ReturnType, MethodName \
693 ) \
694 _ZFP_ZFMETHOD_DECLARE( \
695 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
696 ReturnType, MethodName \
697 , _ZFP_ZFMP_DUMMY() \
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 )
707#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName \
708 ) \
709 _ZFP_ZFMETHOD_DECLARE( \
710 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
711 ReturnType, MethodName \
712 , _ZFP_ZFMP_DUMMY() \
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 )
722#define ZFMETHOD_DECLARE_PROTECTED_0(ReturnType, MethodName \
723 ) \
724 _ZFP_ZFMETHOD_DECLARE( \
725 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
726 ReturnType, MethodName \
727 , _ZFP_ZFMP_DUMMY() \
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 )
737#define ZFMETHOD_DECLARE_DETAIL_0( \
738 PublicOrProtectedOrPrivate, ZFMethodType_, \
739 ReturnType, MethodName \
740 ) \
741 _ZFP_ZFMETHOD_DECLARE( \
742 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
743 ReturnType, MethodName \
744 , _ZFP_ZFMP_DUMMY() \
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 )
754#define ZFMETHOD_INLINE_0(ReturnType, MethodName \
755 ) \
756 _ZFP_ZFMETHOD_INLINE( \
757 isAutoRegister, \
758 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
759 ReturnType, MethodName \
760 , _ZFP_ZFMP_DUMMY() \
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 )
770#define ZFMETHOD_INLINE_STATIC_0(ReturnType, MethodName \
771 ) \
772 _ZFP_ZFMETHOD_INLINE( \
773 isAutoRegister, \
774 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
775 ReturnType, MethodName \
776 , _ZFP_ZFMP_DUMMY() \
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 )
786#define ZFMETHOD_INLINE_PROTECTED_0(ReturnType, MethodName \
787 ) \
788 _ZFP_ZFMETHOD_INLINE( \
789 isAutoRegister, \
790 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
791 ReturnType, MethodName \
792 , _ZFP_ZFMP_DUMMY() \
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 )
802#define ZFMETHOD_INLINE_DETAIL_0( \
803 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
804 ReturnType, MethodName \
805 ) \
806 _ZFP_ZFMETHOD_INLINE( \
807 isAutoRegister, \
808 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
809 ReturnType, MethodName \
810 , _ZFP_ZFMP_DUMMY() \
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 )
820#define ZFMETHOD_DEFINE_0(OwnerClass, \
821 ReturnType, MethodName \
822 ) \
823 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
824 ReturnType, MethodName \
825 , _ZFP_ZFMP_DUMMY() \
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 )
835#define ZFMETHOD_DEFINE_DETAIL_0(OwnerClass, RegSig, \
836 ReturnType, MethodName \
837 ) \
838 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
839 ReturnType, MethodName \
840 , _ZFP_ZFMP_DUMMY() \
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 )
849
850// ============================================================
851// 1 param method declare
853#define ZFMETHOD_DECLARE_1(ReturnType, MethodName \
854 , ZFMP_0 \
855 ) \
856 _ZFP_ZFMETHOD_DECLARE( \
857 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
858 ReturnType, MethodName \
859 , _ZFP_mP_EXPAND(ZFMP_0) \
860 , _ZFP_ZFMP_DUMMY() \
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 )
869#define ZFMETHOD_DECLARE_STATIC_1(ReturnType, MethodName \
870 , ZFMP_0 \
871 ) \
872 _ZFP_ZFMETHOD_DECLARE( \
873 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
874 ReturnType, MethodName \
875 , _ZFP_mP_EXPAND(ZFMP_0) \
876 , _ZFP_ZFMP_DUMMY() \
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 )
885#define ZFMETHOD_DECLARE_PROTECTED_1(ReturnType, MethodName \
886 , ZFMP_0 \
887 ) \
888 _ZFP_ZFMETHOD_DECLARE( \
889 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
890 ReturnType, MethodName \
891 , _ZFP_mP_EXPAND(ZFMP_0) \
892 , _ZFP_ZFMP_DUMMY() \
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 )
901#define ZFMETHOD_DECLARE_DETAIL_1( \
902 PublicOrProtectedOrPrivate, ZFMethodType_, \
903 ReturnType, MethodName \
904 , ZFMP_0 \
905 ) \
906 _ZFP_ZFMETHOD_DECLARE( \
907 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
908 ReturnType, MethodName \
909 , _ZFP_mP_EXPAND(ZFMP_0) \
910 , _ZFP_ZFMP_DUMMY() \
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 )
919#define ZFMETHOD_INLINE_1(ReturnType, MethodName \
920 , ZFMP_0 \
921 ) \
922 _ZFP_ZFMETHOD_INLINE( \
923 isAutoRegister, \
924 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
925 ReturnType, MethodName \
926 , _ZFP_mP_EXPAND(ZFMP_0) \
927 , _ZFP_ZFMP_DUMMY() \
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 )
936#define ZFMETHOD_INLINE_STATIC_1(ReturnType, MethodName \
937 , ZFMP_0 \
938 ) \
939 _ZFP_ZFMETHOD_INLINE( \
940 isAutoRegister, \
941 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
942 ReturnType, MethodName \
943 , _ZFP_mP_EXPAND(ZFMP_0) \
944 , _ZFP_ZFMP_DUMMY() \
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 )
953#define ZFMETHOD_INLINE_PROTECTED_1(ReturnType, MethodName \
954 , ZFMP_0 \
955 ) \
956 _ZFP_ZFMETHOD_INLINE( \
957 isAutoRegister, \
958 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
959 ReturnType, MethodName \
960 , _ZFP_mP_EXPAND(ZFMP_0) \
961 , _ZFP_ZFMP_DUMMY() \
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 )
970#define ZFMETHOD_INLINE_DETAIL_1( \
971 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
972 ReturnType, MethodName \
973 , ZFMP_0 \
974 ) \
975 _ZFP_ZFMETHOD_INLINE( \
976 isAutoRegister, \
977 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
978 ReturnType, MethodName \
979 , _ZFP_mP_EXPAND(ZFMP_0) \
980 , _ZFP_ZFMP_DUMMY() \
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 )
989#define ZFMETHOD_DEFINE_1(OwnerClass, \
990 ReturnType, MethodName \
991 , ZFMP_0 \
992 ) \
993 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
994 ReturnType, MethodName \
995 , _ZFP_mP_EXPAND(ZFMP_0) \
996 , _ZFP_ZFMP_DUMMY() \
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 )
1005#define ZFMETHOD_DEFINE_DETAIL_1(OwnerClass, RegSig, \
1006 ReturnType, MethodName \
1007 , ZFMP_0 \
1008 ) \
1009 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1010 ReturnType, MethodName \
1011 , _ZFP_mP_EXPAND(ZFMP_0) \
1012 , _ZFP_ZFMP_DUMMY() \
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 )
1020
1021// ============================================================
1022// 2 param method declare
1024#define ZFMETHOD_DECLARE_2(ReturnType, MethodName \
1025 , ZFMP_0 \
1026 , ZFMP_1 \
1027 ) \
1028 _ZFP_ZFMETHOD_DECLARE( \
1029 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1030 ReturnType, MethodName \
1031 , _ZFP_mP_EXPAND(ZFMP_0) \
1032 , _ZFP_mP_EXPAND(ZFMP_1) \
1033 , _ZFP_ZFMP_DUMMY() \
1034 , _ZFP_ZFMP_DUMMY() \
1035 , _ZFP_ZFMP_DUMMY() \
1036 , _ZFP_ZFMP_DUMMY() \
1037 , _ZFP_ZFMP_DUMMY() \
1038 , _ZFP_ZFMP_DUMMY() \
1039 )
1041#define ZFMETHOD_DECLARE_STATIC_2(ReturnType, MethodName \
1042 , ZFMP_0 \
1043 , ZFMP_1 \
1044 ) \
1045 _ZFP_ZFMETHOD_DECLARE( \
1046 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1047 ReturnType, MethodName \
1048 , _ZFP_mP_EXPAND(ZFMP_0) \
1049 , _ZFP_mP_EXPAND(ZFMP_1) \
1050 , _ZFP_ZFMP_DUMMY() \
1051 , _ZFP_ZFMP_DUMMY() \
1052 , _ZFP_ZFMP_DUMMY() \
1053 , _ZFP_ZFMP_DUMMY() \
1054 , _ZFP_ZFMP_DUMMY() \
1055 , _ZFP_ZFMP_DUMMY() \
1056 )
1058#define ZFMETHOD_DECLARE_PROTECTED_2(ReturnType, MethodName \
1059 , ZFMP_0 \
1060 , ZFMP_1 \
1061 ) \
1062 _ZFP_ZFMETHOD_DECLARE( \
1063 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1064 ReturnType, MethodName \
1065 , _ZFP_mP_EXPAND(ZFMP_0) \
1066 , _ZFP_mP_EXPAND(ZFMP_1) \
1067 , _ZFP_ZFMP_DUMMY() \
1068 , _ZFP_ZFMP_DUMMY() \
1069 , _ZFP_ZFMP_DUMMY() \
1070 , _ZFP_ZFMP_DUMMY() \
1071 , _ZFP_ZFMP_DUMMY() \
1072 , _ZFP_ZFMP_DUMMY() \
1073 )
1075#define ZFMETHOD_DECLARE_DETAIL_2( \
1076 PublicOrProtectedOrPrivate, ZFMethodType_, \
1077 ReturnType, MethodName \
1078 , ZFMP_0 \
1079 , ZFMP_1 \
1080 ) \
1081 _ZFP_ZFMETHOD_DECLARE( \
1082 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1083 ReturnType, MethodName \
1084 , _ZFP_mP_EXPAND(ZFMP_0) \
1085 , _ZFP_mP_EXPAND(ZFMP_1) \
1086 , _ZFP_ZFMP_DUMMY() \
1087 , _ZFP_ZFMP_DUMMY() \
1088 , _ZFP_ZFMP_DUMMY() \
1089 , _ZFP_ZFMP_DUMMY() \
1090 , _ZFP_ZFMP_DUMMY() \
1091 , _ZFP_ZFMP_DUMMY() \
1092 )
1094#define ZFMETHOD_INLINE_2(ReturnType, MethodName \
1095 , ZFMP_0 \
1096 , ZFMP_1 \
1097 ) \
1098 _ZFP_ZFMETHOD_INLINE( \
1099 isAutoRegister, \
1100 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1101 ReturnType, MethodName \
1102 , _ZFP_mP_EXPAND(ZFMP_0) \
1103 , _ZFP_mP_EXPAND(ZFMP_1) \
1104 , _ZFP_ZFMP_DUMMY() \
1105 , _ZFP_ZFMP_DUMMY() \
1106 , _ZFP_ZFMP_DUMMY() \
1107 , _ZFP_ZFMP_DUMMY() \
1108 , _ZFP_ZFMP_DUMMY() \
1109 , _ZFP_ZFMP_DUMMY() \
1110 )
1112#define ZFMETHOD_INLINE_STATIC_2(ReturnType, MethodName \
1113 , ZFMP_0 \
1114 , ZFMP_1 \
1115 ) \
1116 _ZFP_ZFMETHOD_INLINE( \
1117 isAutoRegister, \
1118 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1119 ReturnType, MethodName \
1120 , _ZFP_mP_EXPAND(ZFMP_0) \
1121 , _ZFP_mP_EXPAND(ZFMP_1) \
1122 , _ZFP_ZFMP_DUMMY() \
1123 , _ZFP_ZFMP_DUMMY() \
1124 , _ZFP_ZFMP_DUMMY() \
1125 , _ZFP_ZFMP_DUMMY() \
1126 , _ZFP_ZFMP_DUMMY() \
1127 , _ZFP_ZFMP_DUMMY() \
1128 )
1130#define ZFMETHOD_INLINE_PROTECTED_2(ReturnType, MethodName \
1131 , ZFMP_0 \
1132 , ZFMP_1 \
1133 ) \
1134 _ZFP_ZFMETHOD_INLINE( \
1135 isAutoRegister, \
1136 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1137 ReturnType, MethodName \
1138 , _ZFP_mP_EXPAND(ZFMP_0) \
1139 , _ZFP_mP_EXPAND(ZFMP_1) \
1140 , _ZFP_ZFMP_DUMMY() \
1141 , _ZFP_ZFMP_DUMMY() \
1142 , _ZFP_ZFMP_DUMMY() \
1143 , _ZFP_ZFMP_DUMMY() \
1144 , _ZFP_ZFMP_DUMMY() \
1145 , _ZFP_ZFMP_DUMMY() \
1146 )
1148#define ZFMETHOD_INLINE_DETAIL_2( \
1149 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1150 ReturnType, MethodName \
1151 , ZFMP_0 \
1152 , ZFMP_1 \
1153 ) \
1154 _ZFP_ZFMETHOD_INLINE( \
1155 isAutoRegister, \
1156 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1157 ReturnType, MethodName \
1158 , _ZFP_mP_EXPAND(ZFMP_0) \
1159 , _ZFP_mP_EXPAND(ZFMP_1) \
1160 , _ZFP_ZFMP_DUMMY() \
1161 , _ZFP_ZFMP_DUMMY() \
1162 , _ZFP_ZFMP_DUMMY() \
1163 , _ZFP_ZFMP_DUMMY() \
1164 , _ZFP_ZFMP_DUMMY() \
1165 , _ZFP_ZFMP_DUMMY() \
1166 )
1168#define ZFMETHOD_DEFINE_2(OwnerClass, \
1169 ReturnType, MethodName \
1170 , ZFMP_0 \
1171 , ZFMP_1 \
1172 ) \
1173 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1174 ReturnType, MethodName \
1175 , _ZFP_mP_EXPAND(ZFMP_0) \
1176 , _ZFP_mP_EXPAND(ZFMP_1) \
1177 , _ZFP_ZFMP_DUMMY() \
1178 , _ZFP_ZFMP_DUMMY() \
1179 , _ZFP_ZFMP_DUMMY() \
1180 , _ZFP_ZFMP_DUMMY() \
1181 , _ZFP_ZFMP_DUMMY() \
1182 , _ZFP_ZFMP_DUMMY() \
1183 )
1185#define ZFMETHOD_DEFINE_DETAIL_2(OwnerClass, RegSig, \
1186 ReturnType, MethodName \
1187 , ZFMP_0 \
1188 , ZFMP_1 \
1189 ) \
1190 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1191 ReturnType, MethodName \
1192 , _ZFP_mP_EXPAND(ZFMP_0) \
1193 , _ZFP_mP_EXPAND(ZFMP_1) \
1194 , _ZFP_ZFMP_DUMMY() \
1195 , _ZFP_ZFMP_DUMMY() \
1196 , _ZFP_ZFMP_DUMMY() \
1197 , _ZFP_ZFMP_DUMMY() \
1198 , _ZFP_ZFMP_DUMMY() \
1199 , _ZFP_ZFMP_DUMMY() \
1200 )
1201
1202// ============================================================
1203// 3 param method declare
1205#define ZFMETHOD_DECLARE_3(ReturnType, MethodName \
1206 , ZFMP_0 \
1207 , ZFMP_1 \
1208 , ZFMP_2 \
1209 ) \
1210 _ZFP_ZFMETHOD_DECLARE( \
1211 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1212 ReturnType, MethodName \
1213 , _ZFP_mP_EXPAND(ZFMP_0) \
1214 , _ZFP_mP_EXPAND(ZFMP_1) \
1215 , _ZFP_mP_EXPAND(ZFMP_2) \
1216 , _ZFP_ZFMP_DUMMY() \
1217 , _ZFP_ZFMP_DUMMY() \
1218 , _ZFP_ZFMP_DUMMY() \
1219 , _ZFP_ZFMP_DUMMY() \
1220 , _ZFP_ZFMP_DUMMY() \
1221 )
1223#define ZFMETHOD_DECLARE_STATIC_3(ReturnType, MethodName \
1224 , ZFMP_0 \
1225 , ZFMP_1 \
1226 , ZFMP_2 \
1227 ) \
1228 _ZFP_ZFMETHOD_DECLARE( \
1229 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1230 ReturnType, MethodName \
1231 , _ZFP_mP_EXPAND(ZFMP_0) \
1232 , _ZFP_mP_EXPAND(ZFMP_1) \
1233 , _ZFP_mP_EXPAND(ZFMP_2) \
1234 , _ZFP_ZFMP_DUMMY() \
1235 , _ZFP_ZFMP_DUMMY() \
1236 , _ZFP_ZFMP_DUMMY() \
1237 , _ZFP_ZFMP_DUMMY() \
1238 , _ZFP_ZFMP_DUMMY() \
1239 )
1241#define ZFMETHOD_DECLARE_PROTECTED_3(ReturnType, MethodName \
1242 , ZFMP_0 \
1243 , ZFMP_1 \
1244 , ZFMP_2 \
1245 ) \
1246 _ZFP_ZFMETHOD_DECLARE( \
1247 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1248 ReturnType, MethodName \
1249 , _ZFP_mP_EXPAND(ZFMP_0) \
1250 , _ZFP_mP_EXPAND(ZFMP_1) \
1251 , _ZFP_mP_EXPAND(ZFMP_2) \
1252 , _ZFP_ZFMP_DUMMY() \
1253 , _ZFP_ZFMP_DUMMY() \
1254 , _ZFP_ZFMP_DUMMY() \
1255 , _ZFP_ZFMP_DUMMY() \
1256 , _ZFP_ZFMP_DUMMY() \
1257 )
1259#define ZFMETHOD_DECLARE_DETAIL_3( \
1260 PublicOrProtectedOrPrivate, ZFMethodType_, \
1261 ReturnType, MethodName \
1262 , ZFMP_0 \
1263 , ZFMP_1 \
1264 , ZFMP_2 \
1265 ) \
1266 _ZFP_ZFMETHOD_DECLARE( \
1267 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1268 ReturnType, MethodName \
1269 , _ZFP_mP_EXPAND(ZFMP_0) \
1270 , _ZFP_mP_EXPAND(ZFMP_1) \
1271 , _ZFP_mP_EXPAND(ZFMP_2) \
1272 , _ZFP_ZFMP_DUMMY() \
1273 , _ZFP_ZFMP_DUMMY() \
1274 , _ZFP_ZFMP_DUMMY() \
1275 , _ZFP_ZFMP_DUMMY() \
1276 , _ZFP_ZFMP_DUMMY() \
1277 )
1279#define ZFMETHOD_INLINE_3(ReturnType, MethodName \
1280 , ZFMP_0 \
1281 , ZFMP_1 \
1282 , ZFMP_2 \
1283 ) \
1284 _ZFP_ZFMETHOD_INLINE( \
1285 isAutoRegister, \
1286 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1287 ReturnType, MethodName \
1288 , _ZFP_mP_EXPAND(ZFMP_0) \
1289 , _ZFP_mP_EXPAND(ZFMP_1) \
1290 , _ZFP_mP_EXPAND(ZFMP_2) \
1291 , _ZFP_ZFMP_DUMMY() \
1292 , _ZFP_ZFMP_DUMMY() \
1293 , _ZFP_ZFMP_DUMMY() \
1294 , _ZFP_ZFMP_DUMMY() \
1295 , _ZFP_ZFMP_DUMMY() \
1296 )
1298#define ZFMETHOD_INLINE_STATIC_3(ReturnType, MethodName \
1299 , ZFMP_0 \
1300 , ZFMP_1 \
1301 , ZFMP_2 \
1302 ) \
1303 _ZFP_ZFMETHOD_INLINE( \
1304 isAutoRegister, \
1305 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1306 ReturnType, MethodName \
1307 , _ZFP_mP_EXPAND(ZFMP_0) \
1308 , _ZFP_mP_EXPAND(ZFMP_1) \
1309 , _ZFP_mP_EXPAND(ZFMP_2) \
1310 , _ZFP_ZFMP_DUMMY() \
1311 , _ZFP_ZFMP_DUMMY() \
1312 , _ZFP_ZFMP_DUMMY() \
1313 , _ZFP_ZFMP_DUMMY() \
1314 , _ZFP_ZFMP_DUMMY() \
1315 )
1317#define ZFMETHOD_INLINE_PROTECTED_3(ReturnType, MethodName \
1318 , ZFMP_0 \
1319 , ZFMP_1 \
1320 , ZFMP_2 \
1321 ) \
1322 _ZFP_ZFMETHOD_INLINE( \
1323 isAutoRegister, \
1324 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1325 ReturnType, MethodName \
1326 , _ZFP_mP_EXPAND(ZFMP_0) \
1327 , _ZFP_mP_EXPAND(ZFMP_1) \
1328 , _ZFP_mP_EXPAND(ZFMP_2) \
1329 , _ZFP_ZFMP_DUMMY() \
1330 , _ZFP_ZFMP_DUMMY() \
1331 , _ZFP_ZFMP_DUMMY() \
1332 , _ZFP_ZFMP_DUMMY() \
1333 , _ZFP_ZFMP_DUMMY() \
1334 )
1336#define ZFMETHOD_INLINE_DETAIL_3( \
1337 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1338 ReturnType, MethodName \
1339 , ZFMP_0 \
1340 , ZFMP_1 \
1341 , ZFMP_2 \
1342 ) \
1343 _ZFP_ZFMETHOD_INLINE( \
1344 isAutoRegister, \
1345 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1346 ReturnType, MethodName \
1347 , _ZFP_mP_EXPAND(ZFMP_0) \
1348 , _ZFP_mP_EXPAND(ZFMP_1) \
1349 , _ZFP_mP_EXPAND(ZFMP_2) \
1350 , _ZFP_ZFMP_DUMMY() \
1351 , _ZFP_ZFMP_DUMMY() \
1352 , _ZFP_ZFMP_DUMMY() \
1353 , _ZFP_ZFMP_DUMMY() \
1354 , _ZFP_ZFMP_DUMMY() \
1355 )
1357#define ZFMETHOD_DEFINE_3(OwnerClass, \
1358 ReturnType, MethodName \
1359 , ZFMP_0 \
1360 , ZFMP_1 \
1361 , ZFMP_2 \
1362 ) \
1363 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1364 ReturnType, MethodName \
1365 , _ZFP_mP_EXPAND(ZFMP_0) \
1366 , _ZFP_mP_EXPAND(ZFMP_1) \
1367 , _ZFP_mP_EXPAND(ZFMP_2) \
1368 , _ZFP_ZFMP_DUMMY() \
1369 , _ZFP_ZFMP_DUMMY() \
1370 , _ZFP_ZFMP_DUMMY() \
1371 , _ZFP_ZFMP_DUMMY() \
1372 , _ZFP_ZFMP_DUMMY() \
1373 )
1375#define ZFMETHOD_DEFINE_DETAIL_3(OwnerClass, RegSig, \
1376 ReturnType, MethodName \
1377 , ZFMP_0 \
1378 , ZFMP_1 \
1379 , ZFMP_2 \
1380 ) \
1381 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1382 ReturnType, MethodName \
1383 , _ZFP_mP_EXPAND(ZFMP_0) \
1384 , _ZFP_mP_EXPAND(ZFMP_1) \
1385 , _ZFP_mP_EXPAND(ZFMP_2) \
1386 , _ZFP_ZFMP_DUMMY() \
1387 , _ZFP_ZFMP_DUMMY() \
1388 , _ZFP_ZFMP_DUMMY() \
1389 , _ZFP_ZFMP_DUMMY() \
1390 , _ZFP_ZFMP_DUMMY() \
1391 )
1392
1393// ============================================================
1394// 4 param method declare
1396#define ZFMETHOD_DECLARE_4(ReturnType, MethodName \
1397 , ZFMP_0 \
1398 , ZFMP_1 \
1399 , ZFMP_2 \
1400 , ZFMP_3 \
1401 ) \
1402 _ZFP_ZFMETHOD_DECLARE( \
1403 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1404 ReturnType, MethodName \
1405 , _ZFP_mP_EXPAND(ZFMP_0) \
1406 , _ZFP_mP_EXPAND(ZFMP_1) \
1407 , _ZFP_mP_EXPAND(ZFMP_2) \
1408 , _ZFP_mP_EXPAND(ZFMP_3) \
1409 , _ZFP_ZFMP_DUMMY() \
1410 , _ZFP_ZFMP_DUMMY() \
1411 , _ZFP_ZFMP_DUMMY() \
1412 , _ZFP_ZFMP_DUMMY() \
1413 )
1415#define ZFMETHOD_DECLARE_STATIC_4(ReturnType, MethodName \
1416 , ZFMP_0 \
1417 , ZFMP_1 \
1418 , ZFMP_2 \
1419 , ZFMP_3 \
1420 ) \
1421 _ZFP_ZFMETHOD_DECLARE( \
1422 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1423 ReturnType, MethodName \
1424 , _ZFP_mP_EXPAND(ZFMP_0) \
1425 , _ZFP_mP_EXPAND(ZFMP_1) \
1426 , _ZFP_mP_EXPAND(ZFMP_2) \
1427 , _ZFP_mP_EXPAND(ZFMP_3) \
1428 , _ZFP_ZFMP_DUMMY() \
1429 , _ZFP_ZFMP_DUMMY() \
1430 , _ZFP_ZFMP_DUMMY() \
1431 , _ZFP_ZFMP_DUMMY() \
1432 )
1434#define ZFMETHOD_DECLARE_PROTECTED_4(ReturnType, MethodName \
1435 , ZFMP_0 \
1436 , ZFMP_1 \
1437 , ZFMP_2 \
1438 , ZFMP_3 \
1439 ) \
1440 _ZFP_ZFMETHOD_DECLARE( \
1441 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1442 ReturnType, MethodName \
1443 , _ZFP_mP_EXPAND(ZFMP_0) \
1444 , _ZFP_mP_EXPAND(ZFMP_1) \
1445 , _ZFP_mP_EXPAND(ZFMP_2) \
1446 , _ZFP_mP_EXPAND(ZFMP_3) \
1447 , _ZFP_ZFMP_DUMMY() \
1448 , _ZFP_ZFMP_DUMMY() \
1449 , _ZFP_ZFMP_DUMMY() \
1450 , _ZFP_ZFMP_DUMMY() \
1451 )
1453#define ZFMETHOD_DECLARE_DETAIL_4( \
1454 PublicOrProtectedOrPrivate, ZFMethodType_, \
1455 ReturnType, MethodName \
1456 , ZFMP_0 \
1457 , ZFMP_1 \
1458 , ZFMP_2 \
1459 , ZFMP_3 \
1460 ) \
1461 _ZFP_ZFMETHOD_DECLARE( \
1462 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1463 ReturnType, MethodName \
1464 , _ZFP_mP_EXPAND(ZFMP_0) \
1465 , _ZFP_mP_EXPAND(ZFMP_1) \
1466 , _ZFP_mP_EXPAND(ZFMP_2) \
1467 , _ZFP_mP_EXPAND(ZFMP_3) \
1468 , _ZFP_ZFMP_DUMMY() \
1469 , _ZFP_ZFMP_DUMMY() \
1470 , _ZFP_ZFMP_DUMMY() \
1471 , _ZFP_ZFMP_DUMMY() \
1472 )
1474#define ZFMETHOD_INLINE_4(ReturnType, MethodName \
1475 , ZFMP_0 \
1476 , ZFMP_1 \
1477 , ZFMP_2 \
1478 , ZFMP_3 \
1479 ) \
1480 _ZFP_ZFMETHOD_INLINE( \
1481 isAutoRegister, \
1482 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1483 ReturnType, MethodName \
1484 , _ZFP_mP_EXPAND(ZFMP_0) \
1485 , _ZFP_mP_EXPAND(ZFMP_1) \
1486 , _ZFP_mP_EXPAND(ZFMP_2) \
1487 , _ZFP_mP_EXPAND(ZFMP_3) \
1488 , _ZFP_ZFMP_DUMMY() \
1489 , _ZFP_ZFMP_DUMMY() \
1490 , _ZFP_ZFMP_DUMMY() \
1491 , _ZFP_ZFMP_DUMMY() \
1492 )
1494#define ZFMETHOD_INLINE_STATIC_4(ReturnType, MethodName \
1495 , ZFMP_0 \
1496 , ZFMP_1 \
1497 , ZFMP_2 \
1498 , ZFMP_3 \
1499 ) \
1500 _ZFP_ZFMETHOD_INLINE( \
1501 isAutoRegister, \
1502 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1503 ReturnType, MethodName \
1504 , _ZFP_mP_EXPAND(ZFMP_0) \
1505 , _ZFP_mP_EXPAND(ZFMP_1) \
1506 , _ZFP_mP_EXPAND(ZFMP_2) \
1507 , _ZFP_mP_EXPAND(ZFMP_3) \
1508 , _ZFP_ZFMP_DUMMY() \
1509 , _ZFP_ZFMP_DUMMY() \
1510 , _ZFP_ZFMP_DUMMY() \
1511 , _ZFP_ZFMP_DUMMY() \
1512 )
1514#define ZFMETHOD_INLINE_PROTECTED_4(ReturnType, MethodName \
1515 , ZFMP_0 \
1516 , ZFMP_1 \
1517 , ZFMP_2 \
1518 , ZFMP_3 \
1519 ) \
1520 _ZFP_ZFMETHOD_INLINE( \
1521 isAutoRegister, \
1522 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1523 ReturnType, MethodName \
1524 , _ZFP_mP_EXPAND(ZFMP_0) \
1525 , _ZFP_mP_EXPAND(ZFMP_1) \
1526 , _ZFP_mP_EXPAND(ZFMP_2) \
1527 , _ZFP_mP_EXPAND(ZFMP_3) \
1528 , _ZFP_ZFMP_DUMMY() \
1529 , _ZFP_ZFMP_DUMMY() \
1530 , _ZFP_ZFMP_DUMMY() \
1531 , _ZFP_ZFMP_DUMMY() \
1532 )
1534#define ZFMETHOD_INLINE_DETAIL_4( \
1535 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1536 ReturnType, MethodName \
1537 , ZFMP_0 \
1538 , ZFMP_1 \
1539 , ZFMP_2 \
1540 , ZFMP_3 \
1541 ) \
1542 _ZFP_ZFMETHOD_INLINE( \
1543 isAutoRegister, \
1544 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1545 ReturnType, MethodName \
1546 , _ZFP_mP_EXPAND(ZFMP_0) \
1547 , _ZFP_mP_EXPAND(ZFMP_1) \
1548 , _ZFP_mP_EXPAND(ZFMP_2) \
1549 , _ZFP_mP_EXPAND(ZFMP_3) \
1550 , _ZFP_ZFMP_DUMMY() \
1551 , _ZFP_ZFMP_DUMMY() \
1552 , _ZFP_ZFMP_DUMMY() \
1553 , _ZFP_ZFMP_DUMMY() \
1554 )
1556#define ZFMETHOD_DEFINE_4(OwnerClass, \
1557 ReturnType, MethodName \
1558 , ZFMP_0 \
1559 , ZFMP_1 \
1560 , ZFMP_2 \
1561 , ZFMP_3 \
1562 ) \
1563 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1564 ReturnType, MethodName \
1565 , _ZFP_mP_EXPAND(ZFMP_0) \
1566 , _ZFP_mP_EXPAND(ZFMP_1) \
1567 , _ZFP_mP_EXPAND(ZFMP_2) \
1568 , _ZFP_mP_EXPAND(ZFMP_3) \
1569 , _ZFP_ZFMP_DUMMY() \
1570 , _ZFP_ZFMP_DUMMY() \
1571 , _ZFP_ZFMP_DUMMY() \
1572 , _ZFP_ZFMP_DUMMY() \
1573 )
1575#define ZFMETHOD_DEFINE_DETAIL_4(OwnerClass, RegSig, \
1576 ReturnType, MethodName \
1577 , ZFMP_0 \
1578 , ZFMP_1 \
1579 , ZFMP_2 \
1580 , ZFMP_3 \
1581 ) \
1582 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1583 ReturnType, MethodName \
1584 , _ZFP_mP_EXPAND(ZFMP_0) \
1585 , _ZFP_mP_EXPAND(ZFMP_1) \
1586 , _ZFP_mP_EXPAND(ZFMP_2) \
1587 , _ZFP_mP_EXPAND(ZFMP_3) \
1588 , _ZFP_ZFMP_DUMMY() \
1589 , _ZFP_ZFMP_DUMMY() \
1590 , _ZFP_ZFMP_DUMMY() \
1591 , _ZFP_ZFMP_DUMMY() \
1592 )
1593
1594// ============================================================
1595// 5 param method declare
1597#define ZFMETHOD_DECLARE_5(ReturnType, MethodName \
1598 , ZFMP_0 \
1599 , ZFMP_1 \
1600 , ZFMP_2 \
1601 , ZFMP_3 \
1602 , ZFMP_4 \
1603 ) \
1604 _ZFP_ZFMETHOD_DECLARE( \
1605 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1606 ReturnType, MethodName \
1607 , _ZFP_mP_EXPAND(ZFMP_0) \
1608 , _ZFP_mP_EXPAND(ZFMP_1) \
1609 , _ZFP_mP_EXPAND(ZFMP_2) \
1610 , _ZFP_mP_EXPAND(ZFMP_3) \
1611 , _ZFP_mP_EXPAND(ZFMP_4) \
1612 , _ZFP_ZFMP_DUMMY() \
1613 , _ZFP_ZFMP_DUMMY() \
1614 , _ZFP_ZFMP_DUMMY() \
1615 )
1617#define ZFMETHOD_DECLARE_STATIC_5(ReturnType, MethodName \
1618 , ZFMP_0 \
1619 , ZFMP_1 \
1620 , ZFMP_2 \
1621 , ZFMP_3 \
1622 , ZFMP_4 \
1623 ) \
1624 _ZFP_ZFMETHOD_DECLARE( \
1625 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1626 ReturnType, MethodName \
1627 , _ZFP_mP_EXPAND(ZFMP_0) \
1628 , _ZFP_mP_EXPAND(ZFMP_1) \
1629 , _ZFP_mP_EXPAND(ZFMP_2) \
1630 , _ZFP_mP_EXPAND(ZFMP_3) \
1631 , _ZFP_mP_EXPAND(ZFMP_4) \
1632 , _ZFP_ZFMP_DUMMY() \
1633 , _ZFP_ZFMP_DUMMY() \
1634 , _ZFP_ZFMP_DUMMY() \
1635 )
1637#define ZFMETHOD_DECLARE_PROTECTED_5(ReturnType, MethodName \
1638 , ZFMP_0 \
1639 , ZFMP_1 \
1640 , ZFMP_2 \
1641 , ZFMP_3 \
1642 , ZFMP_4 \
1643 ) \
1644 _ZFP_ZFMETHOD_DECLARE( \
1645 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1646 ReturnType, MethodName \
1647 , _ZFP_mP_EXPAND(ZFMP_0) \
1648 , _ZFP_mP_EXPAND(ZFMP_1) \
1649 , _ZFP_mP_EXPAND(ZFMP_2) \
1650 , _ZFP_mP_EXPAND(ZFMP_3) \
1651 , _ZFP_mP_EXPAND(ZFMP_4) \
1652 , _ZFP_ZFMP_DUMMY() \
1653 , _ZFP_ZFMP_DUMMY() \
1654 , _ZFP_ZFMP_DUMMY() \
1655 )
1657#define ZFMETHOD_DECLARE_DETAIL_5( \
1658 PublicOrProtectedOrPrivate, ZFMethodType_, \
1659 ReturnType, MethodName \
1660 , ZFMP_0 \
1661 , ZFMP_1 \
1662 , ZFMP_2 \
1663 , ZFMP_3 \
1664 , ZFMP_4 \
1665 ) \
1666 _ZFP_ZFMETHOD_DECLARE( \
1667 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1668 ReturnType, MethodName \
1669 , _ZFP_mP_EXPAND(ZFMP_0) \
1670 , _ZFP_mP_EXPAND(ZFMP_1) \
1671 , _ZFP_mP_EXPAND(ZFMP_2) \
1672 , _ZFP_mP_EXPAND(ZFMP_3) \
1673 , _ZFP_mP_EXPAND(ZFMP_4) \
1674 , _ZFP_ZFMP_DUMMY() \
1675 , _ZFP_ZFMP_DUMMY() \
1676 , _ZFP_ZFMP_DUMMY() \
1677 )
1679#define ZFMETHOD_INLINE_5(ReturnType, MethodName \
1680 , ZFMP_0 \
1681 , ZFMP_1 \
1682 , ZFMP_2 \
1683 , ZFMP_3 \
1684 , ZFMP_4 \
1685 ) \
1686 _ZFP_ZFMETHOD_INLINE( \
1687 isAutoRegister, \
1688 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1689 ReturnType, MethodName \
1690 , _ZFP_mP_EXPAND(ZFMP_0) \
1691 , _ZFP_mP_EXPAND(ZFMP_1) \
1692 , _ZFP_mP_EXPAND(ZFMP_2) \
1693 , _ZFP_mP_EXPAND(ZFMP_3) \
1694 , _ZFP_mP_EXPAND(ZFMP_4) \
1695 , _ZFP_ZFMP_DUMMY() \
1696 , _ZFP_ZFMP_DUMMY() \
1697 , _ZFP_ZFMP_DUMMY() \
1698 )
1700#define ZFMETHOD_INLINE_STATIC_5(ReturnType, MethodName \
1701 , ZFMP_0 \
1702 , ZFMP_1 \
1703 , ZFMP_2 \
1704 , ZFMP_3 \
1705 , ZFMP_4 \
1706 ) \
1707 _ZFP_ZFMETHOD_INLINE( \
1708 isAutoRegister, \
1709 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1710 ReturnType, MethodName \
1711 , _ZFP_mP_EXPAND(ZFMP_0) \
1712 , _ZFP_mP_EXPAND(ZFMP_1) \
1713 , _ZFP_mP_EXPAND(ZFMP_2) \
1714 , _ZFP_mP_EXPAND(ZFMP_3) \
1715 , _ZFP_mP_EXPAND(ZFMP_4) \
1716 , _ZFP_ZFMP_DUMMY() \
1717 , _ZFP_ZFMP_DUMMY() \
1718 , _ZFP_ZFMP_DUMMY() \
1719 )
1721#define ZFMETHOD_INLINE_PROTECTED_5(ReturnType, MethodName \
1722 , ZFMP_0 \
1723 , ZFMP_1 \
1724 , ZFMP_2 \
1725 , ZFMP_3 \
1726 , ZFMP_4 \
1727 ) \
1728 _ZFP_ZFMETHOD_INLINE( \
1729 isAutoRegister, \
1730 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1731 ReturnType, MethodName \
1732 , _ZFP_mP_EXPAND(ZFMP_0) \
1733 , _ZFP_mP_EXPAND(ZFMP_1) \
1734 , _ZFP_mP_EXPAND(ZFMP_2) \
1735 , _ZFP_mP_EXPAND(ZFMP_3) \
1736 , _ZFP_mP_EXPAND(ZFMP_4) \
1737 , _ZFP_ZFMP_DUMMY() \
1738 , _ZFP_ZFMP_DUMMY() \
1739 , _ZFP_ZFMP_DUMMY() \
1740 )
1742#define ZFMETHOD_INLINE_DETAIL_5( \
1743 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1744 ReturnType, MethodName \
1745 , ZFMP_0 \
1746 , ZFMP_1 \
1747 , ZFMP_2 \
1748 , ZFMP_3 \
1749 , ZFMP_4 \
1750 ) \
1751 _ZFP_ZFMETHOD_INLINE( \
1752 isAutoRegister, \
1753 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1754 ReturnType, MethodName \
1755 , _ZFP_mP_EXPAND(ZFMP_0) \
1756 , _ZFP_mP_EXPAND(ZFMP_1) \
1757 , _ZFP_mP_EXPAND(ZFMP_2) \
1758 , _ZFP_mP_EXPAND(ZFMP_3) \
1759 , _ZFP_mP_EXPAND(ZFMP_4) \
1760 , _ZFP_ZFMP_DUMMY() \
1761 , _ZFP_ZFMP_DUMMY() \
1762 , _ZFP_ZFMP_DUMMY() \
1763 )
1765#define ZFMETHOD_DEFINE_5(OwnerClass, \
1766 ReturnType, MethodName \
1767 , ZFMP_0 \
1768 , ZFMP_1 \
1769 , ZFMP_2 \
1770 , ZFMP_3 \
1771 , ZFMP_4 \
1772 ) \
1773 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1774 ReturnType, MethodName \
1775 , _ZFP_mP_EXPAND(ZFMP_0) \
1776 , _ZFP_mP_EXPAND(ZFMP_1) \
1777 , _ZFP_mP_EXPAND(ZFMP_2) \
1778 , _ZFP_mP_EXPAND(ZFMP_3) \
1779 , _ZFP_mP_EXPAND(ZFMP_4) \
1780 , _ZFP_ZFMP_DUMMY() \
1781 , _ZFP_ZFMP_DUMMY() \
1782 , _ZFP_ZFMP_DUMMY() \
1783 )
1785#define ZFMETHOD_DEFINE_DETAIL_5(OwnerClass, RegSig, \
1786 ReturnType, MethodName \
1787 , ZFMP_0 \
1788 , ZFMP_1 \
1789 , ZFMP_2 \
1790 , ZFMP_3 \
1791 , ZFMP_4 \
1792 ) \
1793 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
1794 ReturnType, MethodName \
1795 , _ZFP_mP_EXPAND(ZFMP_0) \
1796 , _ZFP_mP_EXPAND(ZFMP_1) \
1797 , _ZFP_mP_EXPAND(ZFMP_2) \
1798 , _ZFP_mP_EXPAND(ZFMP_3) \
1799 , _ZFP_mP_EXPAND(ZFMP_4) \
1800 , _ZFP_ZFMP_DUMMY() \
1801 , _ZFP_ZFMP_DUMMY() \
1802 , _ZFP_ZFMP_DUMMY() \
1803 )
1804
1805// ============================================================
1806// 6 param method declare
1808#define ZFMETHOD_DECLARE_6(ReturnType, MethodName \
1809 , ZFMP_0 \
1810 , ZFMP_1 \
1811 , ZFMP_2 \
1812 , ZFMP_3 \
1813 , ZFMP_4 \
1814 , ZFMP_5 \
1815 ) \
1816 _ZFP_ZFMETHOD_DECLARE( \
1817 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1818 ReturnType, MethodName \
1819 , _ZFP_mP_EXPAND(ZFMP_0) \
1820 , _ZFP_mP_EXPAND(ZFMP_1) \
1821 , _ZFP_mP_EXPAND(ZFMP_2) \
1822 , _ZFP_mP_EXPAND(ZFMP_3) \
1823 , _ZFP_mP_EXPAND(ZFMP_4) \
1824 , _ZFP_mP_EXPAND(ZFMP_5) \
1825 , _ZFP_ZFMP_DUMMY() \
1826 , _ZFP_ZFMP_DUMMY() \
1827 )
1829#define ZFMETHOD_DECLARE_STATIC_6(ReturnType, MethodName \
1830 , ZFMP_0 \
1831 , ZFMP_1 \
1832 , ZFMP_2 \
1833 , ZFMP_3 \
1834 , ZFMP_4 \
1835 , ZFMP_5 \
1836 ) \
1837 _ZFP_ZFMETHOD_DECLARE( \
1838 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1839 ReturnType, MethodName \
1840 , _ZFP_mP_EXPAND(ZFMP_0) \
1841 , _ZFP_mP_EXPAND(ZFMP_1) \
1842 , _ZFP_mP_EXPAND(ZFMP_2) \
1843 , _ZFP_mP_EXPAND(ZFMP_3) \
1844 , _ZFP_mP_EXPAND(ZFMP_4) \
1845 , _ZFP_mP_EXPAND(ZFMP_5) \
1846 , _ZFP_ZFMP_DUMMY() \
1847 , _ZFP_ZFMP_DUMMY() \
1848 )
1850#define ZFMETHOD_DECLARE_PROTECTED_6(ReturnType, MethodName \
1851 , ZFMP_0 \
1852 , ZFMP_1 \
1853 , ZFMP_2 \
1854 , ZFMP_3 \
1855 , ZFMP_4 \
1856 , ZFMP_5 \
1857 ) \
1858 _ZFP_ZFMETHOD_DECLARE( \
1859 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1860 ReturnType, MethodName \
1861 , _ZFP_mP_EXPAND(ZFMP_0) \
1862 , _ZFP_mP_EXPAND(ZFMP_1) \
1863 , _ZFP_mP_EXPAND(ZFMP_2) \
1864 , _ZFP_mP_EXPAND(ZFMP_3) \
1865 , _ZFP_mP_EXPAND(ZFMP_4) \
1866 , _ZFP_mP_EXPAND(ZFMP_5) \
1867 , _ZFP_ZFMP_DUMMY() \
1868 , _ZFP_ZFMP_DUMMY() \
1869 )
1871#define ZFMETHOD_DECLARE_DETAIL_6( \
1872 PublicOrProtectedOrPrivate, ZFMethodType_, \
1873 ReturnType, MethodName \
1874 , ZFMP_0 \
1875 , ZFMP_1 \
1876 , ZFMP_2 \
1877 , ZFMP_3 \
1878 , ZFMP_4 \
1879 , ZFMP_5 \
1880 ) \
1881 _ZFP_ZFMETHOD_DECLARE( \
1882 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
1883 ReturnType, MethodName \
1884 , _ZFP_mP_EXPAND(ZFMP_0) \
1885 , _ZFP_mP_EXPAND(ZFMP_1) \
1886 , _ZFP_mP_EXPAND(ZFMP_2) \
1887 , _ZFP_mP_EXPAND(ZFMP_3) \
1888 , _ZFP_mP_EXPAND(ZFMP_4) \
1889 , _ZFP_mP_EXPAND(ZFMP_5) \
1890 , _ZFP_ZFMP_DUMMY() \
1891 , _ZFP_ZFMP_DUMMY() \
1892 )
1894#define ZFMETHOD_INLINE_6(ReturnType, MethodName \
1895 , ZFMP_0 \
1896 , ZFMP_1 \
1897 , ZFMP_2 \
1898 , ZFMP_3 \
1899 , ZFMP_4 \
1900 , ZFMP_5 \
1901 ) \
1902 _ZFP_ZFMETHOD_INLINE( \
1903 isAutoRegister, \
1904 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1905 ReturnType, MethodName \
1906 , _ZFP_mP_EXPAND(ZFMP_0) \
1907 , _ZFP_mP_EXPAND(ZFMP_1) \
1908 , _ZFP_mP_EXPAND(ZFMP_2) \
1909 , _ZFP_mP_EXPAND(ZFMP_3) \
1910 , _ZFP_mP_EXPAND(ZFMP_4) \
1911 , _ZFP_mP_EXPAND(ZFMP_5) \
1912 , _ZFP_ZFMP_DUMMY() \
1913 , _ZFP_ZFMP_DUMMY() \
1914 )
1916#define ZFMETHOD_INLINE_STATIC_6(ReturnType, MethodName \
1917 , ZFMP_0 \
1918 , ZFMP_1 \
1919 , ZFMP_2 \
1920 , ZFMP_3 \
1921 , ZFMP_4 \
1922 , ZFMP_5 \
1923 ) \
1924 _ZFP_ZFMETHOD_INLINE( \
1925 isAutoRegister, \
1926 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
1927 ReturnType, MethodName \
1928 , _ZFP_mP_EXPAND(ZFMP_0) \
1929 , _ZFP_mP_EXPAND(ZFMP_1) \
1930 , _ZFP_mP_EXPAND(ZFMP_2) \
1931 , _ZFP_mP_EXPAND(ZFMP_3) \
1932 , _ZFP_mP_EXPAND(ZFMP_4) \
1933 , _ZFP_mP_EXPAND(ZFMP_5) \
1934 , _ZFP_ZFMP_DUMMY() \
1935 , _ZFP_ZFMP_DUMMY() \
1936 )
1938#define ZFMETHOD_INLINE_PROTECTED_6(ReturnType, MethodName \
1939 , ZFMP_0 \
1940 , ZFMP_1 \
1941 , ZFMP_2 \
1942 , ZFMP_3 \
1943 , ZFMP_4 \
1944 , ZFMP_5 \
1945 ) \
1946 _ZFP_ZFMETHOD_INLINE( \
1947 isAutoRegister, \
1948 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
1949 ReturnType, MethodName \
1950 , _ZFP_mP_EXPAND(ZFMP_0) \
1951 , _ZFP_mP_EXPAND(ZFMP_1) \
1952 , _ZFP_mP_EXPAND(ZFMP_2) \
1953 , _ZFP_mP_EXPAND(ZFMP_3) \
1954 , _ZFP_mP_EXPAND(ZFMP_4) \
1955 , _ZFP_mP_EXPAND(ZFMP_5) \
1956 , _ZFP_ZFMP_DUMMY() \
1957 , _ZFP_ZFMP_DUMMY() \
1958 )
1960#define ZFMETHOD_INLINE_DETAIL_6( \
1961 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1962 ReturnType, MethodName \
1963 , ZFMP_0 \
1964 , ZFMP_1 \
1965 , ZFMP_2 \
1966 , ZFMP_3 \
1967 , ZFMP_4 \
1968 , ZFMP_5 \
1969 ) \
1970 _ZFP_ZFMETHOD_INLINE( \
1971 isAutoRegister, \
1972 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1973 ReturnType, MethodName \
1974 , _ZFP_mP_EXPAND(ZFMP_0) \
1975 , _ZFP_mP_EXPAND(ZFMP_1) \
1976 , _ZFP_mP_EXPAND(ZFMP_2) \
1977 , _ZFP_mP_EXPAND(ZFMP_3) \
1978 , _ZFP_mP_EXPAND(ZFMP_4) \
1979 , _ZFP_mP_EXPAND(ZFMP_5) \
1980 , _ZFP_ZFMP_DUMMY() \
1981 , _ZFP_ZFMP_DUMMY() \
1982 )
1984#define ZFMETHOD_DEFINE_6(OwnerClass, \
1985 ReturnType, MethodName \
1986 , ZFMP_0 \
1987 , ZFMP_1 \
1988 , ZFMP_2 \
1989 , ZFMP_3 \
1990 , ZFMP_4 \
1991 , ZFMP_5 \
1992 ) \
1993 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
1994 ReturnType, MethodName \
1995 , _ZFP_mP_EXPAND(ZFMP_0) \
1996 , _ZFP_mP_EXPAND(ZFMP_1) \
1997 , _ZFP_mP_EXPAND(ZFMP_2) \
1998 , _ZFP_mP_EXPAND(ZFMP_3) \
1999 , _ZFP_mP_EXPAND(ZFMP_4) \
2000 , _ZFP_mP_EXPAND(ZFMP_5) \
2001 , _ZFP_ZFMP_DUMMY() \
2002 , _ZFP_ZFMP_DUMMY() \
2003 )
2005#define ZFMETHOD_DEFINE_DETAIL_6(OwnerClass, RegSig, \
2006 ReturnType, MethodName \
2007 , ZFMP_0 \
2008 , ZFMP_1 \
2009 , ZFMP_2 \
2010 , ZFMP_3 \
2011 , ZFMP_4 \
2012 , ZFMP_5 \
2013 ) \
2014 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2015 ReturnType, MethodName \
2016 , _ZFP_mP_EXPAND(ZFMP_0) \
2017 , _ZFP_mP_EXPAND(ZFMP_1) \
2018 , _ZFP_mP_EXPAND(ZFMP_2) \
2019 , _ZFP_mP_EXPAND(ZFMP_3) \
2020 , _ZFP_mP_EXPAND(ZFMP_4) \
2021 , _ZFP_mP_EXPAND(ZFMP_5) \
2022 , _ZFP_ZFMP_DUMMY() \
2023 , _ZFP_ZFMP_DUMMY() \
2024 )
2025
2026// ============================================================
2027// 7 param method declare
2029#define ZFMETHOD_DECLARE_7(ReturnType, MethodName \
2030 , ZFMP_0 \
2031 , ZFMP_1 \
2032 , ZFMP_2 \
2033 , ZFMP_3 \
2034 , ZFMP_4 \
2035 , ZFMP_5 \
2036 , ZFMP_6 \
2037 ) \
2038 _ZFP_ZFMETHOD_DECLARE( \
2039 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2040 ReturnType, MethodName \
2041 , _ZFP_mP_EXPAND(ZFMP_0) \
2042 , _ZFP_mP_EXPAND(ZFMP_1) \
2043 , _ZFP_mP_EXPAND(ZFMP_2) \
2044 , _ZFP_mP_EXPAND(ZFMP_3) \
2045 , _ZFP_mP_EXPAND(ZFMP_4) \
2046 , _ZFP_mP_EXPAND(ZFMP_5) \
2047 , _ZFP_mP_EXPAND(ZFMP_6) \
2048 , _ZFP_ZFMP_DUMMY() \
2049 )
2051#define ZFMETHOD_DECLARE_STATIC_7(ReturnType, MethodName \
2052 , ZFMP_0 \
2053 , ZFMP_1 \
2054 , ZFMP_2 \
2055 , ZFMP_3 \
2056 , ZFMP_4 \
2057 , ZFMP_5 \
2058 , ZFMP_6 \
2059 ) \
2060 _ZFP_ZFMETHOD_DECLARE( \
2061 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2062 ReturnType, MethodName \
2063 , _ZFP_mP_EXPAND(ZFMP_0) \
2064 , _ZFP_mP_EXPAND(ZFMP_1) \
2065 , _ZFP_mP_EXPAND(ZFMP_2) \
2066 , _ZFP_mP_EXPAND(ZFMP_3) \
2067 , _ZFP_mP_EXPAND(ZFMP_4) \
2068 , _ZFP_mP_EXPAND(ZFMP_5) \
2069 , _ZFP_mP_EXPAND(ZFMP_6) \
2070 , _ZFP_ZFMP_DUMMY() \
2071 )
2073#define ZFMETHOD_DECLARE_PROTECTED_7(ReturnType, MethodName \
2074 , ZFMP_0 \
2075 , ZFMP_1 \
2076 , ZFMP_2 \
2077 , ZFMP_3 \
2078 , ZFMP_4 \
2079 , ZFMP_5 \
2080 , ZFMP_6 \
2081 ) \
2082 _ZFP_ZFMETHOD_DECLARE( \
2083 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2084 ReturnType, MethodName \
2085 , _ZFP_mP_EXPAND(ZFMP_0) \
2086 , _ZFP_mP_EXPAND(ZFMP_1) \
2087 , _ZFP_mP_EXPAND(ZFMP_2) \
2088 , _ZFP_mP_EXPAND(ZFMP_3) \
2089 , _ZFP_mP_EXPAND(ZFMP_4) \
2090 , _ZFP_mP_EXPAND(ZFMP_5) \
2091 , _ZFP_mP_EXPAND(ZFMP_6) \
2092 , _ZFP_ZFMP_DUMMY() \
2093 )
2095#define ZFMETHOD_DECLARE_DETAIL_7( \
2096 PublicOrProtectedOrPrivate, ZFMethodType_, \
2097 ReturnType, MethodName \
2098 , ZFMP_0 \
2099 , ZFMP_1 \
2100 , ZFMP_2 \
2101 , ZFMP_3 \
2102 , ZFMP_4 \
2103 , ZFMP_5 \
2104 , ZFMP_6 \
2105 ) \
2106 _ZFP_ZFMETHOD_DECLARE( \
2107 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2108 ReturnType, MethodName \
2109 , _ZFP_mP_EXPAND(ZFMP_0) \
2110 , _ZFP_mP_EXPAND(ZFMP_1) \
2111 , _ZFP_mP_EXPAND(ZFMP_2) \
2112 , _ZFP_mP_EXPAND(ZFMP_3) \
2113 , _ZFP_mP_EXPAND(ZFMP_4) \
2114 , _ZFP_mP_EXPAND(ZFMP_5) \
2115 , _ZFP_mP_EXPAND(ZFMP_6) \
2116 , _ZFP_ZFMP_DUMMY() \
2117 )
2119#define ZFMETHOD_INLINE_7(ReturnType, MethodName \
2120 , ZFMP_0 \
2121 , ZFMP_1 \
2122 , ZFMP_2 \
2123 , ZFMP_3 \
2124 , ZFMP_4 \
2125 , ZFMP_5 \
2126 , ZFMP_6 \
2127 ) \
2128 _ZFP_ZFMETHOD_INLINE( \
2129 isAutoRegister, \
2130 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2131 ReturnType, MethodName \
2132 , _ZFP_mP_EXPAND(ZFMP_0) \
2133 , _ZFP_mP_EXPAND(ZFMP_1) \
2134 , _ZFP_mP_EXPAND(ZFMP_2) \
2135 , _ZFP_mP_EXPAND(ZFMP_3) \
2136 , _ZFP_mP_EXPAND(ZFMP_4) \
2137 , _ZFP_mP_EXPAND(ZFMP_5) \
2138 , _ZFP_mP_EXPAND(ZFMP_6) \
2139 , _ZFP_ZFMP_DUMMY() \
2140 )
2142#define ZFMETHOD_INLINE_STATIC_7(ReturnType, MethodName \
2143 , ZFMP_0 \
2144 , ZFMP_1 \
2145 , ZFMP_2 \
2146 , ZFMP_3 \
2147 , ZFMP_4 \
2148 , ZFMP_5 \
2149 , ZFMP_6 \
2150 ) \
2151 _ZFP_ZFMETHOD_INLINE( \
2152 isAutoRegister, \
2153 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
2154 ReturnType, MethodName \
2155 , _ZFP_mP_EXPAND(ZFMP_0) \
2156 , _ZFP_mP_EXPAND(ZFMP_1) \
2157 , _ZFP_mP_EXPAND(ZFMP_2) \
2158 , _ZFP_mP_EXPAND(ZFMP_3) \
2159 , _ZFP_mP_EXPAND(ZFMP_4) \
2160 , _ZFP_mP_EXPAND(ZFMP_5) \
2161 , _ZFP_mP_EXPAND(ZFMP_6) \
2162 , _ZFP_ZFMP_DUMMY() \
2163 )
2165#define ZFMETHOD_INLINE_PROTECTED_7(ReturnType, MethodName \
2166 , ZFMP_0 \
2167 , ZFMP_1 \
2168 , ZFMP_2 \
2169 , ZFMP_3 \
2170 , ZFMP_4 \
2171 , ZFMP_5 \
2172 , ZFMP_6 \
2173 ) \
2174 _ZFP_ZFMETHOD_INLINE( \
2175 isAutoRegister, \
2176 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2177 ReturnType, MethodName \
2178 , _ZFP_mP_EXPAND(ZFMP_0) \
2179 , _ZFP_mP_EXPAND(ZFMP_1) \
2180 , _ZFP_mP_EXPAND(ZFMP_2) \
2181 , _ZFP_mP_EXPAND(ZFMP_3) \
2182 , _ZFP_mP_EXPAND(ZFMP_4) \
2183 , _ZFP_mP_EXPAND(ZFMP_5) \
2184 , _ZFP_mP_EXPAND(ZFMP_6) \
2185 , _ZFP_ZFMP_DUMMY() \
2186 )
2188#define ZFMETHOD_INLINE_DETAIL_7( \
2189 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2190 ReturnType, MethodName \
2191 , ZFMP_0 \
2192 , ZFMP_1 \
2193 , ZFMP_2 \
2194 , ZFMP_3 \
2195 , ZFMP_4 \
2196 , ZFMP_5 \
2197 , ZFMP_6 \
2198 ) \
2199 _ZFP_ZFMETHOD_INLINE( \
2200 isAutoRegister, \
2201 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2202 ReturnType, MethodName \
2203 , _ZFP_mP_EXPAND(ZFMP_0) \
2204 , _ZFP_mP_EXPAND(ZFMP_1) \
2205 , _ZFP_mP_EXPAND(ZFMP_2) \
2206 , _ZFP_mP_EXPAND(ZFMP_3) \
2207 , _ZFP_mP_EXPAND(ZFMP_4) \
2208 , _ZFP_mP_EXPAND(ZFMP_5) \
2209 , _ZFP_mP_EXPAND(ZFMP_6) \
2210 , _ZFP_ZFMP_DUMMY() \
2211 )
2213#define ZFMETHOD_DEFINE_7(OwnerClass, \
2214 ReturnType, MethodName \
2215 , ZFMP_0 \
2216 , ZFMP_1 \
2217 , ZFMP_2 \
2218 , ZFMP_3 \
2219 , ZFMP_4 \
2220 , ZFMP_5 \
2221 , ZFMP_6 \
2222 ) \
2223 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
2224 ReturnType, MethodName \
2225 , _ZFP_mP_EXPAND(ZFMP_0) \
2226 , _ZFP_mP_EXPAND(ZFMP_1) \
2227 , _ZFP_mP_EXPAND(ZFMP_2) \
2228 , _ZFP_mP_EXPAND(ZFMP_3) \
2229 , _ZFP_mP_EXPAND(ZFMP_4) \
2230 , _ZFP_mP_EXPAND(ZFMP_5) \
2231 , _ZFP_mP_EXPAND(ZFMP_6) \
2232 , _ZFP_ZFMP_DUMMY() \
2233 )
2235#define ZFMETHOD_DEFINE_DETAIL_7(OwnerClass, RegSig, \
2236 ReturnType, MethodName \
2237 , ZFMP_0 \
2238 , ZFMP_1 \
2239 , ZFMP_2 \
2240 , ZFMP_3 \
2241 , ZFMP_4 \
2242 , ZFMP_5 \
2243 , ZFMP_6 \
2244 ) \
2245 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2246 ReturnType, MethodName \
2247 , _ZFP_mP_EXPAND(ZFMP_0) \
2248 , _ZFP_mP_EXPAND(ZFMP_1) \
2249 , _ZFP_mP_EXPAND(ZFMP_2) \
2250 , _ZFP_mP_EXPAND(ZFMP_3) \
2251 , _ZFP_mP_EXPAND(ZFMP_4) \
2252 , _ZFP_mP_EXPAND(ZFMP_5) \
2253 , _ZFP_mP_EXPAND(ZFMP_6) \
2254 , _ZFP_ZFMP_DUMMY() \
2255 )
2256
2257// ============================================================
2258// 8 param method declare
2260#define ZFMETHOD_DECLARE_8(ReturnType, MethodName \
2261 , ZFMP_0 \
2262 , ZFMP_1 \
2263 , ZFMP_2 \
2264 , ZFMP_3 \
2265 , ZFMP_4 \
2266 , ZFMP_5 \
2267 , ZFMP_6 \
2268 , ZFMP_7 \
2269 ) \
2270 _ZFP_ZFMETHOD_DECLARE( \
2271 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2272 ReturnType, MethodName \
2273 , _ZFP_mP_EXPAND(ZFMP_0) \
2274 , _ZFP_mP_EXPAND(ZFMP_1) \
2275 , _ZFP_mP_EXPAND(ZFMP_2) \
2276 , _ZFP_mP_EXPAND(ZFMP_3) \
2277 , _ZFP_mP_EXPAND(ZFMP_4) \
2278 , _ZFP_mP_EXPAND(ZFMP_5) \
2279 , _ZFP_mP_EXPAND(ZFMP_6) \
2280 , _ZFP_mP_EXPAND(ZFMP_7) \
2281 )
2283#define ZFMETHOD_DECLARE_STATIC_8(ReturnType, MethodName \
2284 , ZFMP_0 \
2285 , ZFMP_1 \
2286 , ZFMP_2 \
2287 , ZFMP_3 \
2288 , ZFMP_4 \
2289 , ZFMP_5 \
2290 , ZFMP_6 \
2291 , ZFMP_7 \
2292 ) \
2293 _ZFP_ZFMETHOD_DECLARE( \
2294 public, ZFMethodTypeStatic, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2295 ReturnType, MethodName \
2296 , _ZFP_mP_EXPAND(ZFMP_0) \
2297 , _ZFP_mP_EXPAND(ZFMP_1) \
2298 , _ZFP_mP_EXPAND(ZFMP_2) \
2299 , _ZFP_mP_EXPAND(ZFMP_3) \
2300 , _ZFP_mP_EXPAND(ZFMP_4) \
2301 , _ZFP_mP_EXPAND(ZFMP_5) \
2302 , _ZFP_mP_EXPAND(ZFMP_6) \
2303 , _ZFP_mP_EXPAND(ZFMP_7) \
2304 )
2306#define ZFMETHOD_DECLARE_PROTECTED_8(ReturnType, MethodName \
2307 , ZFMP_0 \
2308 , ZFMP_1 \
2309 , ZFMP_2 \
2310 , ZFMP_3 \
2311 , ZFMP_4 \
2312 , ZFMP_5 \
2313 , ZFMP_6 \
2314 , ZFMP_7 \
2315 ) \
2316 _ZFP_ZFMETHOD_DECLARE( \
2317 protected, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2318 ReturnType, MethodName \
2319 , _ZFP_mP_EXPAND(ZFMP_0) \
2320 , _ZFP_mP_EXPAND(ZFMP_1) \
2321 , _ZFP_mP_EXPAND(ZFMP_2) \
2322 , _ZFP_mP_EXPAND(ZFMP_3) \
2323 , _ZFP_mP_EXPAND(ZFMP_4) \
2324 , _ZFP_mP_EXPAND(ZFMP_5) \
2325 , _ZFP_mP_EXPAND(ZFMP_6) \
2326 , _ZFP_mP_EXPAND(ZFMP_7) \
2327 )
2329#define ZFMETHOD_DECLARE_DETAIL_8( \
2330 PublicOrProtectedOrPrivate, ZFMethodType_, \
2331 ReturnType, MethodName \
2332 , ZFMP_0 \
2333 , ZFMP_1 \
2334 , ZFMP_2 \
2335 , ZFMP_3 \
2336 , ZFMP_4 \
2337 , ZFMP_5 \
2338 , ZFMP_6 \
2339 , ZFMP_7 \
2340 ) \
2341 _ZFP_ZFMETHOD_DECLARE( \
2342 PublicOrProtectedOrPrivate, ZFMethodType_, _ZFP_ZFMETHOD_DECLARE_notPureVirtual, \
2343 ReturnType, MethodName \
2344 , _ZFP_mP_EXPAND(ZFMP_0) \
2345 , _ZFP_mP_EXPAND(ZFMP_1) \
2346 , _ZFP_mP_EXPAND(ZFMP_2) \
2347 , _ZFP_mP_EXPAND(ZFMP_3) \
2348 , _ZFP_mP_EXPAND(ZFMP_4) \
2349 , _ZFP_mP_EXPAND(ZFMP_5) \
2350 , _ZFP_mP_EXPAND(ZFMP_6) \
2351 , _ZFP_mP_EXPAND(ZFMP_7) \
2352 )
2354#define ZFMETHOD_INLINE_8(ReturnType, MethodName \
2355 , ZFMP_0 \
2356 , ZFMP_1 \
2357 , ZFMP_2 \
2358 , ZFMP_3 \
2359 , ZFMP_4 \
2360 , ZFMP_5 \
2361 , ZFMP_6 \
2362 , ZFMP_7 \
2363 ) \
2364 _ZFP_ZFMETHOD_INLINE( \
2365 isAutoRegister, \
2366 public, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2367 ReturnType, MethodName \
2368 , _ZFP_mP_EXPAND(ZFMP_0) \
2369 , _ZFP_mP_EXPAND(ZFMP_1) \
2370 , _ZFP_mP_EXPAND(ZFMP_2) \
2371 , _ZFP_mP_EXPAND(ZFMP_3) \
2372 , _ZFP_mP_EXPAND(ZFMP_4) \
2373 , _ZFP_mP_EXPAND(ZFMP_5) \
2374 , _ZFP_mP_EXPAND(ZFMP_6) \
2375 , _ZFP_mP_EXPAND(ZFMP_7) \
2376 )
2378#define ZFMETHOD_INLINE_STATIC_8(ReturnType, MethodName \
2379 , ZFMP_0 \
2380 , ZFMP_1 \
2381 , ZFMP_2 \
2382 , ZFMP_3 \
2383 , ZFMP_4 \
2384 , ZFMP_5 \
2385 , ZFMP_6 \
2386 , ZFMP_7 \
2387 ) \
2388 _ZFP_ZFMETHOD_INLINE( \
2389 isAutoRegister, \
2390 public, ZFMethodTypeStatic, ZF_CALLER_LINE, \
2391 ReturnType, MethodName \
2392 , _ZFP_mP_EXPAND(ZFMP_0) \
2393 , _ZFP_mP_EXPAND(ZFMP_1) \
2394 , _ZFP_mP_EXPAND(ZFMP_2) \
2395 , _ZFP_mP_EXPAND(ZFMP_3) \
2396 , _ZFP_mP_EXPAND(ZFMP_4) \
2397 , _ZFP_mP_EXPAND(ZFMP_5) \
2398 , _ZFP_mP_EXPAND(ZFMP_6) \
2399 , _ZFP_mP_EXPAND(ZFMP_7) \
2400 )
2402#define ZFMETHOD_INLINE_PROTECTED_8(ReturnType, MethodName \
2403 , ZFMP_0 \
2404 , ZFMP_1 \
2405 , ZFMP_2 \
2406 , ZFMP_3 \
2407 , ZFMP_4 \
2408 , ZFMP_5 \
2409 , ZFMP_6 \
2410 , ZFMP_7 \
2411 ) \
2412 _ZFP_ZFMETHOD_INLINE( \
2413 isAutoRegister, \
2414 protected, ZFMethodTypeVirtual, ZF_CALLER_LINE, \
2415 ReturnType, MethodName \
2416 , _ZFP_mP_EXPAND(ZFMP_0) \
2417 , _ZFP_mP_EXPAND(ZFMP_1) \
2418 , _ZFP_mP_EXPAND(ZFMP_2) \
2419 , _ZFP_mP_EXPAND(ZFMP_3) \
2420 , _ZFP_mP_EXPAND(ZFMP_4) \
2421 , _ZFP_mP_EXPAND(ZFMP_5) \
2422 , _ZFP_mP_EXPAND(ZFMP_6) \
2423 , _ZFP_mP_EXPAND(ZFMP_7) \
2424 )
2426#define ZFMETHOD_INLINE_DETAIL_8( \
2427 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2428 ReturnType, MethodName \
2429 , ZFMP_0 \
2430 , ZFMP_1 \
2431 , ZFMP_2 \
2432 , ZFMP_3 \
2433 , ZFMP_4 \
2434 , ZFMP_5 \
2435 , ZFMP_6 \
2436 , ZFMP_7 \
2437 ) \
2438 _ZFP_ZFMETHOD_INLINE( \
2439 isAutoRegister, \
2440 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2441 ReturnType, MethodName \
2442 , _ZFP_mP_EXPAND(ZFMP_0) \
2443 , _ZFP_mP_EXPAND(ZFMP_1) \
2444 , _ZFP_mP_EXPAND(ZFMP_2) \
2445 , _ZFP_mP_EXPAND(ZFMP_3) \
2446 , _ZFP_mP_EXPAND(ZFMP_4) \
2447 , _ZFP_mP_EXPAND(ZFMP_5) \
2448 , _ZFP_mP_EXPAND(ZFMP_6) \
2449 , _ZFP_mP_EXPAND(ZFMP_7) \
2450 )
2452#define ZFMETHOD_DEFINE_8(OwnerClass, \
2453 ReturnType, MethodName \
2454 , ZFMP_0 \
2455 , ZFMP_1 \
2456 , ZFMP_2 \
2457 , ZFMP_3 \
2458 , ZFMP_4 \
2459 , ZFMP_5 \
2460 , ZFMP_6 \
2461 , ZFMP_7 \
2462 ) \
2463 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, ZF_CALLER_LINE, \
2464 ReturnType, MethodName \
2465 , _ZFP_mP_EXPAND(ZFMP_0) \
2466 , _ZFP_mP_EXPAND(ZFMP_1) \
2467 , _ZFP_mP_EXPAND(ZFMP_2) \
2468 , _ZFP_mP_EXPAND(ZFMP_3) \
2469 , _ZFP_mP_EXPAND(ZFMP_4) \
2470 , _ZFP_mP_EXPAND(ZFMP_5) \
2471 , _ZFP_mP_EXPAND(ZFMP_6) \
2472 , _ZFP_mP_EXPAND(ZFMP_7) \
2473 )
2475#define ZFMETHOD_DEFINE_DETAIL_8(OwnerClass, RegSig, \
2476 ReturnType, MethodName \
2477 , ZFMP_0 \
2478 , ZFMP_1 \
2479 , ZFMP_2 \
2480 , ZFMP_3 \
2481 , ZFMP_4 \
2482 , ZFMP_5 \
2483 , ZFMP_6 \
2484 , ZFMP_7 \
2485 ) \
2486 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_notPureVirtual, RegSig, \
2487 ReturnType, MethodName \
2488 , _ZFP_mP_EXPAND(ZFMP_0) \
2489 , _ZFP_mP_EXPAND(ZFMP_1) \
2490 , _ZFP_mP_EXPAND(ZFMP_2) \
2491 , _ZFP_mP_EXPAND(ZFMP_3) \
2492 , _ZFP_mP_EXPAND(ZFMP_4) \
2493 , _ZFP_mP_EXPAND(ZFMP_5) \
2494 , _ZFP_mP_EXPAND(ZFMP_6) \
2495 , _ZFP_mP_EXPAND(ZFMP_7) \
2496 )
2497
2498/* ZFMETHOD_MAX_PARAM */
2499
2501#endif // #ifndef _ZFI_ZFMethodDeclare_h_
2502
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