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.
bind.hpp in vendors/XIOS/current/extern/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590 – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp @ 3428

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

importing initial XIOS vendor drop

File size: 10.2 KB
Line 
1
2// Copyright Peter Dimov 2001
3// Copyright Aleksey Gurtovoy 2001-2004
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9
10// *Preprocessed* version of the main "bind.hpp" header
11// -- DO NOT modify by hand!
12
13namespace boost { namespace mpl {
14
15namespace aux {
16
17template<
18      typename T, typename U1, typename U2, typename U3, typename U4
19    , typename U5
20    >
21struct resolve_bind_arg
22{
23    typedef T type;
24};
25
26template<
27      typename T
28    , typename Arg
29    >
30struct replace_unnamed_arg
31{
32    typedef Arg next;
33    typedef T type;
34};
35
36template<
37      typename Arg
38    >
39struct replace_unnamed_arg< arg< -1 >, Arg >
40{
41    typedef typename Arg::next next;
42    typedef Arg type;
43};
44
45template<
46      int N, typename U1, typename U2, typename U3, typename U4, typename U5
47    >
48struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
49{
50    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
51};
52
53} // namespace aux
54
55template<
56      typename F
57    >
58struct bind0
59{
60    template<
61          typename U1, typename U2, typename U3, typename U4, typename U5
62        >
63    struct apply
64    {
65     private:
66        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
67        typedef typename r0::type a0;
68        typedef typename r0::next n1;
69        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
70        ///
71     public:
72        typedef typename apply_wrap0<
73              f_
74            >::type type;
75
76    };
77};
78
79namespace aux {
80
81template<
82      typename F, typename U1, typename U2, typename U3, typename U4
83    , typename U5
84    >
85struct resolve_bind_arg<
86      bind0<F>, U1, U2, U3, U4, U5
87    >
88{
89    typedef bind0<F> f_;
90    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
91};
92
93} // namespace aux
94
95BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
96BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
97
98template<
99      typename F, typename T1
100    >
101struct bind1
102{
103    template<
104          typename U1, typename U2, typename U3, typename U4, typename U5
105        >
106    struct apply
107    {
108     private:
109        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
110        typedef typename r0::type a0;
111        typedef typename r0::next n1;
112        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
113        ///
114        typedef aux::replace_unnamed_arg< T1,n1 > r1;
115        typedef typename r1::type a1;
116        typedef typename r1::next n2;
117        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
118        ///
119     public:
120        typedef typename apply_wrap1<
121              f_
122            , typename t1::type
123            >::type type;
124
125    };
126};
127
128namespace aux {
129
130template<
131      typename F, typename T1, typename U1, typename U2, typename U3
132    , typename U4, typename U5
133    >
134struct resolve_bind_arg<
135      bind1< F,T1 >, U1, U2, U3, U4, U5
136    >
137{
138    typedef bind1< F,T1 > f_;
139    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
140};
141
142} // namespace aux
143
144BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
145BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
146
147template<
148      typename F, typename T1, typename T2
149    >
150struct bind2
151{
152    template<
153          typename U1, typename U2, typename U3, typename U4, typename U5
154        >
155    struct apply
156    {
157     private:
158        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
159        typedef typename r0::type a0;
160        typedef typename r0::next n1;
161        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
162        ///
163        typedef aux::replace_unnamed_arg< T1,n1 > r1;
164        typedef typename r1::type a1;
165        typedef typename r1::next n2;
166        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
167        ///
168        typedef aux::replace_unnamed_arg< T2,n2 > r2;
169        typedef typename r2::type a2;
170        typedef typename r2::next n3;
171        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
172        ///
173     public:
174        typedef typename apply_wrap2<
175              f_
176            , typename t1::type, typename t2::type
177            >::type type;
178
179    };
180};
181
182namespace aux {
183
184template<
185      typename F, typename T1, typename T2, typename U1, typename U2
186    , typename U3, typename U4, typename U5
187    >
188struct resolve_bind_arg<
189      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
190    >
191{
192    typedef bind2< F,T1,T2 > f_;
193    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
194};
195
196} // namespace aux
197
198BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
199BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
200
201template<
202      typename F, typename T1, typename T2, typename T3
203    >
204struct bind3
205{
206    template<
207          typename U1, typename U2, typename U3, typename U4, typename U5
208        >
209    struct apply
210    {
211     private:
212        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
213        typedef typename r0::type a0;
214        typedef typename r0::next n1;
215        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
216        ///
217        typedef aux::replace_unnamed_arg< T1,n1 > r1;
218        typedef typename r1::type a1;
219        typedef typename r1::next n2;
220        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
221        ///
222        typedef aux::replace_unnamed_arg< T2,n2 > r2;
223        typedef typename r2::type a2;
224        typedef typename r2::next n3;
225        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
226        ///
227        typedef aux::replace_unnamed_arg< T3,n3 > r3;
228        typedef typename r3::type a3;
229        typedef typename r3::next n4;
230        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
231        ///
232     public:
233        typedef typename apply_wrap3<
234              f_
235            , typename t1::type, typename t2::type, typename t3::type
236            >::type type;
237
238    };
239};
240
241namespace aux {
242
243template<
244      typename F, typename T1, typename T2, typename T3, typename U1
245    , typename U2, typename U3, typename U4, typename U5
246    >
247struct resolve_bind_arg<
248      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
249    >
250{
251    typedef bind3< F,T1,T2,T3 > f_;
252    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
253};
254
255} // namespace aux
256
257BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
258BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
259
260template<
261      typename F, typename T1, typename T2, typename T3, typename T4
262    >
263struct bind4
264{
265    template<
266          typename U1, typename U2, typename U3, typename U4, typename U5
267        >
268    struct apply
269    {
270     private:
271        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
272        typedef typename r0::type a0;
273        typedef typename r0::next n1;
274        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
275        ///
276        typedef aux::replace_unnamed_arg< T1,n1 > r1;
277        typedef typename r1::type a1;
278        typedef typename r1::next n2;
279        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
280        ///
281        typedef aux::replace_unnamed_arg< T2,n2 > r2;
282        typedef typename r2::type a2;
283        typedef typename r2::next n3;
284        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
285        ///
286        typedef aux::replace_unnamed_arg< T3,n3 > r3;
287        typedef typename r3::type a3;
288        typedef typename r3::next n4;
289        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
290        ///
291        typedef aux::replace_unnamed_arg< T4,n4 > r4;
292        typedef typename r4::type a4;
293        typedef typename r4::next n5;
294        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
295        ///
296     public:
297        typedef typename apply_wrap4<
298              f_
299            , typename t1::type, typename t2::type, typename t3::type
300            , typename t4::type
301            >::type type;
302
303    };
304};
305
306namespace aux {
307
308template<
309      typename F, typename T1, typename T2, typename T3, typename T4
310    , typename U1, typename U2, typename U3, typename U4, typename U5
311    >
312struct resolve_bind_arg<
313      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
314    >
315{
316    typedef bind4< F,T1,T2,T3,T4 > f_;
317    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
318};
319
320} // namespace aux
321
322BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
323BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
324
325template<
326      typename F, typename T1, typename T2, typename T3, typename T4
327    , typename T5
328    >
329struct bind5
330{
331    template<
332          typename U1, typename U2, typename U3, typename U4, typename U5
333        >
334    struct apply
335    {
336     private:
337        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
338        typedef typename r0::type a0;
339        typedef typename r0::next n1;
340        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
341        ///
342        typedef aux::replace_unnamed_arg< T1,n1 > r1;
343        typedef typename r1::type a1;
344        typedef typename r1::next n2;
345        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
346        ///
347        typedef aux::replace_unnamed_arg< T2,n2 > r2;
348        typedef typename r2::type a2;
349        typedef typename r2::next n3;
350        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
351        ///
352        typedef aux::replace_unnamed_arg< T3,n3 > r3;
353        typedef typename r3::type a3;
354        typedef typename r3::next n4;
355        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
356        ///
357        typedef aux::replace_unnamed_arg< T4,n4 > r4;
358        typedef typename r4::type a4;
359        typedef typename r4::next n5;
360        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
361        ///
362        typedef aux::replace_unnamed_arg< T5,n5 > r5;
363        typedef typename r5::type a5;
364        typedef typename r5::next n6;
365        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
366        ///
367     public:
368        typedef typename apply_wrap5<
369              f_
370            , typename t1::type, typename t2::type, typename t3::type
371            , typename t4::type, typename t5::type
372            >::type type;
373
374    };
375};
376
377namespace aux {
378
379template<
380      typename F, typename T1, typename T2, typename T3, typename T4
381    , typename T5, typename U1, typename U2, typename U3, typename U4
382    , typename U5
383    >
384struct resolve_bind_arg<
385      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
386    >
387{
388    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
389    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
390};
391
392} // namespace aux
393
394BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
395BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
396}}
397
Note: See TracBrowser for help on using the repository browser.