Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //
0002 //  bind/bind_mf2_cc.hpp - member functions, type<> syntax
0003 //
0004 //  Do not include this header directly.
0005 //
0006 //  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
0007 //  Copyright (c) 2008 Peter Dimov
0008 //
0009 //  Distributed under the Boost Software License, Version 1.0.
0010 //  See accompanying file LICENSE_1_0.txt or copy at
0011 //  http://www.boost.org/LICENSE_1_0.txt
0012 //
0013 //  See http://www.boost.org/libs/bind/bind.html for documentation.
0014 //
0015 
0016 // 0
0017 
0018 template<class Rt2, class R, class T,
0019     class A1>
0020     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
0021     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
0022 {
0023     typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
0024     typedef typename _bi::list_av_1<A1>::type list_type;
0025     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
0026 }
0027 
0028 template<class Rt2, class R, class T,
0029     class A1>
0030     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
0031     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
0032 {
0033     typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
0034     typedef typename _bi::list_av_1<A1>::type list_type;
0035     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
0036 }
0037 
0038 // 1
0039 
0040 template<class Rt2, class R, class T,
0041     class B1,
0042     class A1, class A2>
0043     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0044     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0045 {
0046     typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
0047     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0048     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
0049 }
0050 
0051 template<class Rt2, class R, class T,
0052     class B1,
0053     class A1, class A2>
0054     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
0055     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
0056 {
0057     typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
0058     typedef typename _bi::list_av_2<A1, A2>::type list_type;
0059     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
0060 }
0061 
0062 // 2
0063 
0064 template<class Rt2, class R, class T,
0065     class B1, class B2,
0066     class A1, class A2, class A3>
0067     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0068     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0069 {
0070     typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
0071     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0072     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
0073 }
0074 
0075 template<class Rt2, class R, class T,
0076     class B1, class B2,
0077     class A1, class A2, class A3>
0078     _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
0079     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0080 {
0081     typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
0082     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
0083     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
0084 }
0085 
0086 // 3
0087 
0088 template<class Rt2, class R, class T,
0089     class B1, class B2, class B3,
0090     class A1, class A2, class A3, class A4>
0091     _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>
0092     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
0093 {
0094     typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
0095     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0096     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0097 }
0098 
0099 template<class Rt2, class R, class T,
0100     class B1, class B2, class B3,
0101     class A1, class A2, class A3, class A4>
0102     _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>
0103     BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
0104 {
0105     typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
0106     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
0107     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
0108 }
0109 
0110 // 4
0111 
0112 template<class Rt2, class R, class T,
0113     class B1, class B2, class B3, class B4,
0114     class A1, class A2, class A3, class A4, class A5>
0115     _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>
0116     BOOST_BIND(boost::type<Rt2>, 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)
0117 {
0118     typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
0119     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0120     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0121 }
0122 
0123 template<class Rt2, class R, class T,
0124     class B1, class B2, class B3, class B4,
0125     class A1, class A2, class A3, class A4, class A5>
0126     _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>
0127     BOOST_BIND(boost::type<Rt2>, 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)
0128 {
0129     typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
0130     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
0131     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
0132 }
0133 
0134 // 5
0135 
0136 template<class Rt2, class R, class T,
0137     class B1, class B2, class B3, class B4, class B5,
0138     class A1, class A2, class A3, class A4, class A5, class A6>
0139     _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>
0140     BOOST_BIND(boost::type<Rt2>, 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)
0141 {
0142     typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
0143     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0144     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0145 }
0146 
0147 template<class Rt2, class R, class T,
0148     class B1, class B2, class B3, class B4, class B5,
0149     class A1, class A2, class A3, class A4, class A5, class A6>
0150     _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>
0151     BOOST_BIND(boost::type<Rt2>, 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)
0152 {
0153     typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
0154     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
0155     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
0156 }
0157 
0158 // 6
0159 
0160 template<class Rt2, class R, class T,
0161     class B1, class B2, class B3, class B4, class B5, class B6,
0162     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0163     _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>
0164     BOOST_BIND(boost::type<Rt2>, 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)
0165 {
0166     typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0167     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0168     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0169 }
0170 
0171 template<class Rt2, class R, class T,
0172     class B1, class B2, class B3, class B4, class B5, class B6,
0173     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0174     _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>
0175     BOOST_BIND(boost::type<Rt2>, 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)
0176 {
0177     typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
0178     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0179     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
0180 }
0181 
0182 // 7
0183 
0184 template<class Rt2, class R, class T,
0185     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0186     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0187     _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>
0188     BOOST_BIND(boost::type<Rt2>, 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)
0189 {
0190     typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0191     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0192     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0193 }
0194 
0195 template<class Rt2, class R, class T,
0196     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0197     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0198     _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>
0199     BOOST_BIND(boost::type<Rt2>, 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)
0200 {
0201     typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
0202     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0203     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0204 }
0205 
0206 // 8
0207 
0208 template<class Rt2, class R, class T,
0209     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0210     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0211     _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>
0212     BOOST_BIND(boost::type<Rt2>, 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)
0213 {
0214     typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0215     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0216     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0217 }
0218 
0219 template<class Rt2, class R, class T,
0220     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0221     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0222     _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>
0223     BOOST_BIND(boost::type<Rt2>, 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)
0224 {
0225     typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
0226     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0227     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0228 }