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

« back to all changes in this revision

Viewing changes to libs/boost-lib/boost/bind/bind_mf2_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_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
 
 
18
template<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
 
 
28
template<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
 
 
40
template<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
 
 
51
template<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
 
 
64
template<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
 
 
75
template<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
 
 
88
template<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
 
 
99
template<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
 
 
112
template<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
 
 
123
template<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
 
 
136
template<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
 
 
147
template<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
 
 
160
template<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
 
 
171
template<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
 
 
184
template<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
 
 
195
template<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
 
 
208
template<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
 
 
219
template<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
}