Как использовать boost in_state_reaction
Я пытаюсь использовать in_state_reaction
, Как ни странно, функция реакции для этого, кажется, не выполняется после process_event ()
называется. Я изменился in_state_reaction
в custom_reaction
и вроде нормально.
Просто хочу узнать, как мне заставить его работать с in_state_reaction
, Я должен делать что-то не так.
Я бы оценил образцы кодов. Не так много образцов для штата.
Благодарю.
struct Reset : sc::simple_state<Reset, Idle>
{
Reset() { }
~Reset() { }
typedef sc::in_state_reaction<Event1> reactions;
sc::result react(const Event1 &)
{
printf ("In state reaction\n");
return discard_event();
} // react
}; // Reset
1 ответ
Решение
in_state_reaction
это не обычная реакция, поэтому react
не будет назван! Реакция в состоянии означает, что вы хотите вызвать какую-то функцию и оставаться в том же состоянии.
in_state_reaction<Event1, Context, &Context::doSomething>
Используйте пользовательскую реакцию, когда вы не можете знать во время компиляции, каково ваше конечное состояние.