
I'm trying to construct some euml states with data at the time of the state machine construction. The below boils down what I'm trying to do and fails to compile. Should I expect this mechanism to work with the euml frontend ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include <boost/msm/back/state_machine.hpp> #include <boost/msm/front/euml/euml.hpp> namespace msm = boost::msm; using namespace msm::front::euml; BOOST_MSM_EUML_EVENT(test_event) BOOST_MSM_EUML_DECLARE_STATE((),test_state_t) struct test_state_with_constructor : public test_state_t { test_state_with_constructor() {} test_state_with_constructor(int d) : m_d(d) {} int m_d; }; test_state_with_constructor const test_state; BOOST_MSM_EUML_TRANSITION_TABLE(( test_state + test_event == test_state ), test_table) BOOST_MSM_EUML_DECLARE_STATE_MACHINE (( test_table, init_ << test_state ), test_table_) typedef msm::back::state_machine<test_table_> test_machine_t; int main() { test_machine_t tm( msm::back::states_ << test_state_with_constructor(1) ); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With gcc 4.5 and Boost 1.46.1, I get: simpletest.cpp: In function 'int main()': simpletest.cpp:30:75: error: no match for 'operator<<' in 'boost::msm::back::states_ << test_state_with_constructor(1)' Thanks Nate