Tinyfsm: Pouvons-nous avoir plusieurs instances du même Fsm ?

Créé le 25 oct. 2017  ·  5Commentaires  ·  Source: digint/tinyfsm

Puisque déclarer typedef F const * state_ptr_const_t; dans la classe Fsm, nous ne pouvons pas obtenir plus d'une instance pour un Fsm spécifique. y-a-t-il un moyen d'éviter ça?

question

Tous les 5 commentaires

Comme vous l'indiquez correctement, Fsm et les états sont tous des instances statiques de types de modèles. Cela signifie qu'il n'est pas possible d'avoir plus d'une instance pour un Fsm spécifique.

Cela pourrait être possible avec un peu de magie de métaprogrammation de modèles, et je me souviens avoir fait quelques expériences avec cela, mais c'est devenu assez compliqué, alors je l'ai abandonné (car l'un des objectifs principaux de tinyfsm est de rester simple).

Voici comment vous pouvez avoir plusieurs machines d'état du même type, déclarant une machine d'état modèle : examples/api/multiple_switch.cpp .

J'allais utiliser cette bibliothèque pour faire du fsm pour des milliers de bots AI... cela ne semble plus viable s'il n'y a pas de moyen d'instancier un objet Fsm pour chaque bot. (Apprenant novice en c++ donc pas positif s'il existe une solution de contournement).

hm nvermind, j'utiliserai simplement https://www.boost.org/doc/libs/1_64_0/libs/msm car cela correspond plus étroitement à ce dont j'avais besoin en termes de fonctionnalités.

Même problème. Je voulais utiliser cette bibliothèque pour un serveur Websocket - des Websockets comme machines d'état.
_Je suis tombé sur

Cette page vous a été utile?
0 / 5 - 0 notes