Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/bind/detail/bind_cc.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 //
0002 //  bind/bind_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 template<class R>
0016 _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) () BOOST_BIND_NOEXCEPT, typename _bi::list_av<>::type>
0017     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) () BOOST_BIND_NOEXCEPT)
0018 {
0019     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) () BOOST_BIND_NOEXCEPT;
0020     typedef typename _bi::list_av<>::type list_type;
0021     return _bi::bind_t<R, F, list_type> (f, list_type());
0022 }
0023 
0024 template<class R, class B1, class A1>
0025     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1>::type>
0026     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1) BOOST_BIND_NOEXCEPT, A1 a1)
0027 {
0028     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1) BOOST_BIND_NOEXCEPT;
0029     typedef typename _bi::list_av<A1>::type list_type;
0030     return _bi::bind_t<R, F, list_type> (f, list_type(a1));
0031 }
0032 
0033 template<class R, class B1, class B2, class A1, class A2>
0034     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2>::type>
0035     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2)
0036 {
0037     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2) BOOST_BIND_NOEXCEPT;
0038     typedef typename _bi::list_av<A1, A2>::type list_type;
0039     return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
0040 }
0041 
0042 template<class R,
0043     class B1, class B2, class B3,
0044     class A1, class A2, class A3>
0045     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3>::type>
0046     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3)
0047 {
0048     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3) BOOST_BIND_NOEXCEPT;
0049     typedef typename _bi::list_av<A1, A2, A3>::type list_type;
0050     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
0051 }
0052 
0053 template<class R,
0054     class B1, class B2, class B3, class B4,
0055     class A1, class A2, class A3, class A4>
0056     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4>::type>
0057     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
0058 {
0059     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4) BOOST_BIND_NOEXCEPT;
0060     typedef typename _bi::list_av<A1, A2, A3, A4>::type list_type;
0061     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
0062 }
0063 
0064 template<class R,
0065     class B1, class B2, class B3, class B4, class B5,
0066     class A1, class A2, class A3, class A4, class A5>
0067     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4, A5>::type>
0068     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
0069 {
0070     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5) BOOST_BIND_NOEXCEPT;
0071     typedef typename _bi::list_av<A1, A2, A3, A4, A5>::type list_type;
0072     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
0073 }
0074 
0075 template<class R,
0076     class B1, class B2, class B3, class B4, class B5, class B6,
0077     class A1, class A2, class A3, class A4, class A5, class A6>
0078     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4, A5, A6>::type>
0079     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
0080 {
0081     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6) BOOST_BIND_NOEXCEPT;
0082     typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6>::type list_type;
0083     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
0084 }
0085 
0086 template<class R,
0087     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
0088     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
0089     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7>::type>
0090     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
0091 {
0092     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_NOEXCEPT;
0093     typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7>::type list_type;
0094     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
0095 }
0096 
0097 template<class R,
0098     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
0099     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
0100     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8>::type>
0101     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
0102 {
0103     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_NOEXCEPT;
0104     typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
0105     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
0106 }
0107 
0108 template<class R,
0109     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8, class B9,
0110     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
0111     _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8, B9) BOOST_BIND_NOEXCEPT, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
0112     BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
0113 {
0114     typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9) BOOST_BIND_NOEXCEPT;
0115     typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
0116     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
0117 }