6#ifndef _ZFI_ZFMethodDeclare_h_
7#define _ZFI_ZFMethodDeclare_h_
13#define _ZFP_ZFMethodAccess(OwnerClass, MethodName) \
14 (OwnerClass::_ZFP_m_##MethodName(zfnull))
16#define ZFMethodAccess(OwnerClass, MethodName) \
17 _ZFP_ZFMethodAccess(OwnerClass, MethodName)
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 \
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) \
42#define ZFMethodAccessDetail_0(OwnerClass, MethodName \
44 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
55#define ZFMethodAccessDetail_1(OwnerClass, MethodName \
58 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
59 , _ZFP_mP_EXPAND(ZFMP_0) \
69#define ZFMethodAccessDetail_2(OwnerClass, MethodName \
73 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
74 , _ZFP_mP_EXPAND(ZFMP_0) \
75 , _ZFP_mP_EXPAND(ZFMP_1) \
84#define ZFMethodAccessDetail_3(OwnerClass, MethodName \
89 _ZFP_ZFMethodAccessDetail(OwnerClass, MethodName \
90 , _ZFP_mP_EXPAND(ZFMP_0) \
91 , _ZFP_mP_EXPAND(ZFMP_1) \
92 , _ZFP_mP_EXPAND(ZFMP_2) \
100#define ZFMethodAccessDetail_4(OwnerClass, MethodName \
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() \
117#define ZFMethodAccessDetail_5(OwnerClass, MethodName \
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() \
135#define ZFMethodAccessDetail_6(OwnerClass, MethodName \
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() \
154#define ZFMethodAccessDetail_7(OwnerClass, MethodName \
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() \
174#define ZFMethodAccessDetail_8(OwnerClass, MethodName \
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) \
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_mReg_##MethodName##_##RegSig { \
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) \
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_( \
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 \
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 \
286 zfclassNotPOD _ZFP_mH_##MethodName##_##RegSig { \
288 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
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 \
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) \
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) \
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) \
335 static _ZFP_ZFMethodRegisterHolder h(zffalse \
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) \
352 , zfself::ClassData() \
353 , _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate) \
355 , zftext(#MethodName) \
356 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
357 , _ZFP_ZFMethodMP() \
358 ParamExpandOrEmpty0(.add( \
359 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
361 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
363 ParamExpandOrEmpty1(.add( \
364 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
366 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
368 ParamExpandOrEmpty2(.add( \
369 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
371 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
373 ParamExpandOrEmpty3(.add( \
374 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
376 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
378 ParamExpandOrEmpty4(.add( \
379 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
381 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
383 ParamExpandOrEmpty5(.add( \
384 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
386 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
388 ParamExpandOrEmpty6(.add( \
389 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
391 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
393 ParamExpandOrEmpty7(.add( \
394 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
396 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
402 PublicOrProtectedOrPrivate: \
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()) \
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) \
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()) \
441#define _ZFP_ZFMETHOD_DECLARE_isPureVirtual() = 0
442#define _ZFP_ZFMETHOD_DECLARE_notPureVirtual()
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 \
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) \
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) \
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) \
493 return _ZFP_ZFMethod_initClassMemberType_accessType(PublicOrProtectedOrPrivate); \
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) \
505 return ZFMethodType_; \
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) \
519 PublicOrProtectedOrPrivate: \
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()) \
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) \
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();
557#define _ZFP_ZFMETHOD_DEFINE_isPureVirtual(...)
558#define _ZFP_ZFMETHOD_DEFINE_notPureVirtual(...) __VA_ARGS__
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 \
573 zfclassNotPOD _ZFP_mH_##OwnerClass##_##MethodName##_##RegSig { \
575 _ZFP_ZFMETHOD_GENERIC_INVOKER_DECLARE( \
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 \
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) \
597 static _ZFP_ZFMethodRegisterHolder h(zffalse \
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) \
617 , zftext(#MethodName) \
618 , ZFTypeId<zftTraits<ReturnType>::TrNoRef>::TypeId() \
619 , _ZFP_ZFMethodMP() \
620 ParamExpandOrEmpty0(.add( \
621 ZFTypeId<zftTraits<ParamType0>::TrNoRef>::TypeId() \
623 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty0, 0) \
625 ParamExpandOrEmpty1(.add( \
626 ZFTypeId<zftTraits<ParamType1>::TrNoRef>::TypeId() \
628 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty1, 1) \
630 ParamExpandOrEmpty2(.add( \
631 ZFTypeId<zftTraits<ParamType2>::TrNoRef>::TypeId() \
633 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty2, 2) \
635 ParamExpandOrEmpty3(.add( \
636 ZFTypeId<zftTraits<ParamType3>::TrNoRef>::TypeId() \
638 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty3, 3) \
640 ParamExpandOrEmpty4(.add( \
641 ZFTypeId<zftTraits<ParamType4>::TrNoRef>::TypeId() \
643 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty4, 4) \
645 ParamExpandOrEmpty5(.add( \
646 ZFTypeId<zftTraits<ParamType5>::TrNoRef>::TypeId() \
648 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty5, 5) \
650 ParamExpandOrEmpty6(.add( \
651 ZFTypeId<zftTraits<ParamType6>::TrNoRef>::TypeId() \
653 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty6, 6) \
655 ParamExpandOrEmpty7(.add( \
656 ZFTypeId<zftTraits<ParamType7>::TrNoRef>::TypeId() \
658 , _ZFP_ZFMETHOD_GENERIC_PARAM_DEFAULT_ACCESS_ADDR(_ZFP_mH_##OwnerClass##_##MethodName##_##RegSig, DefaultExpandOrEmpty7, 7) \
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) \
675 ZF_STATIC_REGISTER_END(MtdD_##OwnerClass##_##MethodName##_##RegSig) \
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) \
692#define ZFMETHOD_DECLARE_0(ReturnType, MethodName \
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() \
707#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName \
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() \
722#define ZFMETHOD_DECLARE_PROTECTED_0(ReturnType, MethodName \
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() \
737#define ZFMETHOD_DECLARE_DETAIL_0( \
738 PublicOrProtectedOrPrivate, ZFMethodType_, \
739 ReturnType, MethodName \
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() \
754#define ZFMETHOD_INLINE_0(ReturnType, MethodName \
756 _ZFP_ZFMETHOD_INLINE( \
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() \
770#define ZFMETHOD_INLINE_STATIC_0(ReturnType, MethodName \
772 _ZFP_ZFMETHOD_INLINE( \
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() \
786#define ZFMETHOD_INLINE_PROTECTED_0(ReturnType, MethodName \
788 _ZFP_ZFMETHOD_INLINE( \
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() \
802#define ZFMETHOD_INLINE_DETAIL_0( \
803 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
804 ReturnType, MethodName \
806 _ZFP_ZFMETHOD_INLINE( \
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() \
820#define ZFMETHOD_DEFINE_0(OwnerClass, \
821 ReturnType, MethodName \
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() \
835#define ZFMETHOD_DEFINE_DETAIL_0(OwnerClass, RegSig, \
836 ReturnType, MethodName \
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() \
853#define ZFMETHOD_DECLARE_1(ReturnType, MethodName \
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() \
869#define ZFMETHOD_DECLARE_STATIC_1(ReturnType, MethodName \
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() \
885#define ZFMETHOD_DECLARE_PROTECTED_1(ReturnType, MethodName \
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() \
901#define ZFMETHOD_DECLARE_DETAIL_1( \
902 PublicOrProtectedOrPrivate, ZFMethodType_, \
903 ReturnType, MethodName \
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() \
919#define ZFMETHOD_INLINE_1(ReturnType, MethodName \
922 _ZFP_ZFMETHOD_INLINE( \
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() \
936#define ZFMETHOD_INLINE_STATIC_1(ReturnType, MethodName \
939 _ZFP_ZFMETHOD_INLINE( \
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() \
953#define ZFMETHOD_INLINE_PROTECTED_1(ReturnType, MethodName \
956 _ZFP_ZFMETHOD_INLINE( \
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() \
970#define ZFMETHOD_INLINE_DETAIL_1( \
971 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
972 ReturnType, MethodName \
975 _ZFP_ZFMETHOD_INLINE( \
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() \
989#define ZFMETHOD_DEFINE_1(OwnerClass, \
990 ReturnType, MethodName \
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() \
1005#define ZFMETHOD_DEFINE_DETAIL_1(OwnerClass, RegSig, \
1006 ReturnType, MethodName \
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() \
1024#define ZFMETHOD_DECLARE_2(ReturnType, MethodName \
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() \
1041#define ZFMETHOD_DECLARE_STATIC_2(ReturnType, MethodName \
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() \
1058#define ZFMETHOD_DECLARE_PROTECTED_2(ReturnType, MethodName \
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() \
1075#define ZFMETHOD_DECLARE_DETAIL_2( \
1076 PublicOrProtectedOrPrivate, ZFMethodType_, \
1077 ReturnType, MethodName \
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() \
1094#define ZFMETHOD_INLINE_2(ReturnType, MethodName \
1098 _ZFP_ZFMETHOD_INLINE( \
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() \
1112#define ZFMETHOD_INLINE_STATIC_2(ReturnType, MethodName \
1116 _ZFP_ZFMETHOD_INLINE( \
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() \
1130#define ZFMETHOD_INLINE_PROTECTED_2(ReturnType, MethodName \
1134 _ZFP_ZFMETHOD_INLINE( \
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() \
1148#define ZFMETHOD_INLINE_DETAIL_2( \
1149 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1150 ReturnType, MethodName \
1154 _ZFP_ZFMETHOD_INLINE( \
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() \
1168#define ZFMETHOD_DEFINE_2(OwnerClass, \
1169 ReturnType, MethodName \
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() \
1185#define ZFMETHOD_DEFINE_DETAIL_2(OwnerClass, RegSig, \
1186 ReturnType, MethodName \
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() \
1205#define ZFMETHOD_DECLARE_3(ReturnType, MethodName \
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() \
1223#define ZFMETHOD_DECLARE_STATIC_3(ReturnType, MethodName \
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() \
1241#define ZFMETHOD_DECLARE_PROTECTED_3(ReturnType, MethodName \
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() \
1259#define ZFMETHOD_DECLARE_DETAIL_3( \
1260 PublicOrProtectedOrPrivate, ZFMethodType_, \
1261 ReturnType, MethodName \
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() \
1279#define ZFMETHOD_INLINE_3(ReturnType, MethodName \
1284 _ZFP_ZFMETHOD_INLINE( \
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() \
1298#define ZFMETHOD_INLINE_STATIC_3(ReturnType, MethodName \
1303 _ZFP_ZFMETHOD_INLINE( \
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() \
1317#define ZFMETHOD_INLINE_PROTECTED_3(ReturnType, MethodName \
1322 _ZFP_ZFMETHOD_INLINE( \
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() \
1336#define ZFMETHOD_INLINE_DETAIL_3( \
1337 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1338 ReturnType, MethodName \
1343 _ZFP_ZFMETHOD_INLINE( \
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() \
1357#define ZFMETHOD_DEFINE_3(OwnerClass, \
1358 ReturnType, MethodName \
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() \
1375#define ZFMETHOD_DEFINE_DETAIL_3(OwnerClass, RegSig, \
1376 ReturnType, MethodName \
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() \
1396#define ZFMETHOD_DECLARE_4(ReturnType, MethodName \
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() \
1415#define ZFMETHOD_DECLARE_STATIC_4(ReturnType, MethodName \
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() \
1434#define ZFMETHOD_DECLARE_PROTECTED_4(ReturnType, MethodName \
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() \
1453#define ZFMETHOD_DECLARE_DETAIL_4( \
1454 PublicOrProtectedOrPrivate, ZFMethodType_, \
1455 ReturnType, MethodName \
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() \
1474#define ZFMETHOD_INLINE_4(ReturnType, MethodName \
1480 _ZFP_ZFMETHOD_INLINE( \
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() \
1494#define ZFMETHOD_INLINE_STATIC_4(ReturnType, MethodName \
1500 _ZFP_ZFMETHOD_INLINE( \
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() \
1514#define ZFMETHOD_INLINE_PROTECTED_4(ReturnType, MethodName \
1520 _ZFP_ZFMETHOD_INLINE( \
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() \
1534#define ZFMETHOD_INLINE_DETAIL_4( \
1535 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1536 ReturnType, MethodName \
1542 _ZFP_ZFMETHOD_INLINE( \
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() \
1556#define ZFMETHOD_DEFINE_4(OwnerClass, \
1557 ReturnType, MethodName \
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() \
1575#define ZFMETHOD_DEFINE_DETAIL_4(OwnerClass, RegSig, \
1576 ReturnType, MethodName \
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() \
1597#define ZFMETHOD_DECLARE_5(ReturnType, MethodName \
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() \
1617#define ZFMETHOD_DECLARE_STATIC_5(ReturnType, MethodName \
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() \
1637#define ZFMETHOD_DECLARE_PROTECTED_5(ReturnType, MethodName \
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() \
1657#define ZFMETHOD_DECLARE_DETAIL_5( \
1658 PublicOrProtectedOrPrivate, ZFMethodType_, \
1659 ReturnType, MethodName \
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() \
1679#define ZFMETHOD_INLINE_5(ReturnType, MethodName \
1686 _ZFP_ZFMETHOD_INLINE( \
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() \
1700#define ZFMETHOD_INLINE_STATIC_5(ReturnType, MethodName \
1707 _ZFP_ZFMETHOD_INLINE( \
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() \
1721#define ZFMETHOD_INLINE_PROTECTED_5(ReturnType, MethodName \
1728 _ZFP_ZFMETHOD_INLINE( \
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() \
1742#define ZFMETHOD_INLINE_DETAIL_5( \
1743 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1744 ReturnType, MethodName \
1751 _ZFP_ZFMETHOD_INLINE( \
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() \
1765#define ZFMETHOD_DEFINE_5(OwnerClass, \
1766 ReturnType, MethodName \
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() \
1785#define ZFMETHOD_DEFINE_DETAIL_5(OwnerClass, RegSig, \
1786 ReturnType, MethodName \
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() \
1808#define ZFMETHOD_DECLARE_6(ReturnType, MethodName \
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() \
1829#define ZFMETHOD_DECLARE_STATIC_6(ReturnType, MethodName \
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() \
1850#define ZFMETHOD_DECLARE_PROTECTED_6(ReturnType, MethodName \
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() \
1871#define ZFMETHOD_DECLARE_DETAIL_6( \
1872 PublicOrProtectedOrPrivate, ZFMethodType_, \
1873 ReturnType, MethodName \
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() \
1894#define ZFMETHOD_INLINE_6(ReturnType, MethodName \
1902 _ZFP_ZFMETHOD_INLINE( \
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() \
1916#define ZFMETHOD_INLINE_STATIC_6(ReturnType, MethodName \
1924 _ZFP_ZFMETHOD_INLINE( \
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() \
1938#define ZFMETHOD_INLINE_PROTECTED_6(ReturnType, MethodName \
1946 _ZFP_ZFMETHOD_INLINE( \
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() \
1960#define ZFMETHOD_INLINE_DETAIL_6( \
1961 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
1962 ReturnType, MethodName \
1970 _ZFP_ZFMETHOD_INLINE( \
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() \
1984#define ZFMETHOD_DEFINE_6(OwnerClass, \
1985 ReturnType, MethodName \
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() \
2005#define ZFMETHOD_DEFINE_DETAIL_6(OwnerClass, RegSig, \
2006 ReturnType, MethodName \
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() \
2029#define ZFMETHOD_DECLARE_7(ReturnType, MethodName \
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() \
2051#define ZFMETHOD_DECLARE_STATIC_7(ReturnType, MethodName \
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() \
2073#define ZFMETHOD_DECLARE_PROTECTED_7(ReturnType, MethodName \
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() \
2095#define ZFMETHOD_DECLARE_DETAIL_7( \
2096 PublicOrProtectedOrPrivate, ZFMethodType_, \
2097 ReturnType, MethodName \
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() \
2119#define ZFMETHOD_INLINE_7(ReturnType, MethodName \
2128 _ZFP_ZFMETHOD_INLINE( \
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() \
2142#define ZFMETHOD_INLINE_STATIC_7(ReturnType, MethodName \
2151 _ZFP_ZFMETHOD_INLINE( \
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() \
2165#define ZFMETHOD_INLINE_PROTECTED_7(ReturnType, MethodName \
2174 _ZFP_ZFMETHOD_INLINE( \
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() \
2188#define ZFMETHOD_INLINE_DETAIL_7( \
2189 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2190 ReturnType, MethodName \
2199 _ZFP_ZFMETHOD_INLINE( \
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() \
2213#define ZFMETHOD_DEFINE_7(OwnerClass, \
2214 ReturnType, MethodName \
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() \
2235#define ZFMETHOD_DEFINE_DETAIL_7(OwnerClass, RegSig, \
2236 ReturnType, MethodName \
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() \
2260#define ZFMETHOD_DECLARE_8(ReturnType, MethodName \
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) \
2283#define ZFMETHOD_DECLARE_STATIC_8(ReturnType, MethodName \
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) \
2306#define ZFMETHOD_DECLARE_PROTECTED_8(ReturnType, MethodName \
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) \
2329#define ZFMETHOD_DECLARE_DETAIL_8( \
2330 PublicOrProtectedOrPrivate, ZFMethodType_, \
2331 ReturnType, MethodName \
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) \
2354#define ZFMETHOD_INLINE_8(ReturnType, MethodName \
2364 _ZFP_ZFMETHOD_INLINE( \
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) \
2378#define ZFMETHOD_INLINE_STATIC_8(ReturnType, MethodName \
2388 _ZFP_ZFMETHOD_INLINE( \
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) \
2402#define ZFMETHOD_INLINE_PROTECTED_8(ReturnType, MethodName \
2412 _ZFP_ZFMETHOD_INLINE( \
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) \
2426#define ZFMETHOD_INLINE_DETAIL_8( \
2427 PublicOrProtectedOrPrivate, ZFMethodType_, RegSig, \
2428 ReturnType, MethodName \
2438 _ZFP_ZFMETHOD_INLINE( \
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) \
2452#define ZFMETHOD_DEFINE_8(OwnerClass, \
2453 ReturnType, MethodName \
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) \
2475#define ZFMETHOD_DEFINE_DETAIL_8(OwnerClass, RegSig, \
2476 ReturnType, MethodName \
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) \
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