1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 
5 
6 #include "RefCounted.h"
7 
8 
9 class RefCountTaskWrapper : public gmp_args_base {
10 public:
RefCountTaskWrapper(GMPTask * aTask,RefCounted * aRefCounted)11   RefCountTaskWrapper(GMPTask* aTask, RefCounted* aRefCounted)
12     : mTask(aTask)
13     , mRefCounted(aRefCounted)
14   {}
Run()15   virtual void Run() {
16     mTask->Run();
17   }
Destroy()18   virtual void Destroy() {
19     mTask->Destroy();
20     gmp_args_base::Destroy();
21   }
22 private:
~RefCountTaskWrapper()23   ~RefCountTaskWrapper() {}
24 
25   GMPTask* mTask;
26   RefPtr<RefCounted> mRefCounted;
27 };
28 
29 
30 // 0 arguments --
31 template<typename M> class gmp_args_nm_0 : public gmp_args_base {
32  public:
gmp_args_nm_0(M m)33   gmp_args_nm_0 (M m) :
34     m_ (m)  {}
35 
Run()36   void Run() {
37     m_ ();
38   }
39 
40  private:
41   M m_;
42 };
43 
44 
45 
46 // 0 arguments --
47 template<typename M, typename R> class gmp_args_nm_0_ret : public gmp_args_base {
48  public:
gmp_args_nm_0_ret(M m,R * r)49   gmp_args_nm_0_ret (M m, R* r) :
50     m_ (m), r_ (r)  {}
returns_value()51   virtual bool returns_value() const {
52     return true;
53   }
54 
Run()55   void Run() {
56     *r_ = m_ ();
57   }
58 
59  private:
60   M m_;
61   R* r_;
62 };
63 
64 
65 
66 // 0 arguments --
67 template<typename C, typename M> class gmp_args_m_0 : public gmp_args_base {
68  public:
gmp_args_m_0(C o,M m)69   gmp_args_m_0 (C o, M m) :
70     o_ (o), m_ (m)  {}
71 
Run()72   void Run() {
73     ((*o_).*m_) ();
74   }
75 
76  private:
77   C o_;
78   M m_;
79 };
80 
81 
82 
83 // 0 arguments --
84 template<typename C, typename M, typename R> class gmp_args_m_0_ret : public gmp_args_base {
85  public:
gmp_args_m_0_ret(C o,M m,R * r)86   gmp_args_m_0_ret (C o, M m, R* r) :
87     o_ (o), m_ (m), r_ (r)  {}
returns_value()88   virtual bool returns_value() const {
89     return true;
90   }
91 
Run()92   void Run() {
93     *r_ = ((*o_).*m_) ();
94   }
95 
96  private:
97   C o_;
98   M m_;
99   R* r_;
100 };
101 
102 
103 
104 // 1 arguments --
105 template<typename M, typename A0> class gmp_args_nm_1 : public gmp_args_base {
106  public:
gmp_args_nm_1(M m,A0 a0)107   gmp_args_nm_1 (M m, A0 a0) :
108     m_ (m), a0_ (a0)  {}
109 
Run()110   void Run() {
111     m_ (a0_);
112   }
113 
114  private:
115   M m_;
116   A0 a0_;
117 };
118 
119 
120 
121 // 1 arguments --
122 template<typename M, typename A0, typename R> class gmp_args_nm_1_ret : public gmp_args_base {
123  public:
gmp_args_nm_1_ret(M m,A0 a0,R * r)124   gmp_args_nm_1_ret (M m, A0 a0, R* r) :
125     m_ (m), r_ (r), a0_ (a0)  {}
returns_value()126   virtual bool returns_value() const {
127     return true;
128   }
129 
Run()130   void Run() {
131     *r_ = m_ (a0_);
132   }
133 
134  private:
135   M m_;
136   R* r_;
137   A0 a0_;
138 };
139 
140 
141 
142 // 1 arguments --
143 template<typename C, typename M, typename A0> class gmp_args_m_1 : public gmp_args_base {
144  public:
gmp_args_m_1(C o,M m,A0 a0)145   gmp_args_m_1 (C o, M m, A0 a0) :
146     o_ (o), m_ (m), a0_ (a0)  {}
147 
Run()148   void Run() {
149     ((*o_).*m_) (a0_);
150   }
151 
152  private:
153   C o_;
154   M m_;
155   A0 a0_;
156 };
157 
158 
159 
160 // 1 arguments --
161 template<typename C, typename M, typename A0, typename R> class gmp_args_m_1_ret : public gmp_args_base {
162  public:
gmp_args_m_1_ret(C o,M m,A0 a0,R * r)163   gmp_args_m_1_ret (C o, M m, A0 a0, R* r) :
164     o_ (o), m_ (m), r_ (r), a0_ (a0)  {}
returns_value()165   virtual bool returns_value() const {
166     return true;
167   }
168 
Run()169   void Run() {
170     *r_ = ((*o_).*m_) (a0_);
171   }
172 
173  private:
174   C o_;
175   M m_;
176   R* r_;
177   A0 a0_;
178 };
179 
180 
181 
182 // 2 arguments --
183 template<typename M, typename A0, typename A1> class gmp_args_nm_2 : public gmp_args_base {
184  public:
gmp_args_nm_2(M m,A0 a0,A1 a1)185   gmp_args_nm_2 (M m, A0 a0, A1 a1) :
186     m_ (m), a0_ (a0), a1_ (a1)  {}
187 
Run()188   void Run() {
189     m_ (a0_, a1_);
190   }
191 
192  private:
193   M m_;
194   A0 a0_;
195   A1 a1_;
196 };
197 
198 
199 
200 // 2 arguments --
201 template<typename M, typename A0, typename A1, typename R> class gmp_args_nm_2_ret : public gmp_args_base {
202  public:
gmp_args_nm_2_ret(M m,A0 a0,A1 a1,R * r)203   gmp_args_nm_2_ret (M m, A0 a0, A1 a1, R* r) :
204     m_ (m), r_ (r), a0_ (a0), a1_ (a1)  {}
returns_value()205   virtual bool returns_value() const {
206     return true;
207   }
208 
Run()209   void Run() {
210     *r_ = m_ (a0_, a1_);
211   }
212 
213  private:
214   M m_;
215   R* r_;
216   A0 a0_;
217   A1 a1_;
218 };
219 
220 
221 
222 // 2 arguments --
223 template<typename C, typename M, typename A0, typename A1> class gmp_args_m_2 : public gmp_args_base {
224  public:
gmp_args_m_2(C o,M m,A0 a0,A1 a1)225   gmp_args_m_2 (C o, M m, A0 a0, A1 a1) :
226     o_ (o), m_ (m), a0_ (a0), a1_ (a1)  {}
227 
Run()228   void Run() {
229     ((*o_).*m_) (a0_, a1_);
230   }
231 
232  private:
233   C o_;
234   M m_;
235   A0 a0_;
236   A1 a1_;
237 };
238 
239 
240 
241 // 2 arguments --
242 template<typename C, typename M, typename A0, typename A1, typename R> class gmp_args_m_2_ret : public gmp_args_base {
243  public:
gmp_args_m_2_ret(C o,M m,A0 a0,A1 a1,R * r)244   gmp_args_m_2_ret (C o, M m, A0 a0, A1 a1, R* r) :
245     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1)  {}
returns_value()246   virtual bool returns_value() const {
247     return true;
248   }
249 
Run()250   void Run() {
251     *r_ = ((*o_).*m_) (a0_, a1_);
252   }
253 
254  private:
255   C o_;
256   M m_;
257   R* r_;
258   A0 a0_;
259   A1 a1_;
260 };
261 
262 
263 
264 // 3 arguments --
265 template<typename M, typename A0, typename A1, typename A2> class gmp_args_nm_3 : public gmp_args_base {
266  public:
gmp_args_nm_3(M m,A0 a0,A1 a1,A2 a2)267   gmp_args_nm_3 (M m, A0 a0, A1 a1, A2 a2) :
268     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2)  {}
269 
Run()270   void Run() {
271     m_ (a0_, a1_, a2_);
272   }
273 
274  private:
275   M m_;
276   A0 a0_;
277   A1 a1_;
278   A2 a2_;
279 };
280 
281 
282 
283 // 3 arguments --
284 template<typename M, typename A0, typename A1, typename A2, typename R> class gmp_args_nm_3_ret : public gmp_args_base {
285  public:
gmp_args_nm_3_ret(M m,A0 a0,A1 a1,A2 a2,R * r)286   gmp_args_nm_3_ret (M m, A0 a0, A1 a1, A2 a2, R* r) :
287     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2)  {}
returns_value()288   virtual bool returns_value() const {
289     return true;
290   }
291 
Run()292   void Run() {
293     *r_ = m_ (a0_, a1_, a2_);
294   }
295 
296  private:
297   M m_;
298   R* r_;
299   A0 a0_;
300   A1 a1_;
301   A2 a2_;
302 };
303 
304 
305 
306 // 3 arguments --
307 template<typename C, typename M, typename A0, typename A1, typename A2> class gmp_args_m_3 : public gmp_args_base {
308  public:
gmp_args_m_3(C o,M m,A0 a0,A1 a1,A2 a2)309   gmp_args_m_3 (C o, M m, A0 a0, A1 a1, A2 a2) :
310     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2)  {}
311 
Run()312   void Run() {
313     ((*o_).*m_) (a0_, a1_, a2_);
314   }
315 
316  private:
317   C o_;
318   M m_;
319   A0 a0_;
320   A1 a1_;
321   A2 a2_;
322 };
323 
324 
325 
326 // 3 arguments --
327 template<typename C, typename M, typename A0, typename A1, typename A2, typename R> class gmp_args_m_3_ret : public gmp_args_base {
328  public:
gmp_args_m_3_ret(C o,M m,A0 a0,A1 a1,A2 a2,R * r)329   gmp_args_m_3_ret (C o, M m, A0 a0, A1 a1, A2 a2, R* r) :
330     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2)  {}
returns_value()331   virtual bool returns_value() const {
332     return true;
333   }
334 
Run()335   void Run() {
336     *r_ = ((*o_).*m_) (a0_, a1_, a2_);
337   }
338 
339  private:
340   C o_;
341   M m_;
342   R* r_;
343   A0 a0_;
344   A1 a1_;
345   A2 a2_;
346 };
347 
348 
349 
350 // 4 arguments --
351 template<typename M, typename A0, typename A1, typename A2, typename A3> class gmp_args_nm_4 : public gmp_args_base {
352  public:
gmp_args_nm_4(M m,A0 a0,A1 a1,A2 a2,A3 a3)353   gmp_args_nm_4 (M m, A0 a0, A1 a1, A2 a2, A3 a3) :
354     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3)  {}
355 
Run()356   void Run() {
357     m_ (a0_, a1_, a2_, a3_);
358   }
359 
360  private:
361   M m_;
362   A0 a0_;
363   A1 a1_;
364   A2 a2_;
365   A3 a3_;
366 };
367 
368 
369 
370 // 4 arguments --
371 template<typename M, typename A0, typename A1, typename A2, typename A3, typename R> class gmp_args_nm_4_ret : public gmp_args_base {
372  public:
gmp_args_nm_4_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,R * r)373   gmp_args_nm_4_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, R* r) :
374     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3)  {}
returns_value()375   virtual bool returns_value() const {
376     return true;
377   }
378 
Run()379   void Run() {
380     *r_ = m_ (a0_, a1_, a2_, a3_);
381   }
382 
383  private:
384   M m_;
385   R* r_;
386   A0 a0_;
387   A1 a1_;
388   A2 a2_;
389   A3 a3_;
390 };
391 
392 
393 
394 // 4 arguments --
395 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3> class gmp_args_m_4 : public gmp_args_base {
396  public:
gmp_args_m_4(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3)397   gmp_args_m_4 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3) :
398     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3)  {}
399 
Run()400   void Run() {
401     ((*o_).*m_) (a0_, a1_, a2_, a3_);
402   }
403 
404  private:
405   C o_;
406   M m_;
407   A0 a0_;
408   A1 a1_;
409   A2 a2_;
410   A3 a3_;
411 };
412 
413 
414 
415 // 4 arguments --
416 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename R> class gmp_args_m_4_ret : public gmp_args_base {
417  public:
gmp_args_m_4_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,R * r)418   gmp_args_m_4_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, R* r) :
419     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3)  {}
returns_value()420   virtual bool returns_value() const {
421     return true;
422   }
423 
Run()424   void Run() {
425     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_);
426   }
427 
428  private:
429   C o_;
430   M m_;
431   R* r_;
432   A0 a0_;
433   A1 a1_;
434   A2 a2_;
435   A3 a3_;
436 };
437 
438 
439 
440 // 5 arguments --
441 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4> class gmp_args_nm_5 : public gmp_args_base {
442  public:
gmp_args_nm_5(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4)443   gmp_args_nm_5 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) :
444     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4)  {}
445 
Run()446   void Run() {
447     m_ (a0_, a1_, a2_, a3_, a4_);
448   }
449 
450  private:
451   M m_;
452   A0 a0_;
453   A1 a1_;
454   A2 a2_;
455   A3 a3_;
456   A4 a4_;
457 };
458 
459 
460 
461 // 5 arguments --
462 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename R> class gmp_args_nm_5_ret : public gmp_args_base {
463  public:
gmp_args_nm_5_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,R * r)464   gmp_args_nm_5_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R* r) :
465     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4)  {}
returns_value()466   virtual bool returns_value() const {
467     return true;
468   }
469 
Run()470   void Run() {
471     *r_ = m_ (a0_, a1_, a2_, a3_, a4_);
472   }
473 
474  private:
475   M m_;
476   R* r_;
477   A0 a0_;
478   A1 a1_;
479   A2 a2_;
480   A3 a3_;
481   A4 a4_;
482 };
483 
484 
485 
486 // 5 arguments --
487 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4> class gmp_args_m_5 : public gmp_args_base {
488  public:
gmp_args_m_5(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4)489   gmp_args_m_5 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) :
490     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4)  {}
491 
Run()492   void Run() {
493     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_);
494   }
495 
496  private:
497   C o_;
498   M m_;
499   A0 a0_;
500   A1 a1_;
501   A2 a2_;
502   A3 a3_;
503   A4 a4_;
504 };
505 
506 
507 
508 // 5 arguments --
509 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename R> class gmp_args_m_5_ret : public gmp_args_base {
510  public:
gmp_args_m_5_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,R * r)511   gmp_args_m_5_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R* r) :
512     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4)  {}
returns_value()513   virtual bool returns_value() const {
514     return true;
515   }
516 
Run()517   void Run() {
518     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_);
519   }
520 
521  private:
522   C o_;
523   M m_;
524   R* r_;
525   A0 a0_;
526   A1 a1_;
527   A2 a2_;
528   A3 a3_;
529   A4 a4_;
530 };
531 
532 
533 
534 // 6 arguments --
535 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> class gmp_args_nm_6 : public gmp_args_base {
536  public:
gmp_args_nm_6(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5)537   gmp_args_nm_6 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) :
538     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5)  {}
539 
Run()540   void Run() {
541     m_ (a0_, a1_, a2_, a3_, a4_, a5_);
542   }
543 
544  private:
545   M m_;
546   A0 a0_;
547   A1 a1_;
548   A2 a2_;
549   A3 a3_;
550   A4 a4_;
551   A5 a5_;
552 };
553 
554 
555 
556 // 6 arguments --
557 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename R> class gmp_args_nm_6_ret : public gmp_args_base {
558  public:
gmp_args_nm_6_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,R * r)559   gmp_args_nm_6_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R* r) :
560     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5)  {}
returns_value()561   virtual bool returns_value() const {
562     return true;
563   }
564 
Run()565   void Run() {
566     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_);
567   }
568 
569  private:
570   M m_;
571   R* r_;
572   A0 a0_;
573   A1 a1_;
574   A2 a2_;
575   A3 a3_;
576   A4 a4_;
577   A5 a5_;
578 };
579 
580 
581 
582 // 6 arguments --
583 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> class gmp_args_m_6 : public gmp_args_base {
584  public:
gmp_args_m_6(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5)585   gmp_args_m_6 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) :
586     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5)  {}
587 
Run()588   void Run() {
589     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_);
590   }
591 
592  private:
593   C o_;
594   M m_;
595   A0 a0_;
596   A1 a1_;
597   A2 a2_;
598   A3 a3_;
599   A4 a4_;
600   A5 a5_;
601 };
602 
603 
604 
605 // 6 arguments --
606 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename R> class gmp_args_m_6_ret : public gmp_args_base {
607  public:
gmp_args_m_6_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,R * r)608   gmp_args_m_6_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R* r) :
609     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5)  {}
returns_value()610   virtual bool returns_value() const {
611     return true;
612   }
613 
Run()614   void Run() {
615     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_);
616   }
617 
618  private:
619   C o_;
620   M m_;
621   R* r_;
622   A0 a0_;
623   A1 a1_;
624   A2 a2_;
625   A3 a3_;
626   A4 a4_;
627   A5 a5_;
628 };
629 
630 
631 
632 // 7 arguments --
633 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> class gmp_args_nm_7 : public gmp_args_base {
634  public:
gmp_args_nm_7(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)635   gmp_args_nm_7 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) :
636     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6)  {}
637 
Run()638   void Run() {
639     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_);
640   }
641 
642  private:
643   M m_;
644   A0 a0_;
645   A1 a1_;
646   A2 a2_;
647   A3 a3_;
648   A4 a4_;
649   A5 a5_;
650   A6 a6_;
651 };
652 
653 
654 
655 // 7 arguments --
656 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename R> class gmp_args_nm_7_ret : public gmp_args_base {
657  public:
gmp_args_nm_7_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,R * r)658   gmp_args_nm_7_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R* r) :
659     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6)  {}
returns_value()660   virtual bool returns_value() const {
661     return true;
662   }
663 
Run()664   void Run() {
665     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_);
666   }
667 
668  private:
669   M m_;
670   R* r_;
671   A0 a0_;
672   A1 a1_;
673   A2 a2_;
674   A3 a3_;
675   A4 a4_;
676   A5 a5_;
677   A6 a6_;
678 };
679 
680 
681 
682 // 7 arguments --
683 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> class gmp_args_m_7 : public gmp_args_base {
684  public:
gmp_args_m_7(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)685   gmp_args_m_7 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) :
686     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6)  {}
687 
Run()688   void Run() {
689     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_);
690   }
691 
692  private:
693   C o_;
694   M m_;
695   A0 a0_;
696   A1 a1_;
697   A2 a2_;
698   A3 a3_;
699   A4 a4_;
700   A5 a5_;
701   A6 a6_;
702 };
703 
704 
705 
706 // 7 arguments --
707 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename R> class gmp_args_m_7_ret : public gmp_args_base {
708  public:
gmp_args_m_7_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,R * r)709   gmp_args_m_7_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R* r) :
710     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6)  {}
returns_value()711   virtual bool returns_value() const {
712     return true;
713   }
714 
Run()715   void Run() {
716     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_);
717   }
718 
719  private:
720   C o_;
721   M m_;
722   R* r_;
723   A0 a0_;
724   A1 a1_;
725   A2 a2_;
726   A3 a3_;
727   A4 a4_;
728   A5 a5_;
729   A6 a6_;
730 };
731 
732 
733 
734 // 8 arguments --
735 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> class gmp_args_nm_8 : public gmp_args_base {
736  public:
gmp_args_nm_8(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7)737   gmp_args_nm_8 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) :
738     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7)  {}
739 
Run()740   void Run() {
741     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
742   }
743 
744  private:
745   M m_;
746   A0 a0_;
747   A1 a1_;
748   A2 a2_;
749   A3 a3_;
750   A4 a4_;
751   A5 a5_;
752   A6 a6_;
753   A7 a7_;
754 };
755 
756 
757 
758 // 8 arguments --
759 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename R> class gmp_args_nm_8_ret : public gmp_args_base {
760  public:
gmp_args_nm_8_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,R * r)761   gmp_args_nm_8_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R* r) :
762     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7)  {}
returns_value()763   virtual bool returns_value() const {
764     return true;
765   }
766 
Run()767   void Run() {
768     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
769   }
770 
771  private:
772   M m_;
773   R* r_;
774   A0 a0_;
775   A1 a1_;
776   A2 a2_;
777   A3 a3_;
778   A4 a4_;
779   A5 a5_;
780   A6 a6_;
781   A7 a7_;
782 };
783 
784 
785 
786 // 8 arguments --
787 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> class gmp_args_m_8 : public gmp_args_base {
788  public:
gmp_args_m_8(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7)789   gmp_args_m_8 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) :
790     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7)  {}
791 
Run()792   void Run() {
793     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
794   }
795 
796  private:
797   C o_;
798   M m_;
799   A0 a0_;
800   A1 a1_;
801   A2 a2_;
802   A3 a3_;
803   A4 a4_;
804   A5 a5_;
805   A6 a6_;
806   A7 a7_;
807 };
808 
809 
810 
811 // 8 arguments --
812 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename R> class gmp_args_m_8_ret : public gmp_args_base {
813  public:
gmp_args_m_8_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,R * r)814   gmp_args_m_8_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R* r) :
815     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7)  {}
returns_value()816   virtual bool returns_value() const {
817     return true;
818   }
819 
Run()820   void Run() {
821     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
822   }
823 
824  private:
825   C o_;
826   M m_;
827   R* r_;
828   A0 a0_;
829   A1 a1_;
830   A2 a2_;
831   A3 a3_;
832   A4 a4_;
833   A5 a5_;
834   A6 a6_;
835   A7 a7_;
836 };
837 
838 
839 
840 // 9 arguments --
841 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> class gmp_args_nm_9 : public gmp_args_base {
842  public:
gmp_args_nm_9(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8)843   gmp_args_nm_9 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) :
844     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8)  {}
845 
Run()846   void Run() {
847     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_);
848   }
849 
850  private:
851   M m_;
852   A0 a0_;
853   A1 a1_;
854   A2 a2_;
855   A3 a3_;
856   A4 a4_;
857   A5 a5_;
858   A6 a6_;
859   A7 a7_;
860   A8 a8_;
861 };
862 
863 
864 
865 // 9 arguments --
866 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename R> class gmp_args_nm_9_ret : public gmp_args_base {
867  public:
gmp_args_nm_9_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,R * r)868   gmp_args_nm_9_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R* r) :
869     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8)  {}
returns_value()870   virtual bool returns_value() const {
871     return true;
872   }
873 
Run()874   void Run() {
875     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_);
876   }
877 
878  private:
879   M m_;
880   R* r_;
881   A0 a0_;
882   A1 a1_;
883   A2 a2_;
884   A3 a3_;
885   A4 a4_;
886   A5 a5_;
887   A6 a6_;
888   A7 a7_;
889   A8 a8_;
890 };
891 
892 
893 
894 // 9 arguments --
895 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> class gmp_args_m_9 : public gmp_args_base {
896  public:
gmp_args_m_9(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8)897   gmp_args_m_9 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) :
898     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8)  {}
899 
Run()900   void Run() {
901     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_);
902   }
903 
904  private:
905   C o_;
906   M m_;
907   A0 a0_;
908   A1 a1_;
909   A2 a2_;
910   A3 a3_;
911   A4 a4_;
912   A5 a5_;
913   A6 a6_;
914   A7 a7_;
915   A8 a8_;
916 };
917 
918 
919 
920 // 9 arguments --
921 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename R> class gmp_args_m_9_ret : public gmp_args_base {
922  public:
gmp_args_m_9_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,R * r)923   gmp_args_m_9_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R* r) :
924     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8)  {}
returns_value()925   virtual bool returns_value() const {
926     return true;
927   }
928 
Run()929   void Run() {
930     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_);
931   }
932 
933  private:
934   C o_;
935   M m_;
936   R* r_;
937   A0 a0_;
938   A1 a1_;
939   A2 a2_;
940   A3 a3_;
941   A4 a4_;
942   A5 a5_;
943   A6 a6_;
944   A7 a7_;
945   A8 a8_;
946 };
947 
948 
949 
950 // 10 arguments --
951 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> class gmp_args_nm_10 : public gmp_args_base {
952  public:
gmp_args_nm_10(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9)953   gmp_args_nm_10 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) :
954     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9)  {}
955 
Run()956   void Run() {
957     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_);
958   }
959 
960  private:
961   M m_;
962   A0 a0_;
963   A1 a1_;
964   A2 a2_;
965   A3 a3_;
966   A4 a4_;
967   A5 a5_;
968   A6 a6_;
969   A7 a7_;
970   A8 a8_;
971   A9 a9_;
972 };
973 
974 
975 
976 // 10 arguments --
977 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename R> class gmp_args_nm_10_ret : public gmp_args_base {
978  public:
gmp_args_nm_10_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,R * r)979   gmp_args_nm_10_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, R* r) :
980     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9)  {}
returns_value()981   virtual bool returns_value() const {
982     return true;
983   }
984 
Run()985   void Run() {
986     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_);
987   }
988 
989  private:
990   M m_;
991   R* r_;
992   A0 a0_;
993   A1 a1_;
994   A2 a2_;
995   A3 a3_;
996   A4 a4_;
997   A5 a5_;
998   A6 a6_;
999   A7 a7_;
1000   A8 a8_;
1001   A9 a9_;
1002 };
1003 
1004 
1005 
1006 // 10 arguments --
1007 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> class gmp_args_m_10 : public gmp_args_base {
1008  public:
gmp_args_m_10(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9)1009   gmp_args_m_10 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) :
1010     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9)  {}
1011 
Run()1012   void Run() {
1013     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_);
1014   }
1015 
1016  private:
1017   C o_;
1018   M m_;
1019   A0 a0_;
1020   A1 a1_;
1021   A2 a2_;
1022   A3 a3_;
1023   A4 a4_;
1024   A5 a5_;
1025   A6 a6_;
1026   A7 a7_;
1027   A8 a8_;
1028   A9 a9_;
1029 };
1030 
1031 
1032 
1033 // 10 arguments --
1034 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename R> class gmp_args_m_10_ret : public gmp_args_base {
1035  public:
gmp_args_m_10_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,R * r)1036   gmp_args_m_10_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, R* r) :
1037     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9)  {}
returns_value()1038   virtual bool returns_value() const {
1039     return true;
1040   }
1041 
Run()1042   void Run() {
1043     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_);
1044   }
1045 
1046  private:
1047   C o_;
1048   M m_;
1049   R* r_;
1050   A0 a0_;
1051   A1 a1_;
1052   A2 a2_;
1053   A3 a3_;
1054   A4 a4_;
1055   A5 a5_;
1056   A6 a6_;
1057   A7 a7_;
1058   A8 a8_;
1059   A9 a9_;
1060 };
1061 
1062 
1063 
1064 // 11 arguments --
1065 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> class gmp_args_nm_11 : public gmp_args_base {
1066  public:
gmp_args_nm_11(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10)1067   gmp_args_nm_11 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) :
1068     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10)  {}
1069 
Run()1070   void Run() {
1071     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_);
1072   }
1073 
1074  private:
1075   M m_;
1076   A0 a0_;
1077   A1 a1_;
1078   A2 a2_;
1079   A3 a3_;
1080   A4 a4_;
1081   A5 a5_;
1082   A6 a6_;
1083   A7 a7_;
1084   A8 a8_;
1085   A9 a9_;
1086   A10 a10_;
1087 };
1088 
1089 
1090 
1091 // 11 arguments --
1092 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename R> class gmp_args_nm_11_ret : public gmp_args_base {
1093  public:
gmp_args_nm_11_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,R * r)1094   gmp_args_nm_11_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, R* r) :
1095     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10)  {}
returns_value()1096   virtual bool returns_value() const {
1097     return true;
1098   }
1099 
Run()1100   void Run() {
1101     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_);
1102   }
1103 
1104  private:
1105   M m_;
1106   R* r_;
1107   A0 a0_;
1108   A1 a1_;
1109   A2 a2_;
1110   A3 a3_;
1111   A4 a4_;
1112   A5 a5_;
1113   A6 a6_;
1114   A7 a7_;
1115   A8 a8_;
1116   A9 a9_;
1117   A10 a10_;
1118 };
1119 
1120 
1121 
1122 // 11 arguments --
1123 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> class gmp_args_m_11 : public gmp_args_base {
1124  public:
gmp_args_m_11(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10)1125   gmp_args_m_11 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) :
1126     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10)  {}
1127 
Run()1128   void Run() {
1129     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_);
1130   }
1131 
1132  private:
1133   C o_;
1134   M m_;
1135   A0 a0_;
1136   A1 a1_;
1137   A2 a2_;
1138   A3 a3_;
1139   A4 a4_;
1140   A5 a5_;
1141   A6 a6_;
1142   A7 a7_;
1143   A8 a8_;
1144   A9 a9_;
1145   A10 a10_;
1146 };
1147 
1148 
1149 
1150 // 11 arguments --
1151 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename R> class gmp_args_m_11_ret : public gmp_args_base {
1152  public:
gmp_args_m_11_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,R * r)1153   gmp_args_m_11_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, R* r) :
1154     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10)  {}
returns_value()1155   virtual bool returns_value() const {
1156     return true;
1157   }
1158 
Run()1159   void Run() {
1160     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_);
1161   }
1162 
1163  private:
1164   C o_;
1165   M m_;
1166   R* r_;
1167   A0 a0_;
1168   A1 a1_;
1169   A2 a2_;
1170   A3 a3_;
1171   A4 a4_;
1172   A5 a5_;
1173   A6 a6_;
1174   A7 a7_;
1175   A8 a8_;
1176   A9 a9_;
1177   A10 a10_;
1178 };
1179 
1180 
1181 
1182 // 12 arguments --
1183 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> class gmp_args_nm_12 : public gmp_args_base {
1184  public:
gmp_args_nm_12(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11)1185   gmp_args_nm_12 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) :
1186     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11)  {}
1187 
Run()1188   void Run() {
1189     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_);
1190   }
1191 
1192  private:
1193   M m_;
1194   A0 a0_;
1195   A1 a1_;
1196   A2 a2_;
1197   A3 a3_;
1198   A4 a4_;
1199   A5 a5_;
1200   A6 a6_;
1201   A7 a7_;
1202   A8 a8_;
1203   A9 a9_;
1204   A10 a10_;
1205   A11 a11_;
1206 };
1207 
1208 
1209 
1210 // 12 arguments --
1211 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename R> class gmp_args_nm_12_ret : public gmp_args_base {
1212  public:
gmp_args_nm_12_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,R * r)1213   gmp_args_nm_12_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, R* r) :
1214     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11)  {}
returns_value()1215   virtual bool returns_value() const {
1216     return true;
1217   }
1218 
Run()1219   void Run() {
1220     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_);
1221   }
1222 
1223  private:
1224   M m_;
1225   R* r_;
1226   A0 a0_;
1227   A1 a1_;
1228   A2 a2_;
1229   A3 a3_;
1230   A4 a4_;
1231   A5 a5_;
1232   A6 a6_;
1233   A7 a7_;
1234   A8 a8_;
1235   A9 a9_;
1236   A10 a10_;
1237   A11 a11_;
1238 };
1239 
1240 
1241 
1242 // 12 arguments --
1243 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> class gmp_args_m_12 : public gmp_args_base {
1244  public:
gmp_args_m_12(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11)1245   gmp_args_m_12 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) :
1246     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11)  {}
1247 
Run()1248   void Run() {
1249     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_);
1250   }
1251 
1252  private:
1253   C o_;
1254   M m_;
1255   A0 a0_;
1256   A1 a1_;
1257   A2 a2_;
1258   A3 a3_;
1259   A4 a4_;
1260   A5 a5_;
1261   A6 a6_;
1262   A7 a7_;
1263   A8 a8_;
1264   A9 a9_;
1265   A10 a10_;
1266   A11 a11_;
1267 };
1268 
1269 
1270 
1271 // 12 arguments --
1272 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename R> class gmp_args_m_12_ret : public gmp_args_base {
1273  public:
gmp_args_m_12_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,R * r)1274   gmp_args_m_12_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, R* r) :
1275     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11)  {}
returns_value()1276   virtual bool returns_value() const {
1277     return true;
1278   }
1279 
Run()1280   void Run() {
1281     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_);
1282   }
1283 
1284  private:
1285   C o_;
1286   M m_;
1287   R* r_;
1288   A0 a0_;
1289   A1 a1_;
1290   A2 a2_;
1291   A3 a3_;
1292   A4 a4_;
1293   A5 a5_;
1294   A6 a6_;
1295   A7 a7_;
1296   A8 a8_;
1297   A9 a9_;
1298   A10 a10_;
1299   A11 a11_;
1300 };
1301 
1302 
1303 
1304 // 13 arguments --
1305 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> class gmp_args_nm_13 : public gmp_args_base {
1306  public:
gmp_args_nm_13(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12)1307   gmp_args_nm_13 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) :
1308     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12)  {}
1309 
Run()1310   void Run() {
1311     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_);
1312   }
1313 
1314  private:
1315   M m_;
1316   A0 a0_;
1317   A1 a1_;
1318   A2 a2_;
1319   A3 a3_;
1320   A4 a4_;
1321   A5 a5_;
1322   A6 a6_;
1323   A7 a7_;
1324   A8 a8_;
1325   A9 a9_;
1326   A10 a10_;
1327   A11 a11_;
1328   A12 a12_;
1329 };
1330 
1331 
1332 
1333 // 13 arguments --
1334 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename R> class gmp_args_nm_13_ret : public gmp_args_base {
1335  public:
gmp_args_nm_13_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,R * r)1336   gmp_args_nm_13_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, R* r) :
1337     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12)  {}
returns_value()1338   virtual bool returns_value() const {
1339     return true;
1340   }
1341 
Run()1342   void Run() {
1343     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_);
1344   }
1345 
1346  private:
1347   M m_;
1348   R* r_;
1349   A0 a0_;
1350   A1 a1_;
1351   A2 a2_;
1352   A3 a3_;
1353   A4 a4_;
1354   A5 a5_;
1355   A6 a6_;
1356   A7 a7_;
1357   A8 a8_;
1358   A9 a9_;
1359   A10 a10_;
1360   A11 a11_;
1361   A12 a12_;
1362 };
1363 
1364 
1365 
1366 // 13 arguments --
1367 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> class gmp_args_m_13 : public gmp_args_base {
1368  public:
gmp_args_m_13(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12)1369   gmp_args_m_13 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) :
1370     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12)  {}
1371 
Run()1372   void Run() {
1373     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_);
1374   }
1375 
1376  private:
1377   C o_;
1378   M m_;
1379   A0 a0_;
1380   A1 a1_;
1381   A2 a2_;
1382   A3 a3_;
1383   A4 a4_;
1384   A5 a5_;
1385   A6 a6_;
1386   A7 a7_;
1387   A8 a8_;
1388   A9 a9_;
1389   A10 a10_;
1390   A11 a11_;
1391   A12 a12_;
1392 };
1393 
1394 
1395 
1396 // 13 arguments --
1397 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename R> class gmp_args_m_13_ret : public gmp_args_base {
1398  public:
gmp_args_m_13_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,R * r)1399   gmp_args_m_13_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, R* r) :
1400     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12)  {}
returns_value()1401   virtual bool returns_value() const {
1402     return true;
1403   }
1404 
Run()1405   void Run() {
1406     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_);
1407   }
1408 
1409  private:
1410   C o_;
1411   M m_;
1412   R* r_;
1413   A0 a0_;
1414   A1 a1_;
1415   A2 a2_;
1416   A3 a3_;
1417   A4 a4_;
1418   A5 a5_;
1419   A6 a6_;
1420   A7 a7_;
1421   A8 a8_;
1422   A9 a9_;
1423   A10 a10_;
1424   A11 a11_;
1425   A12 a12_;
1426 };
1427 
1428 
1429 
1430 // 14 arguments --
1431 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> class gmp_args_nm_14 : public gmp_args_base {
1432  public:
gmp_args_nm_14(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13)1433   gmp_args_nm_14 (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) :
1434     m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12), a13_ (a13)  {}
1435 
Run()1436   void Run() {
1437     m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_, a13_);
1438   }
1439 
1440  private:
1441   M m_;
1442   A0 a0_;
1443   A1 a1_;
1444   A2 a2_;
1445   A3 a3_;
1446   A4 a4_;
1447   A5 a5_;
1448   A6 a6_;
1449   A7 a7_;
1450   A8 a8_;
1451   A9 a9_;
1452   A10 a10_;
1453   A11 a11_;
1454   A12 a12_;
1455   A13 a13_;
1456 };
1457 
1458 
1459 
1460 // 14 arguments --
1461 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename R> class gmp_args_nm_14_ret : public gmp_args_base {
1462  public:
gmp_args_nm_14_ret(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13,R * r)1463   gmp_args_nm_14_ret (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, R* r) :
1464     m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12), a13_ (a13)  {}
returns_value()1465   virtual bool returns_value() const {
1466     return true;
1467   }
1468 
Run()1469   void Run() {
1470     *r_ = m_ (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_, a13_);
1471   }
1472 
1473  private:
1474   M m_;
1475   R* r_;
1476   A0 a0_;
1477   A1 a1_;
1478   A2 a2_;
1479   A3 a3_;
1480   A4 a4_;
1481   A5 a5_;
1482   A6 a6_;
1483   A7 a7_;
1484   A8 a8_;
1485   A9 a9_;
1486   A10 a10_;
1487   A11 a11_;
1488   A12 a12_;
1489   A13 a13_;
1490 };
1491 
1492 
1493 
1494 // 14 arguments --
1495 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> class gmp_args_m_14 : public gmp_args_base {
1496  public:
gmp_args_m_14(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13)1497   gmp_args_m_14 (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) :
1498     o_ (o), m_ (m), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12), a13_ (a13)  {}
1499 
Run()1500   void Run() {
1501     ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_, a13_);
1502   }
1503 
1504  private:
1505   C o_;
1506   M m_;
1507   A0 a0_;
1508   A1 a1_;
1509   A2 a2_;
1510   A3 a3_;
1511   A4 a4_;
1512   A5 a5_;
1513   A6 a6_;
1514   A7 a7_;
1515   A8 a8_;
1516   A9 a9_;
1517   A10 a10_;
1518   A11 a11_;
1519   A12 a12_;
1520   A13 a13_;
1521 };
1522 
1523 
1524 
1525 // 14 arguments --
1526 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename R> class gmp_args_m_14_ret : public gmp_args_base {
1527  public:
gmp_args_m_14_ret(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13,R * r)1528   gmp_args_m_14_ret (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, R* r) :
1529     o_ (o), m_ (m), r_ (r), a0_ (a0), a1_ (a1), a2_ (a2), a3_ (a3), a4_ (a4), a5_ (a5), a6_ (a6), a7_ (a7), a8_ (a8), a9_ (a9), a10_ (a10), a11_ (a11), a12_ (a12), a13_ (a13)  {}
returns_value()1530   virtual bool returns_value() const {
1531     return true;
1532   }
1533 
Run()1534   void Run() {
1535     *r_ = ((*o_).*m_) (a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_, a10_, a11_, a12_, a13_);
1536   }
1537 
1538  private:
1539   C o_;
1540   M m_;
1541   R* r_;
1542   A0 a0_;
1543   A1 a1_;
1544   A2 a2_;
1545   A3 a3_;
1546   A4 a4_;
1547   A5 a5_;
1548   A6 a6_;
1549   A7 a7_;
1550   A8 a8_;
1551   A9 a9_;
1552   A10 a10_;
1553   A11 a11_;
1554   A12 a12_;
1555   A13 a13_;
1556 };
1557 
1558 
1559 
1560 
1561 
1562 
1563 // 0 arguments --
1564 template<typename M>
WrapTaskNM(M m)1565 gmp_args_nm_0<M>* WrapTaskNM (M m) {
1566   return new gmp_args_nm_0<M>
1567     (m);
1568 }
1569 
1570 // 0 arguments --
1571 template<typename M, typename R>
WrapTaskNMRet(M m,R * r)1572 gmp_args_nm_0_ret<M, R>* WrapTaskNMRet (M m, R* r) {
1573   return new gmp_args_nm_0_ret<M, R>
1574     (m, r);
1575 }
1576 
1577 // 0 arguments --
1578 template<typename C, typename M>
WrapTask(C o,M m)1579 gmp_args_m_0<C, M>* WrapTask (C o, M m) {
1580   return new gmp_args_m_0<C, M>
1581     (o, m);
1582 }
1583 
1584 template<typename C, typename M>
1585 GMPTask*
WrapTaskRefCounted(C o,M m)1586 WrapTaskRefCounted (C o, M m) {
1587   GMPTask *t = WrapTask (o, m);
1588   return new RefCountTaskWrapper(t, o);
1589 }
1590 
1591 // 0 arguments --
1592 template<typename C, typename M, typename R>
WrapTaskRet(C o,M m,R * r)1593 gmp_args_m_0_ret<C, M, R>* WrapTaskRet (C o, M m, R* r) {
1594   return new gmp_args_m_0_ret<C, M, R>
1595     (o, m, r);
1596 }
1597 
1598 // 1 arguments --
1599 template<typename M, typename A0>
WrapTaskNM(M m,A0 a0)1600 gmp_args_nm_1<M, A0>* WrapTaskNM (M m, A0 a0) {
1601   return new gmp_args_nm_1<M, A0>
1602     (m, a0);
1603 }
1604 
1605 // 1 arguments --
1606 template<typename M, typename A0, typename R>
WrapTaskNMRet(M m,A0 a0,R * r)1607 gmp_args_nm_1_ret<M, A0, R>* WrapTaskNMRet (M m, A0 a0, R* r) {
1608   return new gmp_args_nm_1_ret<M, A0, R>
1609     (m, a0, r);
1610 }
1611 
1612 // 1 arguments --
1613 template<typename C, typename M, typename A0>
WrapTask(C o,M m,A0 a0)1614 gmp_args_m_1<C, M, A0>* WrapTask (C o, M m, A0 a0) {
1615   return new gmp_args_m_1<C, M, A0>
1616     (o, m, a0);
1617 }
1618 
1619 template<typename C, typename M, typename A0>
1620 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0)1621 WrapTaskRefCounted (C o, M m, A0 a0) {
1622   GMPTask *t = WrapTask (o, m, a0);
1623   return new RefCountTaskWrapper(t, o);
1624 }
1625 
1626 // 1 arguments --
1627 template<typename C, typename M, typename A0, typename R>
WrapTaskRet(C o,M m,A0 a0,R * r)1628 gmp_args_m_1_ret<C, M, A0, R>* WrapTaskRet (C o, M m, A0 a0, R* r) {
1629   return new gmp_args_m_1_ret<C, M, A0, R>
1630     (o, m, a0, r);
1631 }
1632 
1633 // 2 arguments --
1634 template<typename M, typename A0, typename A1>
WrapTaskNM(M m,A0 a0,A1 a1)1635 gmp_args_nm_2<M, A0, A1>* WrapTaskNM (M m, A0 a0, A1 a1) {
1636   return new gmp_args_nm_2<M, A0, A1>
1637     (m, a0, a1);
1638 }
1639 
1640 // 2 arguments --
1641 template<typename M, typename A0, typename A1, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,R * r)1642 gmp_args_nm_2_ret<M, A0, A1, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, R* r) {
1643   return new gmp_args_nm_2_ret<M, A0, A1, R>
1644     (m, a0, a1, r);
1645 }
1646 
1647 // 2 arguments --
1648 template<typename C, typename M, typename A0, typename A1>
WrapTask(C o,M m,A0 a0,A1 a1)1649 gmp_args_m_2<C, M, A0, A1>* WrapTask (C o, M m, A0 a0, A1 a1) {
1650   return new gmp_args_m_2<C, M, A0, A1>
1651     (o, m, a0, a1);
1652 }
1653 
1654 template<typename C, typename M, typename A0, typename A1>
1655 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1)1656 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1) {
1657   GMPTask *t = WrapTask (o, m, a0, a1);
1658   return new RefCountTaskWrapper(t, o);
1659 }
1660 
1661 // 2 arguments --
1662 template<typename C, typename M, typename A0, typename A1, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,R * r)1663 gmp_args_m_2_ret<C, M, A0, A1, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, R* r) {
1664   return new gmp_args_m_2_ret<C, M, A0, A1, R>
1665     (o, m, a0, a1, r);
1666 }
1667 
1668 // 3 arguments --
1669 template<typename M, typename A0, typename A1, typename A2>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2)1670 gmp_args_nm_3<M, A0, A1, A2>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2) {
1671   return new gmp_args_nm_3<M, A0, A1, A2>
1672     (m, a0, a1, a2);
1673 }
1674 
1675 // 3 arguments --
1676 template<typename M, typename A0, typename A1, typename A2, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,R * r)1677 gmp_args_nm_3_ret<M, A0, A1, A2, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, R* r) {
1678   return new gmp_args_nm_3_ret<M, A0, A1, A2, R>
1679     (m, a0, a1, a2, r);
1680 }
1681 
1682 // 3 arguments --
1683 template<typename C, typename M, typename A0, typename A1, typename A2>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2)1684 gmp_args_m_3<C, M, A0, A1, A2>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2) {
1685   return new gmp_args_m_3<C, M, A0, A1, A2>
1686     (o, m, a0, a1, a2);
1687 }
1688 
1689 template<typename C, typename M, typename A0, typename A1, typename A2>
1690 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2)1691 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2) {
1692   GMPTask *t = WrapTask (o, m, a0, a1, a2);
1693   return new RefCountTaskWrapper(t, o);
1694 }
1695 
1696 // 3 arguments --
1697 template<typename C, typename M, typename A0, typename A1, typename A2, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,R * r)1698 gmp_args_m_3_ret<C, M, A0, A1, A2, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, R* r) {
1699   return new gmp_args_m_3_ret<C, M, A0, A1, A2, R>
1700     (o, m, a0, a1, a2, r);
1701 }
1702 
1703 // 4 arguments --
1704 template<typename M, typename A0, typename A1, typename A2, typename A3>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3)1705 gmp_args_nm_4<M, A0, A1, A2, A3>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3) {
1706   return new gmp_args_nm_4<M, A0, A1, A2, A3>
1707     (m, a0, a1, a2, a3);
1708 }
1709 
1710 // 4 arguments --
1711 template<typename M, typename A0, typename A1, typename A2, typename A3, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,R * r)1712 gmp_args_nm_4_ret<M, A0, A1, A2, A3, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, R* r) {
1713   return new gmp_args_nm_4_ret<M, A0, A1, A2, A3, R>
1714     (m, a0, a1, a2, a3, r);
1715 }
1716 
1717 // 4 arguments --
1718 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3)1719 gmp_args_m_4<C, M, A0, A1, A2, A3>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3) {
1720   return new gmp_args_m_4<C, M, A0, A1, A2, A3>
1721     (o, m, a0, a1, a2, a3);
1722 }
1723 
1724 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3>
1725 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3)1726 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3) {
1727   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3);
1728   return new RefCountTaskWrapper(t, o);
1729 }
1730 
1731 // 4 arguments --
1732 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,R * r)1733 gmp_args_m_4_ret<C, M, A0, A1, A2, A3, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, R* r) {
1734   return new gmp_args_m_4_ret<C, M, A0, A1, A2, A3, R>
1735     (o, m, a0, a1, a2, a3, r);
1736 }
1737 
1738 // 5 arguments --
1739 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4)1740 gmp_args_nm_5<M, A0, A1, A2, A3, A4>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) {
1741   return new gmp_args_nm_5<M, A0, A1, A2, A3, A4>
1742     (m, a0, a1, a2, a3, a4);
1743 }
1744 
1745 // 5 arguments --
1746 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,R * r)1747 gmp_args_nm_5_ret<M, A0, A1, A2, A3, A4, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R* r) {
1748   return new gmp_args_nm_5_ret<M, A0, A1, A2, A3, A4, R>
1749     (m, a0, a1, a2, a3, a4, r);
1750 }
1751 
1752 // 5 arguments --
1753 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4)1754 gmp_args_m_5<C, M, A0, A1, A2, A3, A4>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) {
1755   return new gmp_args_m_5<C, M, A0, A1, A2, A3, A4>
1756     (o, m, a0, a1, a2, a3, a4);
1757 }
1758 
1759 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4>
1760 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4)1761 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) {
1762   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4);
1763   return new RefCountTaskWrapper(t, o);
1764 }
1765 
1766 // 5 arguments --
1767 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,R * r)1768 gmp_args_m_5_ret<C, M, A0, A1, A2, A3, A4, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R* r) {
1769   return new gmp_args_m_5_ret<C, M, A0, A1, A2, A3, A4, R>
1770     (o, m, a0, a1, a2, a3, a4, r);
1771 }
1772 
1773 // 6 arguments --
1774 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5)1775 gmp_args_nm_6<M, A0, A1, A2, A3, A4, A5>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
1776   return new gmp_args_nm_6<M, A0, A1, A2, A3, A4, A5>
1777     (m, a0, a1, a2, a3, a4, a5);
1778 }
1779 
1780 // 6 arguments --
1781 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,R * r)1782 gmp_args_nm_6_ret<M, A0, A1, A2, A3, A4, A5, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R* r) {
1783   return new gmp_args_nm_6_ret<M, A0, A1, A2, A3, A4, A5, R>
1784     (m, a0, a1, a2, a3, a4, a5, r);
1785 }
1786 
1787 // 6 arguments --
1788 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5)1789 gmp_args_m_6<C, M, A0, A1, A2, A3, A4, A5>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
1790   return new gmp_args_m_6<C, M, A0, A1, A2, A3, A4, A5>
1791     (o, m, a0, a1, a2, a3, a4, a5);
1792 }
1793 
1794 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
1795 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5)1796 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
1797   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5);
1798   return new RefCountTaskWrapper(t, o);
1799 }
1800 
1801 // 6 arguments --
1802 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,R * r)1803 gmp_args_m_6_ret<C, M, A0, A1, A2, A3, A4, A5, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R* r) {
1804   return new gmp_args_m_6_ret<C, M, A0, A1, A2, A3, A4, A5, R>
1805     (o, m, a0, a1, a2, a3, a4, a5, r);
1806 }
1807 
1808 // 7 arguments --
1809 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)1810 gmp_args_nm_7<M, A0, A1, A2, A3, A4, A5, A6>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
1811   return new gmp_args_nm_7<M, A0, A1, A2, A3, A4, A5, A6>
1812     (m, a0, a1, a2, a3, a4, a5, a6);
1813 }
1814 
1815 // 7 arguments --
1816 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,R * r)1817 gmp_args_nm_7_ret<M, A0, A1, A2, A3, A4, A5, A6, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R* r) {
1818   return new gmp_args_nm_7_ret<M, A0, A1, A2, A3, A4, A5, A6, R>
1819     (m, a0, a1, a2, a3, a4, a5, a6, r);
1820 }
1821 
1822 // 7 arguments --
1823 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)1824 gmp_args_m_7<C, M, A0, A1, A2, A3, A4, A5, A6>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
1825   return new gmp_args_m_7<C, M, A0, A1, A2, A3, A4, A5, A6>
1826     (o, m, a0, a1, a2, a3, a4, a5, a6);
1827 }
1828 
1829 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
1830 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)1831 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
1832   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6);
1833   return new RefCountTaskWrapper(t, o);
1834 }
1835 
1836 // 7 arguments --
1837 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,R * r)1838 gmp_args_m_7_ret<C, M, A0, A1, A2, A3, A4, A5, A6, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R* r) {
1839   return new gmp_args_m_7_ret<C, M, A0, A1, A2, A3, A4, A5, A6, R>
1840     (o, m, a0, a1, a2, a3, a4, a5, a6, r);
1841 }
1842 
1843 // 8 arguments --
1844 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7)1845 gmp_args_nm_8<M, A0, A1, A2, A3, A4, A5, A6, A7>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
1846   return new gmp_args_nm_8<M, A0, A1, A2, A3, A4, A5, A6, A7>
1847     (m, a0, a1, a2, a3, a4, a5, a6, a7);
1848 }
1849 
1850 // 8 arguments --
1851 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,R * r)1852 gmp_args_nm_8_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R* r) {
1853   return new gmp_args_nm_8_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, R>
1854     (m, a0, a1, a2, a3, a4, a5, a6, a7, r);
1855 }
1856 
1857 // 8 arguments --
1858 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7)1859 gmp_args_m_8<C, M, A0, A1, A2, A3, A4, A5, A6, A7>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
1860   return new gmp_args_m_8<C, M, A0, A1, A2, A3, A4, A5, A6, A7>
1861     (o, m, a0, a1, a2, a3, a4, a5, a6, a7);
1862 }
1863 
1864 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
1865 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7)1866 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
1867   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7);
1868   return new RefCountTaskWrapper(t, o);
1869 }
1870 
1871 // 8 arguments --
1872 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,R * r)1873 gmp_args_m_8_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R* r) {
1874   return new gmp_args_m_8_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, R>
1875     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, r);
1876 }
1877 
1878 // 9 arguments --
1879 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8)1880 gmp_args_nm_9<M, A0, A1, A2, A3, A4, A5, A6, A7, A8>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
1881   return new gmp_args_nm_9<M, A0, A1, A2, A3, A4, A5, A6, A7, A8>
1882     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8);
1883 }
1884 
1885 // 9 arguments --
1886 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,R * r)1887 gmp_args_nm_9_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R* r) {
1888   return new gmp_args_nm_9_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, R>
1889     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, r);
1890 }
1891 
1892 // 9 arguments --
1893 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8)1894 gmp_args_m_9<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
1895   return new gmp_args_m_9<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8>
1896     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8);
1897 }
1898 
1899 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
1900 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8)1901 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
1902   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8);
1903   return new RefCountTaskWrapper(t, o);
1904 }
1905 
1906 // 9 arguments --
1907 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,R * r)1908 gmp_args_m_9_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R* r) {
1909   return new gmp_args_m_9_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, R>
1910     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, r);
1911 }
1912 
1913 // 10 arguments --
1914 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9)1915 gmp_args_nm_10<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
1916   return new gmp_args_nm_10<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>
1917     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
1918 }
1919 
1920 // 10 arguments --
1921 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,R * r)1922 gmp_args_nm_10_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, R* r) {
1923   return new gmp_args_nm_10_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>
1924     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, r);
1925 }
1926 
1927 // 10 arguments --
1928 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9)1929 gmp_args_m_10<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
1930   return new gmp_args_m_10<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>
1931     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
1932 }
1933 
1934 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
1935 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9)1936 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
1937   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
1938   return new RefCountTaskWrapper(t, o);
1939 }
1940 
1941 // 10 arguments --
1942 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,R * r)1943 gmp_args_m_10_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, R* r) {
1944   return new gmp_args_m_10_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>
1945     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, r);
1946 }
1947 
1948 // 11 arguments --
1949 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10)1950 gmp_args_nm_11<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
1951   return new gmp_args_nm_11<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>
1952     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1953 }
1954 
1955 // 11 arguments --
1956 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,R * r)1957 gmp_args_nm_11_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, R* r) {
1958   return new gmp_args_nm_11_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, R>
1959     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, r);
1960 }
1961 
1962 // 11 arguments --
1963 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10)1964 gmp_args_m_11<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
1965   return new gmp_args_m_11<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>
1966     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1967 }
1968 
1969 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
1970 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10)1971 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
1972   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1973   return new RefCountTaskWrapper(t, o);
1974 }
1975 
1976 // 11 arguments --
1977 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,R * r)1978 gmp_args_m_11_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, R* r) {
1979   return new gmp_args_m_11_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, R>
1980     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, r);
1981 }
1982 
1983 // 12 arguments --
1984 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11)1985 gmp_args_nm_12<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
1986   return new gmp_args_nm_12<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>
1987     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
1988 }
1989 
1990 // 12 arguments --
1991 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,R * r)1992 gmp_args_nm_12_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, R* r) {
1993   return new gmp_args_nm_12_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, R>
1994     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, r);
1995 }
1996 
1997 // 12 arguments --
1998 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11)1999 gmp_args_m_12<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
2000   return new gmp_args_m_12<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>
2001     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2002 }
2003 
2004 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
2005 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11)2006 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
2007   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2008   return new RefCountTaskWrapper(t, o);
2009 }
2010 
2011 // 12 arguments --
2012 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,R * r)2013 gmp_args_m_12_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, R* r) {
2014   return new gmp_args_m_12_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, R>
2015     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, r);
2016 }
2017 
2018 // 13 arguments --
2019 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12)2020 gmp_args_nm_13<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
2021   return new gmp_args_nm_13<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>
2022     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
2023 }
2024 
2025 // 13 arguments --
2026 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,R * r)2027 gmp_args_nm_13_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, R* r) {
2028   return new gmp_args_nm_13_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, R>
2029     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, r);
2030 }
2031 
2032 // 13 arguments --
2033 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12)2034 gmp_args_m_13<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
2035   return new gmp_args_m_13<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>
2036     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
2037 }
2038 
2039 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
2040 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12)2041 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
2042   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
2043   return new RefCountTaskWrapper(t, o);
2044 }
2045 
2046 // 13 arguments --
2047 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,R * r)2048 gmp_args_m_13_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, R* r) {
2049   return new gmp_args_m_13_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, R>
2050     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, r);
2051 }
2052 
2053 // 14 arguments --
2054 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
WrapTaskNM(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13)2055 gmp_args_nm_14<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>* WrapTaskNM (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
2056   return new gmp_args_nm_14<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>
2057     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2058 }
2059 
2060 // 14 arguments --
2061 template<typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename R>
WrapTaskNMRet(M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13,R * r)2062 gmp_args_nm_14_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, R>* WrapTaskNMRet (M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, R* r) {
2063   return new gmp_args_nm_14_ret<M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, R>
2064     (m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, r);
2065 }
2066 
2067 // 14 arguments --
2068 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
WrapTask(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13)2069 gmp_args_m_14<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>* WrapTask (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
2070   return new gmp_args_m_14<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>
2071     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2072 }
2073 
2074 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
2075 GMPTask*
WrapTaskRefCounted(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13)2076 WrapTaskRefCounted (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
2077   GMPTask *t = WrapTask (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2078   return new RefCountTaskWrapper(t, o);
2079 }
2080 
2081 // 14 arguments --
2082 template<typename C, typename M, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename R>
WrapTaskRet(C o,M m,A0 a0,A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6,A7 a7,A8 a8,A9 a9,A10 a10,A11 a11,A12 a12,A13 a13,R * r)2083 gmp_args_m_14_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, R>* WrapTaskRet (C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, R* r) {
2084   return new gmp_args_m_14_ret<C, M, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, R>
2085     (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, r);
2086 }
2087 
2088