2012-04-10 18 views
2

Ich habe State Machine, wo ich etwa 60 Zeilen (Übergänge) habe. Es wird nicht mehr kompiliert, da MPL-Typen eingeschränkt sind.Boost msm State Maschine mit mehr als 50 Zeilen definieren

ich von der Boost-MSM-Dokumentation fand heraus, dass diese Einschränkung kann durch

Für den Moment gelöst werden, die einzige Lösung, um mehr zu erreichen ist Header hinzufügen zum MPL (zum Glück ist dies nicht sehr kompliziert).

also, wie Kopfzeilen zum MPL hinzufügen?

+0

gefunden Lösung, im Boost-Bibliotheken dort Ordner sind mpl und Vektor-Ordner. Um State-Computer mit mehr als 50 Zeilen erstellen zu können, müssen Sie diesen Ordnern neue Header-Dateien hinzufügen. – akmal

Antwort

1

vor jeder #include <mpl...> definieren diese:

#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 
#define BOOST_MPL_LIMIT_VECTOR_SIZE 30 // or whatever you need    
#define BOOST_MPL_LIMIT_MAP_SIZE 30 // or whatever you need 
+0

Auf diese Weise können Sie maximal 50 Zeilen erstellen, da die MPL-Typen begrenzt sind. Indem Sie eigene Header-Dateien definieren, können Sie sogar 60 Zeilen erstellen. – akmal

+0

Aus der Boost-MMS-Dokumentation 'Die andere Einschränkung ist, dass die MPL-Typen nur bis zu 50 Einträge definiert sind. Im Moment ist die einzige Lösung, um mehr zu erreichen, das Hinzufügen von Headern zum MPL (glücklicherweise ist das nicht sehr kompliziert). " – akmal

+0

Das Bearbeiten der' # define's funktioniert nur bis zu 50 Übergängen max. Alles darüber hinaus müssen Sie einige Header hinzufügen. – fduff

Verwandte Themen