New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
apply_wrap.hpp in vendors/XIOS/current/extern/boost/include/boost/mpl/aux_/preprocessed/msvc60 – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp @ 3408

Last change on this file since 3408 was 3408, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

  • Property svn:keywords set to Id
File size: 4.6 KB
Line 
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
12namespace boost { namespace mpl {
13
14template< typename F>
15struct msvc_apply0
16{
17    template< bool > struct f_ : F {};
18    template<> struct f_<true>
19    {
20        template< typename P  = int > struct apply
21        {
22            typedef int type;
23        };
24    };
25
26    template< typename T  = int > struct result_
27        : f_< aux::msvc_never_true<F>::value >
28            ::template apply<>
29    {
30    };
31
32};
33
34template<
35      typename F
36    >
37struct apply_wrap0
38{
39    typedef typename msvc_apply0<F>::template result_<
40         
41        >::type type;
42};
43
44/// workaround for ETI bug
45template<>
46struct apply_wrap0<int>
47{
48    typedef int type;
49};
50
51template< typename F>
52struct msvc_apply1
53{
54    template< bool > struct f_ : F {};
55    template<> struct f_<true>
56    {
57        template< typename P1 > struct apply
58        {
59            typedef int type;
60        };
61    };
62
63    template< typename T1 > struct result_
64        : f_< aux::msvc_never_true<F>::value >
65            ::template apply<T1>
66    {
67    };
68};
69
70template<
71      typename F, typename T1
72    >
73struct apply_wrap1
74{
75    typedef typename msvc_apply1<F>::template result_<
76          T1
77        >::type type;
78};
79
80/// workaround for ETI bug
81template<>
82struct apply_wrap1< int,int >
83{
84    typedef int type;
85};
86
87template< typename F>
88struct msvc_apply2
89{
90    template< bool > struct f_ : F {};
91    template<> struct f_<true>
92    {
93        template< typename P1, typename P2 > struct apply
94        {
95            typedef int type;
96        };
97    };
98
99    template< typename T1, typename T2 > struct result_
100        : f_< aux::msvc_never_true<F>::value >
101            ::template apply< T1,T2 >
102    {
103    };
104};
105
106template<
107      typename F, typename T1, typename T2
108    >
109struct apply_wrap2
110{
111    typedef typename msvc_apply2<F>::template result_<
112          T1, T2
113        >::type type;
114};
115
116/// workaround for ETI bug
117template<>
118struct apply_wrap2< int,int,int >
119{
120    typedef int type;
121};
122
123template< typename F>
124struct msvc_apply3
125{
126    template< bool > struct f_ : F {};
127    template<> struct f_<true>
128    {
129        template< typename P1, typename P2, typename P3 > struct apply
130        {
131            typedef int type;
132        };
133    };
134
135    template< typename T1, typename T2, typename T3 > struct result_
136        : f_< aux::msvc_never_true<F>::value >
137            ::template apply< T1,T2,T3 >
138    {
139    };
140};
141
142template<
143      typename F, typename T1, typename T2, typename T3
144    >
145struct apply_wrap3
146{
147    typedef typename msvc_apply3<F>::template result_<
148          T1, T2, T3
149        >::type type;
150};
151
152/// workaround for ETI bug
153template<>
154struct apply_wrap3< int,int,int,int >
155{
156    typedef int type;
157};
158
159template< typename F>
160struct msvc_apply4
161{
162    template< bool > struct f_ : F {};
163    template<> struct f_<true>
164    {
165        template<
166              typename P1, typename P2, typename P3, typename P4
167            >
168        struct apply
169        {
170            typedef int type;
171        };
172    };
173
174    template<
175          typename T1, typename T2, typename T3, typename T4
176        >
177    struct result_
178        : f_< aux::msvc_never_true<F>::value >
179            ::template apply< T1,T2,T3,T4 >
180    {
181    };
182};
183
184template<
185      typename F, typename T1, typename T2, typename T3, typename T4
186    >
187struct apply_wrap4
188{
189    typedef typename msvc_apply4<F>::template result_<
190          T1, T2, T3, T4
191        >::type type;
192};
193
194/// workaround for ETI bug
195template<>
196struct apply_wrap4< int,int,int,int,int >
197{
198    typedef int type;
199};
200
201template< typename F>
202struct msvc_apply5
203{
204    template< bool > struct f_ : F {};
205    template<> struct f_<true>
206    {
207        template<
208              typename P1, typename P2, typename P3, typename P4
209            , typename P5
210            >
211        struct apply
212        {
213            typedef int type;
214        };
215    };
216
217    template<
218          typename T1, typename T2, typename T3, typename T4
219        , typename T5
220        >
221    struct result_
222        : f_< aux::msvc_never_true<F>::value >
223            ::template apply< T1,T2,T3,T4,T5 >
224    {
225    };
226};
227
228template<
229      typename F, typename T1, typename T2, typename T3, typename T4
230    , typename T5
231    >
232struct apply_wrap5
233{
234    typedef typename msvc_apply5<F>::template result_<
235          T1, T2, T3, T4, T5
236        >::type type;
237};
238
239/// workaround for ETI bug
240template<>
241struct apply_wrap5< int,int,int,int,int,int >
242{
243    typedef int type;
244};
245
246}}
247
Note: See TracBrowser for help on using the repository browser.