Boost logo

Boost Users :

Subject: [Boost-users] [MSM] multiple visitors / signatures, and visitors by ref in submachines
From: Albert Gil Moreno (albert.gil_at_[hidden])
Date: 2012-04-05 10:16:18


Hi,

I think that the visitors and the flags ideas of the MSM are very generic
and easy to use.
So, great!

But, there is a way to define multiple visitors for a single state (base)?
I think that it is not possible because the visitors mechanism is based on
a "simple/single typedef" and not on an "listed typedef"... isn't it?

So, why the visitors are not like flags?
I mean, why not to use an "accept_sig_list" instead of a single
"accept_sig"?
Why is not possible a code like the following:

struct my_visitable_state
{
  typedef mpl::vector< args<void, VisitorType1&>, args<void,
VisitorType2&> > accept_sig_list;

  void accept(VisitorType1&) const {}
  void accept(VisitorType2&) const {}
};

By the way... I think that the usage of boost::ref() is not propagated to
the submachines...?
I've found that when my state machine is also in a submachine, the visitor
of the state machine is passed by reference, but the submachine is passed
always by value... is this a bug?
(just using a pointer solved my needs, so just to report...)

Thanks,

Albert



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net