Hi Michael,
MSM is trying to generate code into B for a transition with a 'none' event. This could be valid if the transition from Top::X wasn't via the entry point and just directly to Sub. I don't think there is a path to B with a 'none' event.
Your guess is correct. The problem is that I'm forced to use a mpl::for_each when using an anonymous event within a submachine. You will find the call to mpl::for_each in the compiler stack trace. Though not all events have a transition with none, MSM is forced to generate a possibility for it. Normally it is not a problem, unless you add your own on_entry replacing the default one. Having both versions will make the compiler happy and the template version will not be called. I think I'll want to revisit this implementation in a future C++14 rewrite. Regards, Christophe