显然,boost包含两个独立的状态机库:StatechartMeta State Machine(MSM)。标语给出了非常相似的描述:

  • Boost.Statechart-可以用易于阅读和维护的C++代码实现任意复杂的有限状态机。
  • 元状态机-用于表达性UML2有限状态机的非常高性能的库。

  • 您知道两者之间的主要区别是什么,以及在两者之间进行选择时应考虑的因素是什么?

    最佳答案

    似乎有很多兴趣,请允许我发表我的(显然有偏见的)观点,因此应该带一点盐:

  • MSM更快
  • MSM不需要RTTI或任何虚拟
  • MSM具有更完整的UML2支持(例如内部转换,符合UML的正交区域)
  • MSM提供一种描述性语言(实际上是几种)。例如,使用eUML前端,过渡可以描述为Source + Event [Guard]/Action == Target
  • MSM将使您的编译器遭受更大状态机的困扰,因此您将需要一个相当新的编译器(g++> = 4.x,VC> = 9)

    通过在MSM审阅期间查找张贴的评论,可以使自己成为更好的意见。开发人员列表中对该主题进行了很多讨论。

  • 09-07 10:39