• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2007 Joel de Guzman
3 
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 ==============================================================================*/
7 
8 
9 
10 
11 
12 
13 
14     template <
15         typename F
16       , typename A0
17     >
18     inline
19     typename detail::expression::function_eval<
20         F
21       , A0
22     >::type const
bind(F f,A0 const & a0)23     bind(F f, A0 const& a0)
24     {
25         return
26             detail::expression::function_eval<F, A0>::make(
27                 f
28               , a0
29             );
30     }
31 
32 
33 
34 
35 
36 
37 
38     template <
39         typename F
40       , typename A0 , typename A1
41     >
42     inline
43     typename detail::expression::function_eval<
44         F
45       , A0 , A1
46     >::type const
bind(F f,A0 const & a0,A1 const & a1)47     bind(F f, A0 const& a0 , A1 const& a1)
48     {
49         return
50             detail::expression::function_eval<F, A0 , A1>::make(
51                 f
52               , a0 , a1
53             );
54     }
55 
56 
57 
58 
59 
60 
61 
62     template <
63         typename F
64       , typename A0 , typename A1 , typename A2
65     >
66     inline
67     typename detail::expression::function_eval<
68         F
69       , A0 , A1 , A2
70     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2)71     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2)
72     {
73         return
74             detail::expression::function_eval<F, A0 , A1 , A2>::make(
75                 f
76               , a0 , a1 , a2
77             );
78     }
79 
80 
81 
82 
83 
84 
85 
86     template <
87         typename F
88       , typename A0 , typename A1 , typename A2 , typename A3
89     >
90     inline
91     typename detail::expression::function_eval<
92         F
93       , A0 , A1 , A2 , A3
94     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3)95     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
96     {
97         return
98             detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(
99                 f
100               , a0 , a1 , a2 , a3
101             );
102     }
103 
104 
105 
106 
107 
108 
109 
110     template <
111         typename F
112       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
113     >
114     inline
115     typename detail::expression::function_eval<
116         F
117       , A0 , A1 , A2 , A3 , A4
118     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4)119     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
120     {
121         return
122             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(
123                 f
124               , a0 , a1 , a2 , a3 , a4
125             );
126     }
127 
128 
129 
130 
131 
132 
133 
134     template <
135         typename F
136       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
137     >
138     inline
139     typename detail::expression::function_eval<
140         F
141       , A0 , A1 , A2 , A3 , A4 , A5
142     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5)143     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
144     {
145         return
146             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(
147                 f
148               , a0 , a1 , a2 , a3 , a4 , a5
149             );
150     }
151 
152 
153 
154 
155 
156 
157 
158     template <
159         typename F
160       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
161     >
162     inline
163     typename detail::expression::function_eval<
164         F
165       , A0 , A1 , A2 , A3 , A4 , A5 , A6
166     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6)167     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
168     {
169         return
170             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(
171                 f
172               , a0 , a1 , a2 , a3 , a4 , a5 , a6
173             );
174     }
175 
176 
177 
178 
179 
180 
181 
182     template <
183         typename F
184       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
185     >
186     inline
187     typename detail::expression::function_eval<
188         F
189       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
190     >::type const
bind(F f,A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7)191     bind(F f, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
192     {
193         return
194             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(
195                 f
196               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
197             );
198     }
199 
200 
201 
202 
203 
204 
205 
206     template <
207         typename F
208       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
209     >
210     inline
211     typename detail::expression::function_eval<
212         F
213       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
214     >::type const
bind(F f,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)215     bind(F f, 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)
216     {
217         return
218             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(
219                 f
220               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
221             );
222     }
223 
224 
225 
226 
227 
228 
229 
230     template <
231         typename F
232       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
233     >
234     inline
235     typename detail::expression::function_eval<
236         F
237       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
238     >::type const
bind(F f,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)239     bind(F f, 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)
240     {
241         return
242             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(
243                 f
244               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
245             );
246     }
247 
248 
249 
250 
251 
252 
253 
254     template <
255         typename F
256       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
257     >
258     inline
259     typename detail::expression::function_eval<
260         F
261       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
262     >::type const
bind(F f,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,A10 const & a10)263     bind(F f, 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 , A10 const& a10)
264     {
265         return
266             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(
267                 f
268               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
269             );
270     }
271 
272 
273 
274 
275 
276 
277 
278     template <
279         typename F
280       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
281     >
282     inline
283     typename detail::expression::function_eval<
284         F
285       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
286     >::type const
bind(F f,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,A10 const & a10,A11 const & a11)287     bind(F f, 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 , A10 const& a10 , A11 const& a11)
288     {
289         return
290             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(
291                 f
292               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
293             );
294     }
295 
296 
297 
298 
299 
300 
301 
302     template <
303         typename F
304       , 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
305     >
306     inline
307     typename detail::expression::function_eval<
308         F
309       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
310     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12)311     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12)
312     {
313         return
314             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(
315                 f
316               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
317             );
318     }
319 
320 
321 
322 
323 
324 
325 
326     template <
327         typename F
328       , 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
329     >
330     inline
331     typename detail::expression::function_eval<
332         F
333       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
334     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13)335     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13)
336     {
337         return
338             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(
339                 f
340               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
341             );
342     }
343 
344 
345 
346 
347 
348 
349 
350     template <
351         typename F
352       , 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
353     >
354     inline
355     typename detail::expression::function_eval<
356         F
357       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
358     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13,A14 const & a14)359     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14)
360     {
361         return
362             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(
363                 f
364               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
365             );
366     }
367 
368 
369 
370 
371 
372 
373 
374     template <
375         typename F
376       , 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
377     >
378     inline
379     typename detail::expression::function_eval<
380         F
381       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
382     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13,A14 const & a14,A15 const & a15)383     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15)
384     {
385         return
386             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(
387                 f
388               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
389             );
390     }
391 
392 
393 
394 
395 
396 
397 
398     template <
399         typename F
400       , 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
401     >
402     inline
403     typename detail::expression::function_eval<
404         F
405       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
406     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13,A14 const & a14,A15 const & a15,A16 const & a16)407     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16)
408     {
409         return
410             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(
411                 f
412               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
413             );
414     }
415 
416 
417 
418 
419 
420 
421 
422     template <
423         typename F
424       , 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
425     >
426     inline
427     typename detail::expression::function_eval<
428         F
429       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
430     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13,A14 const & a14,A15 const & a15,A16 const & a16,A17 const & a17)431     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17)
432     {
433         return
434             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(
435                 f
436               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
437             );
438     }
439 
440 
441 
442 
443 
444 
445 
446     template <
447         typename F
448       , 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
449     >
450     inline
451     typename detail::expression::function_eval<
452         F
453       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
454     >::type const
bind(F f,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,A10 const & a10,A11 const & a11,A12 const & a12,A13 const & a13,A14 const & a14,A15 const & a15,A16 const & a16,A17 const & a17,A18 const & a18)455     bind(F f, 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 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18)
456     {
457         return
458             detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(
459                 f
460               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
461             );
462     }
463