
"Andreas Huber" <ah2003@gmx.net> writes:
David Abrahams wrote:
[snip]
Also, do I note that there's always function pointer indirection for event dispatch?
I'm not sure I understand what you mean with "function pointer indirection". Event dispatch consists of a virtual function call followed by a linear search for a reaction matching the event.
That's what I mean. If you look at the FSM examples I posted, no virtual call is needed, and in fact the linear search could be optimized by the compiler into a hashed case statement or by metaprogramming into a log(n) search. The 2nd example uses a constant-time lookup, dispatching through a single function pointer. There are lots of dispatching tradeoffs available. I really like your state representation; it seems as though it should be possible to get all these different dispatching options with your state representation, rather than requiring a monolithic STT sequence to be assembled as my examples do. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com