source: vendor/nemo/current/NEMOGCM/EXTERNAL/XIOS/extern/boost/include/boost/bind/bind_mf2_cc.hpp @ 44

Last change on this file since 44 was 44, checked in by cholod, 12 years ago

Load NEMO_TMP into vendor/nemo/current.

File size: 11.1 KB
Line 
1//
2//  bind/bind_mf2_cc.hpp - member functions, type<> syntax
3//
4//  Do not include this header directly.
5//
6//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
7//  Copyright (c) 2008 Peter Dimov
8//
9//  Distributed under the Boost Software License, Version 1.0.
10//  See accompanying file LICENSE_1_0.txt or copy at
11//  http://www.boost.org/LICENSE_1_0.txt
12//
13//  See http://www.boost.org/libs/bind/bind.html for documentation.
14//
15
16// 0
17
18template<class Rt2, class R, class T,
19    class A1>
20    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
21    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
22{
23    typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
24    typedef typename _bi::list_av_1<A1>::type list_type;
25    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
26}
27
28template<class Rt2, class R, class T,
29    class A1>
30    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
31    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
32{
33    typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
34    typedef typename _bi::list_av_1<A1>::type list_type;
35    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
36}
37
38// 1
39
40template<class Rt2, class R, class T,
41    class B1,
42    class A1, class A2>
43    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
44    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
45{
46    typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
47    typedef typename _bi::list_av_2<A1, A2>::type list_type;
48    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
49}
50
51template<class Rt2, class R, class T,
52    class B1,
53    class A1, class A2>
54    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
55    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
56{
57    typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
58    typedef typename _bi::list_av_2<A1, A2>::type list_type;
59    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
60}
61
62// 2
63
64template<class Rt2, class R, class T,
65    class B1, class B2,
66    class A1, class A2, class A3>
67    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
68    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
69{
70    typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
71    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
72    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
73}
74
75template<class Rt2, class R, class T,
76    class B1, class B2,
77    class A1, class A2, class A3>
78    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
79    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
80{
81    typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
82    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
83    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
84}
85
86// 3
87
88template<class Rt2, class R, class T,
89    class B1, class B2, class B3,
90    class A1, class A2, class A3, class A4>
91    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
92    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
93{
94    typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
95    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
96    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
97}
98
99template<class Rt2, class R, class T,
100    class B1, class B2, class B3,
101    class A1, class A2, class A3, class A4>
102    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
103    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
104{
105    typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
106    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
107    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
108}
109
110// 4
111
112template<class Rt2, class R, class T,
113    class B1, class B2, class B3, class B4,
114    class A1, class A2, class A3, class A4, class A5>
115    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
116    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
117{
118    typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
119    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
120    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
121}
122
123template<class Rt2, class R, class T,
124    class B1, class B2, class B3, class B4,
125    class A1, class A2, class A3, class A4, class A5>
126    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
127    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
128{
129    typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
130    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
131    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
132}
133
134// 5
135
136template<class Rt2, class R, class T,
137    class B1, class B2, class B3, class B4, class B5,
138    class A1, class A2, class A3, class A4, class A5, class A6>
139    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
140    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
141{
142    typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
143    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
144    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
145}
146
147template<class Rt2, class R, class T,
148    class B1, class B2, class B3, class B4, class B5,
149    class A1, class A2, class A3, class A4, class A5, class A6>
150    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
151    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
152{
153    typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
154    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
155    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
156}
157
158// 6
159
160template<class Rt2, class R, class T,
161    class B1, class B2, class B3, class B4, class B5, class B6,
162    class A1, class A2, class A3, class A4, class A5, class A6, class A7>
163    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
164    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
165{
166    typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
167    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
168    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
169}
170
171template<class Rt2, class R, class T,
172    class B1, class B2, class B3, class B4, class B5, class B6,
173    class A1, class A2, class A3, class A4, class A5, class A6, class A7>
174    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
175    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
176{
177    typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
178    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
179    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
180}
181
182// 7
183
184template<class Rt2, class R, class T,
185    class B1, class B2, class B3, class B4, class B5, class B6, class B7,
186    class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
187    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
188    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
189{
190    typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
191    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
192    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
193}
194
195template<class Rt2, class R, class T,
196    class B1, class B2, class B3, class B4, class B5, class B6, class B7,
197    class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
198    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
199    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
200{
201    typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
202    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
203    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
204}
205
206// 8
207
208template<class Rt2, class R, class T,
209    class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
210    class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
211    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
212    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
213{
214    typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
215    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
216    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
217}
218
219template<class Rt2, class R, class T,
220    class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
221    class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
222    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
223    BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
224{
225    typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
226    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
227    return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
228}
Note: See TracBrowser for help on using the repository browser.