2 // Copyright Peter Dimov 2001
3 // Copyright Aleksey Gurtovoy 2001-2004
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
10 // Preprocessed version of "boost/mpl/bind.hpp" header
11 // -- DO NOT modify by hand!
13 namespace boost { namespace mpl {
18 typename T, typename U1, typename U2, typename U3, typename U4
21 struct resolve_bind_arg
30 struct replace_unnamed_arg
39 struct replace_unnamed_arg< arg< -1 >, Arg >
41 typedef typename Arg::next next;
46 int N, typename U1, typename U2, typename U3, typename U4, typename U5
48 struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
50 typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
61 typename U1 = na, typename U2 = na, typename U3 = na
62 , typename U4 = na, typename U5 = na
67 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
68 typedef typename r0::type a0;
69 typedef typename r0::next n1;
70 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
73 typedef typename apply_wrap0<
83 typename F, typename U1, typename U2, typename U3, typename U4
86 struct resolve_bind_arg<
87 bind0<F>, U1, U2, U3, U4, U5
91 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
96 BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
97 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
100 typename F, typename T1
105 typename U1 = na, typename U2 = na, typename U3 = na
106 , typename U4 = na, typename U5 = na
111 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
112 typedef typename r0::type a0;
113 typedef typename r0::next n1;
114 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
116 typedef aux::replace_unnamed_arg< T1,n1 > r1;
117 typedef typename r1::type a1;
118 typedef typename r1::next n2;
119 typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
122 typedef typename apply_wrap1<
133 typename F, typename T1, typename U1, typename U2, typename U3
134 , typename U4, typename U5
136 struct resolve_bind_arg<
137 bind1< F,T1 >, U1, U2, U3, U4, U5
140 typedef bind1< F,T1 > f_;
141 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
146 BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
147 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
150 typename F, typename T1, typename T2
155 typename U1 = na, typename U2 = na, typename U3 = na
156 , typename U4 = na, typename U5 = na
161 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
162 typedef typename r0::type a0;
163 typedef typename r0::next n1;
164 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
166 typedef aux::replace_unnamed_arg< T1,n1 > r1;
167 typedef typename r1::type a1;
168 typedef typename r1::next n2;
169 typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
171 typedef aux::replace_unnamed_arg< T2,n2 > r2;
172 typedef typename r2::type a2;
173 typedef typename r2::next n3;
174 typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
177 typedef typename apply_wrap2<
179 , typename t1::type, typename t2::type
188 typename F, typename T1, typename T2, typename U1, typename U2
189 , typename U3, typename U4, typename U5
191 struct resolve_bind_arg<
192 bind2< F,T1,T2 >, U1, U2, U3, U4, U5
195 typedef bind2< F,T1,T2 > f_;
196 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
201 BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
202 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
205 typename F, typename T1, typename T2, typename T3
210 typename U1 = na, typename U2 = na, typename U3 = na
211 , typename U4 = na, typename U5 = na
216 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
217 typedef typename r0::type a0;
218 typedef typename r0::next n1;
219 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
221 typedef aux::replace_unnamed_arg< T1,n1 > r1;
222 typedef typename r1::type a1;
223 typedef typename r1::next n2;
224 typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
226 typedef aux::replace_unnamed_arg< T2,n2 > r2;
227 typedef typename r2::type a2;
228 typedef typename r2::next n3;
229 typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
231 typedef aux::replace_unnamed_arg< T3,n3 > r3;
232 typedef typename r3::type a3;
233 typedef typename r3::next n4;
234 typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
237 typedef typename apply_wrap3<
239 , typename t1::type, typename t2::type, typename t3::type
248 typename F, typename T1, typename T2, typename T3, typename U1
249 , typename U2, typename U3, typename U4, typename U5
251 struct resolve_bind_arg<
252 bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
255 typedef bind3< F,T1,T2,T3 > f_;
256 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
261 BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
262 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
265 typename F, typename T1, typename T2, typename T3, typename T4
270 typename U1 = na, typename U2 = na, typename U3 = na
271 , typename U4 = na, typename U5 = na
276 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
277 typedef typename r0::type a0;
278 typedef typename r0::next n1;
279 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
281 typedef aux::replace_unnamed_arg< T1,n1 > r1;
282 typedef typename r1::type a1;
283 typedef typename r1::next n2;
284 typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
286 typedef aux::replace_unnamed_arg< T2,n2 > r2;
287 typedef typename r2::type a2;
288 typedef typename r2::next n3;
289 typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
291 typedef aux::replace_unnamed_arg< T3,n3 > r3;
292 typedef typename r3::type a3;
293 typedef typename r3::next n4;
294 typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
296 typedef aux::replace_unnamed_arg< T4,n4 > r4;
297 typedef typename r4::type a4;
298 typedef typename r4::next n5;
299 typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
302 typedef typename apply_wrap4<
304 , typename t1::type, typename t2::type, typename t3::type
314 typename F, typename T1, typename T2, typename T3, typename T4
315 , typename U1, typename U2, typename U3, typename U4, typename U5
317 struct resolve_bind_arg<
318 bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
321 typedef bind4< F,T1,T2,T3,T4 > f_;
322 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
327 BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
328 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
331 typename F, typename T1, typename T2, typename T3, typename T4
337 typename U1 = na, typename U2 = na, typename U3 = na
338 , typename U4 = na, typename U5 = na
343 typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
344 typedef typename r0::type a0;
345 typedef typename r0::next n1;
346 typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
348 typedef aux::replace_unnamed_arg< T1,n1 > r1;
349 typedef typename r1::type a1;
350 typedef typename r1::next n2;
351 typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
353 typedef aux::replace_unnamed_arg< T2,n2 > r2;
354 typedef typename r2::type a2;
355 typedef typename r2::next n3;
356 typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
358 typedef aux::replace_unnamed_arg< T3,n3 > r3;
359 typedef typename r3::type a3;
360 typedef typename r3::next n4;
361 typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
363 typedef aux::replace_unnamed_arg< T4,n4 > r4;
364 typedef typename r4::type a4;
365 typedef typename r4::next n5;
366 typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
368 typedef aux::replace_unnamed_arg< T5,n5 > r5;
369 typedef typename r5::type a5;
370 typedef typename r5::next n6;
371 typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
374 typedef typename apply_wrap5<
376 , typename t1::type, typename t2::type, typename t3::type
377 , typename t4::type, typename t5::type
386 typename F, typename T1, typename T2, typename T3, typename T4
387 , typename T5, typename U1, typename U2, typename U3, typename U4
390 struct resolve_bind_arg<
391 bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
394 typedef bind5< F,T1,T2,T3,T4,T5 > f_;
395 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
400 BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
401 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)