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_wrap.hpp" header
10 // -- DO NOT modify by hand!
11 
12 namespace boost { namespace mpl {
13 
14 template<
15       typename F
16 
17     , typename has_apply_ = typename aux::has_apply<F>::type
18 
19     >
20 struct apply_wrap0
21 
22 {
23     typedef typename F::template apply<
24 
25         >::type type;
26 
27 };
28 
29 /// workaround for ETI bug
30 template<>
31 struct apply_wrap0<int>
32 {
33     typedef int type;
34 };
35 
36 template<
37       typename F, typename T1
38 
39     >
40 struct apply_wrap1
41 
42 {
43     typedef typename F::template apply<
44          T1
45         >::type type;
46 
47 };
48 
49 /// workaround for ETI bug
50 template<>
51 struct apply_wrap1< int,int >
52 {
53     typedef int type;
54 };
55 
56 template<
57       typename F, typename T1, typename T2
58 
59     >
60 struct apply_wrap2
61 
62 {
63     typedef typename F::template apply<
64          T1, T2
65         >::type type;
66 
67 };
68 
69 /// workaround for ETI bug
70 template<>
71 struct apply_wrap2< int,int,int >
72 {
73     typedef int type;
74 };
75 
76 template<
77       typename F, typename T1, typename T2, typename T3
78 
79     >
80 struct apply_wrap3
81 
82 {
83     typedef typename F::template apply<
84          T1, T2, T3
85         >::type type;
86 
87 };
88 
89 /// workaround for ETI bug
90 template<>
91 struct apply_wrap3< int,int,int,int >
92 {
93     typedef int type;
94 };
95 
96 template<
97       typename F, typename T1, typename T2, typename T3, typename T4
98 
99     >
100 struct apply_wrap4
101 
102 {
103     typedef typename F::template apply<
104          T1, T2, T3, T4
105         >::type type;
106 
107 };
108 
109 /// workaround for ETI bug
110 template<>
111 struct apply_wrap4< int,int,int,int,int >
112 {
113     typedef int type;
114 };
115 
116 template<
117       typename F, typename T1, typename T2, typename T3, typename T4
118     , typename T5
119 
120     >
121 struct apply_wrap5
122 
123 {
124     typedef typename F::template apply<
125          T1, T2, T3, T4, T5
126         >::type type;
127 
128 };
129 
130 /// workaround for ETI bug
131 template<>
132 struct apply_wrap5< int,int,int,int,int,int >
133 {
134     typedef int type;
135 };
136 
137 }}
138 
139