
on Tue Aug 05 2008, Andrey Semashev <andrey.semashev-AT-gmail.com> wrote:
David Abrahams wrote:
on Tue Aug 05 2008, Chris Knight <cknite-AT-gmail.com> wrote:
Jurko Gospodnetić wrote:
What are the intended and actual differences from the already accepted Statechart library? The main differences are simplicity and performance. The performance tests show difference by an order of magnitude, in the best case for Boost.Statechart. The overall design of Boost.FSM is geared more to compile-time code generation, while Boost.Statechart aims to support more scaled machines and therefore is geared towards run-time. There is a section in the docs that compares the libraries. I can attest to the necessity of this. We have several exchange libraries that require state machines to implement their data protocols but we use a home-brewed boost::mpl::inherit_linearly implementation because
Andrey Semashev wrote: the features of Boost.StateChart simply brings in to many performance penalties for our simpler usage that would fit within the Boost.FSM framework. In fact, if I remember correctly, we used a thing on Boost.Vault called "FSM" as an implementation guide.
I don't know if you've seen the FSM examples from "C++ Template Metaprogramming" or not. It would be interesting for this library's documentation to explain its advantages over that approach (I can see some from here already).
No, I don't have that book.
For your perusal: http://www.boostpro.com/mplbook/examples/player.cpp http://www.boostpro.com/mplbook/examples/player2.cpp -- Dave Abrahams BoostPro Computing http://www.boostpro.com