Hi there,

I am using boost v1.59 and I am having trouble in compiling a MSM state machine with more than 20 transitions.

I followed the Q&A and added the following lines BEFORE any boost include:

#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


but now instead of getting the previous error:

error: wrong number of template arguments (21, should be 20)

I get this one:

/usr/local/include/boost/multi_index/tag.hpp:75:67: error: wrong number of template arguments (30, should be 20)
     mpl::vector<BOOST_PP_ENUM_PARAMS(BOOST_MULTI_INDEX_TAG_SIZE,T)>,


I was just finishing this email when I found a solution.

Adding only the following header

#include "boost/mpl/vector/vector30.hpp"

and explicitly declaring the transition table as a numbered mpl::vector (yep you have to count the rows...)

struct transition_table : mpl::vector21< ... >

solves the problem.

Can you suggest me a better solution for this? Thanks!

Carlos Santos