2012-04-10 12 views
2

私は約60行(遷移)のステートマシンを持っています。 MPLの型にはいくつかの制限があるため、これはもうコンパイルされません。50行以上のブーストmsmステートマシンを定義する

私は(幸運にも、これは非常にではありません。この制限は現時点で

によって解決することができ、より多くを達成するための唯一の解決策は、MPLにヘッダ を追加することであることをブーストMSMの文書から判明複雑な)。

どのようにしてMPLにヘッダーを追加しますか?任意の前

+0

見つかりソリューションを、ブーストライブラリはMPLとベクトルフォルダがあるフォルダに。 50行以上のステートマシンを作成できるようにするには、新しいヘッダーファイルをこのフォルダに追加する必要があります。 – akmal

答えて

1

#include <mpl...>これを定義:

#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

このようにして、最大50行を作成することができます。これは、MPLタイプの制限のためです。独自のヘッダーファイルを定義することで、60行も作成できます。 – akmal

+0

boost msm documentationから 'もう1つの制限は、MPLタイプが最大50個のエントリだけ定義されていることです。 MPLにヘッダーを追加することが唯一の解決策です(幸いにも、これはあまり複雑ではありません)。 – akmal

+0

'#define'sを編集するのは、最大で最大50の遷移です。それ以上のものは、いくつかのヘッダーを追加する必要があります。 – fduff

関連する問題