Ticket #3003: mem_fn_template.diff

File mem_fn_template.diff, 7.6 KB (added by Roman Perepelitsa <roman.perepelitsa@…>, 13 years ago)
  • mem_fn_template.hpp

     
    5151
    5252    template<class U> R operator()(U & u) const
    5353    {
    54         BOOST_MEM_FN_RETURN call(u, &u);
     54        BOOST_MEM_FN_RETURN call(u, false ? &u : 0);
    5555    }
    5656
    5757#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    5858
    5959    template<class U> R operator()(U const & u) const
    6060    {
    61         BOOST_MEM_FN_RETURN call(u, &u);
     61        BOOST_MEM_FN_RETURN call(u, false ? &u : 0);
    6262    }
    6363
    6464#endif
     
    109109
    110110    template<class U> R operator()(U const & u) const
    111111    {
    112         BOOST_MEM_FN_RETURN call(u, &u);
     112        BOOST_MEM_FN_RETURN call(u, false ? &u : 0);
    113113    }
    114114
    115115    R operator()(T const & t) const
     
    164164
    165165    template<class U> R operator()(U & u, A1 a1) const
    166166    {
    167         BOOST_MEM_FN_RETURN call(u, &u, a1);
     167        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1);
    168168    }
    169169
    170170#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    171171
    172172    template<class U> R operator()(U const & u, A1 a1) const
    173173    {
    174         BOOST_MEM_FN_RETURN call(u, &u, a1);
     174        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1);
    175175    }
    176176
    177177#endif
     
    223223
    224224    template<class U> R operator()(U const & u, A1 a1) const
    225225    {
    226         BOOST_MEM_FN_RETURN call(u, &u, a1);
     226        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1);
    227227    }
    228228
    229229    R operator()(T const & t, A1 a1) const
     
    276276
    277277    template<class U> R operator()(U & u, A1 a1, A2 a2) const
    278278    {
    279         BOOST_MEM_FN_RETURN call(u, &u, a1, a2);
     279        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2);
    280280    }
    281281
    282282#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    283283
    284284    template<class U> R operator()(U const & u, A1 a1, A2 a2) const
    285285    {
    286         BOOST_MEM_FN_RETURN call(u, &u, a1, a2);
     286        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2);
    287287    }
    288288
    289289#endif
     
    333333
    334334    template<class U> R operator()(U const & u, A1 a1, A2 a2) const
    335335    {
    336         BOOST_MEM_FN_RETURN call(u, &u, a1, a2);
     336        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2);
    337337    }
    338338
    339339    R operator()(T const & t, A1 a1, A2 a2) const
     
    386386
    387387    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3) const
    388388    {
    389         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3);
     389        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3);
    390390    }
    391391
    392392#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    393393
    394394    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
    395395    {
    396         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3);
     396        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3);
    397397    }
    398398
    399399#endif
     
    443443
    444444    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
    445445    {
    446         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3);
     446        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3);
    447447    }
    448448
    449449    R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
     
    496496
    497497    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const
    498498    {
    499         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4);
     499        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4);
    500500    }
    501501
    502502#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    503503
    504504    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
    505505    {
    506         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4);
     506        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4);
    507507    }
    508508
    509509#endif
     
    553553
    554554    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
    555555    {
    556         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4);
     556        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4);
    557557    }
    558558
    559559    R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const
     
    606606
    607607    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
    608608    {
    609         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5);
     609        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5);
    610610    }
    611611
    612612#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    613613
    614614    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
    615615    {
    616         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5);
     616        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5);
    617617    }
    618618
    619619#endif
     
    663663
    664664    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
    665665    {
    666         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5);
     666        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5);
    667667    }
    668668
    669669    R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     
    716716
    717717    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
    718718    {
    719         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6);
     719        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6);
    720720    }
    721721
    722722#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    723723
    724724    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
    725725    {
    726         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6);
     726        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6);
    727727    }
    728728
    729729#endif
     
    773773
    774774    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
    775775    {
    776         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6);
     776        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6);
    777777    }
    778778
    779779    R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     
    826826
    827827    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
    828828    {
    829         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7);
     829        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7);
    830830    }
    831831
    832832#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    833833
    834834    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
    835835    {
    836         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7);
     836        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7);
    837837    }
    838838
    839839#endif
     
    883883
    884884    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
    885885    {
    886         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7);
     886        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7);
    887887    }
    888888
    889889    R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     
    936936
    937937    template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
    938938    {
    939         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
     939        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7, a8);
    940940    }
    941941
    942942#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
    943943
    944944    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
    945945    {
    946         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
     946        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7, a8);
    947947    }
    948948
    949949#endif
     
    998998
    999999    template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
    10001000    {
    1001         BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
     1001        BOOST_MEM_FN_RETURN call(u, false ? &u : 0, a1, a2, a3, a4, a5, a6, a7, a8);
    10021002    }
    10031003
    10041004    R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const