~ubuntu-branches/ubuntu/wily/bombono-dvd/wily

« back to all changes in this revision

Viewing changes to libs/boost-lib/boost/bind/bind_mf_cc.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2010-11-04 11:46:25 UTC
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20101104114625-8xfdhvhpsm51i0nu
Tags: upstream-0.8.0
ImportĀ upstreamĀ versionĀ 0.8.0

Show diffs side-by-side

added added

removed removed

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