インタビュアーが何を聞きたかったのかわかりませんが、これがあまり話題から外れていないことを願っていますが、誰かにインタビューする場合、特にその規模で独自のフレームワークを展開することを正当化する前に、既存のフレームワークの長所と短所を知るためのポイントを与えます.
C++ の代替 (使用できる場合は、C が必要なようであることを指摘してくれた glglgl に感謝します) は次のようになります。
Boost.MSM は非常に高速ですが、その規模では問題外です。理由は、コンパイル時間、mpl::vector/list の制約、および 1 つの巨大なソース ファイルがあるためです。
Boost.Statecharts は 100 の状態で機能しますが、状態ごとに 100 のイベントがあると、mpl::vector/list の制約が最大になります。個人的には、1 つの状態に 100 個のイベントがある場合、とにかくそれらをグループ化し、カスタム リアクションを使用しようとしますが、それは明らかにアプリケーションに依存します。
Qt のステート マシンがそれほど大きく拡張されない理由はわかりませんが (間違っている場合は訂正してください)、桁違いに遅いので使用しません。
私が知っている唯一の良いCの代替案は次のとおりです。
QP は C および C++ で利用可能であり、その規模を拡張でき、優れた組織を持ち、イベント キュー、同時実行性、およびメモリ管理などを処理するという点で「ステート マシン以上」です。ただし、イベントのメモリ管理には、それ自体のステート マシンの実装よりも多くの最適化が必要になる可能性があることに注意してください。QP はこれを非常にうまく行います。