0

私のアプリケーションの簡単なセットアップは次のとおりです。

class Engine {
    void run(); { // main program loop
        while (state != gameState::quit)
            step<state>(); // ERROR
    }

    template<gameState>
    void step() {} // empty default step function

    template<>
    void step<gameState::intro>() { /* do step for intro state*/ }
    template<>
    void step<gameState::menu>() { /* do step for menu state*/ }

    gameState state;
}

私がやりたいことは、状態メンバーの現在の値に依存するステップ関数を呼び出すことです。step() 呼び出しでは、状態は問題である定数式ではありません。大きな醜いスイッチなしで、この列挙型に依存する関数呼び出しを書く方法はありますか?

(これは、1 つの機能と 2 つの状態のみの単純化された例です)。

4

1 に答える 1