Boost logo

Boost Users :

Subject: Re: [Boost-users] [bind] [multi-index] Create type of pointer to overloaded erase method
From: JOAQUIN M. LOPEZ MUÑOZ (joaquin_at_[hidden])
Date: 2008-09-10 14:43:46


________________________________________
De: boost-users-bounces_at_[hidden] [boost-users-bounces_at_[hidden]] En nombre de JOAQUIN M. LOPEZ MUÑOZ [joaquin_at_[hidden]]
Enviado el: miércoles, 10 de septiembre de 2008 20:34
Para: boost-users_at_[hidden]
Asunto: Re: [Boost-users] [bind] [multi-index] Create type of pointer to overloaded erase method
>
> ________________________________________
> De: boost-users-bounces_at_[hidden] [boost-users-bounces_at_[hidden]] En nombre de Steven
> Watanabe [watanabesj_at_[hidden]]
> Enviado el: miércoles, 10 de septiembre de 2008 18:54
> Para: boost-users_at_[hidden]
> Asunto: Re: [Boost-users] [bind] [multi-index] Create type of pointer to overloaded erase method
>
> > AMDG
> >
> > Peter Barker wrote:
> > > RecordsContainer::size_type (RecordsContainer::*erase)(unsigned int) =
> > > &RecordsContainer::erase;
> > >
> > > but it failed to compile. Visual Studio 2003 gives me the following
> > > error on the above line:
> > > <snip>
> > >
> >
> > The following compiles for me with msvc 9.0
> >
> > int main() {
> > RecordsContainer::size_type (RecordsContainer::*erase)(unsigned int) =
> > &RecordsContainer::erase;
> > }
>
> Oddly enough, it fails with MSVC++ 8.0 (though it shouldn't since your
> call_traits analysis is correct):
>
> error C2440: 'initializing' : cannot convert from 'overloaded-function' to
> 'boost::multi_index::detail::ordered_index<KeyFromValue,Compare,SuperMeta,
> TagList,Category>::size_type (__thiscall
> boost::multi_index::multi_index_container<Value,IndexSpecifierList>::* )(unsigned int)'

But the following works:

  int main() {
    typedef RecordsContainer::index<RecsByID>::type RecordsContainerByID;
    RecordsContainerByID::size_type (RecordsContainerByID::*erase)(unsigned int) =
        &RecordsContainerByID::erase;
  }

even though my previous approach is IMHO still better.

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net