В этих статьях есть все способы что я видел на плюсах (ну, с темплейтами есть чуть большие извращения).
Я считаю что для мелкого автомата (<5 состояний) лучше switch или goto ничего нет, если больше то я использую State/Strategy.
Кстати о goto, есть еще один способ, гибридный. По сути goto + функции на каждое действие/ивент и прыгается между ф-циями с помощью setjmp/longjmp, но это больше для С чем для С++.
Вы ищете что-то контретное? :) Просто не совсем понятно в чем поврос.