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