
MSM enthusiasts, I have done a performance profiling with a simple parser with 3 implementations, plain C++, SMC and Boost MSM. I was happy to learn that the MSM implementation was very efficient. I'm having some questions about MSM space allocation, please let me know if my understanding of things are wrong (very likely). I work in a high performance computing environment so I will try to minimize unnecessary object constructions. Is it possible for the data in the state machine backend live somewhere else external to the state machine? If that's possible then I can put the state machine's internal states close to the data that needs to be manipulated and the state machine itself is data-less and I can have a single copy of the state machine and each data item carries everything. I know this breaks encapsulation but I'm just wondering. The state machine has a events queue (std::deque?), can I choose to not have this and other data structures I don't think I will need? Thanks, -jh