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@gmail.com> schrieb im Newsbeitrag news:9bea5ee0803271547t467b6d3dr9867f899dc1da9db@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