4
我有一个状态A
,我想无条件地过渡到它的下一个状态B
,一旦A
的构造函数完成。这可能吗?使用Boost状态图,我如何无条件地转换到状态?
我尝试从构造函数发布一个事件,即使编译它也不起作用。谢谢。
编辑:这里是我到目前为止已经试过:
struct A : sc::simple_state< A, Active >
{
public:
typedef sc::custom_reaction<EventDoneA> reactions;
A()
{
std::cout << "Inside of A()" << std::endl;
post_event(EventDoneA());
}
sc::result react(const EventDoneA &)
{
return transit<B>();
}
};
这将产生以下运行时断言失败:
Assertion failed: get_pointer(pContext_) != 0, file /includ
e/boost/statechart/simple_state.hpp, line 459
您不应该用正确答案更新问题,只需回答问题。人们喜欢看到最初的问题。 –
@GregorBrandt - 我的错误,我已经恢复到我原来的问题(我认为),应该修复一切。谢谢! – nickb
那么,基本上,你忘了上下文?它总是有助于明确指出哪些更正。 – Xeo