
#include
#include namespace fsm = boost::statechart; class HandlingFileState; class PlayerFsm : public fsm::state_machine< PlayerFsm, Â HandlingFileState > {}; class HandlingFileState: public fsm::state< HandlingFileState, PlayerFsm/*, PlayingState*/> //if the initial state is uncoment, it can be compiled success. But I don't want this. {};
class NormalPlayingState; class PlayingState: public fsm::state< PlayingState, HandlingFileState, NormalPlayingState > {};
class NormalPlayingState: public fsm::state< NormalPlayingState, PlayingState> {};
You declared HandlingFileState as the direct outer state of PlayingState. So you *have to* declare PlayingState as a direct inner state of HandlingFileState. Otherwise your scheme is not consistent -- and StateChart catches this inconsistency in compile-time.