00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 template<class R>
00016 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (), _bi::list0>
00017 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) ())
00018 {
00019 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) ();
00020 typedef _bi::list0 list_type;
00021 return _bi::bind_t<R, F, list_type> (f, list_type());
00022 }
00023
00024 template<class R, class B1, class A1>
00025 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1), typename _bi::list_av_1<A1>::type>
00026 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
00027 {
00028 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1);
00029 typedef typename _bi::list_av_1<A1>::type list_type;
00030 return _bi::bind_t<R, F, list_type> (f, list_type(a1));
00031 }
00032
00033 template<class R, class B1, class B2, class A1, class A2>
00034 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2), typename _bi::list_av_2<A1, A2>::type>
00035 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2)
00036 {
00037 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2);
00038 typedef typename _bi::list_av_2<A1, A2>::type list_type;
00039 return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
00040 }
00041
00042 template<class R,
00043 class B1, class B2, class B3,
00044 class A1, class A2, class A3>
00045 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3), typename _bi::list_av_3<A1, A2, A3>::type>
00046 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3)
00047 {
00048 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3);
00049 typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
00050 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
00051 }
00052
00053 template<class R,
00054 class B1, class B2, class B3, class B4,
00055 class A1, class A2, class A3, class A4>
00056 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4), typename _bi::list_av_4<A1, A2, A3, A4>::type>
00057 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4)
00058 {
00059 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4);
00060 typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
00061 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
00062 }
00063
00064 template<class R,
00065 class B1, class B2, class B3, class B4, class B5,
00066 class A1, class A2, class A3, class A4, class A5>
00067 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5), typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
00068 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
00069 {
00070 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5);
00071 typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
00072 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
00073 }
00074
00075 template<class R,
00076 class B1, class B2, class B3, class B4, class B5, class B6,
00077 class A1, class A2, class A3, class A4, class A5, class A6>
00078 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6), typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
00079 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
00080 {
00081 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6);
00082 typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
00083 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
00084 }
00085
00086 template<class R,
00087 class B1, class B2, class B3, class B4, class B5, class B6, class B7,
00088 class A1, class A2, class A3, class A4, class A5, class A6, class A7>
00089 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7), typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
00090 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
00091 {
00092 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7);
00093 typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
00094 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
00095 }
00096
00097 template<class R,
00098 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
00099 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
00100 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8), typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
00101 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *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)
00102 {
00103 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8);
00104 typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
00105 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
00106 }
00107
00108 template<class R,
00109 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8, class B9,
00110 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
00111 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8, B9), typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
00112 BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
00113 {
00114 typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9);
00115 typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
00116 return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
00117 }