I've read this question, and I think it has some good answers and discussion, but it appears to focus primarily on rendering.
I have a different problem in the management of a game entity's state. What I end up with is this:
Game -> Player -> FSM -> State -> Player
Upon entry into a state a pointer to Player must be passed through, but no matter what I do in C++ it has trouble resolving this relationship hierarchy.
A good deal of how I'm designing my FSM is like this article. However, that is a psuedo implementation, and does not use headers. Without moving completely over to behavior trees is there another design pattern that will eliminate this circular dependency?