Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2008-08-07 20:30:36


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:
>>
>>> Andrey Semashev 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
>>> 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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk