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);