Boost logo

Boost :

Subject: Re: [boost] [msm] Review
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2009-11-30 15:03:07

Hi Sebastian,

> I know nothing about MSM and very little about state machines in
> general, but if all states are constructed at SM instantiation time,
> would it be possible to pass the SM constructor a tuple of constructed
> states that are copied/moved into the internal states?

In theory it'd be possible because MSM stores the states in a
fusion::set, which can be constructed from a forward sequence. And
according to the fusion doc, a tuple can be adapted to a forward
sequence. So I suppose it'd work.
The problem would be to find an acceptable syntax because a
msm::back::state_machine already has a templated constructor used to
pass arguments to the front-end, for example:

struct player_ : public msm::front::state_machine_def<player_>
   player_(int some_value){…}

typedef msm::back::state_machine<player_ > player;

player p(3);

So we'd need to pass the tuple as extra argument, the first or the
last one and add a bit of SFINAE to check if this argument is a tuple.

> Would it be worth the effort?

I don't know. It has never been requested so it's hard to know, but I
find the idea quite interesting.
Let's make a quick poll (which I'll shamelessly use as a way to make
the review slightly more alive). Would someone make use of this


Boost list run by bdawes at, gregod at, cpdaniel at, john at