1
2// Copyright Aleksey Gurtovoy 2000-2004
3//
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)
7//
8
9// Preprocessed version of "boost/mpl/apply.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14template<
15 typename F
16 >
17struct apply0
18
19 : apply_wrap0<
20 typename lambda<F>::type
21
22 >
23{
24 BOOST_MPL_AUX_LAMBDA_SUPPORT(
25 1
26 , apply0
27 , (F )
28 )
29};
30
31template<
32 typename F
33 >
34struct apply< F,na,na,na,na,na >
35 : apply0<F>
36{
37};
38
39template<
40 typename F, typename T1
41 >
42struct apply1
43
44 : apply_wrap1<
45 typename lambda<F>::type
46 , T1
47 >
48{
49 BOOST_MPL_AUX_LAMBDA_SUPPORT(
50 2
51 , apply1
52 , (F, T1)
53 )
54};
55
56template<
57 typename F, typename T1
58 >
59struct apply< F,T1,na,na,na,na >
60 : apply1< F,T1 >
61{
62};
63
64template<
65 typename F, typename T1, typename T2
66 >
67struct apply2
68
69 : apply_wrap2<
70 typename lambda<F>::type
71 , T1, T2
72 >
73{
74 BOOST_MPL_AUX_LAMBDA_SUPPORT(
75 3
76 , apply2
77 , (F, T1, T2)
78 )
79};
80
81template<
82 typename F, typename T1, typename T2
83 >
84struct apply< F,T1,T2,na,na,na >
85 : apply2< F,T1,T2 >
86{
87};
88
89template<
90 typename F, typename T1, typename T2, typename T3
91 >
92struct apply3
93
94 : apply_wrap3<
95 typename lambda<F>::type
96 , T1, T2, T3
97 >
98{
99 BOOST_MPL_AUX_LAMBDA_SUPPORT(
100 4
101 , apply3
102 , (F, T1, T2, T3)
103 )
104};
105
106template<
107 typename F, typename T1, typename T2, typename T3
108 >
109struct apply< F,T1,T2,T3,na,na >
110 : apply3< F,T1,T2,T3 >
111{
112};
113
114template<
115 typename F, typename T1, typename T2, typename T3, typename T4
116 >
117struct apply4
118
119 : apply_wrap4<
120 typename lambda<F>::type
121 , T1, T2, T3, T4
122 >
123{
124 BOOST_MPL_AUX_LAMBDA_SUPPORT(
125 5
126 , apply4
127 , (F, T1, T2, T3, T4)
128 )
129};
130
131template<
132 typename F, typename T1, typename T2, typename T3, typename T4
133 >
134struct apply< F,T1,T2,T3,T4,na >
135 : apply4< F,T1,T2,T3,T4 >
136{
137};
138
139template<
140 typename F, typename T1, typename T2, typename T3, typename T4
141 , typename T5
142 >
143struct apply5
144
145 : apply_wrap5<
146 typename lambda<F>::type
147 , T1, T2, T3, T4, T5
148 >
149{
150 BOOST_MPL_AUX_LAMBDA_SUPPORT(
151 6
152 , apply5
153 , (F, T1, T2, T3, T4, T5)
154 )
155};
156
157/// primary template (not a specialization!)
158
159template<
160 typename F, typename T1, typename T2, typename T3, typename T4
161 , typename T5
162 >
163struct apply
164 : apply5< F,T1,T2,T3,T4,T5 >
165{
166};
167
168}}
169
170