私のアプリケーションの簡単なセットアップは次のとおりです。
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 つの状態のみの単純化された例です)。