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/aux_/basic_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
27 int N, typename U1, typename U2, typename U3, typename U4, typename U5
29 struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
31 typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
42 typename U1 = na, typename U2 = na, typename U3 = na
43 , typename U4 = na, typename U5 = na
48 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
51 typedef typename apply_wrap0<
61 typename F, typename U1, typename U2, typename U3, typename U4
64 struct resolve_bind_arg<
65 bind0<F>, U1, U2, U3, U4, U5
69 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
74 BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
75 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
78 typename F, typename T1
83 typename U1 = na, typename U2 = na, typename U3 = na
84 , typename U4 = na, typename U5 = na
89 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
90 typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
93 typedef typename apply_wrap1<
104 typename F, typename T1, typename U1, typename U2, typename U3
105 , typename U4, typename U5
107 struct resolve_bind_arg<
108 bind1< F,T1 >, U1, U2, U3, U4, U5
111 typedef bind1< F,T1 > f_;
112 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
117 BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
118 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
121 typename F, typename T1, typename T2
126 typename U1 = na, typename U2 = na, typename U3 = na
127 , typename U4 = na, typename U5 = na
132 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
133 typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
134 typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
137 typedef typename apply_wrap2<
139 , typename t1::type, typename t2::type
148 typename F, typename T1, typename T2, typename U1, typename U2
149 , typename U3, typename U4, typename U5
151 struct resolve_bind_arg<
152 bind2< F,T1,T2 >, U1, U2, U3, U4, U5
155 typedef bind2< F,T1,T2 > f_;
156 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
161 BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
162 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
165 typename F, typename T1, typename T2, typename T3
170 typename U1 = na, typename U2 = na, typename U3 = na
171 , typename U4 = na, typename U5 = na
176 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
177 typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
178 typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
179 typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
182 typedef typename apply_wrap3<
184 , typename t1::type, typename t2::type, typename t3::type
193 typename F, typename T1, typename T2, typename T3, typename U1
194 , typename U2, typename U3, typename U4, typename U5
196 struct resolve_bind_arg<
197 bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
200 typedef bind3< F,T1,T2,T3 > f_;
201 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
206 BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
207 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
210 typename F, typename T1, typename T2, typename T3, typename T4
215 typename U1 = na, typename U2 = na, typename U3 = na
216 , typename U4 = na, typename U5 = na
221 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
222 typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
223 typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
224 typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
225 typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
228 typedef typename apply_wrap4<
230 , typename t1::type, typename t2::type, typename t3::type
240 typename F, typename T1, typename T2, typename T3, typename T4
241 , typename U1, typename U2, typename U3, typename U4, typename U5
243 struct resolve_bind_arg<
244 bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
247 typedef bind4< F,T1,T2,T3,T4 > f_;
248 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
253 BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
254 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
257 typename F, typename T1, typename T2, typename T3, typename T4
263 typename U1 = na, typename U2 = na, typename U3 = na
264 , typename U4 = na, typename U5 = na
269 typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
270 typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
271 typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
272 typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
273 typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
274 typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
277 typedef typename apply_wrap5<
279 , typename t1::type, typename t2::type, typename t3::type
280 , typename t4::type, typename t5::type
289 typename F, typename T1, typename T2, typename T3, typename T4
290 , typename T5, typename U1, typename U2, typename U3, typename U4
293 struct resolve_bind_arg<
294 bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
297 typedef bind5< F,T1,T2,T3,T4,T5 > f_;
298 typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
303 BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
304 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)