Chris@16
|
1
|
Chris@16
|
2 // Copyright Aleksey Gurtovoy 2000-2004
|
Chris@16
|
3 //
|
Chris@16
|
4 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
5 // (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
6 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 //
|
Chris@16
|
8
|
Chris@16
|
9 // Preprocessed version of "boost/mpl/apply.hpp" header
|
Chris@16
|
10 // -- DO NOT modify by hand!
|
Chris@16
|
11
|
Chris@16
|
12 namespace boost { namespace mpl {
|
Chris@16
|
13
|
Chris@16
|
14 template<
|
Chris@16
|
15 typename F
|
Chris@16
|
16 >
|
Chris@16
|
17 struct apply0
|
Chris@16
|
18
|
Chris@16
|
19 : apply_wrap0<
|
Chris@16
|
20 typename lambda<F>::type
|
Chris@16
|
21
|
Chris@16
|
22 >
|
Chris@16
|
23 {
|
Chris@16
|
24 };
|
Chris@16
|
25
|
Chris@16
|
26 template<
|
Chris@16
|
27 typename F
|
Chris@16
|
28 >
|
Chris@16
|
29 struct apply< F,na,na,na,na,na >
|
Chris@16
|
30 : apply0<F>
|
Chris@16
|
31 {
|
Chris@16
|
32 };
|
Chris@16
|
33
|
Chris@16
|
34 template<
|
Chris@16
|
35 typename F, typename T1
|
Chris@16
|
36 >
|
Chris@16
|
37 struct apply1
|
Chris@16
|
38
|
Chris@16
|
39 : apply_wrap1<
|
Chris@16
|
40 typename lambda<F>::type
|
Chris@16
|
41 , T1
|
Chris@16
|
42 >
|
Chris@16
|
43 {
|
Chris@16
|
44 };
|
Chris@16
|
45
|
Chris@16
|
46 template<
|
Chris@16
|
47 typename F, typename T1
|
Chris@16
|
48 >
|
Chris@16
|
49 struct apply< F,T1,na,na,na,na >
|
Chris@16
|
50 : apply1< F,T1 >
|
Chris@16
|
51 {
|
Chris@16
|
52 };
|
Chris@16
|
53
|
Chris@16
|
54 template<
|
Chris@16
|
55 typename F, typename T1, typename T2
|
Chris@16
|
56 >
|
Chris@16
|
57 struct apply2
|
Chris@16
|
58
|
Chris@16
|
59 : apply_wrap2<
|
Chris@16
|
60 typename lambda<F>::type
|
Chris@16
|
61 , T1, T2
|
Chris@16
|
62 >
|
Chris@16
|
63 {
|
Chris@16
|
64 };
|
Chris@16
|
65
|
Chris@16
|
66 template<
|
Chris@16
|
67 typename F, typename T1, typename T2
|
Chris@16
|
68 >
|
Chris@16
|
69 struct apply< F,T1,T2,na,na,na >
|
Chris@16
|
70 : apply2< F,T1,T2 >
|
Chris@16
|
71 {
|
Chris@16
|
72 };
|
Chris@16
|
73
|
Chris@16
|
74 template<
|
Chris@16
|
75 typename F, typename T1, typename T2, typename T3
|
Chris@16
|
76 >
|
Chris@16
|
77 struct apply3
|
Chris@16
|
78
|
Chris@16
|
79 : apply_wrap3<
|
Chris@16
|
80 typename lambda<F>::type
|
Chris@16
|
81 , T1, T2, T3
|
Chris@16
|
82 >
|
Chris@16
|
83 {
|
Chris@16
|
84 };
|
Chris@16
|
85
|
Chris@16
|
86 template<
|
Chris@16
|
87 typename F, typename T1, typename T2, typename T3
|
Chris@16
|
88 >
|
Chris@16
|
89 struct apply< F,T1,T2,T3,na,na >
|
Chris@16
|
90 : apply3< F,T1,T2,T3 >
|
Chris@16
|
91 {
|
Chris@16
|
92 };
|
Chris@16
|
93
|
Chris@16
|
94 template<
|
Chris@16
|
95 typename F, typename T1, typename T2, typename T3, typename T4
|
Chris@16
|
96 >
|
Chris@16
|
97 struct apply4
|
Chris@16
|
98
|
Chris@16
|
99 : apply_wrap4<
|
Chris@16
|
100 typename lambda<F>::type
|
Chris@16
|
101 , T1, T2, T3, T4
|
Chris@16
|
102 >
|
Chris@16
|
103 {
|
Chris@16
|
104 };
|
Chris@16
|
105
|
Chris@16
|
106 template<
|
Chris@16
|
107 typename F, typename T1, typename T2, typename T3, typename T4
|
Chris@16
|
108 >
|
Chris@16
|
109 struct apply< F,T1,T2,T3,T4,na >
|
Chris@16
|
110 : apply4< F,T1,T2,T3,T4 >
|
Chris@16
|
111 {
|
Chris@16
|
112 };
|
Chris@16
|
113
|
Chris@16
|
114 template<
|
Chris@16
|
115 typename F, typename T1, typename T2, typename T3, typename T4
|
Chris@16
|
116 , typename T5
|
Chris@16
|
117 >
|
Chris@16
|
118 struct apply5
|
Chris@16
|
119
|
Chris@16
|
120 : apply_wrap5<
|
Chris@16
|
121 typename lambda<F>::type
|
Chris@16
|
122 , T1, T2, T3, T4, T5
|
Chris@16
|
123 >
|
Chris@16
|
124 {
|
Chris@16
|
125 };
|
Chris@16
|
126
|
Chris@16
|
127 /// primary template (not a specialization!)
|
Chris@16
|
128
|
Chris@16
|
129 template<
|
Chris@16
|
130 typename F, typename T1, typename T2, typename T3, typename T4
|
Chris@16
|
131 , typename T5
|
Chris@16
|
132 >
|
Chris@16
|
133 struct apply
|
Chris@16
|
134 : apply5< F,T1,T2,T3,T4,T5 >
|
Chris@16
|
135 {
|
Chris@16
|
136 };
|
Chris@16
|
137
|
Chris@16
|
138 }}
|
Chris@16
|
139
|