From 589373bf22edfef49f88577b92b8b36930fb67ca Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" <zed.shaw@gmail.com> Date: Tue, 6 May 2025 23:35:54 -0400 Subject: [PATCH] FSM is no longer needed but it may be back. --- demos/calc.cpp | 3 --- fsm.hpp | 28 ---------------------------- 2 files changed, 31 deletions(-) delete mode 100644 fsm.hpp diff --git a/demos/calc.cpp b/demos/calc.cpp index 588f28b..03cf53c 100644 --- a/demos/calc.cpp +++ b/demos/calc.cpp @@ -7,9 +7,6 @@ #include <fmt/xchar.h> #include <deque> -#define FSM_DEBUG 1 -#include "fsm.hpp" - constexpr const int WINDOW_WIDTH=300; constexpr const int WINDOW_HEIGHT=400; diff --git a/fsm.hpp b/fsm.hpp deleted file mode 100644 index 8729dd8..0000000 --- a/fsm.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once - -#include <fmt/core.h> - -#ifndef FSM_DEBUG -#define FSM_STATE(C, S, E, ...) case C::S: S(E, ##__VA_ARGS__); break -#else -#define FSM_STATE(C, S, E, ...) case C::S: fmt::println(">> " #C " " #S " event={}, state={}", int(E), int($state)); S(E, ##__VA_ARGS__); fmt::println("<< " #C " state={}", int($state)); break -#endif - -template<typename S, typename E> -class DeadSimpleFSM { -protected: - // BUG: don't put this in your class because state() won't work - S $state = S::START; - -public: - template<typename... Types> - void event(E event, Types... args); - - void state(S next_state) { - $state = next_state; - } - - bool in_state(S state) { - return $state == state; - } -};