1 /*=============================================================================
2 Copyright (c) 2001-2007 Joel de Guzman
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
14 template <typename Dummy>
15 struct function_ptr_impl<2, Dummy>
17 template <typename RT, typename FP>
20 typedef RT result_type;
23 template <typename A0 , typename A1>
24 RT operator()(A0 & a0 , A1 & a1) const
38 template <typename Dummy>
39 struct function_ptr_impl<3, Dummy>
41 template <typename RT, typename FP>
44 typedef RT result_type;
47 template <typename A0 , typename A1 , typename A2>
48 RT operator()(A0 & a0 , A1 & a1 , A2 & a2) const
50 return fp(a0 , a1 , a2);
62 template <typename Dummy>
63 struct function_ptr_impl<4, Dummy>
65 template <typename RT, typename FP>
68 typedef RT result_type;
71 template <typename A0 , typename A1 , typename A2 , typename A3>
72 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
74 return fp(a0 , a1 , a2 , a3);
86 template <typename Dummy>
87 struct function_ptr_impl<5, Dummy>
89 template <typename RT, typename FP>
92 typedef RT result_type;
95 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
96 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
98 return fp(a0 , a1 , a2 , a3 , a4);
110 template <typename Dummy>
111 struct function_ptr_impl<6, Dummy>
113 template <typename RT, typename FP>
116 typedef RT result_type;
119 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
120 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
122 return fp(a0 , a1 , a2 , a3 , a4 , a5);
134 template <typename Dummy>
135 struct function_ptr_impl<7, Dummy>
137 template <typename RT, typename FP>
140 typedef RT result_type;
143 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
144 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
146 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6);
158 template <typename Dummy>
159 struct function_ptr_impl<8, Dummy>
161 template <typename RT, typename FP>
164 typedef RT result_type;
167 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
168 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
170 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
182 template <typename Dummy>
183 struct function_ptr_impl<9, Dummy>
185 template <typename RT, typename FP>
188 typedef RT result_type;
191 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
192 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
194 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
206 template <typename Dummy>
207 struct function_ptr_impl<10, Dummy>
209 template <typename RT, typename FP>
212 typedef RT result_type;
215 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
216 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
218 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
230 template <typename Dummy>
231 struct function_ptr_impl<11, Dummy>
233 template <typename RT, typename FP>
236 typedef RT result_type;
239 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
240 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
242 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
254 template <typename Dummy>
255 struct function_ptr_impl<12, Dummy>
257 template <typename RT, typename FP>
260 typedef RT result_type;
263 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
264 RT operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11) const
266 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
278 template <typename Dummy>
279 struct function_ptr_impl<13, Dummy>
281 template <typename RT, typename FP>
284 typedef RT result_type;
287 template <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>
288 RT operator()(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) const
290 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
302 template <typename Dummy>
303 struct function_ptr_impl<14, Dummy>
305 template <typename RT, typename FP>
308 typedef RT result_type;
311 template <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>
312 RT operator()(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) const
314 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
326 template <typename Dummy>
327 struct function_ptr_impl<15, Dummy>
329 template <typename RT, typename FP>
332 typedef RT result_type;
335 template <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 A14>
336 RT operator()(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 , A14 & a14) const
338 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
350 template <typename Dummy>
351 struct function_ptr_impl<16, Dummy>
353 template <typename RT, typename FP>
356 typedef RT result_type;
359 template <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 A14 , typename A15>
360 RT operator()(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 , A14 & a14 , A15 & a15) const
362 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
374 template <typename Dummy>
375 struct function_ptr_impl<17, Dummy>
377 template <typename RT, typename FP>
380 typedef RT result_type;
383 template <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 A14 , typename A15 , typename A16>
384 RT operator()(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 , A14 & a14 , A15 & a15 , A16 & a16) const
386 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
398 template <typename Dummy>
399 struct function_ptr_impl<18, Dummy>
401 template <typename RT, typename FP>
404 typedef RT result_type;
407 template <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 A14 , typename A15 , typename A16 , typename A17>
408 RT operator()(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 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17) const
410 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
422 template <typename Dummy>
423 struct function_ptr_impl<19, Dummy>
425 template <typename RT, typename FP>
428 typedef RT result_type;
431 template <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 A14 , typename A15 , typename A16 , typename A17 , typename A18>
432 RT operator()(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 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18) const
434 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
446 template <typename Dummy>
447 struct function_ptr_impl<20, Dummy>
449 template <typename RT, typename FP>
452 typedef RT result_type;
455 template <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 A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
456 RT operator()(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 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19) const
458 return fp(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);