Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-16 09:06:27

0001 //
0002 //  bind/bind_mf_cc.hpp - support for different calling conventions
0003 //
0004 //  Do not include this header directly.
0005 //
0006 //  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
0007 //
0008 // Distributed under the Boost Software License, Version 1.0. (See
0009 // accompanying file LICENSE_1_0.txt or copy at
0010 // http://www.boost.org/LICENSE_1_0.txt)
0011 //
0012 //  See http://www.boost.org/libs/bind/bind.html for documentation.
0013 //
0014 
0015 // 0
0016 
0017 template<class R, class T,
0018     class A1>
0019     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
0020     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
0021 {
0022     typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
0023     typedef typename _bi::list_av_1<A1>::type list_type;
0024     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
0025 }
0026 
0027 template<class R, class T,
0028     class A1>
0029     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
0030     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
0031 {
0032     typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
0033     typedef typename _bi::list_av_1<A1>::type list_type;
0034     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
0035 }
0036 
0037 template<class Rt2, class R, class T,
0038     class A1>
0039     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0040     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
0041     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
0042 {
0043     typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
0044     typedef typename _bi::list_av_1<A1>::type list_type;
0045     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
0046 }
0047 
0048 template<class Rt2, class R, class T,
0049     class A1>
0050     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0051     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
0052     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
0053 {
0054     typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
0055     typedef typename _bi::list_av_1<A1>::type list_type;
0056     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
0057 }
0058 
0059 // 1
0060 
0061 template<class R, class T,
0062     class B1,
0063     class A1, class A2>
0064     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0065     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0066 {
0067     typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
0068     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0069     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
0070 }
0071 
0072 template<class R, class T,
0073     class B1,
0074     class A1, class A2>
0075     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0076     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0077 {
0078     typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
0079     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0080     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
0081 }
0082 
0083 template<class Rt2, class R, class T,
0084     class B1,
0085     class A1, class A2>
0086     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0087     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0088     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0089 {
0090     typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
0091     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0092     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
0093 }
0094 
0095 template<class Rt2, class R, class T,
0096     class B1,
0097     class A1, class A2>
0098     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0099     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0100     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0101 {
0102     typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
0103     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0104     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
0105 }
0106 
0107 // 2
0108 
0109 template<class R, class T,
0110     class B1, class B2,
0111     class A1, class A2, class A3>
0112     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0113     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0114 {
0115     typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
0116     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0117     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
0118 }
0119 
0120 template<class R, class T,
0121     class B1, class B2,
0122     class A1, class A2, class A3>
0123     _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0124     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0125 {
0126     typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
0127     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0128     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
0129 }
0130 
0131 template<class Rt2, class R, class T,
0132     class B1, class B2,
0133     class A1, class A2, class A3>
0134     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0135     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0136     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0137 {
0138     typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
0139     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0140     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
0141 }
0142 
0143 template<class Rt2, class R, class T,
0144     class B1, class B2,
0145     class A1, class A2, class A3>
0146     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0147     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0148     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0149 {
0150     typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
0151     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0152     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
0153 }
0154 
0155 // 3
0156 
0157 template<class R, class T,
0158     class B1, class B2, class B3,
0159     class A1, class A2, class A3, class A4>
0160     _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>
0161     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
0162 {
0163     typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
0164     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0165     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0166 }
0167 
0168 template<class R, class T,
0169     class B1, class B2, class B3,
0170     class A1, class A2, class A3, class A4>
0171     _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>
0172     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)
0173 {
0174     typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
0175     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0176     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0177 }
0178 
0179 template<class Rt2, class R, class T,
0180     class B1, class B2, class B3,
0181     class A1, class A2, class A3, class A4>
0182     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0183     _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>
0184     >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
0185 {
0186     typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
0187     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0188     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0189 }
0190 
0191 template<class Rt2, class R, class T,
0192     class B1, class B2, class B3,
0193     class A1, class A2, class A3, class A4>
0194     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0195     _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>
0196     >::type 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)
0197 {
0198     typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
0199     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0200     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0201 }
0202 
0203 // 4
0204 
0205 template<class R, class T,
0206     class B1, class B2, class B3, class B4,
0207     class A1, class A2, class A3, class A4, class A5>
0208     _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>
0209     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)
0210 {
0211     typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
0212     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0213     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0214 }
0215 
0216 template<class R, class T,
0217     class B1, class B2, class B3, class B4,
0218     class A1, class A2, class A3, class A4, class A5>
0219     _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>
0220     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)
0221 {
0222     typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
0223     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0224     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0225 }
0226 
0227 template<class Rt2, class R, class T,
0228     class B1, class B2, class B3, class B4,
0229     class A1, class A2, class A3, class A4, class A5>
0230     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0231     _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>
0232     >::type 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)
0233 {
0234     typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
0235     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0236     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0237 }
0238 
0239 template<class Rt2, class R, class T,
0240     class B1, class B2, class B3, class B4,
0241     class A1, class A2, class A3, class A4, class A5>
0242     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0243     _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>
0244     >::type 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)
0245 {
0246     typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
0247     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0248     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0249 }
0250 
0251 // 5
0252 
0253 template<class R, class T,
0254     class B1, class B2, class B3, class B4, class B5,
0255     class A1, class A2, class A3, class A4, class A5, class A6>
0256     _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>
0257     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)
0258 {
0259     typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
0260     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0261     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0262 }
0263 
0264 template<class R, class T,
0265     class B1, class B2, class B3, class B4, class B5,
0266     class A1, class A2, class A3, class A4, class A5, class A6>
0267     _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>
0268     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)
0269 {
0270     typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
0271     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0272     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0273 }
0274 
0275 template<class Rt2, class R, class T,
0276     class B1, class B2, class B3, class B4, class B5,
0277     class A1, class A2, class A3, class A4, class A5, class A6>
0278     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0279     _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>
0280     >::type 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)
0281 {
0282     typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
0283     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0284     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0285 }
0286 
0287 template<class Rt2, class R, class T,
0288     class B1, class B2, class B3, class B4, class B5,
0289     class A1, class A2, class A3, class A4, class A5, class A6>
0290     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0291     _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>
0292     >::type 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)
0293 {
0294     typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
0295     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0296     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0297 }
0298 
0299 // 6
0300 
0301 template<class R, class T,
0302     class B1, class B2, class B3, class B4, class B5, class B6,
0303     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0304     _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>
0305     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)
0306 {
0307     typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0308     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0309     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0310 }
0311 
0312 template<class R, class T,
0313     class B1, class B2, class B3, class B4, class B5, class B6,
0314     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0315     _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>
0316     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)
0317 {
0318     typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0319     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0320     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0321 }
0322 
0323 template<class Rt2, class R, class T,
0324     class B1, class B2, class B3, class B4, class B5, class B6,
0325     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0326     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0327     _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>
0328     >::type 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)
0329 {
0330     typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0331     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0332     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0333 }
0334 
0335 template<class Rt2, class R, class T,
0336     class B1, class B2, class B3, class B4, class B5, class B6,
0337     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0338     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0339     _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>
0340     >::type 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)
0341 {
0342     typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0343     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0344     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0345 }
0346 
0347 // 7
0348 
0349 template<class R, class T,
0350     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0351     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0352     _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>
0353     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)
0354 {
0355     typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0356     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0357     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0358 }
0359 
0360 template<class R, class T,
0361     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0362     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0363     _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>
0364     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)
0365 {
0366     typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0367     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0368     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0369 }
0370 
0371 template<class Rt2, class R, class T,
0372     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0373     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0374     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0375     _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>
0376     >::type 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)
0377 {
0378     typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0379     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0380     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0381 }
0382 
0383 template<class Rt2, class R, class T,
0384     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0385     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0386     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0387     _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>
0388     >::type 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)
0389 {
0390     typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0391     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0392     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0393 }
0394 
0395 // 8
0396 
0397 template<class R, class T,
0398     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0399     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0400     _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>
0401     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)
0402 {
0403     typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0404     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0405     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0406 }
0407 
0408 template<class R, class T,
0409     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0410     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0411     _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>
0412     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)
0413 {
0414     typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0415     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0416     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0417 }
0418 
0419 template<class Rt2, class R, class T,
0420     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0421     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0422     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0423     _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>
0424     >::type 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)
0425 {
0426     typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0427     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0428     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0429 }
0430 
0431 template<class Rt2, class R, class T,
0432     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0433     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0434     typename boost::enable_if_c<!_bi::is_same<Rt2, R>::value,
0435     _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>
0436     >::type 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)
0437 {
0438     typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0439     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0440     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0441 }