Как использовать 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>

Используйте пользовательскую реакцию, когда вы не можете знать во время компиляции, каково ваше конечное состояние.

Другие вопросы по тегам