Finite State Machine C++ Template Design.


Finite state machines can help to solve various tasks. That feature was noticed long ago so there are many discussions of the finite state machine applications in software design articles and books. However, finite state machines are considered on a software design stage on a much higher stage than they are by a particular programming language on a coding stage.

First part of the article was published in RSDN Magazine #1, 2003 (Russian only). A year later the template has been considerable extended, examples were added as well as doxygen documentation. Changes in the template are described in the second part of the article which was not published offline. The first part is published here with some minor changes in comparison with the original article.

The template was tested with some gcc compiler versions on Linux. The first template version was also tested with MS Visual C++ 6.0 for MS Windows.

The Article


  • Doxygen documentation for a simple example
  • Doxygen documentation for an example with callback functions bound to transitions
  • Doxygen documentation for an example of building finite state machine at run-time by a description from a text file


Will Be Developed (May Be)

  • A utility which generates a graphics representation of transitions by a source code that uses the template
Last Updated: September 27, 2005