Line data Source code
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 : auto
20 0 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
21 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1 ) )
22 : {
23 0 : return boost::BOOST_BIND( boost::mem_fn( f ), a1 );
24 0 : }
25 :
26 : template<class R, class T,
27 : class A1>
28 : auto
29 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
30 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1 ) )
31 : {
32 : return boost::BOOST_BIND( boost::mem_fn( f ), a1 );
33 : }
34 :
35 : template<class Rt2, class R, class T,
36 : class A1,
37 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
38 : auto
39 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
40 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 ) )
41 : {
42 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 );
43 : }
44 :
45 : template<class Rt2, class R, class T,
46 : class A1,
47 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
48 : auto
49 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
50 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 ) )
51 : {
52 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 );
53 : }
54 :
55 : // 1
56 :
57 : template<class R, class T,
58 : class B1,
59 : class A1, class A2>
60 : auto
61 0 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
62 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 ) )
63 : {
64 0 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
65 : }
66 :
67 : template<class R, class T,
68 : class B1,
69 : class A1, class A2>
70 : auto
71 21170 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
72 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 ) )
73 : {
74 21170 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
75 : }
76 :
77 : template<class Rt2, class R, class T,
78 : class B1,
79 : class A1, class A2,
80 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
81 : auto
82 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
83 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 ) )
84 : {
85 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 );
86 : }
87 :
88 : template<class Rt2, class R, class T,
89 : class B1,
90 : class A1, class A2,
91 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
92 : auto
93 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
94 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 ) )
95 : {
96 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 );
97 : }
98 :
99 : // 2
100 :
101 : template<class R, class T,
102 : class B1, class B2,
103 : class A1, class A2, class A3>
104 : auto
105 438 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
106 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 ) )
107 : {
108 438 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 );
109 : }
110 :
111 : template<class R, class T,
112 : class B1, class B2,
113 : class A1, class A2, class A3>
114 : auto
115 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
116 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 ) )
117 : {
118 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 );
119 : }
120 :
121 : template<class Rt2, class R, class T,
122 : class B1, class B2,
123 : class A1, class A2, class A3,
124 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
125 : auto
126 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
127 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 ) )
128 : {
129 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 );
130 : }
131 :
132 : template<class Rt2, class R, class T,
133 : class B1, class B2,
134 : class A1, class A2, class A3,
135 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
136 : auto
137 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
138 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 ) )
139 : {
140 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 );
141 : }
142 :
143 : // 3
144 :
145 : template<class R, class T,
146 : class B1, class B2, class B3,
147 : class A1, class A2, class A3, class A4>
148 : auto
149 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
150 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 ) )
151 : {
152 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 );
153 : }
154 :
155 : template<class R, class T,
156 : class B1, class B2, class B3,
157 : class A1, class A2, class A3, class A4>
158 : auto
159 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
160 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 ) )
161 : {
162 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 );
163 : }
164 :
165 : template<class Rt2, class R, class T,
166 : class B1, class B2, class B3,
167 : class A1, class A2, class A3, class A4,
168 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
169 : auto
170 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
171 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 ) )
172 : {
173 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 );
174 : }
175 :
176 : template<class Rt2, class R, class T,
177 : class B1, class B2, class B3,
178 : class A1, class A2, class A3, class A4,
179 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
180 : auto
181 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
182 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 ) )
183 : {
184 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 );
185 : }
186 :
187 : // 4
188 :
189 : template<class R, class T,
190 : class B1, class B2, class B3, class B4,
191 : class A1, class A2, class A3, class A4, class A5>
192 : auto
193 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
194 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
195 : {
196 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
197 : }
198 :
199 : template<class R, class T,
200 : class B1, class B2, class B3, class B4,
201 : class A1, class A2, class A3, class A4, class A5>
202 : auto
203 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
204 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
205 : {
206 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
207 : }
208 :
209 : template<class Rt2, class R, class T,
210 : class B1, class B2, class B3, class B4,
211 : class A1, class A2, class A3, class A4, class A5,
212 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
213 : auto
214 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
215 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
216 : {
217 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
218 : }
219 :
220 : template<class Rt2, class R, class T,
221 : class B1, class B2, class B3, class B4,
222 : class A1, class A2, class A3, class A4, class A5,
223 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
224 : auto
225 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
226 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
227 : {
228 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
229 : }
230 :
231 : // 5
232 :
233 : template<class R, class T,
234 : class B1, class B2, class B3, class B4, class B5,
235 : class A1, class A2, class A3, class A4, class A5, class A6>
236 : auto
237 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
238 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
239 : {
240 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
241 : }
242 :
243 : template<class R, class T,
244 : class B1, class B2, class B3, class B4, class B5,
245 : class A1, class A2, class A3, class A4, class A5, class A6>
246 : auto
247 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
248 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
249 : {
250 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
251 : }
252 :
253 : template<class Rt2, class R, class T,
254 : class B1, class B2, class B3, class B4, class B5,
255 : class A1, class A2, class A3, class A4, class A5, class A6,
256 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
257 : auto
258 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
259 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
260 : {
261 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
262 : }
263 :
264 : template<class Rt2, class R, class T,
265 : class B1, class B2, class B3, class B4, class B5,
266 : class A1, class A2, class A3, class A4, class A5, class A6,
267 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
268 : auto
269 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
270 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
271 : {
272 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
273 : }
274 :
275 : // 6
276 :
277 : template<class R, class T,
278 : class B1, class B2, class B3, class B4, class B5, class B6,
279 : class A1, class A2, class A3, class A4, class A5, class A6, class A7>
280 : auto
281 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
282 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
283 : {
284 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
285 : }
286 :
287 : template<class R, class T,
288 : class B1, class B2, class B3, class B4, class B5, class B6,
289 : class A1, class A2, class A3, class A4, class A5, class A6, class A7>
290 : auto
291 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
292 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
293 : {
294 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
295 : }
296 :
297 : template<class Rt2, class R, class T,
298 : class B1, class B2, class B3, class B4, class B5, class B6,
299 : class A1, class A2, class A3, class A4, class A5, class A6, class A7,
300 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
301 : auto
302 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
303 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
304 : {
305 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
306 : }
307 :
308 : template<class Rt2, class R, class T,
309 : class B1, class B2, class B3, class B4, class B5, class B6,
310 : class A1, class A2, class A3, class A4, class A5, class A6, class A7,
311 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
312 : auto
313 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
314 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
315 : {
316 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
317 : }
318 :
319 : // 7
320 :
321 : template<class R, class T,
322 : class B1, class B2, class B3, class B4, class B5, class B6, class B7,
323 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
324 : auto
325 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
326 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
327 : {
328 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
329 : }
330 :
331 : template<class R, class T,
332 : class B1, class B2, class B3, class B4, class B5, class B6, class B7,
333 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
334 : auto
335 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
336 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
337 : {
338 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
339 : }
340 :
341 : template<class Rt2, class R, class T,
342 : class B1, class B2, class B3, class B4, class B5, class B6, class B7,
343 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8,
344 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
345 : auto
346 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
347 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
348 : {
349 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
350 : }
351 :
352 : template<class Rt2, class R, class T,
353 : class B1, class B2, class B3, class B4, class B5, class B6, class B7,
354 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8,
355 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
356 : auto
357 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
358 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
359 : {
360 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
361 : }
362 :
363 : // 8
364 :
365 : template<class R, class T,
366 : class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
367 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
368 : auto
369 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
370 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
371 : {
372 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
373 : }
374 :
375 : template<class R, class T,
376 : class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
377 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
378 : auto
379 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
380 : -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
381 : {
382 : return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
383 : }
384 :
385 : template<class Rt2, class R, class T,
386 : class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
387 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9,
388 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
389 : auto
390 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
391 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
392 : {
393 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
394 : }
395 :
396 : template<class Rt2, class R, class T,
397 : class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
398 : class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9,
399 : class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
400 : auto
401 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
402 : -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
403 : {
404 : return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
405 : }
|