6#ifndef _ZFI_ZFMethodDeclare_h_
7#define _ZFI_ZFMethodDeclare_h_
13#define _ZFP_ZFMethodAccess(OwnerClass, MethodName) \
14 (OwnerClass::_ZFP_Mtd_##MethodName(zfnull))
16#define ZFMethodAccess(OwnerClass, MethodName) \
17 _ZFP_ZFMethodAccess(OwnerClass, MethodName)
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 \
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) \
42#define ZFMethodAccessDetail_0(OwnerClass, MethodName \
44 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
55#define ZFMethodAccessDetail_1(OwnerClass, MethodName \
58 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
59 , _ZFP_MtdP_EXPAND(ZFMP_0) \
69#define ZFMethodAccessDetail_2(OwnerClass, MethodName \
73 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
74 , _ZFP_MtdP_EXPAND(ZFMP_0) \
75 , _ZFP_MtdP_EXPAND(ZFMP_1) \
84#define ZFMethodAccessDetail_3(OwnerClass, MethodName \
89 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
90 , _ZFP_MtdP_EXPAND(ZFMP_0) \
91 , _ZFP_MtdP_EXPAND(ZFMP_1) \
92 , _ZFP_MtdP_EXPAND(ZFMP_2) \
100#define ZFMethodAccessDetail_4(OwnerClass, MethodName \
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() \
117#define ZFMethodAccessDetail_5(OwnerClass, MethodName \
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() \
135#define ZFMethodAccessDetail_6(OwnerClass, MethodName \
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() \
154#define ZFMethodAccessDetail_7(OwnerClass, MethodName \
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() \
174#define ZFMethodAccessDetail_8(OwnerClass, MethodName \
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) \
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 \
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 \
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 \
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
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 \
243 zfclassNotPOD _ZFP_MtdReg_##MethodName##_##RegSig { \
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) \
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_( \
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 \
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 \
287 zfclassNotPOD _ZFP_MtdH_##MethodName##_##RegSig { \
289 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
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 \
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) \
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) \
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) \
336 static _ZFP_ZFMethodRegisterHolder _methodHolder(zffalse \
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) \
353 , zfself::ClassData() \
354 , _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate) \
356 , zftext(#MethodName) \
357 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
358 , _ZFP_ZFMethodMP() \
359 ParamExpandOrEmpty0(.add( \
360 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
362 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
364 ParamExpandOrEmpty1(.add( \
365 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
367 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
369 ParamExpandOrEmpty2(.add( \
370 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
372 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
374 ParamExpandOrEmpty3(.add( \
375 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
377 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
379 ParamExpandOrEmpty4(.add( \
380 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
382 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
384 ParamExpandOrEmpty5(.add( \
385 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
387 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
389 ParamExpandOrEmpty6(.add( \
390 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
392 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
394 ParamExpandOrEmpty7(.add( \
395 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
397 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
400 return _methodHolder.method; \
403 PublicOrProtectedOrPrivate: \
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()) \
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) \
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()) \
442#define _ZFP_ZFMETHOD_DECLARE_isPureVirtual() = 0
443#define _ZFP_ZFMETHOD_DECLARE_notPureVirtual()
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 \
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) \
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) \
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) \
494 return _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate); \
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) \
506 return ZFMethodType_; \
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) \
520 PublicOrProtectedOrPrivate: \
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()) \
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) \
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();
558#define _ZFP_ZFMETHOD_DEFINE_isPureVirtual(...)
559#define _ZFP_ZFMETHOD_DEFINE_notPureVirtual(...) __VA_ARGS__
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 \
574 zfclassNotPOD _ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig { \
576 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
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 \
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) \
598 static _ZFP_ZFMethodRegisterHolder _methodHolder(zffalse \
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) \
618 , zftext(#MethodName) \
619 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
620 , _ZFP_ZFMethodMP() \
621 ParamExpandOrEmpty0(.add( \
622 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
624 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
626 ParamExpandOrEmpty1(.add( \
627 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
629 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
631 ParamExpandOrEmpty2(.add( \
632 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
634 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
636 ParamExpandOrEmpty3(.add( \
637 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
639 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
641 ParamExpandOrEmpty4(.add( \
642 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
644 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
646 ParamExpandOrEmpty5(.add( \
647 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
649 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
651 ParamExpandOrEmpty6(.add( \
652 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
654 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
656 ParamExpandOrEmpty7(.add( \
657 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
659 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_MtdH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
662 return _methodHolder.method; \
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) \
676 ZF_STATIC_REGISTER_END(MtdD_##OwnerClass##_##MethodName##_##RegSig) \
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) \
693#define ZFMETHOD_DECLARE_0(ReturnType, MethodName \
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() \
708#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName \
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() \
723#define ZFMETHOD_DECLARE_PROTECTED_0(ReturnType, MethodName \
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() \
738#define ZFMETHOD_DECLARE_DETAIL_0( \
739 PublicOrProtectedOrPrivate, ZFMethodType_, \
740 ReturnType, MethodName \
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() \
755#define ZFMETHOD_INLINE_0(ReturnType, MethodName \
757 _ZFP_ZFMETHOD_INLINE( \
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() \
771#define ZFMETHOD_INLINE_STATIC_0(ReturnType, MethodName \
773 _ZFP_ZFMETHOD_INLINE( \
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() \
787#define ZFMETHOD_INLINE_PROTECTED_0(ReturnType, MethodName \
789 _ZFP_ZFMETHOD_INLINE( \
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() \
803#define ZFMETHOD_INLINE_DETAIL_0( \
804 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
805 ReturnType, MethodName \
807 _ZFP_ZFMETHOD_INLINE( \
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() \
821#define ZFMETHOD_DEFINE_0(OwnerClass, \
822 ReturnType, MethodName \
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() \
836#define ZFMETHOD_DEFINE_DETAIL_0(OwnerClass, RegSig, \
837 ReturnType, MethodName \
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() \
854#define ZFMETHOD_DECLARE_1(ReturnType, MethodName \
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() \
870#define ZFMETHOD_DECLARE_STATIC_1(ReturnType, MethodName \
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() \
886#define ZFMETHOD_DECLARE_PROTECTED_1(ReturnType, MethodName \
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() \
902#define ZFMETHOD_DECLARE_DETAIL_1( \
903 PublicOrProtectedOrPrivate, ZFMethodType_, \
904 ReturnType, MethodName \
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() \
920#define ZFMETHOD_INLINE_1(ReturnType, MethodName \
923 _ZFP_ZFMETHOD_INLINE( \
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() \
937#define ZFMETHOD_INLINE_STATIC_1(ReturnType, MethodName \
940 _ZFP_ZFMETHOD_INLINE( \
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() \
954#define ZFMETHOD_INLINE_PROTECTED_1(ReturnType, MethodName \
957 _ZFP_ZFMETHOD_INLINE( \
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() \
971#define ZFMETHOD_INLINE_DETAIL_1( \
972 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
973 ReturnType, MethodName \
976 _ZFP_ZFMETHOD_INLINE( \
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() \
990#define ZFMETHOD_DEFINE_1(OwnerClass, \
991 ReturnType, MethodName \
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() \
1006#define ZFMETHOD_DEFINE_DETAIL_1(OwnerClass, RegSig, \
1007 ReturnType, MethodName \
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() \
1025#define ZFMETHOD_DECLARE_2(ReturnType, MethodName \
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() \
1042#define ZFMETHOD_DECLARE_STATIC_2(ReturnType, MethodName \
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() \
1059#define ZFMETHOD_DECLARE_PROTECTED_2(ReturnType, MethodName \
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() \
1076#define ZFMETHOD_DECLARE_DETAIL_2( \
1077 PublicOrProtectedOrPrivate, ZFMethodType_, \
1078 ReturnType, MethodName \
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() \
1095#define ZFMETHOD_INLINE_2(ReturnType, MethodName \
1099 _ZFP_ZFMETHOD_INLINE( \
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() \
1113#define ZFMETHOD_INLINE_STATIC_2(ReturnType, MethodName \
1117 _ZFP_ZFMETHOD_INLINE( \
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() \
1131#define ZFMETHOD_INLINE_PROTECTED_2(ReturnType, MethodName \
1135 _ZFP_ZFMETHOD_INLINE( \
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() \
1149#define ZFMETHOD_INLINE_DETAIL_2( \
1150 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1151 ReturnType, MethodName \
1155 _ZFP_ZFMETHOD_INLINE( \
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() \
1169#define ZFMETHOD_DEFINE_2(OwnerClass, \
1170 ReturnType, MethodName \
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() \
1186#define ZFMETHOD_DEFINE_DETAIL_2(OwnerClass, RegSig, \
1187 ReturnType, MethodName \
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() \
1206#define ZFMETHOD_DECLARE_3(ReturnType, MethodName \
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() \
1224#define ZFMETHOD_DECLARE_STATIC_3(ReturnType, MethodName \
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() \
1242#define ZFMETHOD_DECLARE_PROTECTED_3(ReturnType, MethodName \
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() \
1260#define ZFMETHOD_DECLARE_DETAIL_3( \
1261 PublicOrProtectedOrPrivate, ZFMethodType_, \
1262 ReturnType, MethodName \
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() \
1280#define ZFMETHOD_INLINE_3(ReturnType, MethodName \
1285 _ZFP_ZFMETHOD_INLINE( \
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() \
1299#define ZFMETHOD_INLINE_STATIC_3(ReturnType, MethodName \
1304 _ZFP_ZFMETHOD_INLINE( \
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() \
1318#define ZFMETHOD_INLINE_PROTECTED_3(ReturnType, MethodName \
1323 _ZFP_ZFMETHOD_INLINE( \
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() \
1337#define ZFMETHOD_INLINE_DETAIL_3( \
1338 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1339 ReturnType, MethodName \
1344 _ZFP_ZFMETHOD_INLINE( \
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() \
1358#define ZFMETHOD_DEFINE_3(OwnerClass, \
1359 ReturnType, MethodName \
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() \
1376#define ZFMETHOD_DEFINE_DETAIL_3(OwnerClass, RegSig, \
1377 ReturnType, MethodName \
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() \
1397#define ZFMETHOD_DECLARE_4(ReturnType, MethodName \
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() \
1416#define ZFMETHOD_DECLARE_STATIC_4(ReturnType, MethodName \
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() \
1435#define ZFMETHOD_DECLARE_PROTECTED_4(ReturnType, MethodName \
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() \
1454#define ZFMETHOD_DECLARE_DETAIL_4( \
1455 PublicOrProtectedOrPrivate, ZFMethodType_, \
1456 ReturnType, MethodName \
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() \
1475#define ZFMETHOD_INLINE_4(ReturnType, MethodName \
1481 _ZFP_ZFMETHOD_INLINE( \
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() \
1495#define ZFMETHOD_INLINE_STATIC_4(ReturnType, MethodName \
1501 _ZFP_ZFMETHOD_INLINE( \
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() \
1515#define ZFMETHOD_INLINE_PROTECTED_4(ReturnType, MethodName \
1521 _ZFP_ZFMETHOD_INLINE( \
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() \
1535#define ZFMETHOD_INLINE_DETAIL_4( \
1536 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1537 ReturnType, MethodName \
1543 _ZFP_ZFMETHOD_INLINE( \
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() \
1557#define ZFMETHOD_DEFINE_4(OwnerClass, \
1558 ReturnType, MethodName \
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() \
1576#define ZFMETHOD_DEFINE_DETAIL_4(OwnerClass, RegSig, \
1577 ReturnType, MethodName \
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() \
1598#define ZFMETHOD_DECLARE_5(ReturnType, MethodName \
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() \
1618#define ZFMETHOD_DECLARE_STATIC_5(ReturnType, MethodName \
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() \
1638#define ZFMETHOD_DECLARE_PROTECTED_5(ReturnType, MethodName \
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() \
1658#define ZFMETHOD_DECLARE_DETAIL_5( \
1659 PublicOrProtectedOrPrivate, ZFMethodType_, \
1660 ReturnType, MethodName \
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() \
1680#define ZFMETHOD_INLINE_5(ReturnType, MethodName \
1687 _ZFP_ZFMETHOD_INLINE( \
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() \
1701#define ZFMETHOD_INLINE_STATIC_5(ReturnType, MethodName \
1708 _ZFP_ZFMETHOD_INLINE( \
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() \
1722#define ZFMETHOD_INLINE_PROTECTED_5(ReturnType, MethodName \
1729 _ZFP_ZFMETHOD_INLINE( \
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() \
1743#define ZFMETHOD_INLINE_DETAIL_5( \
1744 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1745 ReturnType, MethodName \
1752 _ZFP_ZFMETHOD_INLINE( \
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() \
1766#define ZFMETHOD_DEFINE_5(OwnerClass, \
1767 ReturnType, MethodName \
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() \
1786#define ZFMETHOD_DEFINE_DETAIL_5(OwnerClass, RegSig, \
1787 ReturnType, MethodName \
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() \
1809#define ZFMETHOD_DECLARE_6(ReturnType, MethodName \
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() \
1830#define ZFMETHOD_DECLARE_STATIC_6(ReturnType, MethodName \
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() \
1851#define ZFMETHOD_DECLARE_PROTECTED_6(ReturnType, MethodName \
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() \
1872#define ZFMETHOD_DECLARE_DETAIL_6( \
1873 PublicOrProtectedOrPrivate, ZFMethodType_, \
1874 ReturnType, MethodName \
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() \
1895#define ZFMETHOD_INLINE_6(ReturnType, MethodName \
1903 _ZFP_ZFMETHOD_INLINE( \
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() \
1917#define ZFMETHOD_INLINE_STATIC_6(ReturnType, MethodName \
1925 _ZFP_ZFMETHOD_INLINE( \
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() \
1939#define ZFMETHOD_INLINE_PROTECTED_6(ReturnType, MethodName \
1947 _ZFP_ZFMETHOD_INLINE( \
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() \
1961#define ZFMETHOD_INLINE_DETAIL_6( \
1962 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1963 ReturnType, MethodName \
1971 _ZFP_ZFMETHOD_INLINE( \
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() \
1985#define ZFMETHOD_DEFINE_6(OwnerClass, \
1986 ReturnType, MethodName \
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() \
2006#define ZFMETHOD_DEFINE_DETAIL_6(OwnerClass, RegSig, \
2007 ReturnType, MethodName \
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() \
2030#define ZFMETHOD_DECLARE_7(ReturnType, MethodName \
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() \
2052#define ZFMETHOD_DECLARE_STATIC_7(ReturnType, MethodName \
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() \
2074#define ZFMETHOD_DECLARE_PROTECTED_7(ReturnType, MethodName \
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() \
2096#define ZFMETHOD_DECLARE_DETAIL_7( \
2097 PublicOrProtectedOrPrivate, ZFMethodType_, \
2098 ReturnType, MethodName \
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() \
2120#define ZFMETHOD_INLINE_7(ReturnType, MethodName \
2129 _ZFP_ZFMETHOD_INLINE( \
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() \
2143#define ZFMETHOD_INLINE_STATIC_7(ReturnType, MethodName \
2152 _ZFP_ZFMETHOD_INLINE( \
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() \
2166#define ZFMETHOD_INLINE_PROTECTED_7(ReturnType, MethodName \
2175 _ZFP_ZFMETHOD_INLINE( \
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() \
2189#define ZFMETHOD_INLINE_DETAIL_7( \
2190 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2191 ReturnType, MethodName \
2200 _ZFP_ZFMETHOD_INLINE( \
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() \
2214#define ZFMETHOD_DEFINE_7(OwnerClass, \
2215 ReturnType, MethodName \
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() \
2236#define ZFMETHOD_DEFINE_DETAIL_7(OwnerClass, RegSig, \
2237 ReturnType, MethodName \
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() \
2261#define ZFMETHOD_DECLARE_8(ReturnType, MethodName \
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) \
2284#define ZFMETHOD_DECLARE_STATIC_8(ReturnType, MethodName \
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) \
2307#define ZFMETHOD_DECLARE_PROTECTED_8(ReturnType, MethodName \
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) \
2330#define ZFMETHOD_DECLARE_DETAIL_8( \
2331 PublicOrProtectedOrPrivate, ZFMethodType_, \
2332 ReturnType, MethodName \
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) \
2355#define ZFMETHOD_INLINE_8(ReturnType, MethodName \
2365 _ZFP_ZFMETHOD_INLINE( \
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) \
2379#define ZFMETHOD_INLINE_STATIC_8(ReturnType, MethodName \
2389 _ZFP_ZFMETHOD_INLINE( \
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) \
2403#define ZFMETHOD_INLINE_PROTECTED_8(ReturnType, MethodName \
2413 _ZFP_ZFMETHOD_INLINE( \
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) \
2427#define ZFMETHOD_INLINE_DETAIL_8( \
2428 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2429 ReturnType, MethodName \
2439 _ZFP_ZFMETHOD_INLINE( \
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) \
2453#define ZFMETHOD_DEFINE_8(OwnerClass, \
2454 ReturnType, MethodName \
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) \
2476#define ZFMETHOD_DEFINE_DETAIL_8(OwnerClass, RegSig, \
2477 ReturnType, MethodName \
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) \
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