
Hello, I have a question about Boost.Msm event conversion at exit pseudo state. (Version 1.47.0) http://www.boost.org/doc/libs/1_47_0/libs/msm/doc/HTML/ch03s02.html#d0e942 Exit pseudo states struct event6 { event6(){} template <class Event> event6(Event const&){} }; //convertible from any event Above document said that we can convert the event using the template constructor. This exmaple doesn't access the constructor's parameter. I want to propagate some value of the event. Event2 is a source event. And Event3 is a target event like this.(see attached file) struct Event2 { Event2(int val_):val(val_) {} int val; }; struct Event3 { Event3(int val_):val(val_) {} template <class T> Event3(T const& e):val(e.val) {} // error Event3(Event2 const& e):val(e.val) {} // OK int val; }; // Transition table struct transition_table:mpl::vector< // Start Event Next Action Guard msmf::Row < SubState1, Event2, Exit, msmf::none, msmf::none > > {}; struct Exit :msm::front::exit_pseudo_state<Event3> {}; But compile error occurred. The compiler said Event1 doesn't have a member 'val'. I'm not sure why Event3's constructor instantiate from Event1. This is the question. If I define the constructor that has a parameter Event2 instead of template parameter, compile error doesn't occur. exit_pt_convert.cpp(attached file) is a source code that reproduces this error. Thanks, Takatoshi