Boost logo

Boost Users :

Subject: Re: [Boost-users] [phoenix] binding member_functions
From: Christian Henning (chhenning_at_[hidden])
Date: 2008-11-11 11:03:32


Thanks Joel, for you explanation. Do you think that maybe for c++0x
that problem is resolved? Also, do the C++ lambda function suffer from
the same problem?

Christian

On Mon, Nov 10, 2008 at 8:37 PM, Joel de Guzman
<joel_at_[hidden]> wrote:
> Christian Henning wrote:
>>
>> Hi there, I think there are some problems with binding functions if
>> the class has a const and a non-const version of the same member.
>> Please consider the following code:
>
> [snips]
>
> No, it's not a bug. When you get the address of a member function,
> there is relly no way in C++ to know which overload you want to
> get. You have to state it explicitly with a cast.
>
> The same thing happens with Boost.Bind, for example, try:
>
> point const p;
> double x = boost::bind( &point::prob, _1 )(p);
>
> and you'll get the exact same error. The Boost Bind docs has a good
> explanation on this. See "Binding an overloaded function" here:
>
> http://www.boost.org/doc/libs/1_37_0/libs/bind/bind.html#Troubleshooting
>
> Regards,
> --
> Joel de Guzman
> http://www.boostpro.com
> http://spirit.sf.net
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


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