Tinyfsm: Können wir mehrere Instanzen desselben Fsm haben?

Erstellt am 25. Okt. 2017  ·  5Kommentare  ·  Quelle: digint/tinyfsm

Da typedef F const * state_ptr_const_t; in der Klasse Fsm deklariert wird, können wir nicht mehr als eine Instanz für eine bestimmte Fsm erhalten. Gibt es eine Möglichkeit dies zu vermeiden?

question

Alle 5 Kommentare

Wie Sie richtig angeben, sind Fsm und Zustände alle statische Instanzen von Vorlagentypen. Dies bedeutet, dass es nicht möglich ist, mehr als eine Instanz für ein bestimmtes Fsm zu haben.

Es könnte mit etwas Template-Metaprogramming-Magie möglich sein, und ich erinnere mich, dass ich damit einige Experimente gemacht habe, aber es wurde ziemlich kompliziert, also habe ich es fallen lassen (da ein Hauptziel von tinyfsm darin besteht, es einfach zu halten).

So können Sie mehrere Zustandsautomaten des gleichen Typs haben, indem Sie einen Vorlagen-Zustandsautomaten deklarieren: example/api/multiple_switch.cpp .

Ich wollte diese Bibliothek verwenden, um fsm für Tausende von KI-Bots zu erstellen ... dies scheint nicht mehr praktikabel zu sein, wenn es keine Möglichkeit gibt, ein Fsm-Objekt für jeden Bot zu instanziieren. (Neuling in C++, also nicht positiv, wenn es eine Problemumgehung gibt).

hm nvermind Ich werde nur https://www.boost.org/doc/libs/1_64_0/libs/msm verwenden, da es in Bezug auf die Funktionalität eher dem entspricht, was ich brauchte.

Gleiches Problem. Ich wollte diese Bibliothek für einen Websocket-Server verwenden - Websockets als Zustandsmaschinen.
_Ich bin auf Boost.SML gestoßen._

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen