В Boost.Statechart, в чем разница между состоянием и simple_state? - PullRequest
1 голос
/ 30 июня 2011

При реализации конечного автомата с использованием Boost.Statechart я столкнулся с проблемой, возникающей при попытке доступа к внешнему контексту simple_state из его конструктора.Комментарий в simple_state.hpp говорит мне:

    // This assert fails when an attempt is made to access an outer 
    // context from a constructor of a state that is *not* a subtype of
    // state<>. To correct this, derive from state<> instead of
    // simple_state<>.

Помимо, по-видимому, возможности доступа к внешнему контексту из его конструктора, какие существуют различия или значения при использовании state<> вместо simple_state<> в качествебазовый класс для моих штатов?

1 Ответ

3 голосов
/ 30 июня 2011

Есть ряд других вещей, которые вы можете сделать из производного конструктора состояния <>, чего нельзя сделать из производного конструктора simple_state <>. В документации есть список для государственного класса. Я обнаружил, что публикация событий является большим преимуществом получения от штата <>.

Прошло много времени с тех пор, как я его использовал, но я не помню, чтобы это имело какие-либо последствия, кроме того, что вам приходилось реализовывать конструктор пересылки для каждого класса, унаследованного от состояния (указано в документации), так как состояние <> является производным from simple_state <>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...