43 #ifndef QTCONCURRENT_STOREDFUNCTIONCALL_H 44 #define QTCONCURRENT_STOREDFUNCTIONCALL_H 46 #include <QtCore/qglobal.h> 48 #ifndef QT_NO_CONCURRENT 49 #include <QtCore/qtconcurrentrunbase.h> 59 template <
typename T,
typename FunctionPo
inter>
60 struct StoredFunctorCall0:
public RunFunctionTask<T>
62 inline StoredFunctorCall0(FunctionPointer _function)
63 : function(_function) {}
64 void runFunctor() { this->result =
function(); }
65 FunctionPointer
function;
69 template <
typename FunctionPo
inter>
70 struct StoredFunctorCall0<void, FunctionPointer>:
public RunFunctionTask<void>
72 inline StoredFunctorCall0(FunctionPointer _function)
73 : function(_function) {}
74 void runFunctor() {
function(); }
75 FunctionPointer
function;
79 template <
typename T,
typename FunctionPo
inter>
80 struct StoredFunctorPointerCall0:
public RunFunctionTask<T>
82 inline StoredFunctorPointerCall0(FunctionPointer * _function)
83 : function(_function) {}
84 void runFunctor() { this->result =(*function)(); }
85 FunctionPointer *
function;
89 template <
typename T,
typename FunctionPo
inter>
90 struct VoidStoredFunctorPointerCall0:
public RunFunctionTask<T>
92 inline VoidStoredFunctorPointerCall0(FunctionPointer * _function)
93 : function(_function) {}
94 void runFunctor() {(*function)(); }
95 FunctionPointer *
function;
99 template <
typename T,
typename FunctionPo
inter>
100 struct SelectStoredFunctorPointerCall0
102 typedef typename SelectSpecialization<T>::template
103 Type<StoredFunctorPointerCall0 <T, FunctionPointer>,
104 VoidStoredFunctorPointerCall0<T, FunctionPointer> >
::type type;
106 template <
typename T,
typename Class>
107 class StoredMemberFunctionCall0 :
public RunFunctionTask<T>
110 StoredMemberFunctionCall0(T (Class::*_fn)() ,
const Class &_object)
111 : fn(_fn), object(_object){ }
115 this->result = (
object.*fn)();
122 template <
typename T,
typename Class>
123 class VoidStoredMemberFunctionCall0 :
public RunFunctionTask<T>
126 VoidStoredMemberFunctionCall0(T (Class::*_fn)() ,
const Class &_object)
127 : fn(_fn), object(_object){ }
138 template <
typename T,
typename Class>
139 struct SelectStoredMemberFunctionCall0
141 typedef typename SelectSpecialization<T>::template
142 Type<StoredMemberFunctionCall0 <T, Class>,
143 VoidStoredMemberFunctionCall0<T, Class> >
::type type;
145 template <
typename T,
typename Class>
146 class StoredConstMemberFunctionCall0 :
public RunFunctionTask<T>
149 StoredConstMemberFunctionCall0(T (Class::*_fn)()
const,
const Class &_object)
150 : fn(_fn), object(_object){ }
154 this->result = (
object.*fn)();
157 T (Class::*fn)()
const;
161 template <
typename T,
typename Class>
162 class VoidStoredConstMemberFunctionCall0 :
public RunFunctionTask<T>
165 VoidStoredConstMemberFunctionCall0(T (Class::*_fn)()
const,
const Class &_object)
166 : fn(_fn), object(_object){ }
173 T (Class::*fn)()
const;
177 template <
typename T,
typename Class>
178 struct SelectStoredConstMemberFunctionCall0
180 typedef typename SelectSpecialization<T>::template
181 Type<StoredConstMemberFunctionCall0 <T, Class>,
182 VoidStoredConstMemberFunctionCall0<T, Class> >
::type type;
184 template <
typename T,
typename Class>
185 class StoredMemberFunctionPointerCall0 :
public RunFunctionTask<T>
188 StoredMemberFunctionPointerCall0(T (Class::*_fn)() , Class *_object)
189 : fn(_fn), object(_object){ }
193 this->result = (
object->*fn)();
200 template <
typename T,
typename Class>
201 class VoidStoredMemberFunctionPointerCall0 :
public RunFunctionTask<T>
204 VoidStoredMemberFunctionPointerCall0(T (Class::*_fn)() , Class *_object)
205 : fn(_fn), object(_object){ }
216 template <
typename T,
typename Class>
217 struct SelectStoredMemberFunctionPointerCall0
219 typedef typename SelectSpecialization<T>::template
220 Type<StoredMemberFunctionPointerCall0 <T, Class>,
221 VoidStoredMemberFunctionPointerCall0<T, Class> >
::type type;
223 template <
typename T,
typename Class>
224 class StoredConstMemberFunctionPointerCall0 :
public RunFunctionTask<T>
227 StoredConstMemberFunctionPointerCall0(T (Class::*_fn)()
const, Class
const *_object)
228 : fn(_fn), object(_object){ }
232 this->result = (
object->*fn)();
235 T (Class::*fn)()
const;
239 template <
typename T,
typename Class>
240 class VoidStoredConstMemberFunctionPointerCall0 :
public RunFunctionTask<T>
243 VoidStoredConstMemberFunctionPointerCall0(T (Class::*_fn)()
const, Class
const *_object)
244 : fn(_fn), object(_object){ }
251 T (Class::*fn)()
const;
255 template <
typename T,
typename Class>
256 struct SelectStoredConstMemberFunctionPointerCall0
258 typedef typename SelectSpecialization<T>::template
259 Type<StoredConstMemberFunctionPointerCall0 <T, Class>,
260 VoidStoredConstMemberFunctionPointerCall0<T, Class> >
::type type;
262 template <
typename T,
typename FunctionPo
inter,
typename Arg1>
263 struct StoredFunctorCall1:
public RunFunctionTask<T>
265 inline StoredFunctorCall1(FunctionPointer _function,
const Arg1 &_arg1)
266 : function(_function), arg1(_arg1) {}
267 void runFunctor() { this->result =
function(arg1); }
268 FunctionPointer
function;
272 template <
typename FunctionPo
inter,
typename Arg1>
273 struct StoredFunctorCall1<void, FunctionPointer, Arg1>:
public RunFunctionTask<void>
275 inline StoredFunctorCall1(FunctionPointer _function,
const Arg1 &_arg1)
276 : function(_function), arg1(_arg1) {}
277 void runFunctor() {
function(arg1); }
278 FunctionPointer
function;
282 template <
typename T,
typename FunctionPo
inter,
typename Arg1>
283 struct StoredFunctorPointerCall1:
public RunFunctionTask<T>
285 inline StoredFunctorPointerCall1(FunctionPointer * _function,
const Arg1 &_arg1)
286 : function(_function), arg1(_arg1) {}
287 void runFunctor() { this->result =(*function)(arg1); }
288 FunctionPointer *
function;
292 template <
typename T,
typename FunctionPo
inter,
typename Arg1>
293 struct VoidStoredFunctorPointerCall1:
public RunFunctionTask<T>
295 inline VoidStoredFunctorPointerCall1(FunctionPointer * _function,
const Arg1 &_arg1)
296 : function(_function), arg1(_arg1) {}
297 void runFunctor() {(*function)(arg1); }
298 FunctionPointer *
function;
302 template <
typename T,
typename FunctionPo
inter,
typename Arg1>
303 struct SelectStoredFunctorPointerCall1
305 typedef typename SelectSpecialization<T>::template
306 Type<StoredFunctorPointerCall1 <T, FunctionPointer, Arg1>,
307 VoidStoredFunctorPointerCall1<T, FunctionPointer, Arg1> >
::type type;
309 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
310 class StoredMemberFunctionCall1 :
public RunFunctionTask<T>
313 StoredMemberFunctionCall1(T (Class::*_fn)(Param1) ,
const Class &_object,
const Arg1 &_arg1)
314 : fn(_fn), object(_object), arg1(_arg1){ }
318 this->result = (
object.*fn)(arg1);
321 T (Class::*fn)(Param1);
325 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
326 class VoidStoredMemberFunctionCall1 :
public RunFunctionTask<T>
329 VoidStoredMemberFunctionCall1(T (Class::*_fn)(Param1) ,
const Class &_object,
const Arg1 &_arg1)
330 : fn(_fn), object(_object), arg1(_arg1){ }
337 T (Class::*fn)(Param1);
341 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
342 struct SelectStoredMemberFunctionCall1
344 typedef typename SelectSpecialization<T>::template
345 Type<StoredMemberFunctionCall1 <T, Class, Param1, Arg1>,
346 VoidStoredMemberFunctionCall1<T, Class, Param1, Arg1> >
::type type;
348 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
349 class StoredConstMemberFunctionCall1 :
public RunFunctionTask<T>
352 StoredConstMemberFunctionCall1(T (Class::*_fn)(Param1)
const,
const Class &_object,
const Arg1 &_arg1)
353 : fn(_fn), object(_object), arg1(_arg1){ }
357 this->result = (
object.*fn)(arg1);
360 T (Class::*fn)(Param1)
const;
364 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
365 class VoidStoredConstMemberFunctionCall1 :
public RunFunctionTask<T>
368 VoidStoredConstMemberFunctionCall1(T (Class::*_fn)(Param1)
const,
const Class &_object,
const Arg1 &_arg1)
369 : fn(_fn), object(_object), arg1(_arg1){ }
376 T (Class::*fn)(Param1)
const;
380 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
381 struct SelectStoredConstMemberFunctionCall1
383 typedef typename SelectSpecialization<T>::template
384 Type<StoredConstMemberFunctionCall1 <T, Class, Param1, Arg1>,
385 VoidStoredConstMemberFunctionCall1<T, Class, Param1, Arg1> >
::type type;
387 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
388 class StoredMemberFunctionPointerCall1 :
public RunFunctionTask<T>
391 StoredMemberFunctionPointerCall1(T (Class::*_fn)(Param1) , Class *_object,
const Arg1 &_arg1)
392 : fn(_fn), object(_object), arg1(_arg1){ }
396 this->result = (
object->*fn)(arg1);
399 T (Class::*fn)(Param1);
403 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
404 class VoidStoredMemberFunctionPointerCall1 :
public RunFunctionTask<T>
407 VoidStoredMemberFunctionPointerCall1(T (Class::*_fn)(Param1) , Class *_object,
const Arg1 &_arg1)
408 : fn(_fn), object(_object), arg1(_arg1){ }
415 T (Class::*fn)(Param1);
419 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
420 struct SelectStoredMemberFunctionPointerCall1
422 typedef typename SelectSpecialization<T>::template
423 Type<StoredMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
424 VoidStoredMemberFunctionPointerCall1<T, Class, Param1, Arg1> >
::type type;
426 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
427 class StoredConstMemberFunctionPointerCall1 :
public RunFunctionTask<T>
430 StoredConstMemberFunctionPointerCall1(T (Class::*_fn)(Param1)
const, Class
const *_object,
const Arg1 &_arg1)
431 : fn(_fn), object(_object), arg1(_arg1){ }
435 this->result = (
object->*fn)(arg1);
438 T (Class::*fn)(Param1)
const;
442 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
443 class VoidStoredConstMemberFunctionPointerCall1 :
public RunFunctionTask<T>
446 VoidStoredConstMemberFunctionPointerCall1(T (Class::*_fn)(Param1)
const, Class
const *_object,
const Arg1 &_arg1)
447 : fn(_fn), object(_object), arg1(_arg1){ }
454 T (Class::*fn)(Param1)
const;
458 template <
typename T,
typename Class,
typename Param1,
typename Arg1>
459 struct SelectStoredConstMemberFunctionPointerCall1
461 typedef typename SelectSpecialization<T>::template
462 Type<StoredConstMemberFunctionPointerCall1 <T, Class, Param1, Arg1>,
463 VoidStoredConstMemberFunctionPointerCall1<T, Class, Param1, Arg1> >
::type type;
465 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2>
466 struct StoredFunctorCall2:
public RunFunctionTask<T>
468 inline StoredFunctorCall2(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2)
469 : function(_function), arg1(_arg1), arg2(_arg2) {}
470 void runFunctor() { this->result =
function(arg1, arg2); }
471 FunctionPointer
function;
472 Arg1 arg1; Arg2 arg2;
475 template <
typename FunctionPo
inter,
typename Arg1,
typename Arg2>
476 struct StoredFunctorCall2<void, FunctionPointer, Arg1, Arg2>:
public RunFunctionTask<void>
478 inline StoredFunctorCall2(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2)
479 : function(_function), arg1(_arg1), arg2(_arg2) {}
480 void runFunctor() {
function(arg1, arg2); }
481 FunctionPointer
function;
482 Arg1 arg1; Arg2 arg2;
485 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2>
486 struct StoredFunctorPointerCall2:
public RunFunctionTask<T>
488 inline StoredFunctorPointerCall2(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2)
489 : function(_function), arg1(_arg1), arg2(_arg2) {}
490 void runFunctor() { this->result =(*function)(arg1, arg2); }
491 FunctionPointer *
function;
492 Arg1 arg1; Arg2 arg2;
495 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2>
496 struct VoidStoredFunctorPointerCall2:
public RunFunctionTask<T>
498 inline VoidStoredFunctorPointerCall2(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2)
499 : function(_function), arg1(_arg1), arg2(_arg2) {}
500 void runFunctor() {(*function)(arg1, arg2); }
501 FunctionPointer *
function;
502 Arg1 arg1; Arg2 arg2;
505 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2>
506 struct SelectStoredFunctorPointerCall2
508 typedef typename SelectSpecialization<T>::template
509 Type<StoredFunctorPointerCall2 <T, FunctionPointer, Arg1, Arg2>,
510 VoidStoredFunctorPointerCall2<T, FunctionPointer, Arg1, Arg2> >
::type type;
512 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
513 class StoredMemberFunctionCall2 :
public RunFunctionTask<T>
516 StoredMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
517 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
521 this->result = (
object.*fn)(arg1, arg2);
524 T (Class::*fn)(Param1, Param2);
526 Arg1 arg1; Arg2 arg2;
528 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
529 class VoidStoredMemberFunctionCall2 :
public RunFunctionTask<T>
532 VoidStoredMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
533 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
537 (
object.*fn)(arg1, arg2);
540 T (Class::*fn)(Param1, Param2);
542 Arg1 arg1; Arg2 arg2;
544 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
545 struct SelectStoredMemberFunctionCall2
547 typedef typename SelectSpecialization<T>::template
548 Type<StoredMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
549 VoidStoredMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >
::type type;
551 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
552 class StoredConstMemberFunctionCall2 :
public RunFunctionTask<T>
555 StoredConstMemberFunctionCall2(T (Class::*_fn)(Param1, Param2)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
556 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
560 this->result = (
object.*fn)(arg1, arg2);
563 T (Class::*fn)(Param1, Param2)
const;
565 Arg1 arg1; Arg2 arg2;
567 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
568 class VoidStoredConstMemberFunctionCall2 :
public RunFunctionTask<T>
571 VoidStoredConstMemberFunctionCall2(T (Class::*_fn)(Param1, Param2)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
572 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
576 (
object.*fn)(arg1, arg2);
579 T (Class::*fn)(Param1, Param2)
const;
581 Arg1 arg1; Arg2 arg2;
583 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
584 struct SelectStoredConstMemberFunctionCall2
586 typedef typename SelectSpecialization<T>::template
587 Type<StoredConstMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
588 VoidStoredConstMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >
::type type;
590 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
591 class StoredMemberFunctionPointerCall2 :
public RunFunctionTask<T>
594 StoredMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
595 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
599 this->result = (
object->*fn)(arg1, arg2);
602 T (Class::*fn)(Param1, Param2);
604 Arg1 arg1; Arg2 arg2;
606 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
607 class VoidStoredMemberFunctionPointerCall2 :
public RunFunctionTask<T>
610 VoidStoredMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
611 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
615 (
object->*fn)(arg1, arg2);
618 T (Class::*fn)(Param1, Param2);
620 Arg1 arg1; Arg2 arg2;
622 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
623 struct SelectStoredMemberFunctionPointerCall2
625 typedef typename SelectSpecialization<T>::template
626 Type<StoredMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
627 VoidStoredMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >
::type type;
629 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
630 class StoredConstMemberFunctionPointerCall2 :
public RunFunctionTask<T>
633 StoredConstMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
634 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
638 this->result = (
object->*fn)(arg1, arg2);
641 T (Class::*fn)(Param1, Param2)
const;
643 Arg1 arg1; Arg2 arg2;
645 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
646 class VoidStoredConstMemberFunctionPointerCall2 :
public RunFunctionTask<T>
649 VoidStoredConstMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2)
650 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
654 (
object->*fn)(arg1, arg2);
657 T (Class::*fn)(Param1, Param2)
const;
659 Arg1 arg1; Arg2 arg2;
661 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2>
662 struct SelectStoredConstMemberFunctionPointerCall2
664 typedef typename SelectSpecialization<T>::template
665 Type<StoredConstMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>,
666 VoidStoredConstMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >
::type type;
668 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3>
669 struct StoredFunctorCall3:
public RunFunctionTask<T>
671 inline StoredFunctorCall3(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
672 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
673 void runFunctor() { this->result =
function(arg1, arg2, arg3); }
674 FunctionPointer
function;
675 Arg1 arg1; Arg2 arg2; Arg3 arg3;
678 template <
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3>
679 struct StoredFunctorCall3<void, FunctionPointer, Arg1, Arg2, Arg3>:
public RunFunctionTask<void>
681 inline StoredFunctorCall3(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
682 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
683 void runFunctor() {
function(arg1, arg2, arg3); }
684 FunctionPointer
function;
685 Arg1 arg1; Arg2 arg2; Arg3 arg3;
688 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3>
689 struct StoredFunctorPointerCall3:
public RunFunctionTask<T>
691 inline StoredFunctorPointerCall3(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
692 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
693 void runFunctor() { this->result =(*function)(arg1, arg2, arg3); }
694 FunctionPointer *
function;
695 Arg1 arg1; Arg2 arg2; Arg3 arg3;
698 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3>
699 struct VoidStoredFunctorPointerCall3:
public RunFunctionTask<T>
701 inline VoidStoredFunctorPointerCall3(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
702 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
703 void runFunctor() {(*function)(arg1, arg2, arg3); }
704 FunctionPointer *
function;
705 Arg1 arg1; Arg2 arg2; Arg3 arg3;
708 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3>
709 struct SelectStoredFunctorPointerCall3
711 typedef typename SelectSpecialization<T>::template
712 Type<StoredFunctorPointerCall3 <T, FunctionPointer, Arg1, Arg2, Arg3>,
713 VoidStoredFunctorPointerCall3<T, FunctionPointer, Arg1, Arg2, Arg3> >
::type type;
715 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
716 class StoredMemberFunctionCall3 :
public RunFunctionTask<T>
719 StoredMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
720 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
724 this->result = (
object.*fn)(arg1, arg2, arg3);
727 T (Class::*fn)(Param1, Param2, Param3);
729 Arg1 arg1; Arg2 arg2; Arg3 arg3;
731 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
732 class VoidStoredMemberFunctionCall3 :
public RunFunctionTask<T>
735 VoidStoredMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
736 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
740 (
object.*fn)(arg1, arg2, arg3);
743 T (Class::*fn)(Param1, Param2, Param3);
745 Arg1 arg1; Arg2 arg2; Arg3 arg3;
747 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
748 struct SelectStoredMemberFunctionCall3
750 typedef typename SelectSpecialization<T>::template
751 Type<StoredMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
752 VoidStoredMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >
::type type;
754 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
755 class StoredConstMemberFunctionCall3 :
public RunFunctionTask<T>
758 StoredConstMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
759 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
763 this->result = (
object.*fn)(arg1, arg2, arg3);
766 T (Class::*fn)(Param1, Param2, Param3)
const;
768 Arg1 arg1; Arg2 arg2; Arg3 arg3;
770 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
771 class VoidStoredConstMemberFunctionCall3 :
public RunFunctionTask<T>
774 VoidStoredConstMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
775 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
779 (
object.*fn)(arg1, arg2, arg3);
782 T (Class::*fn)(Param1, Param2, Param3)
const;
784 Arg1 arg1; Arg2 arg2; Arg3 arg3;
786 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
787 struct SelectStoredConstMemberFunctionCall3
789 typedef typename SelectSpecialization<T>::template
790 Type<StoredConstMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
791 VoidStoredConstMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >
::type type;
793 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
794 class StoredMemberFunctionPointerCall3 :
public RunFunctionTask<T>
797 StoredMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
798 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
802 this->result = (
object->*fn)(arg1, arg2, arg3);
805 T (Class::*fn)(Param1, Param2, Param3);
807 Arg1 arg1; Arg2 arg2; Arg3 arg3;
809 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
810 class VoidStoredMemberFunctionPointerCall3 :
public RunFunctionTask<T>
813 VoidStoredMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
814 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
818 (
object->*fn)(arg1, arg2, arg3);
821 T (Class::*fn)(Param1, Param2, Param3);
823 Arg1 arg1; Arg2 arg2; Arg3 arg3;
825 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
826 struct SelectStoredMemberFunctionPointerCall3
828 typedef typename SelectSpecialization<T>::template
829 Type<StoredMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
830 VoidStoredMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >
::type type;
832 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
833 class StoredConstMemberFunctionPointerCall3 :
public RunFunctionTask<T>
836 StoredConstMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
837 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
841 this->result = (
object->*fn)(arg1, arg2, arg3);
844 T (Class::*fn)(Param1, Param2, Param3)
const;
846 Arg1 arg1; Arg2 arg2; Arg3 arg3;
848 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
849 class VoidStoredConstMemberFunctionPointerCall3 :
public RunFunctionTask<T>
852 VoidStoredConstMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3)
853 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
857 (
object->*fn)(arg1, arg2, arg3);
860 T (Class::*fn)(Param1, Param2, Param3)
const;
862 Arg1 arg1; Arg2 arg2; Arg3 arg3;
864 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3>
865 struct SelectStoredConstMemberFunctionPointerCall3
867 typedef typename SelectSpecialization<T>::template
868 Type<StoredConstMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
869 VoidStoredConstMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >
::type type;
871 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
872 struct StoredFunctorCall4:
public RunFunctionTask<T>
874 inline StoredFunctorCall4(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
875 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
876 void runFunctor() { this->result =
function(arg1, arg2, arg3, arg4); }
877 FunctionPointer
function;
878 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
881 template <
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
882 struct StoredFunctorCall4<void, FunctionPointer, Arg1, Arg2, Arg3, Arg4>:
public RunFunctionTask<void>
884 inline StoredFunctorCall4(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
885 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
886 void runFunctor() {
function(arg1, arg2, arg3, arg4); }
887 FunctionPointer
function;
888 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
891 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
892 struct StoredFunctorPointerCall4:
public RunFunctionTask<T>
894 inline StoredFunctorPointerCall4(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
895 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
896 void runFunctor() { this->result =(*function)(arg1, arg2, arg3, arg4); }
897 FunctionPointer *
function;
898 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
901 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
902 struct VoidStoredFunctorPointerCall4:
public RunFunctionTask<T>
904 inline VoidStoredFunctorPointerCall4(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
905 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
906 void runFunctor() {(*function)(arg1, arg2, arg3, arg4); }
907 FunctionPointer *
function;
908 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
911 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
912 struct SelectStoredFunctorPointerCall4
914 typedef typename SelectSpecialization<T>::template
915 Type<StoredFunctorPointerCall4 <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4>,
916 VoidStoredFunctorPointerCall4<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4> >
::type type;
918 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
919 class StoredMemberFunctionCall4 :
public RunFunctionTask<T>
922 StoredMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
923 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
927 this->result = (
object.*fn)(arg1, arg2, arg3, arg4);
930 T (Class::*fn)(Param1, Param2, Param3, Param4);
932 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
934 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
935 class VoidStoredMemberFunctionCall4 :
public RunFunctionTask<T>
938 VoidStoredMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
939 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
943 (
object.*fn)(arg1, arg2, arg3, arg4);
946 T (Class::*fn)(Param1, Param2, Param3, Param4);
948 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
950 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
951 struct SelectStoredMemberFunctionCall4
953 typedef typename SelectSpecialization<T>::template
954 Type<StoredMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
955 VoidStoredMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >
::type type;
957 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
958 class StoredConstMemberFunctionCall4 :
public RunFunctionTask<T>
961 StoredConstMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
962 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
966 this->result = (
object.*fn)(arg1, arg2, arg3, arg4);
969 T (Class::*fn)(Param1, Param2, Param3, Param4)
const;
971 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
973 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
974 class VoidStoredConstMemberFunctionCall4 :
public RunFunctionTask<T>
977 VoidStoredConstMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
978 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
982 (
object.*fn)(arg1, arg2, arg3, arg4);
985 T (Class::*fn)(Param1, Param2, Param3, Param4)
const;
987 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
989 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
990 struct SelectStoredConstMemberFunctionCall4
992 typedef typename SelectSpecialization<T>::template
993 Type<StoredConstMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
994 VoidStoredConstMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >
::type type;
996 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
997 class StoredMemberFunctionPointerCall4 :
public RunFunctionTask<T>
1000 StoredMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
1001 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
1005 this->result = (
object->*fn)(arg1, arg2, arg3, arg4);
1008 T (Class::*fn)(Param1, Param2, Param3, Param4);
1010 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
1012 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
1013 class VoidStoredMemberFunctionPointerCall4 :
public RunFunctionTask<T>
1016 VoidStoredMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
1017 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
1021 (
object->*fn)(arg1, arg2, arg3, arg4);
1024 T (Class::*fn)(Param1, Param2, Param3, Param4);
1026 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
1028 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
1029 struct SelectStoredMemberFunctionPointerCall4
1031 typedef typename SelectSpecialization<T>::template
1032 Type<StoredMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
1033 VoidStoredMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >
::type type;
1035 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
1036 class StoredConstMemberFunctionPointerCall4 :
public RunFunctionTask<T>
1039 StoredConstMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
1040 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
1044 this->result = (
object->*fn)(arg1, arg2, arg3, arg4);
1047 T (Class::*fn)(Param1, Param2, Param3, Param4)
const;
1048 Class
const *object;
1049 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
1051 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
1052 class VoidStoredConstMemberFunctionPointerCall4 :
public RunFunctionTask<T>
1055 VoidStoredConstMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4)
1056 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
1060 (
object->*fn)(arg1, arg2, arg3, arg4);
1063 T (Class::*fn)(Param1, Param2, Param3, Param4)
const;
1064 Class
const *object;
1065 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
1067 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4>
1068 struct SelectStoredConstMemberFunctionPointerCall4
1070 typedef typename SelectSpecialization<T>::template
1071 Type<StoredConstMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
1072 VoidStoredConstMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >
::type type;
1074 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
1075 struct StoredFunctorCall5:
public RunFunctionTask<T>
1077 inline StoredFunctorCall5(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1078 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
1079 void runFunctor() { this->result =
function(arg1, arg2, arg3, arg4, arg5); }
1080 FunctionPointer
function;
1081 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1084 template <
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
1085 struct StoredFunctorCall5<void, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5>:
public RunFunctionTask<void>
1087 inline StoredFunctorCall5(FunctionPointer _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1088 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
1089 void runFunctor() {
function(arg1, arg2, arg3, arg4, arg5); }
1090 FunctionPointer
function;
1091 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1094 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
1095 struct StoredFunctorPointerCall5:
public RunFunctionTask<T>
1097 inline StoredFunctorPointerCall5(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1098 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
1099 void runFunctor() { this->result =(*function)(arg1, arg2, arg3, arg4, arg5); }
1100 FunctionPointer *
function;
1101 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1104 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
1105 struct VoidStoredFunctorPointerCall5:
public RunFunctionTask<T>
1107 inline VoidStoredFunctorPointerCall5(FunctionPointer * _function,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1108 : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
1109 void runFunctor() {(*function)(arg1, arg2, arg3, arg4, arg5); }
1110 FunctionPointer *
function;
1111 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1114 template <
typename T,
typename FunctionPo
inter,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4,
typename Arg5>
1115 struct SelectStoredFunctorPointerCall5
1117 typedef typename SelectSpecialization<T>::template
1118 Type<StoredFunctorPointerCall5 <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5>,
1119 VoidStoredFunctorPointerCall5<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5> >
::type type;
1121 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1122 class StoredMemberFunctionCall5 :
public RunFunctionTask<T>
1125 StoredMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1126 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1130 this->result = (
object.*fn)(arg1, arg2, arg3, arg4, arg5);
1133 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
1135 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1137 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1138 class VoidStoredMemberFunctionCall5 :
public RunFunctionTask<T>
1141 VoidStoredMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) ,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1142 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1146 (
object.*fn)(arg1, arg2, arg3, arg4, arg5);
1149 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
1151 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1153 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1154 struct SelectStoredMemberFunctionCall5
1156 typedef typename SelectSpecialization<T>::template
1157 Type<StoredMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
1158 VoidStoredMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >
::type type;
1160 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1161 class StoredConstMemberFunctionCall5 :
public RunFunctionTask<T>
1164 StoredConstMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1165 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1169 this->result = (
object.*fn)(arg1, arg2, arg3, arg4, arg5);
1172 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)
const;
1174 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1176 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1177 class VoidStoredConstMemberFunctionCall5 :
public RunFunctionTask<T>
1180 VoidStoredConstMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5)
const,
const Class &_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1181 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1185 (
object.*fn)(arg1, arg2, arg3, arg4, arg5);
1188 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)
const;
1190 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1192 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1193 struct SelectStoredConstMemberFunctionCall5
1195 typedef typename SelectSpecialization<T>::template
1196 Type<StoredConstMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
1197 VoidStoredConstMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >
::type type;
1199 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1200 class StoredMemberFunctionPointerCall5 :
public RunFunctionTask<T>
1203 StoredMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1204 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1208 this->result = (
object->*fn)(arg1, arg2, arg3, arg4, arg5);
1211 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
1213 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1215 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1216 class VoidStoredMemberFunctionPointerCall5 :
public RunFunctionTask<T>
1219 VoidStoredMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) , Class *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1220 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1224 (
object->*fn)(arg1, arg2, arg3, arg4, arg5);
1227 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
1229 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1231 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1232 struct SelectStoredMemberFunctionPointerCall5
1234 typedef typename SelectSpecialization<T>::template
1235 Type<StoredMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
1236 VoidStoredMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >
::type type;
1238 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1239 class StoredConstMemberFunctionPointerCall5 :
public RunFunctionTask<T>
1242 StoredConstMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1243 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1247 this->result = (
object->*fn)(arg1, arg2, arg3, arg4, arg5);
1250 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)
const;
1251 Class
const *object;
1252 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1254 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1255 class VoidStoredConstMemberFunctionPointerCall5 :
public RunFunctionTask<T>
1258 VoidStoredConstMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5)
const, Class
const *_object,
const Arg1 &_arg1,
const Arg2 &_arg2,
const Arg3 &_arg3,
const Arg4 &_arg4,
const Arg5 &_arg5)
1259 : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
1263 (
object->*fn)(arg1, arg2, arg3, arg4, arg5);
1266 T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)
const;
1267 Class
const *object;
1268 Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
1270 template <
typename T,
typename Class,
typename Param1,
typename Arg1,
typename Param2,
typename Arg2,
typename Param3,
typename Arg3,
typename Param4,
typename Arg4,
typename Param5,
typename Arg5>
1271 struct SelectStoredConstMemberFunctionPointerCall5
1273 typedef typename SelectSpecialization<T>::template
1274 Type<StoredConstMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
1275 VoidStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >
::type type;
1278 template <
typename T,
typename Functor>
1279 class StoredFunctorCall :
public RunFunctionTask<T>
1282 StoredFunctorCall(
const Functor &f) :
functor(f) { }
1290 template <
typename Functor>
1291 class StoredFunctorCall<void, Functor> :
public RunFunctionTask<void>
1294 StoredFunctorCall(
const Functor &f) :
functor(f) { }
1311 #endif // QT_NO_CONCURRENT
#define QT_END_NAMESPACE
This macro expands to.
#define QT_BEGIN_NAMESPACE
This macro expands to.
The QtConcurrent namespace provides high-level APIs that make it possible to write multi-threaded pro...
static Bool functor(Display *display, XEvent *event, XPointer arg)