
Andreas Huber wrote:
I don't think so. Even with Aleksey's approach, with an FSM becoming sufficiently large at some stage the compiler will give up because it reached its template nesting depth limit or compilation becomes infeasible because it takes too long (usually because the compiler eats up so much memory that there's a lot of swapping).
I agree with you. Your library is much more scalable.
Why is it a problem to remember that?
It's not a problem to remember one or two things but it's hard to remember more without a logic underneath. I suggest at least using smart indentation in tutorial for better visual impression. Actually, I never tried to remember state interface although I read your tutorial two or three times. I decided to postpone it till I really need to write my first state machine.
2 forward declaration of events
You mean states? That shouldn't be too hard either?
This confusion proves my words :)
I think some of them should be defined somewhere else. Where?
Template arguments are not only the place to play in. For example, you may use nested typedef for transition table like in MPL FSM example. -- Alexander Nasonov