LCOV - code coverage report
Current view: top level - opt/homebrew/include/boost/bind/detail - bind_mf_cc.hpp (source / functions) Hit Total Coverage
Test: test_dash_coverage.info Lines: 4 9 44.4 %
Date: 2026-06-25 07:23:51 Functions: 2 5 40.0 %

          Line data    Source code
       1             : //
       2             : //  bind/bind_mf_cc.hpp - support for different calling conventions
       3             : //
       4             : //  Do not include this header directly.
       5             : //
       6             : //  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
       7             : //
       8             : // Distributed under the Boost Software License, Version 1.0. (See
       9             : // accompanying file LICENSE_1_0.txt or copy at
      10             : // http://www.boost.org/LICENSE_1_0.txt)
      11             : //
      12             : //  See http://www.boost.org/libs/bind/bind.html for documentation.
      13             : //
      14             : 
      15             : // 0
      16             : 
      17             : template<class R, class T,
      18             :     class A1>
      19             :     auto
      20           0 :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
      21             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1 ) )
      22             : {
      23           0 :     return boost::BOOST_BIND( boost::mem_fn( f ), a1 );
      24           0 : }
      25             : 
      26             : template<class R, class T,
      27             :     class A1>
      28             :     auto
      29             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
      30             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1 ) )
      31             : {
      32             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1 );
      33             : }
      34             : 
      35             : template<class Rt2, class R, class T,
      36             :     class A1,
      37             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
      38             :     auto
      39             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1)
      40             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 ) )
      41             : {
      42             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 );
      43             : }
      44             : 
      45             : template<class Rt2, class R, class T,
      46             :     class A1,
      47             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
      48             :     auto
      49             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1)
      50             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 ) )
      51             : {
      52             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1 );
      53             : }
      54             : 
      55             : // 1
      56             : 
      57             : template<class R, class T,
      58             :     class B1,
      59             :     class A1, class A2>
      60             :     auto
      61           0 :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
      62             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 ) )
      63             : {
      64           0 :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
      65             : }
      66             : 
      67             : template<class R, class T,
      68             :     class B1,
      69             :     class A1, class A2>
      70             :     auto
      71       21170 :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
      72             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 ) )
      73             : {
      74       21170 :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2 );
      75             : }
      76             : 
      77             : template<class Rt2, class R, class T,
      78             :     class B1,
      79             :     class A1, class A2,
      80             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
      81             :     auto
      82             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
      83             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 ) )
      84             : {
      85             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 );
      86             : }
      87             : 
      88             : template<class Rt2, class R, class T,
      89             :     class B1,
      90             :     class A1, class A2,
      91             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
      92             :     auto
      93             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2)
      94             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 ) )
      95             : {
      96             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2 );
      97             : }
      98             : 
      99             : // 2
     100             : 
     101             : template<class R, class T,
     102             :     class B1, class B2,
     103             :     class A1, class A2, class A3>
     104             :     auto
     105         438 :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
     106             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 ) )
     107             : {
     108         438 :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 );
     109             : }
     110             : 
     111             : template<class R, class T,
     112             :     class B1, class B2,
     113             :     class A1, class A2, class A3>
     114             :     auto
     115             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
     116             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 ) )
     117             : {
     118             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3 );
     119             : }
     120             : 
     121             : template<class Rt2, class R, class T,
     122             :     class B1, class B2,
     123             :     class A1, class A2, class A3,
     124             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     125             :     auto
     126             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
     127             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 ) )
     128             : {
     129             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 );
     130             : }
     131             : 
     132             : template<class Rt2, class R, class T,
     133             :     class B1, class B2,
     134             :     class A1, class A2, class A3,
     135             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     136             :     auto
     137             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3)
     138             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 ) )
     139             : {
     140             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3 );
     141             : }
     142             : 
     143             : // 3
     144             : 
     145             : template<class R, class T,
     146             :     class B1, class B2, class B3,
     147             :     class A1, class A2, class A3, class A4>
     148             :     auto
     149             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
     150             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 ) )
     151             : {
     152             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 );
     153             : }
     154             : 
     155             : template<class R, class T,
     156             :     class B1, class B2, class B3,
     157             :     class A1, class A2, class A3, class A4>
     158             :     auto
     159             :     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)
     160             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 ) )
     161             : {
     162             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4 );
     163             : }
     164             : 
     165             : template<class Rt2, class R, class T,
     166             :     class B1, class B2, class B3,
     167             :     class A1, class A2, class A3, class A4,
     168             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     169             :     auto
     170             :     BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4)
     171             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 ) )
     172             : {
     173             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 );
     174             : }
     175             : 
     176             : template<class Rt2, class R, class T,
     177             :     class B1, class B2, class B3,
     178             :     class A1, class A2, class A3, class A4,
     179             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     180             :     auto
     181             :     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)
     182             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 ) )
     183             : {
     184             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4 );
     185             : }
     186             : 
     187             : // 4
     188             : 
     189             : template<class R, class T,
     190             :     class B1, class B2, class B3, class B4,
     191             :     class A1, class A2, class A3, class A4, class A5>
     192             :     auto
     193             :     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)
     194             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
     195             : {
     196             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
     197             : }
     198             : 
     199             : template<class R, class T,
     200             :     class B1, class B2, class B3, class B4,
     201             :     class A1, class A2, class A3, class A4, class A5>
     202             :     auto
     203             :     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)
     204             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
     205             : {
     206             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
     207             : }
     208             : 
     209             : template<class Rt2, class R, class T,
     210             :     class B1, class B2, class B3, class B4,
     211             :     class A1, class A2, class A3, class A4, class A5,
     212             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     213             :     auto
     214             :     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)
     215             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
     216             : {
     217             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
     218             : }
     219             : 
     220             : template<class Rt2, class R, class T,
     221             :     class B1, class B2, class B3, class B4,
     222             :     class A1, class A2, class A3, class A4, class A5,
     223             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     224             :     auto
     225             :     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)
     226             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 ) )
     227             : {
     228             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5 );
     229             : }
     230             : 
     231             : // 5
     232             : 
     233             : template<class R, class T,
     234             :     class B1, class B2, class B3, class B4, class B5,
     235             :     class A1, class A2, class A3, class A4, class A5, class A6>
     236             :     auto
     237             :     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)
     238             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
     239             : {
     240             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
     241             : }
     242             : 
     243             : template<class R, class T,
     244             :     class B1, class B2, class B3, class B4, class B5,
     245             :     class A1, class A2, class A3, class A4, class A5, class A6>
     246             :     auto
     247             :     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)
     248             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
     249             : {
     250             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
     251             : }
     252             : 
     253             : template<class Rt2, class R, class T,
     254             :     class B1, class B2, class B3, class B4, class B5,
     255             :     class A1, class A2, class A3, class A4, class A5, class A6,
     256             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     257             :     auto
     258             :     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)
     259             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
     260             : {
     261             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
     262             : }
     263             : 
     264             : template<class Rt2, class R, class T,
     265             :     class B1, class B2, class B3, class B4, class B5,
     266             :     class A1, class A2, class A3, class A4, class A5, class A6,
     267             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     268             :     auto
     269             :     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)
     270             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 ) )
     271             : {
     272             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6 );
     273             : }
     274             : 
     275             : // 6
     276             : 
     277             : template<class R, class T,
     278             :     class B1, class B2, class B3, class B4, class B5, class B6,
     279             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
     280             :     auto
     281             :     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)
     282             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
     283             : {
     284             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
     285             : }
     286             : 
     287             : template<class R, class T,
     288             :     class B1, class B2, class B3, class B4, class B5, class B6,
     289             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
     290             :     auto
     291             :     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)
     292             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
     293             : {
     294             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
     295             : }
     296             : 
     297             : template<class Rt2, class R, class T,
     298             :     class B1, class B2, class B3, class B4, class B5, class B6,
     299             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7,
     300             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     301             :     auto
     302             :     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)
     303             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
     304             : {
     305             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
     306             : }
     307             : 
     308             : template<class Rt2, class R, class T,
     309             :     class B1, class B2, class B3, class B4, class B5, class B6,
     310             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7,
     311             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     312             :     auto
     313             :     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)
     314             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 ) )
     315             : {
     316             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7 );
     317             : }
     318             : 
     319             : // 7
     320             : 
     321             : template<class R, class T,
     322             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     323             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
     324             :     auto
     325             :     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)
     326             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
     327             : {
     328             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
     329             : }
     330             : 
     331             : template<class R, class T,
     332             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     333             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
     334             :     auto
     335             :     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)
     336             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
     337             : {
     338             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
     339             : }
     340             : 
     341             : template<class Rt2, class R, class T,
     342             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     343             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8,
     344             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     345             :     auto
     346             :     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)
     347             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
     348             : {
     349             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
     350             : }
     351             : 
     352             : template<class Rt2, class R, class T,
     353             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     354             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8,
     355             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     356             :     auto
     357             :     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)
     358             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 ) )
     359             : {
     360             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8 );
     361             : }
     362             : 
     363             : // 8
     364             : 
     365             : template<class R, class T,
     366             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     367             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
     368             :     auto
     369             :     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)
     370             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
     371             : {
     372             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
     373             : }
     374             : 
     375             : template<class R, class T,
     376             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     377             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
     378             :     auto
     379             :     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)
     380             :     -> decltype( boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
     381             : {
     382             :     return boost::BOOST_BIND( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
     383             : }
     384             : 
     385             : template<class Rt2, class R, class T,
     386             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     387             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9,
     388             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     389             :     auto
     390             :     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)
     391             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
     392             : {
     393             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
     394             : }
     395             : 
     396             : template<class Rt2, class R, class T,
     397             :     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     398             :     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9,
     399             :     class En = typename std::enable_if< !std::is_same<Rt2, R>::value >::type>
     400             :     auto
     401             :     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)
     402             :     -> decltype( boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 ) )
     403             : {
     404             :     return boost::BOOST_BIND<Rt2>( boost::mem_fn( f ), a1, a2, a3, a4, a5, a6, a7, a8, a9 );
     405             : }

Generated by: LCOV version 1.16