qtconcurrentstoredfunctioncall.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:55k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the QtCore module of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. // Generated code, do not edit! Use generator at tools/qtconcurrent/generaterun/
  38. #ifndef QTCONCURRENT_STOREDFUNCTIONCALL_H
  39. #define QTCONCURRENT_STOREDFUNCTIONCALL_H
  40. #include <QtCore/qglobal.h>
  41. #ifndef QT_NO_CONCURRENT
  42. #include <QtCore/qtconcurrentrunbase.h>
  43. QT_BEGIN_HEADER
  44. QT_BEGIN_NAMESPACE
  45. QT_MODULE(Core)
  46. #ifndef qdoc
  47. namespace QtConcurrent {
  48. template <typename T, typename FunctionPointer>
  49. struct StoredFunctorCall0: public RunFunctionTask<T>
  50. {
  51.     inline StoredFunctorCall0(FunctionPointer _function)
  52.       : function(_function) {}
  53.     void runFunctor() { this->result = function(); }
  54.     FunctionPointer function;
  55. };
  56. template <typename T, typename FunctionPointer>
  57. struct VoidStoredFunctorCall0: public RunFunctionTask<T>
  58. {
  59.     inline VoidStoredFunctorCall0(FunctionPointer _function)
  60.       : function(_function) {}
  61.     void runFunctor() { function(); }
  62.     FunctionPointer function;
  63. };
  64. template <typename T, typename FunctionPointer>
  65. struct SelectStoredFunctorCall0
  66. {
  67.     typedef typename SelectSpecialization<T>::template
  68.         Type<StoredFunctorCall0    <T, FunctionPointer>,
  69.              VoidStoredFunctorCall0<T, FunctionPointer> >::type type;
  70. };
  71. template <typename T, typename FunctionPointer>
  72. struct StoredFunctorPointerCall0: public RunFunctionTask<T>
  73. {
  74.     inline StoredFunctorPointerCall0(FunctionPointer * _function)
  75.       : function(_function) {}
  76.     void runFunctor() { this->result =(*function)(); }
  77.     FunctionPointer * function;
  78. };
  79. template <typename T, typename FunctionPointer>
  80. struct VoidStoredFunctorPointerCall0: public RunFunctionTask<T>
  81. {
  82.     inline VoidStoredFunctorPointerCall0(FunctionPointer * _function)
  83.       : function(_function) {}
  84.     void runFunctor() {(*function)(); }
  85.     FunctionPointer * function;
  86. };
  87. template <typename T, typename FunctionPointer>
  88. struct SelectStoredFunctorPointerCall0
  89. {
  90.     typedef typename SelectSpecialization<T>::template
  91.         Type<StoredFunctorPointerCall0    <T, FunctionPointer>,
  92.              VoidStoredFunctorPointerCall0<T, FunctionPointer> >::type type;
  93. };
  94. template <typename T, typename Class>
  95. class StoredMemberFunctionCall0 : public RunFunctionTask<T>
  96. {
  97. public:
  98.     StoredMemberFunctionCall0(T (Class::*_fn)() , const Class &_object)
  99.     : fn(_fn), object(_object){ }
  100.     void runFunctor()
  101.     {
  102.         this->result = (object.*fn)();
  103.     }
  104. private:
  105.     T (Class::*fn)();
  106.     Class object;
  107. };
  108. template <typename T, typename Class>
  109. class VoidStoredMemberFunctionCall0 : public RunFunctionTask<T>
  110. {
  111. public:
  112.     VoidStoredMemberFunctionCall0(T (Class::*_fn)() , const Class &_object)
  113.     : fn(_fn), object(_object){ }
  114.     void runFunctor()
  115.     {
  116.         (object.*fn)();
  117.     }
  118. private:
  119.     T (Class::*fn)();
  120.     Class object;
  121. };
  122. template <typename T, typename Class>
  123. struct SelectStoredMemberFunctionCall0
  124. {
  125.     typedef typename SelectSpecialization<T>::template
  126.         Type<StoredMemberFunctionCall0    <T, Class>,
  127.              VoidStoredMemberFunctionCall0<T, Class> >::type type;
  128. };
  129. template <typename T, typename Class>
  130. class StoredConstMemberFunctionCall0 : public RunFunctionTask<T>
  131. {
  132. public:
  133.     StoredConstMemberFunctionCall0(T (Class::*_fn)() const, const Class &_object)
  134.     : fn(_fn), object(_object){ }
  135.     void runFunctor()
  136.     {
  137.         this->result = (object.*fn)();
  138.     }
  139. private:
  140.     T (Class::*fn)()const;
  141.     const Class object;
  142. };
  143. template <typename T, typename Class>
  144. class VoidStoredConstMemberFunctionCall0 : public RunFunctionTask<T>
  145. {
  146. public:
  147.     VoidStoredConstMemberFunctionCall0(T (Class::*_fn)() const, const Class &_object)
  148.     : fn(_fn), object(_object){ }
  149.     void runFunctor()
  150.     {
  151.         (object.*fn)();
  152.     }
  153. private:
  154.     T (Class::*fn)()const;
  155.     const Class object;
  156. };
  157. template <typename T, typename Class>
  158. struct SelectStoredConstMemberFunctionCall0
  159. {
  160.     typedef typename SelectSpecialization<T>::template
  161.         Type<StoredConstMemberFunctionCall0    <T, Class>,
  162.              VoidStoredConstMemberFunctionCall0<T, Class> >::type type;
  163. };
  164. template <typename T, typename Class>
  165. class StoredMemberFunctionPointerCall0 : public RunFunctionTask<T>
  166. {
  167. public:
  168.     StoredMemberFunctionPointerCall0(T (Class::*_fn)() , Class *_object)
  169.     : fn(_fn), object(_object){ }
  170.     void runFunctor()
  171.     {
  172.         this->result = (object->*fn)();
  173.     }
  174. private:
  175.     T (Class::*fn)();
  176.     Class *object;
  177. };
  178. template <typename T, typename Class>
  179. class VoidStoredMemberFunctionPointerCall0 : public RunFunctionTask<T>
  180. {
  181. public:
  182.     VoidStoredMemberFunctionPointerCall0(T (Class::*_fn)() , Class *_object)
  183.     : fn(_fn), object(_object){ }
  184.     void runFunctor()
  185.     {
  186.         (object->*fn)();
  187.     }
  188. private:
  189.     T (Class::*fn)();
  190.     Class *object;
  191. };
  192. template <typename T, typename Class>
  193. struct SelectStoredMemberFunctionPointerCall0
  194. {
  195.     typedef typename SelectSpecialization<T>::template
  196.         Type<StoredMemberFunctionPointerCall0    <T, Class>,
  197.              VoidStoredMemberFunctionPointerCall0<T, Class> >::type type;
  198. };
  199. template <typename T, typename Class>
  200. class StoredConstMemberFunctionPointerCall0 : public RunFunctionTask<T>
  201. {
  202. public:
  203.     StoredConstMemberFunctionPointerCall0(T (Class::*_fn)() const, Class const *_object)
  204.     : fn(_fn), object(_object){ }
  205.     void runFunctor()
  206.     {
  207.         this->result = (object->*fn)();
  208.     }
  209. private:
  210.     T (Class::*fn)()const;
  211.     Class const *object;
  212. };
  213. template <typename T, typename Class>
  214. class VoidStoredConstMemberFunctionPointerCall0 : public RunFunctionTask<T>
  215. {
  216. public:
  217.     VoidStoredConstMemberFunctionPointerCall0(T (Class::*_fn)() const, Class const *_object)
  218.     : fn(_fn), object(_object){ }
  219.     void runFunctor()
  220.     {
  221.         (object->*fn)();
  222.     }
  223. private:
  224.     T (Class::*fn)()const;
  225.     Class const *object;
  226. };
  227. template <typename T, typename Class>
  228. struct SelectStoredConstMemberFunctionPointerCall0
  229. {
  230.     typedef typename SelectSpecialization<T>::template
  231.         Type<StoredConstMemberFunctionPointerCall0    <T, Class>,
  232.              VoidStoredConstMemberFunctionPointerCall0<T, Class> >::type type;
  233. };
  234. template <typename T, typename FunctionPointer, typename Arg1>
  235. struct StoredFunctorCall1: public RunFunctionTask<T>
  236. {
  237.     inline StoredFunctorCall1(FunctionPointer _function, const Arg1 &_arg1)
  238.       : function(_function), arg1(_arg1) {}
  239.     void runFunctor() { this->result = function(arg1); }
  240.     FunctionPointer function;
  241.     Arg1 arg1;
  242. };
  243. template <typename T, typename FunctionPointer, typename Arg1>
  244. struct VoidStoredFunctorCall1: public RunFunctionTask<T>
  245. {
  246.     inline VoidStoredFunctorCall1(FunctionPointer _function, const Arg1 &_arg1)
  247.       : function(_function), arg1(_arg1) {}
  248.     void runFunctor() { function(arg1); }
  249.     FunctionPointer function;
  250.     Arg1 arg1;
  251. };
  252. template <typename T, typename FunctionPointer, typename Arg1>
  253. struct SelectStoredFunctorCall1
  254. {
  255.     typedef typename SelectSpecialization<T>::template
  256.         Type<StoredFunctorCall1    <T, FunctionPointer, Arg1>,
  257.              VoidStoredFunctorCall1<T, FunctionPointer, Arg1> >::type type;
  258. };
  259. template <typename T, typename FunctionPointer, typename Arg1>
  260. struct StoredFunctorPointerCall1: public RunFunctionTask<T>
  261. {
  262.     inline StoredFunctorPointerCall1(FunctionPointer * _function, const Arg1 &_arg1)
  263.       : function(_function), arg1(_arg1) {}
  264.     void runFunctor() { this->result =(*function)(arg1); }
  265.     FunctionPointer * function;
  266.     Arg1 arg1;
  267. };
  268. template <typename T, typename FunctionPointer, typename Arg1>
  269. struct VoidStoredFunctorPointerCall1: public RunFunctionTask<T>
  270. {
  271.     inline VoidStoredFunctorPointerCall1(FunctionPointer * _function, const Arg1 &_arg1)
  272.       : function(_function), arg1(_arg1) {}
  273.     void runFunctor() {(*function)(arg1); }
  274.     FunctionPointer * function;
  275.     Arg1 arg1;
  276. };
  277. template <typename T, typename FunctionPointer, typename Arg1>
  278. struct SelectStoredFunctorPointerCall1
  279. {
  280.     typedef typename SelectSpecialization<T>::template
  281.         Type<StoredFunctorPointerCall1    <T, FunctionPointer, Arg1>,
  282.              VoidStoredFunctorPointerCall1<T, FunctionPointer, Arg1> >::type type;
  283. };
  284. template <typename T, typename Class, typename Param1, typename Arg1>
  285. class StoredMemberFunctionCall1 : public RunFunctionTask<T>
  286. {
  287. public:
  288.     StoredMemberFunctionCall1(T (Class::*_fn)(Param1) , const Class &_object, const Arg1 &_arg1)
  289.     : fn(_fn), object(_object), arg1(_arg1){ }
  290.     void runFunctor()
  291.     {
  292.         this->result = (object.*fn)(arg1);
  293.     }
  294. private:
  295.     T (Class::*fn)(Param1);
  296.     Class object;
  297.     Arg1 arg1;
  298. };
  299. template <typename T, typename Class, typename Param1, typename Arg1>
  300. class VoidStoredMemberFunctionCall1 : public RunFunctionTask<T>
  301. {
  302. public:
  303.     VoidStoredMemberFunctionCall1(T (Class::*_fn)(Param1) , const Class &_object, const Arg1 &_arg1)
  304.     : fn(_fn), object(_object), arg1(_arg1){ }
  305.     void runFunctor()
  306.     {
  307.         (object.*fn)(arg1);
  308.     }
  309. private:
  310.     T (Class::*fn)(Param1);
  311.     Class object;
  312.     Arg1 arg1;
  313. };
  314. template <typename T, typename Class, typename Param1, typename Arg1>
  315. struct SelectStoredMemberFunctionCall1
  316. {
  317.     typedef typename SelectSpecialization<T>::template
  318.         Type<StoredMemberFunctionCall1    <T, Class, Param1, Arg1>,
  319.              VoidStoredMemberFunctionCall1<T, Class, Param1, Arg1> >::type type;
  320. };
  321. template <typename T, typename Class, typename Param1, typename Arg1>
  322. class StoredConstMemberFunctionCall1 : public RunFunctionTask<T>
  323. {
  324. public:
  325.     StoredConstMemberFunctionCall1(T (Class::*_fn)(Param1) const, const Class &_object, const Arg1 &_arg1)
  326.     : fn(_fn), object(_object), arg1(_arg1){ }
  327.     void runFunctor()
  328.     {
  329.         this->result = (object.*fn)(arg1);
  330.     }
  331. private:
  332.     T (Class::*fn)(Param1)const;
  333.     const Class object;
  334.     Arg1 arg1;
  335. };
  336. template <typename T, typename Class, typename Param1, typename Arg1>
  337. class VoidStoredConstMemberFunctionCall1 : public RunFunctionTask<T>
  338. {
  339. public:
  340.     VoidStoredConstMemberFunctionCall1(T (Class::*_fn)(Param1) const, const Class &_object, const Arg1 &_arg1)
  341.     : fn(_fn), object(_object), arg1(_arg1){ }
  342.     void runFunctor()
  343.     {
  344.         (object.*fn)(arg1);
  345.     }
  346. private:
  347.     T (Class::*fn)(Param1)const;
  348.     const Class object;
  349.     Arg1 arg1;
  350. };
  351. template <typename T, typename Class, typename Param1, typename Arg1>
  352. struct SelectStoredConstMemberFunctionCall1
  353. {
  354.     typedef typename SelectSpecialization<T>::template
  355.         Type<StoredConstMemberFunctionCall1    <T, Class, Param1, Arg1>,
  356.              VoidStoredConstMemberFunctionCall1<T, Class, Param1, Arg1> >::type type;
  357. };
  358. template <typename T, typename Class, typename Param1, typename Arg1>
  359. class StoredMemberFunctionPointerCall1 : public RunFunctionTask<T>
  360. {
  361. public:
  362.     StoredMemberFunctionPointerCall1(T (Class::*_fn)(Param1) , Class *_object, const Arg1 &_arg1)
  363.     : fn(_fn), object(_object), arg1(_arg1){ }
  364.     void runFunctor()
  365.     {
  366.         this->result = (object->*fn)(arg1);
  367.     }
  368. private:
  369.     T (Class::*fn)(Param1);
  370.     Class *object;
  371.     Arg1 arg1;
  372. };
  373. template <typename T, typename Class, typename Param1, typename Arg1>
  374. class VoidStoredMemberFunctionPointerCall1 : public RunFunctionTask<T>
  375. {
  376. public:
  377.     VoidStoredMemberFunctionPointerCall1(T (Class::*_fn)(Param1) , Class *_object, const Arg1 &_arg1)
  378.     : fn(_fn), object(_object), arg1(_arg1){ }
  379.     void runFunctor()
  380.     {
  381.         (object->*fn)(arg1);
  382.     }
  383. private:
  384.     T (Class::*fn)(Param1);
  385.     Class *object;
  386.     Arg1 arg1;
  387. };
  388. template <typename T, typename Class, typename Param1, typename Arg1>
  389. struct SelectStoredMemberFunctionPointerCall1
  390. {
  391.     typedef typename SelectSpecialization<T>::template
  392.         Type<StoredMemberFunctionPointerCall1    <T, Class, Param1, Arg1>,
  393.              VoidStoredMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
  394. };
  395. template <typename T, typename Class, typename Param1, typename Arg1>
  396. class StoredConstMemberFunctionPointerCall1 : public RunFunctionTask<T>
  397. {
  398. public:
  399.     StoredConstMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const, Class const *_object, const Arg1 &_arg1)
  400.     : fn(_fn), object(_object), arg1(_arg1){ }
  401.     void runFunctor()
  402.     {
  403.         this->result = (object->*fn)(arg1);
  404.     }
  405. private:
  406.     T (Class::*fn)(Param1)const;
  407.     Class const *object;
  408.     Arg1 arg1;
  409. };
  410. template <typename T, typename Class, typename Param1, typename Arg1>
  411. class VoidStoredConstMemberFunctionPointerCall1 : public RunFunctionTask<T>
  412. {
  413. public:
  414.     VoidStoredConstMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const, Class const *_object, const Arg1 &_arg1)
  415.     : fn(_fn), object(_object), arg1(_arg1){ }
  416.     void runFunctor()
  417.     {
  418.         (object->*fn)(arg1);
  419.     }
  420. private:
  421.     T (Class::*fn)(Param1)const;
  422.     Class const *object;
  423.     Arg1 arg1;
  424. };
  425. template <typename T, typename Class, typename Param1, typename Arg1>
  426. struct SelectStoredConstMemberFunctionPointerCall1
  427. {
  428.     typedef typename SelectSpecialization<T>::template
  429.         Type<StoredConstMemberFunctionPointerCall1    <T, Class, Param1, Arg1>,
  430.              VoidStoredConstMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type;
  431. };
  432. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  433. struct StoredFunctorCall2: public RunFunctionTask<T>
  434. {
  435.     inline StoredFunctorCall2(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2)
  436.       : function(_function), arg1(_arg1), arg2(_arg2) {}
  437.     void runFunctor() { this->result = function(arg1, arg2); }
  438.     FunctionPointer function;
  439.     Arg1 arg1; Arg2 arg2;
  440. };
  441. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  442. struct VoidStoredFunctorCall2: public RunFunctionTask<T>
  443. {
  444.     inline VoidStoredFunctorCall2(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2)
  445.       : function(_function), arg1(_arg1), arg2(_arg2) {}
  446.     void runFunctor() { function(arg1, arg2); }
  447.     FunctionPointer function;
  448.     Arg1 arg1; Arg2 arg2;
  449. };
  450. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  451. struct SelectStoredFunctorCall2
  452. {
  453.     typedef typename SelectSpecialization<T>::template
  454.         Type<StoredFunctorCall2    <T, FunctionPointer, Arg1, Arg2>,
  455.              VoidStoredFunctorCall2<T, FunctionPointer, Arg1, Arg2> >::type type;
  456. };
  457. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  458. struct StoredFunctorPointerCall2: public RunFunctionTask<T>
  459. {
  460.     inline StoredFunctorPointerCall2(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2)
  461.       : function(_function), arg1(_arg1), arg2(_arg2) {}
  462.     void runFunctor() { this->result =(*function)(arg1, arg2); }
  463.     FunctionPointer * function;
  464.     Arg1 arg1; Arg2 arg2;
  465. };
  466. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  467. struct VoidStoredFunctorPointerCall2: public RunFunctionTask<T>
  468. {
  469.     inline VoidStoredFunctorPointerCall2(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2)
  470.     : function(_function), arg1(_arg1), arg2(_arg2) {}
  471.     void runFunctor() {(*function)(arg1, arg2); }
  472.     FunctionPointer * function;
  473.     Arg1 arg1; Arg2 arg2;
  474. };
  475. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2>
  476. struct SelectStoredFunctorPointerCall2
  477. {
  478.     typedef typename SelectSpecialization<T>::template
  479.         Type<StoredFunctorPointerCall2    <T, FunctionPointer, Arg1, Arg2>,
  480.              VoidStoredFunctorPointerCall2<T, FunctionPointer, Arg1, Arg2> >::type type;
  481. };
  482. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  483. class StoredMemberFunctionCall2 : public RunFunctionTask<T>
  484. {
  485. public:
  486.     StoredMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
  487.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  488.     void runFunctor()
  489.     {
  490.         this->result = (object.*fn)(arg1, arg2);
  491.     }
  492. private:
  493.     T (Class::*fn)(Param1, Param2);
  494.     Class object;
  495.     Arg1 arg1; Arg2 arg2;
  496. };
  497. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  498. class VoidStoredMemberFunctionCall2 : public RunFunctionTask<T>
  499. {
  500. public:
  501.     VoidStoredMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
  502.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  503.     void runFunctor()
  504.     {
  505.         (object.*fn)(arg1, arg2);
  506.     }
  507. private:
  508.     T (Class::*fn)(Param1, Param2);
  509.     Class object;
  510.     Arg1 arg1; Arg2 arg2;
  511. };
  512. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  513. struct SelectStoredMemberFunctionCall2
  514. {
  515.     typedef typename SelectSpecialization<T>::template
  516.         Type<StoredMemberFunctionCall2    <T, Class, Param1, Arg1, Param2, Arg2>,
  517.              VoidStoredMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
  518. };
  519. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  520. class StoredConstMemberFunctionCall2 : public RunFunctionTask<T>
  521. {
  522. public:
  523.     StoredConstMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
  524.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  525.     void runFunctor()
  526.     {
  527.         this->result = (object.*fn)(arg1, arg2);
  528.     }
  529. private:
  530.     T (Class::*fn)(Param1, Param2)const;
  531.     const Class object;
  532.     Arg1 arg1; Arg2 arg2;
  533. };
  534. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  535. class VoidStoredConstMemberFunctionCall2 : public RunFunctionTask<T>
  536. {
  537. public:
  538.     VoidStoredConstMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2)
  539.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  540.     void runFunctor()
  541.     {
  542.         (object.*fn)(arg1, arg2);
  543.     }
  544. private:
  545.     T (Class::*fn)(Param1, Param2)const;
  546.     const Class object;
  547.     Arg1 arg1; Arg2 arg2;
  548. };
  549. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  550. struct SelectStoredConstMemberFunctionCall2
  551. {
  552.     typedef typename SelectSpecialization<T>::template
  553.         Type<StoredConstMemberFunctionCall2    <T, Class, Param1, Arg1, Param2, Arg2>,
  554.              VoidStoredConstMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
  555. };
  556. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  557. class StoredMemberFunctionPointerCall2 : public RunFunctionTask<T>
  558. {
  559. public:
  560.     StoredMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2)
  561.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  562.     void runFunctor()
  563.     {
  564.         this->result = (object->*fn)(arg1, arg2);
  565.     }
  566. private:
  567.     T (Class::*fn)(Param1, Param2);
  568.     Class *object;
  569.     Arg1 arg1; Arg2 arg2;
  570. };
  571. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  572. class VoidStoredMemberFunctionPointerCall2 : public RunFunctionTask<T>
  573. {
  574. public:
  575.     VoidStoredMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2)
  576.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  577.     void runFunctor()
  578.     {
  579.         (object->*fn)(arg1, arg2);
  580.     }
  581. private:
  582.     T (Class::*fn)(Param1, Param2);
  583.     Class *object;
  584.     Arg1 arg1; Arg2 arg2;
  585. };
  586. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  587. struct SelectStoredMemberFunctionPointerCall2
  588. {
  589.     typedef typename SelectSpecialization<T>::template
  590.         Type<StoredMemberFunctionPointerCall2    <T, Class, Param1, Arg1, Param2, Arg2>,
  591.              VoidStoredMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
  592. };
  593. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  594. class StoredConstMemberFunctionPointerCall2 : public RunFunctionTask<T>
  595. {
  596. public:
  597.     StoredConstMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2)
  598.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  599.     void runFunctor()
  600.     {
  601.         this->result = (object->*fn)(arg1, arg2);
  602.     }
  603. private:
  604.     T (Class::*fn)(Param1, Param2)const;
  605.     Class const *object;
  606.     Arg1 arg1; Arg2 arg2;
  607. };
  608. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  609. class VoidStoredConstMemberFunctionPointerCall2 : public RunFunctionTask<T>
  610. {
  611. public:
  612.     VoidStoredConstMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2)
  613.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ }
  614.     void runFunctor()
  615.     {
  616.         (object->*fn)(arg1, arg2);
  617.     }
  618. private:
  619.     T (Class::*fn)(Param1, Param2)const;
  620.     Class const *object;
  621.     Arg1 arg1; Arg2 arg2;
  622. };
  623. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2>
  624. struct SelectStoredConstMemberFunctionPointerCall2
  625. {
  626.     typedef typename SelectSpecialization<T>::template
  627.         Type<StoredConstMemberFunctionPointerCall2    <T, Class, Param1, Arg1, Param2, Arg2>,
  628.              VoidStoredConstMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type;
  629. };
  630. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  631. struct StoredFunctorCall3: public RunFunctionTask<T>
  632. {
  633.     inline StoredFunctorCall3(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  634.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
  635.     void runFunctor() { this->result = function(arg1, arg2, arg3); }
  636.     FunctionPointer function;
  637.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  638. };
  639. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  640. struct VoidStoredFunctorCall3: public RunFunctionTask<T>
  641. {
  642.     inline VoidStoredFunctorCall3(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  643.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
  644.     void runFunctor() { function(arg1, arg2, arg3); }
  645.     FunctionPointer function;
  646.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  647. };
  648. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  649. struct SelectStoredFunctorCall3
  650. {
  651.     typedef typename SelectSpecialization<T>::template
  652.         Type<StoredFunctorCall3    <T, FunctionPointer, Arg1, Arg2, Arg3>,
  653.              VoidStoredFunctorCall3<T, FunctionPointer, Arg1, Arg2, Arg3> >::type type;
  654. };
  655. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  656. struct StoredFunctorPointerCall3: public RunFunctionTask<T>
  657. {
  658.     inline StoredFunctorPointerCall3(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  659.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
  660.     void runFunctor() { this->result =(*function)(arg1, arg2, arg3); }
  661.     FunctionPointer * function;
  662.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  663. };
  664. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  665. struct VoidStoredFunctorPointerCall3: public RunFunctionTask<T>
  666. {
  667.     inline VoidStoredFunctorPointerCall3(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  668.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3) {}
  669.     void runFunctor() {(*function)(arg1, arg2, arg3); }
  670.     FunctionPointer * function;
  671.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  672. };
  673. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3>
  674. struct SelectStoredFunctorPointerCall3
  675. {
  676.     typedef typename SelectSpecialization<T>::template
  677.         Type<StoredFunctorPointerCall3    <T, FunctionPointer, Arg1, Arg2, Arg3>,
  678.              VoidStoredFunctorPointerCall3<T, FunctionPointer, Arg1, Arg2, Arg3> >::type type;
  679. };
  680. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  681. class StoredMemberFunctionCall3 : public RunFunctionTask<T>
  682. {
  683. public:
  684.     StoredMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  685.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  686.     void runFunctor()
  687.     {
  688.         this->result = (object.*fn)(arg1, arg2, arg3);
  689.     }
  690. private:
  691.     T (Class::*fn)(Param1, Param2, Param3);
  692.     Class object;
  693.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  694. };
  695. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  696. class VoidStoredMemberFunctionCall3 : public RunFunctionTask<T>
  697. {
  698. public:
  699.     VoidStoredMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  700.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  701.     void runFunctor()
  702.     {
  703.         (object.*fn)(arg1, arg2, arg3);
  704.     }
  705. private:
  706.     T (Class::*fn)(Param1, Param2, Param3);
  707.     Class object;
  708.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  709. };
  710. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  711. struct SelectStoredMemberFunctionCall3
  712. {
  713.     typedef typename SelectSpecialization<T>::template
  714.         Type<StoredMemberFunctionCall3    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
  715.              VoidStoredMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
  716. };
  717. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  718. class StoredConstMemberFunctionCall3 : public RunFunctionTask<T>
  719. {
  720. public:
  721.     StoredConstMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  722.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  723.     void runFunctor()
  724.     {
  725.         this->result = (object.*fn)(arg1, arg2, arg3);
  726.     }
  727. private:
  728.     T (Class::*fn)(Param1, Param2, Param3)const;
  729.     const Class object;
  730.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  731. };
  732. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  733. class VoidStoredConstMemberFunctionCall3 : public RunFunctionTask<T>
  734. {
  735. public:
  736.     VoidStoredConstMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  737.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  738.     void runFunctor()
  739.     {
  740.         (object.*fn)(arg1, arg2, arg3);
  741.     }
  742. private:
  743.     T (Class::*fn)(Param1, Param2, Param3)const;
  744.     const Class object;
  745.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  746. };
  747. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  748. struct SelectStoredConstMemberFunctionCall3
  749. {
  750.     typedef typename SelectSpecialization<T>::template
  751.         Type<StoredConstMemberFunctionCall3    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
  752.              VoidStoredConstMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
  753. };
  754. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  755. class StoredMemberFunctionPointerCall3 : public RunFunctionTask<T>
  756. {
  757. public:
  758.     StoredMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  759.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  760.     void runFunctor()
  761.     {
  762.         this->result = (object->*fn)(arg1, arg2, arg3);
  763.     }
  764. private:
  765.     T (Class::*fn)(Param1, Param2, Param3);
  766.     Class *object;
  767.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  768. };
  769. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  770. class VoidStoredMemberFunctionPointerCall3 : public RunFunctionTask<T>
  771. {
  772. public:
  773.     VoidStoredMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  774.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  775.     void runFunctor()
  776.     {
  777.         (object->*fn)(arg1, arg2, arg3);
  778.     }
  779. private:
  780.     T (Class::*fn)(Param1, Param2, Param3);
  781.     Class *object;
  782.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  783. };
  784. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  785. struct SelectStoredMemberFunctionPointerCall3
  786. {
  787.     typedef typename SelectSpecialization<T>::template
  788.         Type<StoredMemberFunctionPointerCall3    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
  789.              VoidStoredMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
  790. };
  791. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  792. class StoredConstMemberFunctionPointerCall3 : public RunFunctionTask<T>
  793. {
  794. public:
  795.     StoredConstMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  796.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  797.     void runFunctor()
  798.     {
  799.         this->result = (object->*fn)(arg1, arg2, arg3);
  800.     }
  801. private:
  802.     T (Class::*fn)(Param1, Param2, Param3)const;
  803.     Class const *object;
  804.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  805. };
  806. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  807. class VoidStoredConstMemberFunctionPointerCall3 : public RunFunctionTask<T>
  808. {
  809. public:
  810.     VoidStoredConstMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3)
  811.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ }
  812.     void runFunctor()
  813.     {
  814.         (object->*fn)(arg1, arg2, arg3);
  815.     }
  816. private:
  817.     T (Class::*fn)(Param1, Param2, Param3)const;
  818.     Class const *object;
  819.     Arg1 arg1; Arg2 arg2; Arg3 arg3;
  820. };
  821. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3>
  822. struct SelectStoredConstMemberFunctionPointerCall3
  823. {
  824.     typedef typename SelectSpecialization<T>::template
  825.         Type<StoredConstMemberFunctionPointerCall3    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>,
  826.              VoidStoredConstMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type;
  827. };
  828. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  829. struct StoredFunctorCall4: public RunFunctionTask<T>
  830. {
  831.     inline StoredFunctorCall4(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  832.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
  833.     void runFunctor() { this->result = function(arg1, arg2, arg3, arg4); }
  834.     FunctionPointer function;
  835.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  836. };
  837. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  838. struct VoidStoredFunctorCall4: public RunFunctionTask<T>
  839. {
  840.     inline VoidStoredFunctorCall4(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  841.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
  842.     void runFunctor() { function(arg1, arg2, arg3, arg4); }
  843.     FunctionPointer function;
  844.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  845. };
  846. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  847. struct SelectStoredFunctorCall4
  848. {
  849.     typedef typename SelectSpecialization<T>::template
  850.         Type<StoredFunctorCall4    <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4>,
  851.              VoidStoredFunctorCall4<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4> >::type type;
  852. };
  853. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  854. struct StoredFunctorPointerCall4: public RunFunctionTask<T>
  855. {
  856.     inline StoredFunctorPointerCall4(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  857.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
  858.     void runFunctor() { this->result =(*function)(arg1, arg2, arg3, arg4); }
  859.     FunctionPointer * function;
  860.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  861. };
  862. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  863. struct VoidStoredFunctorPointerCall4: public RunFunctionTask<T>
  864. {
  865.     inline VoidStoredFunctorPointerCall4(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  866.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4) {}
  867.     void runFunctor() {(*function)(arg1, arg2, arg3, arg4); }
  868.     FunctionPointer * function;
  869.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  870. };
  871. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
  872. struct SelectStoredFunctorPointerCall4
  873. {
  874.     typedef typename SelectSpecialization<T>::template
  875.         Type<StoredFunctorPointerCall4    <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4>,
  876.              VoidStoredFunctorPointerCall4<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4> >::type type;
  877. };
  878. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  879. class StoredMemberFunctionCall4 : public RunFunctionTask<T>
  880. {
  881. public:
  882.     StoredMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  883.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  884.     void runFunctor()
  885.     {
  886.         this->result = (object.*fn)(arg1, arg2, arg3, arg4);
  887.     }
  888. private:
  889.     T (Class::*fn)(Param1, Param2, Param3, Param4);
  890.     Class object;
  891.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  892. };
  893. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  894. class VoidStoredMemberFunctionCall4 : public RunFunctionTask<T>
  895. {
  896. public:
  897.     VoidStoredMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  898.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  899.     void runFunctor()
  900.     {
  901.         (object.*fn)(arg1, arg2, arg3, arg4);
  902.     }
  903. private:
  904.     T (Class::*fn)(Param1, Param2, Param3, Param4);
  905.     Class object;
  906.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  907. };
  908. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  909. struct SelectStoredMemberFunctionCall4
  910. {
  911.     typedef typename SelectSpecialization<T>::template
  912.         Type<StoredMemberFunctionCall4    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
  913.              VoidStoredMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
  914. };
  915. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  916. class StoredConstMemberFunctionCall4 : public RunFunctionTask<T>
  917. {
  918. public:
  919.     StoredConstMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  920.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  921.     void runFunctor()
  922.     {
  923.         this->result = (object.*fn)(arg1, arg2, arg3, arg4);
  924.     }
  925. private:
  926.     T (Class::*fn)(Param1, Param2, Param3, Param4)const;
  927.     const Class object;
  928.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  929. };
  930. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  931. class VoidStoredConstMemberFunctionCall4 : public RunFunctionTask<T>
  932. {
  933. public:
  934.     VoidStoredConstMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  935.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  936.     void runFunctor()
  937.     {
  938.         (object.*fn)(arg1, arg2, arg3, arg4);
  939.     }
  940. private:
  941.     T (Class::*fn)(Param1, Param2, Param3, Param4)const;
  942.     const Class object;
  943.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  944. };
  945. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  946. struct SelectStoredConstMemberFunctionCall4
  947. {
  948.     typedef typename SelectSpecialization<T>::template
  949.         Type<StoredConstMemberFunctionCall4    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
  950.              VoidStoredConstMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
  951. };
  952. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  953. class StoredMemberFunctionPointerCall4 : public RunFunctionTask<T>
  954. {
  955. public:
  956.     StoredMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  957.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  958.     void runFunctor()
  959.     {
  960.         this->result = (object->*fn)(arg1, arg2, arg3, arg4);
  961.     }
  962. private:
  963.     T (Class::*fn)(Param1, Param2, Param3, Param4);
  964.     Class *object;
  965.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  966. };
  967. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  968. class VoidStoredMemberFunctionPointerCall4 : public RunFunctionTask<T>
  969. {
  970. public:
  971.     VoidStoredMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) , Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  972.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  973.     void runFunctor()
  974.     {
  975.         (object->*fn)(arg1, arg2, arg3, arg4);
  976.     }
  977. private:
  978.     T (Class::*fn)(Param1, Param2, Param3, Param4);
  979.     Class *object;
  980.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  981. };
  982. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  983. struct SelectStoredMemberFunctionPointerCall4
  984. {
  985.     typedef typename SelectSpecialization<T>::template
  986.         Type<StoredMemberFunctionPointerCall4    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
  987.              VoidStoredMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
  988. };
  989. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  990. class StoredConstMemberFunctionPointerCall4 : public RunFunctionTask<T>
  991. {
  992. public:
  993.     StoredConstMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  994.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  995.     void runFunctor()
  996.     {
  997.         this->result = (object->*fn)(arg1, arg2, arg3, arg4);
  998.     }
  999. private:
  1000.     T (Class::*fn)(Param1, Param2, Param3, Param4)const;
  1001.     Class const *object;
  1002.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  1003. };
  1004. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  1005. class VoidStoredConstMemberFunctionPointerCall4 : public RunFunctionTask<T>
  1006. {
  1007. public:
  1008.     VoidStoredConstMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4)
  1009.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ }
  1010.     void runFunctor()
  1011.     {
  1012.         (object->*fn)(arg1, arg2, arg3, arg4);
  1013.     }
  1014. private:
  1015.     T (Class::*fn)(Param1, Param2, Param3, Param4)const;
  1016.     Class const *object;
  1017.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4;
  1018. };
  1019. template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4>
  1020. struct SelectStoredConstMemberFunctionPointerCall4
  1021. {
  1022.     typedef typename SelectSpecialization<T>::template
  1023.         Type<StoredConstMemberFunctionPointerCall4    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>,
  1024.              VoidStoredConstMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type;
  1025. };
  1026. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1027. struct StoredFunctorCall5: public RunFunctionTask<T>
  1028. {
  1029.     inline StoredFunctorCall5(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
  1030.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
  1031.     void runFunctor() { this->result = function(arg1, arg2, arg3, arg4, arg5); }
  1032.     FunctionPointer function;
  1033.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1034. };
  1035. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1036. struct VoidStoredFunctorCall5: public RunFunctionTask<T>
  1037. {
  1038.     inline VoidStoredFunctorCall5(FunctionPointer _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
  1039.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
  1040.     void runFunctor() { function(arg1, arg2, arg3, arg4, arg5); }
  1041.     FunctionPointer function;
  1042.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1043. };
  1044. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1045. struct SelectStoredFunctorCall5
  1046. {
  1047.     typedef typename SelectSpecialization<T>::template
  1048.         Type<StoredFunctorCall5    <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5>,
  1049.              VoidStoredFunctorCall5<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5> >::type type;
  1050. };
  1051. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1052. struct StoredFunctorPointerCall5: public RunFunctionTask<T>
  1053. {
  1054.     inline StoredFunctorPointerCall5(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
  1055.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
  1056.     void runFunctor() { this->result =(*function)(arg1, arg2, arg3, arg4, arg5); }
  1057.     FunctionPointer * function;
  1058.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1059. };
  1060. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1061. struct VoidStoredFunctorPointerCall5: public RunFunctionTask<T>
  1062. {
  1063.     inline VoidStoredFunctorPointerCall5(FunctionPointer * _function, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5)
  1064.       : function(_function), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5) {}
  1065.     void runFunctor() {(*function)(arg1, arg2, arg3, arg4, arg5); }
  1066.     FunctionPointer * function;
  1067.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1068. };
  1069. template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5>
  1070. struct SelectStoredFunctorPointerCall5
  1071. {
  1072.     typedef typename SelectSpecialization<T>::template
  1073.         Type<StoredFunctorPointerCall5    <T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5>,
  1074.              VoidStoredFunctorPointerCall5<T, FunctionPointer, Arg1, Arg2, Arg3, Arg4, Arg5> >::type type;
  1075. };
  1076. 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>
  1077. class StoredMemberFunctionCall5 : public RunFunctionTask<T>
  1078. {
  1079. public:
  1080.     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)
  1081.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1082.     void runFunctor()
  1083.     {
  1084.         this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5);
  1085.     }
  1086. private:
  1087.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
  1088.     Class object;
  1089.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1090. };
  1091. 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>
  1092. class VoidStoredMemberFunctionCall5 : public RunFunctionTask<T>
  1093. {
  1094. public:
  1095.     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)
  1096.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1097.     void runFunctor()
  1098.     {
  1099.         (object.*fn)(arg1, arg2, arg3, arg4, arg5);
  1100.     }
  1101. private:
  1102.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
  1103.     Class object;
  1104.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1105. };
  1106. 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>
  1107. struct SelectStoredMemberFunctionCall5
  1108. {
  1109.     typedef typename SelectSpecialization<T>::template
  1110.         Type<StoredMemberFunctionCall5    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
  1111.              VoidStoredMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
  1112. };
  1113. 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>
  1114. class StoredConstMemberFunctionCall5 : public RunFunctionTask<T>
  1115. {
  1116. public:
  1117.     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)
  1118.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1119.     void runFunctor()
  1120.     {
  1121.         this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5);
  1122.     }
  1123. private:
  1124.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)const;
  1125.     const Class object;
  1126.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1127. };
  1128. 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>
  1129. class VoidStoredConstMemberFunctionCall5 : public RunFunctionTask<T>
  1130. {
  1131. public:
  1132.     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)
  1133.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1134.     void runFunctor()
  1135.     {
  1136.         (object.*fn)(arg1, arg2, arg3, arg4, arg5);
  1137.     }
  1138. private:
  1139.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)const;
  1140.     const Class object;
  1141.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1142. };
  1143. 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>
  1144. struct SelectStoredConstMemberFunctionCall5
  1145. {
  1146.     typedef typename SelectSpecialization<T>::template
  1147.         Type<StoredConstMemberFunctionCall5    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
  1148.              VoidStoredConstMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
  1149. };
  1150. 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>
  1151. class StoredMemberFunctionPointerCall5 : public RunFunctionTask<T>
  1152. {
  1153. public:
  1154.     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)
  1155.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1156.     void runFunctor()
  1157.     {
  1158.         this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5);
  1159.     }
  1160. private:
  1161.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
  1162.     Class *object;
  1163.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1164. };
  1165. 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>
  1166. class VoidStoredMemberFunctionPointerCall5 : public RunFunctionTask<T>
  1167. {
  1168. public:
  1169.     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)
  1170.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1171.     void runFunctor()
  1172.     {
  1173.         (object->*fn)(arg1, arg2, arg3, arg4, arg5);
  1174.     }
  1175. private:
  1176.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5);
  1177.     Class *object;
  1178.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1179. };
  1180. 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>
  1181. struct SelectStoredMemberFunctionPointerCall5
  1182. {
  1183.     typedef typename SelectSpecialization<T>::template
  1184.         Type<StoredMemberFunctionPointerCall5    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
  1185.              VoidStoredMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
  1186. };
  1187. 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>
  1188. class StoredConstMemberFunctionPointerCall5 : public RunFunctionTask<T>
  1189. {
  1190. public:
  1191.     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)
  1192.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1193.     void runFunctor()
  1194.     {
  1195.         this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5);
  1196.     }
  1197. private:
  1198.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)const;
  1199.     Class const *object;
  1200.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1201. };
  1202. 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>
  1203. class VoidStoredConstMemberFunctionPointerCall5 : public RunFunctionTask<T>
  1204. {
  1205. public:
  1206.     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)
  1207.     : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ }
  1208.     void runFunctor()
  1209.     {
  1210.         (object->*fn)(arg1, arg2, arg3, arg4, arg5);
  1211.     }
  1212. private:
  1213.     T (Class::*fn)(Param1, Param2, Param3, Param4, Param5)const;
  1214.     Class const *object;
  1215.     Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5;
  1216. };
  1217. 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>
  1218. struct SelectStoredConstMemberFunctionPointerCall5
  1219. {
  1220.     typedef typename SelectSpecialization<T>::template
  1221.         Type<StoredConstMemberFunctionPointerCall5    <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>,
  1222.              VoidStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type;
  1223. };
  1224. } //namespace QtConcurrent
  1225. #endif // qdoc
  1226. QT_END_NAMESPACE
  1227. QT_END_HEADER
  1228. #endif // QT_NO_CONCURRENT
  1229. #endif