22 #ifndef _SPRINT_invoker_H
23 #define _SPRINT_invoker_H
41 typedef R (*CallbackType)();
50 typedef void (*CallbackType)();
58 template<
class R,
class P1>
60 typedef R (*CallbackType)(P1);
69 typedef void (*CallbackType)(P1);
77 template<
class R,
class P1,
class P2>
79 typedef R (*CallbackType)(P1, P2);
83 return (*p.p1)(p.p2, p.p3);
86 template<
class P1,
class P2>
88 typedef void (*CallbackType)(P1, P2);
96 template<
class R,
class P1,
class P2,
class P3>
98 typedef R (*CallbackType)(P1, P2, P3);
102 return (*p.p1)(p.p2, p.p3, p.p4);
105 template<
class P1,
class P2,
class P3>
107 typedef void (*CallbackType)(P1, P2, P3);
111 (*p.p1)(p.p2, p.p3, p.p4);
115 template<
class R,
class P1,
class P2,
class P3,
class P4>
117 typedef R (*CallbackType)(P1, P2, P3, P4);
121 return (*p.p1)(p.p2, p.p3, p.p4, p.p5);
124 template<
class P1,
class P2,
class P3,
class P4>
126 typedef void (*CallbackType)(P1, P2, P3, P4);
130 (*p.p1)(p.p2, p.p3, p.p4, p.p5);
134 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5>
136 typedef R (*CallbackType)(P1, P2, P3, P4, P5);
140 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6);
143 template<
class P1,
class P2,
class P3,
class P4,
class P5>
145 typedef void (*CallbackType)(P1, P2, P3, P4, P5);
149 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6);
153 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6>
155 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6);
159 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7);
162 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6>
164 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6);
168 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7);
172 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7>
174 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7);
178 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8);
181 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7>
183 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7);
187 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8);
191 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8>
193 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8);
197 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9);
200 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8>
201 struct ptr_fun_8<void, P1, P2, P3, P4, P5, P6, P7, P8> {
202 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8);
206 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9);
210 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9>
212 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
216 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10);
219 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9>
220 struct ptr_fun_9<void, P1, P2, P3, P4, P5, P6, P7, P8, P9> {
221 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
225 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10);
229 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10>
231 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
232 typedef tuple11<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> ParamType;
235 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11);
238 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10>
239 struct ptr_fun_10<void, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> {
240 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
241 typedef tuple11<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> ParamType;
244 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11);
248 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11>
250 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
251 typedef tuple12<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> ParamType;
254 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12);
257 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11>
258 struct ptr_fun_11<void, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> {
259 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
260 typedef tuple12<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> ParamType;
263 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12);
267 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12>
269 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
270 typedef tuple13<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> ParamType;
273 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13);
276 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12>
277 struct ptr_fun_12<void, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> {
278 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
279 typedef tuple13<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> ParamType;
282 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13);
286 template<
class R,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12,
class P13>
288 typedef R (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
289 typedef tuple14<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> ParamType;
292 return (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13, p.p14);
295 template<
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12,
class P13>
296 struct ptr_fun_13<void, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> {
297 typedef void (*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
298 typedef tuple14<CallbackType, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> ParamType;
301 (*p.p1)(p.p2, p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13, p.p14);
307 template<
class R,
class T>
309 typedef R (T::*CallbackType)();
313 return (p.p2->*p.p1)();
318 typedef void (T::*CallbackType)();
326 template<
class R,
class T,
class P1>
328 typedef R (T::*CallbackType)(P1);
332 return (p.p2->*p.p1)(p.p3);
335 template<
class T,
class P1>
337 typedef void (T::*CallbackType)(P1);
345 template<
class R,
class T,
class P1,
class P2>
347 typedef R (T::*CallbackType)(P1, P2);
351 return (p.p2->*p.p1)(p.p3, p.p4);
354 template<
class T,
class P1,
class P2>
356 typedef void (T::*CallbackType)(P1, P2);
360 (p.p2->*p.p1)(p.p3, p.p4);
364 template<
class R,
class T,
class P1,
class P2,
class P3>
366 typedef R (T::*CallbackType)(P1, P2, P3);
370 return (p.p2->*p.p1)(p.p3, p.p4, p.p5);
373 template<
class T,
class P1,
class P2,
class P3>
375 typedef void (T::*CallbackType)(P1, P2, P3);
379 (p.p2->*p.p1)(p.p3, p.p4, p.p5);
383 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4>
385 typedef R (T::*CallbackType)(P1, P2, P3, P4);
389 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6);
392 template<
class T,
class P1,
class P2,
class P3,
class P4>
394 typedef void (T::*CallbackType)(P1, P2, P3, P4);
398 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6);
402 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5>
404 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5);
408 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7);
411 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5>
413 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5);
417 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7);
421 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6>
423 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6);
427 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8);
430 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6>
432 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6);
436 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8);
440 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7>
442 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7);
446 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9);
449 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7>
451 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7);
455 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9);
459 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8>
461 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8);
465 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10);
468 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8>
469 struct mem_fun_8<void, T, P1, P2, P3, P4, P5, P6, P7, P8> {
470 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8);
474 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10);
478 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9>
480 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
481 typedef tuple11<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9> ParamType;
484 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11);
487 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9>
488 struct mem_fun_9<void, T, P1, P2, P3, P4, P5, P6, P7, P8, P9> {
489 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
490 typedef tuple11<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9> ParamType;
493 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11);
497 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10>
499 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
500 typedef tuple12<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> ParamType;
503 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12);
506 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10>
507 struct mem_fun_10<void, T, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> {
508 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
509 typedef tuple12<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> ParamType;
512 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12);
516 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11>
518 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
519 typedef tuple13<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> ParamType;
522 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13);
525 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11>
526 struct mem_fun_11<void, T, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> {
527 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
528 typedef tuple13<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> ParamType;
531 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13);
535 template<
class R,
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12>
537 typedef R (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
538 typedef tuple14<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> ParamType;
541 return (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13, p.p14);
544 template<
class T,
class P1,
class P2,
class P3,
class P4,
class P5,
class P6,
class P7,
class P8,
class P9,
class P10,
class P11,
class P12>
545 struct mem_fun_12<void, T, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> {
546 typedef void (T::*CallbackType)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
547 typedef tuple14<CallbackType, T*, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> ParamType;
550 (p.p2->*p.p1)(p.p3, p.p4, p.p5, p.p6, p.p7, p.p8, p.p9, p.p10, p.p11, p.p12, p.p13, p.p14);
ptr fun with 9 parameters invoker
Definition: invoker.h:211
member function with 11 parameters invoker
Definition: invoker.h:517
member function with 2 parameters invoker
Definition: invoker.h:346
ptr fun with 0 parameters invoker
Definition: invoker.h:40
a tuple, representing 9 ordered elements
Definition: tuple.h:191
member function with 7 parameters invoker
Definition: invoker.h:441
ptr fun with 5 parameters invoker
Definition: invoker.h:135
ptr fun with 10 parameters invoker
Definition: invoker.h:230
member function with 12 parameters invoker
Definition: invoker.h:536
a tuple, representing 5 ordered elements
Definition: tuple.h:89
member function with 3 parameters invoker
Definition: invoker.h:365
ptr fun with 1 parameters invoker
Definition: invoker.h:59
a tuple, representing 14 ordered elements
Definition: tuple.h:386
member function with 8 parameters invoker
Definition: invoker.h:460
ptr fun with 6 parameters invoker
Definition: invoker.h:154
a tuple, representing 1 ordered elements
Definition: tuple.h:35
a tuple, representing 12 ordered elements
Definition: tuple.h:299
a tuple, representing 6 ordered elements
Definition: tuple.h:110
member function with 4 parameters invoker
Definition: invoker.h:384
ptr fun with 2 parameters invoker
Definition: invoker.h:78
a tuple, representing 13 ordered elements
Definition: tuple.h:341
ptr fun with 11 parameters invoker
Definition: invoker.h:249
ptr fun with 13 parameters invoker
Definition: invoker.h:287
a tuple, representing 7 ordered elements
Definition: tuple.h:134
member function with 9 parameters invoker
Definition: invoker.h:479
ptr fun with 7 parameters invoker
Definition: invoker.h:173
a tuple, representing 2 ordered elements
Definition: tuple.h:44
member function with 0 parameters invoker
Definition: invoker.h:308
member function with 10 parameters invoker
Definition: invoker.h:498
a tuple, representing 11 ordered elements
Definition: tuple.h:260
a tuple, representing 3 ordered elements
Definition: tuple.h:56
member function with 5 parameters invoker
Definition: invoker.h:403
ptr fun with 3 parameters invoker
Definition: invoker.h:97
an extension of std::pair to multiple dimensions
ptr fun with 12 parameters invoker
Definition: invoker.h:268
a tuple, representing 8 ordered elements
Definition: tuple.h:161
ptr fun with 8 parameters invoker
Definition: invoker.h:192
member function with 1 parameters invoker
Definition: invoker.h:327
a tuple, representing 10 ordered elements
Definition: tuple.h:224
a tuple, representing 4 ordered elements
Definition: tuple.h:71
member function with 6 parameters invoker
Definition: invoker.h:422
ptr fun with 4 parameters invoker
Definition: invoker.h:116