title: Boost Statechart vs. Meta State Machine
body: <p>Apparently boost contains two separate libraries for state machines: <a href="http://www.boost.org/doc/libs/1_45_0/libs/statechart/doc/index.html" rel="noreferrer">Statechart</a> and <a href="http://www.boost.org/doc/libs/1_45_0/libs/msm/doc/HTML/index.html" rel="noreferrer">Meta State Machine</a> (MSM). The taglines give very similar descriptions:</p>
  
  <ul>
  <li>Boost.Statechart - Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code.</li>
  <li>Meta State Machine - A very high-performance library for expressive UML2 finite state machines.</li>
  </ul>
  
  <p>Do you know what are the key differences and what are considerations in choosing between the two?</p>