1 /*==============================================================================
2 Copyright (c) 2005-2010 Joel de Guzman
3 Copyright (c) 2010 Thomas Heller
4 Copyright (c) 2016 Kohei Takahashi
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 ==============================================================================*/
16 template <typename This, typename A0 , typename A1, typename Context>
17 struct result<This(A0 , A1, Context)>
18 : result<This(A0 const& , A1 const&, Context)>
20 template <typename This, typename A0 , typename A1, typename Context>
21 struct result<This(A0 & , A1 &, Context)>
22 : result_of::mem_fun_ptr_eval<Context, A0 , A1>
24 template <typename A0 , typename A1, typename Context>
25 typename result_of::mem_fun_ptr_eval<Context, A0 , A1>::type
27 A0 const& a0 , A1 const& a1
33 get_pointer(boost::phoenix::eval(a0, ctx))
34 ->*boost::phoenix::eval(a1, ctx)
46 template <typename This, typename A0 , typename A1 , typename A2, typename Context>
47 struct result<This(A0 , A1 , A2, Context)>
48 : result<This(A0 const& , A1 const& , A2 const&, Context)>
50 template <typename This, typename A0 , typename A1 , typename A2, typename Context>
51 struct result<This(A0 & , A1 & , A2 &, Context)>
52 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2>
54 template <typename A0 , typename A1 , typename A2, typename Context>
55 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2>::type
57 A0 const& a0 , A1 const& a1 , A2 const& a2
63 get_pointer(boost::phoenix::eval(a0, ctx))
64 ->*boost::phoenix::eval(a1, ctx)
66 boost::phoenix::eval(a2, ctx)
76 template <typename This, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
77 struct result<This(A0 , A1 , A2 , A3, Context)>
78 : result<This(A0 const& , A1 const& , A2 const& , A3 const&, Context)>
80 template <typename This, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
81 struct result<This(A0 & , A1 & , A2 & , A3 &, Context)>
82 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3>
84 template <typename A0 , typename A1 , typename A2 , typename A3, typename Context>
85 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3>::type
87 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
93 get_pointer(boost::phoenix::eval(a0, ctx))
94 ->*boost::phoenix::eval(a1, ctx)
96 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx)
106 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
107 struct result<This(A0 , A1 , A2 , A3 , A4, Context)>
108 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&, Context)>
110 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
111 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &, Context)>
112 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4>
114 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
115 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4>::type
117 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
118 , Context const & ctx
123 get_pointer(boost::phoenix::eval(a0, ctx))
124 ->*boost::phoenix::eval(a1, ctx)
126 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx)
136 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
137 struct result<This(A0 , A1 , A2 , A3 , A4 , A5, Context)>
138 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&, Context)>
140 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
141 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &, Context)>
142 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5>
144 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
145 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5>::type
147 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
148 , Context const & ctx
153 get_pointer(boost::phoenix::eval(a0, ctx))
154 ->*boost::phoenix::eval(a1, ctx)
156 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx)
166 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
167 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6, Context)>
168 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&, Context)>
170 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
171 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &, Context)>
172 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6>
174 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
175 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type
177 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
178 , Context const & ctx
183 get_pointer(boost::phoenix::eval(a0, ctx))
184 ->*boost::phoenix::eval(a1, ctx)
186 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx)
196 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
197 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, Context)>
198 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&, Context)>
200 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
201 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &, Context)>
202 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
204 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
205 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type
207 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
208 , Context const & ctx
213 get_pointer(boost::phoenix::eval(a0, ctx))
214 ->*boost::phoenix::eval(a1, ctx)
216 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx)
226 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
227 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, Context)>
228 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&, Context)>
230 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
231 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &, Context)>
232 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
234 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
235 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type
237 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8
238 , Context const & ctx
243 get_pointer(boost::phoenix::eval(a0, ctx))
244 ->*boost::phoenix::eval(a1, ctx)
246 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx)
256 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9, typename Context>
257 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9, Context)>
258 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&, Context)>
260 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9, typename Context>
261 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &, Context)>
262 : result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
264 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9, typename Context>
265 typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type
267 A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9
268 , Context const & ctx
273 get_pointer(boost::phoenix::eval(a0, ctx))
274 ->*boost::phoenix::eval(a1, ctx)
276 boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) , boost::phoenix::eval(a6, ctx) , boost::phoenix::eval(a7, ctx) , boost::phoenix::eval(a8, ctx) , boost::phoenix::eval(a9, ctx)