id summary reporter owner description type status milestone component version severity resolution keywords cc 9525 Assert with program termination due to context<...>() call in simple_state's entry action is incorrect anonymous Andreas Huber "{{{ #include #include namespace sc = boost::statechart; struct state; struct fsm : sc::state_machine { void test() {} }; struct state : sc::simple_state { state() { context().test(); } }; int main() { fsm test; test.initiate(); } }}} {{{ statechart_test: /usr/include/boost/statechart/simple_state.hpp:682: static OtherContext& boost::statechart::simple_state::context_impl_other_context::context_impl(State&) [with OtherContext = fsm; State = boost::statechart::simple_state; MostDerived = state; Context = fsm; InnerInitial = boost::mpl::list; boost::statechart::history_mode historyMode = (boost::statechart::history_mode)0u]: Assertion `get_pointer( stt.pContext_ ) != 0' failed. Аварийный останов }}} It's not correct to throw uncatchable surprises like asserts. It's especially incorrect when your library is used in the embedded software. Not to mention this isn't reflected anywhere in the documentation. Please change this to exception throwing, or better, find a way to detect calls like that at compile time. But don't use asserts. That's just bad treatment of your users." Bugs new To Be Determined statechart Boost 1.49.0 Problem