2 // Copyright Aleksey Gurtovoy 2000-2008
\r
4 // Distributed under the Boost Software License, Version 1.0.
\r
5 // (See accompanying file LICENSE_1_0.txt or copy at
\r
6 // http://www.boost.org/LICENSE_1_0.txt)
\r
9 // *Preprocessed* version of the main "apply_wrap.hpp" header
\r
10 // -- DO NOT modify by hand!
\r
12 namespace boost { namespace mpl {
\r
17 struct apply_wrap_impl0;
\r
19 template< typename F, bool F_has_apply >
\r
20 struct apply_wrap_impl0_bcb {
\r
21 typedef typename F::template apply<na> type;
\r
24 template< typename F >
\r
25 struct apply_wrap_impl0_bcb< F,true > {
\r
26 typedef typename F::apply type;
\r
32 struct apply_wrap_impl0<
\r
38 typedef apply_wrap_impl0_bcb< F, aux::has_apply<F>::value >::type type;
\r
44 struct apply_wrap_impl0<
\r
50 typedef typename F::template apply<
\r
59 struct apply_wrap_impl0<
\r
65 typedef typename F::template apply<
\r
75 struct apply_wrap_impl0<
\r
81 typedef typename F::template apply<
\r
91 struct apply_wrap_impl0<
\r
97 typedef typename F::template apply<
\r
107 struct apply_wrap_impl0<
\r
113 typedef typename F::template apply<
\r
124 : apply_wrap_impl0<
\r
125 ::boost::mpl::aux::arity< F,0 >::value
\r
133 int N, typename F, typename T1
\r
135 struct apply_wrap_impl1;
\r
138 typename F, typename T1
\r
140 struct apply_wrap_impl1<
\r
146 typedef typename F::template apply<
\r
152 typename F, typename T1
\r
154 struct apply_wrap_impl1<
\r
160 typedef typename F::template apply<
\r
168 typename F, typename T1
\r
170 struct apply_wrap_impl1<
\r
176 typedef typename F::template apply<
\r
184 typename F, typename T1
\r
186 struct apply_wrap_impl1<
\r
192 typedef typename F::template apply<
\r
200 typename F, typename T1
\r
202 struct apply_wrap_impl1<
\r
208 typedef typename F::template apply<
\r
216 typename F, typename T1
\r
219 : apply_wrap_impl1<
\r
220 ::boost::mpl::aux::arity< F,1 >::value
\r
228 int N, typename F, typename T1, typename T2
\r
230 struct apply_wrap_impl2;
\r
233 typename F, typename T1, typename T2
\r
235 struct apply_wrap_impl2<
\r
241 typedef typename F::template apply<
\r
248 typename F, typename T1, typename T2
\r
250 struct apply_wrap_impl2<
\r
256 typedef typename F::template apply<
\r
265 typename F, typename T1, typename T2
\r
267 struct apply_wrap_impl2<
\r
273 typedef typename F::template apply<
\r
282 typename F, typename T1, typename T2
\r
284 struct apply_wrap_impl2<
\r
290 typedef typename F::template apply<
\r
299 typename F, typename T1, typename T2
\r
302 : apply_wrap_impl2<
\r
303 ::boost::mpl::aux::arity< F,2 >::value
\r
311 int N, typename F, typename T1, typename T2, typename T3
\r
313 struct apply_wrap_impl3;
\r
316 typename F, typename T1, typename T2, typename T3
\r
318 struct apply_wrap_impl3<
\r
324 typedef typename F::template apply<
\r
331 typename F, typename T1, typename T2, typename T3
\r
333 struct apply_wrap_impl3<
\r
339 typedef typename F::template apply<
\r
348 typename F, typename T1, typename T2, typename T3
\r
350 struct apply_wrap_impl3<
\r
356 typedef typename F::template apply<
\r
365 typename F, typename T1, typename T2, typename T3
\r
368 : apply_wrap_impl3<
\r
369 ::boost::mpl::aux::arity< F,3 >::value
\r
377 int N, typename F, typename T1, typename T2, typename T3, typename T4
\r
379 struct apply_wrap_impl4;
\r
382 typename F, typename T1, typename T2, typename T3, typename T4
\r
384 struct apply_wrap_impl4<
\r
390 typedef typename F::template apply<
\r
397 typename F, typename T1, typename T2, typename T3, typename T4
\r
399 struct apply_wrap_impl4<
\r
405 typedef typename F::template apply<
\r
414 typename F, typename T1, typename T2, typename T3, typename T4
\r
417 : apply_wrap_impl4<
\r
418 ::boost::mpl::aux::arity< F,4 >::value
\r
426 int N, typename F, typename T1, typename T2, typename T3, typename T4
\r
429 struct apply_wrap_impl5;
\r
432 typename F, typename T1, typename T2, typename T3, typename T4
\r
435 struct apply_wrap_impl5<
\r
438 , T1, T2, T3, T4, T5
\r
441 typedef typename F::template apply<
\r
448 typename F, typename T1, typename T2, typename T3, typename T4
\r
452 : apply_wrap_impl5<
\r
453 ::boost::mpl::aux::arity< F,5 >::value
\r
455 , T1, T2, T3, T4, T5
\r