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
17template<class R, class T,
18 class A1>
19 auto
20 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 return boost::BOOST_BIND( boost::mem_fn( f ), a1 );
24}
25
26template<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
35template<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
45template<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
57template<class R, class T,
58 class B1,
59 class A1, class A2>
60 auto
61 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 return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
65}
66
67template<class R, class T,
68 class B1,
69 class A1, class A2>
70 auto
71 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 return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
75}
76
77template<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
88template<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
101template<class R, class T,
102 class B1, class B2,
103 class A1, class A2, class A3>
104 auto
105 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 return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 );
109}
110
111template<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
121template<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
132template<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
145template<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
155template<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
165template<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
176template<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
189template<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
199template<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
209template<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
220template<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
233template<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
243template<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
253template<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
264template<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
277template<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
287template<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
297template<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
308template<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
321template<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
331template<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
341template<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
352template<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
365template<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
375template<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
385template<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
396template<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}
406

source code of boost/libs/bind/include/boost/bind/detail/bind_mf_cc.hpp