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!