]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
3b8e6882ea71b37f1a144f2c7cd02d067f38f5d4
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / aux_ / preprocessed / bcc551 / bind.hpp
1 \r
2 // Copyright Peter Dimov 2001\r
3 // Copyright Aleksey Gurtovoy 2001-2004\r
4 //\r
5 // Distributed under the Boost Software License, Version 1.0. \r
6 // (See accompanying file LICENSE_1_0.txt or copy at \r
7 // http://www.boost.org/LICENSE_1_0.txt)\r
8 //\r
9 \r
10 // Preprocessed version of "boost/mpl/bind.hpp" header\r
11 // -- DO NOT modify by hand!\r
12 \r
13 namespace boost { namespace mpl {\r
14 \r
15 namespace aux {\r
16 \r
17 template<\r
18       typename T, typename U1, typename U2, typename U3, typename U4\r
19     , typename U5\r
20     >\r
21 struct resolve_bind_arg\r
22 {\r
23     typedef T type;\r
24 };\r
25 \r
26 template<\r
27       typename T\r
28     , typename Arg\r
29     >\r
30 struct replace_unnamed_arg\r
31 {\r
32     typedef Arg next;\r
33     typedef T type;\r
34 };\r
35 \r
36 template<\r
37       typename Arg\r
38     >\r
39 struct replace_unnamed_arg< arg< -1 >, Arg >\r
40 {\r
41     typedef typename Arg::next next;\r
42     typedef Arg type;\r
43 };\r
44 \r
45 template<\r
46       int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
47     >\r
48 struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
49 {\r
50     typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
51 };\r
52 \r
53 } // namespace aux\r
54 \r
55 template<\r
56       typename F\r
57     >\r
58 struct bind0\r
59 {\r
60     template<\r
61           typename U1 = na, typename U2 = na, typename U3 = na\r
62         , typename U4 = na, typename U5 = na\r
63         >\r
64     struct apply\r
65     {\r
66      private:\r
67         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
68         typedef typename r0::type a0;\r
69         typedef typename r0::next n1;\r
70         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
71         ///\r
72      public:\r
73         typedef typename apply_wrap0<\r
74               f_\r
75             >::type type;\r
76 \r
77     };\r
78 };\r
79 \r
80 namespace aux {\r
81 \r
82 template<\r
83       typename F, typename U1, typename U2, typename U3, typename U4\r
84     , typename U5\r
85     >\r
86 struct resolve_bind_arg<\r
87       bind0<F>, U1, U2, U3, U4, U5\r
88     >\r
89 {\r
90     typedef bind0<F> f_;\r
91     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
92 };\r
93 \r
94 } // namespace aux\r
95 \r
96 BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
97 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
98 \r
99 template<\r
100       typename F, typename T1\r
101     >\r
102 struct bind1\r
103 {\r
104     template<\r
105           typename U1 = na, typename U2 = na, typename U3 = na\r
106         , typename U4 = na, typename U5 = na\r
107         >\r
108     struct apply\r
109     {\r
110      private:\r
111         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
112         typedef typename r0::type a0;\r
113         typedef typename r0::next n1;\r
114         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
115         ///\r
116         typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
117         typedef typename r1::type a1;\r
118         typedef typename r1::next n2;\r
119         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
120         ///\r
121      public:\r
122         typedef typename apply_wrap1<\r
123               f_\r
124             , typename t1::type\r
125             >::type type;\r
126 \r
127     };\r
128 };\r
129 \r
130 namespace aux {\r
131 \r
132 template<\r
133       typename F, typename T1, typename U1, typename U2, typename U3\r
134     , typename U4, typename U5\r
135     >\r
136 struct resolve_bind_arg<\r
137       bind1< F,T1 >, U1, U2, U3, U4, U5\r
138     >\r
139 {\r
140     typedef bind1< F,T1 > f_;\r
141     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
142 };\r
143 \r
144 } // namespace aux\r
145 \r
146 BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
147 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
148 \r
149 template<\r
150       typename F, typename T1, typename T2\r
151     >\r
152 struct bind2\r
153 {\r
154     template<\r
155           typename U1 = na, typename U2 = na, typename U3 = na\r
156         , typename U4 = na, typename U5 = na\r
157         >\r
158     struct apply\r
159     {\r
160      private:\r
161         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
162         typedef typename r0::type a0;\r
163         typedef typename r0::next n1;\r
164         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
165         ///\r
166         typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
167         typedef typename r1::type a1;\r
168         typedef typename r1::next n2;\r
169         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
170         ///\r
171         typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
172         typedef typename r2::type a2;\r
173         typedef typename r2::next n3;\r
174         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
175         ///\r
176      public:\r
177         typedef typename apply_wrap2<\r
178               f_\r
179             , typename t1::type, typename t2::type\r
180             >::type type;\r
181 \r
182     };\r
183 };\r
184 \r
185 namespace aux {\r
186 \r
187 template<\r
188       typename F, typename T1, typename T2, typename U1, typename U2\r
189     , typename U3, typename U4, typename U5\r
190     >\r
191 struct resolve_bind_arg<\r
192       bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
193     >\r
194 {\r
195     typedef bind2< F,T1,T2 > f_;\r
196     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
197 };\r
198 \r
199 } // namespace aux\r
200 \r
201 BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
202 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
203 \r
204 template<\r
205       typename F, typename T1, typename T2, typename T3\r
206     >\r
207 struct bind3\r
208 {\r
209     template<\r
210           typename U1 = na, typename U2 = na, typename U3 = na\r
211         , typename U4 = na, typename U5 = na\r
212         >\r
213     struct apply\r
214     {\r
215      private:\r
216         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
217         typedef typename r0::type a0;\r
218         typedef typename r0::next n1;\r
219         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
220         ///\r
221         typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
222         typedef typename r1::type a1;\r
223         typedef typename r1::next n2;\r
224         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
225         ///\r
226         typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
227         typedef typename r2::type a2;\r
228         typedef typename r2::next n3;\r
229         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
230         ///\r
231         typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
232         typedef typename r3::type a3;\r
233         typedef typename r3::next n4;\r
234         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
235         ///\r
236      public:\r
237         typedef typename apply_wrap3<\r
238               f_\r
239             , typename t1::type, typename t2::type, typename t3::type\r
240             >::type type;\r
241 \r
242     };\r
243 };\r
244 \r
245 namespace aux {\r
246 \r
247 template<\r
248       typename F, typename T1, typename T2, typename T3, typename U1\r
249     , typename U2, typename U3, typename U4, typename U5\r
250     >\r
251 struct resolve_bind_arg<\r
252       bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
253     >\r
254 {\r
255     typedef bind3< F,T1,T2,T3 > f_;\r
256     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
257 };\r
258 \r
259 } // namespace aux\r
260 \r
261 BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
262 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
263 \r
264 template<\r
265       typename F, typename T1, typename T2, typename T3, typename T4\r
266     >\r
267 struct bind4\r
268 {\r
269     template<\r
270           typename U1 = na, typename U2 = na, typename U3 = na\r
271         , typename U4 = na, typename U5 = na\r
272         >\r
273     struct apply\r
274     {\r
275      private:\r
276         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
277         typedef typename r0::type a0;\r
278         typedef typename r0::next n1;\r
279         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
280         ///\r
281         typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
282         typedef typename r1::type a1;\r
283         typedef typename r1::next n2;\r
284         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
285         ///\r
286         typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
287         typedef typename r2::type a2;\r
288         typedef typename r2::next n3;\r
289         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
290         ///\r
291         typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
292         typedef typename r3::type a3;\r
293         typedef typename r3::next n4;\r
294         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
295         ///\r
296         typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
297         typedef typename r4::type a4;\r
298         typedef typename r4::next n5;\r
299         typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
300         ///\r
301      public:\r
302         typedef typename apply_wrap4<\r
303               f_\r
304             , typename t1::type, typename t2::type, typename t3::type\r
305             , typename t4::type\r
306             >::type type;\r
307 \r
308     };\r
309 };\r
310 \r
311 namespace aux {\r
312 \r
313 template<\r
314       typename F, typename T1, typename T2, typename T3, typename T4\r
315     , typename U1, typename U2, typename U3, typename U4, typename U5\r
316     >\r
317 struct resolve_bind_arg<\r
318       bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
319     >\r
320 {\r
321     typedef bind4< F,T1,T2,T3,T4 > f_;\r
322     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
323 };\r
324 \r
325 } // namespace aux\r
326 \r
327 BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
328 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
329 \r
330 template<\r
331       typename F, typename T1, typename T2, typename T3, typename T4\r
332     , typename T5\r
333     >\r
334 struct bind5\r
335 {\r
336     template<\r
337           typename U1 = na, typename U2 = na, typename U3 = na\r
338         , typename U4 = na, typename U5 = na\r
339         >\r
340     struct apply\r
341     {\r
342      private:\r
343         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
344         typedef typename r0::type a0;\r
345         typedef typename r0::next n1;\r
346         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
347         ///\r
348         typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
349         typedef typename r1::type a1;\r
350         typedef typename r1::next n2;\r
351         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
352         ///\r
353         typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
354         typedef typename r2::type a2;\r
355         typedef typename r2::next n3;\r
356         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
357         ///\r
358         typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
359         typedef typename r3::type a3;\r
360         typedef typename r3::next n4;\r
361         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
362         ///\r
363         typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
364         typedef typename r4::type a4;\r
365         typedef typename r4::next n5;\r
366         typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
367         ///\r
368         typedef aux::replace_unnamed_arg< T5,n5 > r5;\r
369         typedef typename r5::type a5;\r
370         typedef typename r5::next n6;\r
371         typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;\r
372         ///\r
373      public:\r
374         typedef typename apply_wrap5<\r
375               f_\r
376             , typename t1::type, typename t2::type, typename t3::type\r
377             , typename t4::type, typename t5::type\r
378             >::type type;\r
379 \r
380     };\r
381 };\r
382 \r
383 namespace aux {\r
384 \r
385 template<\r
386       typename F, typename T1, typename T2, typename T3, typename T4\r
387     , typename T5, typename U1, typename U2, typename U3, typename U4\r
388     , typename U5\r
389     >\r
390 struct resolve_bind_arg<\r
391       bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
392     >\r
393 {\r
394     typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
395     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
396 };\r
397 \r
398 } // namespace aux\r
399 \r
400 BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
401 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
402 }}\r
403 \r