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