1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/stdapis/boost/bind/bind_mf_cc.hpp Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -0,0 +1,227 @@
1.4 +//
1.5 +// bind/bind_mf_cc.hpp - support for different calling conventions
1.6 +//
1.7 +// Do not include this header directly.
1.8 +//
1.9 +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
1.10 +//
1.11 +// Distributed under the Boost Software License, Version 1.0. (See
1.12 +// accompanying file LICENSE_1_0.txt or copy at
1.13 +// http://www.boost.org/LICENSE_1_0.txt)
1.14 +//
1.15 +// See http://www.boost.org/libs/bind/bind.html for documentation.
1.16 +//
1.17 +
1.18 +// 0
1.19 +
1.20 +template<class R, class T,
1.21 + class A1>
1.22 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
1.23 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
1.24 +{
1.25 + typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
1.26 + typedef typename _bi::list_av_1<A1>::type list_type;
1.27 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
1.28 +}
1.29 +
1.30 +template<class R, class T,
1.31 + class A1>
1.32 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
1.33 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
1.34 +{
1.35 + typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
1.36 + typedef typename _bi::list_av_1<A1>::type list_type;
1.37 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
1.38 +}
1.39 +
1.40 +// 1
1.41 +
1.42 +template<class R, class T,
1.43 + class B1,
1.44 + class A1, class A2>
1.45 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
1.46 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
1.47 +{
1.48 + typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
1.49 + typedef typename _bi::list_av_2<A1, A2>::type list_type;
1.50 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
1.51 +}
1.52 +
1.53 +template<class R, class T,
1.54 + class B1,
1.55 + class A1, class A2>
1.56 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
1.57 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
1.58 +{
1.59 + typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
1.60 + typedef typename _bi::list_av_2<A1, A2>::type list_type;
1.61 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
1.62 +}
1.63 +
1.64 +// 2
1.65 +
1.66 +template<class R, class T,
1.67 + class B1, class B2,
1.68 + class A1, class A2, class A3>
1.69 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
1.70 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
1.71 +{
1.72 + typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
1.73 + typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1.74 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
1.75 +}
1.76 +
1.77 +template<class R, class T,
1.78 + class B1, class B2,
1.79 + class A1, class A2, class A3>
1.80 + _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
1.81 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
1.82 +{
1.83 + typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
1.84 + typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1.85 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
1.86 +}
1.87 +
1.88 +// 3
1.89 +
1.90 +template<class R, class T,
1.91 + class B1, class B2, class B3,
1.92 + class A1, class A2, class A3, class A4>
1.93 + _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>
1.94 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
1.95 +{
1.96 + typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
1.97 + typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1.98 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
1.99 +}
1.100 +
1.101 +template<class R, class T,
1.102 + class B1, class B2, class B3,
1.103 + class A1, class A2, class A3, class A4>
1.104 + _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>
1.105 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
1.106 +{
1.107 + typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
1.108 + typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1.109 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
1.110 +}
1.111 +
1.112 +// 4
1.113 +
1.114 +template<class R, class T,
1.115 + class B1, class B2, class B3, class B4,
1.116 + class A1, class A2, class A3, class A4, class A5>
1.117 + _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>
1.118 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1.119 +{
1.120 + typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
1.121 + typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1.122 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
1.123 +}
1.124 +
1.125 +template<class R, class T,
1.126 + class B1, class B2, class B3, class B4,
1.127 + class A1, class A2, class A3, class A4, class A5>
1.128 + _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>
1.129 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1.130 +{
1.131 + typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
1.132 + typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1.133 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
1.134 +}
1.135 +
1.136 +// 5
1.137 +
1.138 +template<class R, class T,
1.139 + class B1, class B2, class B3, class B4, class B5,
1.140 + class A1, class A2, class A3, class A4, class A5, class A6>
1.141 + _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>
1.142 + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
1.143 +{
1.144 + typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
1.145 + typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1.146 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
1.147 +}
1.148 +
1.149 +template<class R, class T,
1.150 + class B1, class B2, class B3, class B4, class B5,
1.151 + class A1, class A2, class A3, class A4, class A5, class A6>
1.152 + _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>
1.153 + BOOST_BIND(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)
1.154 +{
1.155 + typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
1.156 + typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1.157 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
1.158 +}
1.159 +
1.160 +// 6
1.161 +
1.162 +template<class R, class T,
1.163 + class B1, class B2, class B3, class B4, class B5, class B6,
1.164 + class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1.165 + _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>
1.166 + BOOST_BIND(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)
1.167 +{
1.168 + typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
1.169 + typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1.170 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
1.171 +}
1.172 +
1.173 +template<class R, class T,
1.174 + class B1, class B2, class B3, class B4, class B5, class B6,
1.175 + class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1.176 + _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>
1.177 + BOOST_BIND(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)
1.178 +{
1.179 + typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
1.180 + typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1.181 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
1.182 +}
1.183 +
1.184 +// 7
1.185 +
1.186 +template<class R, class T,
1.187 + class B1, class B2, class B3, class B4, class B5, class B6, class B7,
1.188 + class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1.189 + _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>
1.190 + BOOST_BIND(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)
1.191 +{
1.192 + typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
1.193 + typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1.194 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
1.195 +}
1.196 +
1.197 +template<class R, class T,
1.198 + class B1, class B2, class B3, class B4, class B5, class B6, class B7,
1.199 + class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1.200 + _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>
1.201 + BOOST_BIND(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)
1.202 +{
1.203 + typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
1.204 + typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1.205 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
1.206 +}
1.207 +
1.208 +// 8
1.209 +
1.210 +template<class R, class T,
1.211 + class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
1.212 + class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1.213 + _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>
1.214 + BOOST_BIND(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)
1.215 +{
1.216 + typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
1.217 + typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1.218 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1.219 +}
1.220 +
1.221 +template<class R, class T,
1.222 + class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
1.223 + class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1.224 + _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>
1.225 + BOOST_BIND(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)
1.226 +{
1.227 + typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
1.228 + typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1.229 + return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1.230 +}