Boost logo

Boost Users :

From: Commander Pirx (CmdPirx_at_[hidden])
Date: 2008-03-28 10:12:37


Thanks for your helpful advice. The following line

post_event_fun_ = boost::bind( static_cast<void (Camera::*)(const
event_base_type&)>(&Camera::post_event), boost::ref(*this ), _1 );

works perfect. I thought your way too. There are 2 overloads of
post_event(). But I hoped that Boost.Bind could solve this in any magic way.
And until now I was not aware about the option to cast a method. So I have a
solution and learned something new. Thats great.

"Bruno Lalande" <bruno.lalande_at_[hidden]> schrieb im Newsbeitrag
news:9bea5ee0803271547t467b6d3dr9867f899dc1da9db_at_mail.gmail.com...
> Hi,
>
>> After uncommenting the marked line the compiler produce more than 200
>> error
>> messages: A function template has too few arguments. But the line above
>> compiles very well and the process_event() method has the same
>> signature.
>
> In the StateChart documentation I can see that the difference between
> post_event and process_event is that the former has 2 overloads. So I
> guess you'll have to specify which one you wish to use. Something
> like:
>
> bind(static_cast<void (Camera::*)(const
> event_base&)>(&Camera::post_event), boost::ref(*this ), _1 );
>
> Bruno


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