]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*============================================================================== |
2 | Copyright (c) 2005-2010 Joel de Guzman | |
3 | Copyright (c) 2010 Thomas Heller | |
4 | Copyright (c) 2016 Kohei Takahashi | |
5 | ||
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 | ==============================================================================*/ | |
9 | ||
10 | ||
11 | ||
12 | ||
13 | ||
14 | ||
15 | ||
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)> | |
19 | {}; | |
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> | |
23 | {}; | |
24 | template <typename A0 , typename A1, typename Context> | |
25 | typename result_of::mem_fun_ptr_eval<Context, A0 , A1>::type | |
26 | operator()( | |
27 | A0 const& a0 , A1 const& a1 | |
28 | , Context const & ctx | |
29 | ) const | |
30 | { | |
31 | return | |
32 | ( | |
33 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
34 | ->*boost::phoenix::eval(a1, ctx) | |
35 | )( | |
36 | ||
37 | ); | |
38 | } | |
39 | ||
40 | ||
41 | ||
42 | ||
43 | ||
44 | ||
45 | ||
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)> | |
49 | {}; | |
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> | |
53 | {}; | |
54 | template <typename A0 , typename A1 , typename A2, typename Context> | |
55 | typename result_of::mem_fun_ptr_eval<Context, A0 , A1 , A2>::type | |
56 | operator()( | |
57 | A0 const& a0 , A1 const& a1 , A2 const& a2 | |
58 | , Context const & ctx | |
59 | ) const | |
60 | { | |
61 | return | |
62 | ( | |
63 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
64 | ->*boost::phoenix::eval(a1, ctx) | |
65 | )( | |
66 | boost::phoenix::eval(a2, ctx) | |
67 | ); | |
68 | } | |
69 | ||
70 | ||
71 | ||
72 | ||
73 | ||
74 | ||
75 | ||
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)> | |
79 | {}; | |
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> | |
83 | {}; | |
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 | |
86 | operator()( | |
87 | A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 | |
88 | , Context const & ctx | |
89 | ) const | |
90 | { | |
91 | return | |
92 | ( | |
93 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
94 | ->*boost::phoenix::eval(a1, ctx) | |
95 | )( | |
96 | boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) | |
97 | ); | |
98 | } | |
99 | ||
100 | ||
101 | ||
102 | ||
103 | ||
104 | ||
105 | ||
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)> | |
109 | {}; | |
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> | |
113 | {}; | |
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 | |
116 | operator()( | |
117 | A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 | |
118 | , Context const & ctx | |
119 | ) const | |
120 | { | |
121 | return | |
122 | ( | |
123 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
124 | ->*boost::phoenix::eval(a1, ctx) | |
125 | )( | |
126 | boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) | |
127 | ); | |
128 | } | |
129 | ||
130 | ||
131 | ||
132 | ||
133 | ||
134 | ||
135 | ||
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)> | |
139 | {}; | |
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> | |
143 | {}; | |
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 | |
146 | operator()( | |
147 | A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 | |
148 | , Context const & ctx | |
149 | ) const | |
150 | { | |
151 | return | |
152 | ( | |
153 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
154 | ->*boost::phoenix::eval(a1, ctx) | |
155 | )( | |
156 | boost::phoenix::eval(a2, ctx) , boost::phoenix::eval(a3, ctx) , boost::phoenix::eval(a4, ctx) , boost::phoenix::eval(a5, ctx) | |
157 | ); | |
158 | } | |
159 | ||
160 | ||
161 | ||
162 | ||
163 | ||
164 | ||
165 | ||
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)> | |
169 | {}; | |
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> | |
173 | {}; | |
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 | |
176 | operator()( | |
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 | |
179 | ) const | |
180 | { | |
181 | return | |
182 | ( | |
183 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
184 | ->*boost::phoenix::eval(a1, ctx) | |
185 | )( | |
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) | |
187 | ); | |
188 | } | |
189 | ||
190 | ||
191 | ||
192 | ||
193 | ||
194 | ||
195 | ||
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)> | |
199 | {}; | |
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> | |
203 | {}; | |
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 | |
206 | operator()( | |
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 | |
209 | ) const | |
210 | { | |
211 | return | |
212 | ( | |
213 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
214 | ->*boost::phoenix::eval(a1, ctx) | |
215 | )( | |
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) | |
217 | ); | |
218 | } | |
219 | ||
220 | ||
221 | ||
222 | ||
223 | ||
224 | ||
225 | ||
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)> | |
229 | {}; | |
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> | |
233 | {}; | |
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 | |
236 | operator()( | |
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 | |
239 | ) const | |
240 | { | |
241 | return | |
242 | ( | |
243 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
244 | ->*boost::phoenix::eval(a1, ctx) | |
245 | )( | |
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) | |
247 | ); | |
248 | } | |
249 | ||
250 | ||
251 | ||
252 | ||
253 | ||
254 | ||
255 | ||
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)> | |
259 | {}; | |
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> | |
263 | {}; | |
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 | |
266 | operator()( | |
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 | |
269 | ) const | |
270 | { | |
271 | return | |
272 | ( | |
273 | get_pointer(boost::phoenix::eval(a0, ctx)) | |
274 | ->*boost::phoenix::eval(a1, ctx) | |
275 | )( | |
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) | |
277 | ); | |
278 | } |