I have went through the code over and over.
#include "File_Meta_FSM.h" -- ( this does not have any boost includes at all)
#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
#define FUSION_MAX_VECTOR_SIZE 30 // or whatever you need
#include "boost/mpl/vector/vector30.hpp"
#include <boost/msm/back/state_machine.hpp>
//front-end
#include <boost/msm/front/state_machine_def.hpp>
#include <boost/msm/front/functor_row.hpp>
// for And_ operator
#include <boost/msm/front/euml/operator.hpp>
////MSM.cpp
namespace MSM
{
namespace msm = boost::msm;
namespace mpl = boost::mpl;
namespace msmf = boost::msm::front;
using namespace msmf::euml;
... struct declaration , and other state machine implementations.
....
}
This following errors:
builder1: Compiling /home/yechiel/git_trunk/Infra/FSM.cpp
builder1: In file included from /usr/local/include/boost/mpl/erase.hpp:19,
builder1: from /usr/local/include/boost/fusion/mpl/erase.hpp:10,
builder1: from /usr/local/include/boost/fusion/mpl.hpp:20,
builder1: from /usr/local/include/boost/fusion/include/mpl.hpp:11,
builder1: from /usr/local/include/boost/msm/back/state_machine.hpp:30,
builder1: from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:56: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:56: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:56: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:56: error: template argument 2 is invalid
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:57: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:62: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:62: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:62: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:62: error: template argument 2 is invalid
builder1: /usr/local/include/boost/mpl/aux_/erase_impl.hpp:63: error: template argument 3 is invalid
builder1: In file included from /usr/local/include/boost/mpl/insert.hpp:19,
builder1: from /usr/local/include/boost/fusion/mpl/insert.hpp:10,
builder1: from /usr/local/include/boost/fusion/mpl.hpp:24,
builder1: from /usr/local/include/boost/fusion/include/mpl.hpp:11,
builder1: from /usr/local/include/boost/msm/back/state_machine.hpp:30,
builder1: from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:53: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:53: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:53: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:53: error: template argument 2 is invalid
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:54: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:59: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:59: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:59: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:59: error: template argument 2 is invalid
builder1: /usr/local/include/boost/mpl/aux_/insert_impl.hpp:60: error: template argument 3 is invalid
builder1: In file included from /usr/local/include/boost/parameter.hpp:18,
builder1: from /usr/local/include/boost/msm/back/state_machine.hpp:51,
builder1: from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/parameter/preprocessor.hpp:88: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/parameter/preprocessor.hpp:88: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/parameter/preprocessor.hpp:88: error: template argument 1 is invalid
builder1: In file included from /usr/local/include/boost/msm/mpl_graph/detail/incidence_list_graph.ipp:38,
builder1: from /usr/local/include/boost/msm/mpl_graph/incidence_list_graph.hpp:18,
builder1: from /usr/local/include/boost/msm/back/metafunctions.hpp:50,
builder1: from /usr/local/include/boost/msm/back/state_machine.hpp:57,
builder1: from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/mpl/equal.hpp:98: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/equal.hpp:98: error: ‘_’ was not declared in this scope
builder1: /usr/local/include/boost/mpl/equal.hpp:98: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:98: error: template argument 2 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 1 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 3 is invalid
builder1: /usr/local/include/boost/mpl/equal.hpp:108: error: template argument 1 is invalid
builder1: In file included from /usr/local/include/boost/msm/back/state_machine.hpp:62,
builder1: from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp: In constructor ‘boost::msm::back::dispatch_table<Fsm, Stt, Event, CompilePolicy>::dispatch_table()’:
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:358: error: ‘_’ is not a member of ‘boost::mpl::placeholders’
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:358: error: ‘_’ is not a member of ‘boost::mpl::placeholders’
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:358: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:358: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:359: error: ‘_’ is not a member of ‘boost::mpl::placeholders’
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:359: error: ‘_’ is not a member of ‘boost::mpl::placeholders’
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:359: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:359: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:360: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:360: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:361: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:383: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/dispatch_table.hpp:383: error: invalid type in declaration before ‘;’ token
builder1: In file included from File_Meta_FSM.cpp:18:
builder1: /usr/local/include/boost/msm/back/state_machine.hpp: At global scope:
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:111: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:111: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:111: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:112: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:114: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:114: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:114: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:115: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:117: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:117: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:117: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:118: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:121: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:121: error: ‘_’ is not a member of ‘boost::mpl’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:121: error: template argument 1 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:122: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:123: error: template argument 2 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:123: error: template argument 3 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:123: error: template argument 4 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:123: error: template argument 5 is invalid
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:123: error: invalid type in declaration before ‘;’ token
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:149: error: wrong number of template arguments (1, should be 3)
builder1: /usr/local/include/boost/parameter/binding.hpp:44: error: provided for ‘template<class Parameters, class Keyword, class Default> struct boost::parameter::binding’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:149: error: expected ‘{’ before ‘::’ token
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:150: error: invalid type in declaration before ‘,’ token
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:150: error: declaration of ‘type’ not in a namespace surrounding ‘::’
builder1: /usr/local/include/boost/msm/back/state_machine.hpp:150: error: ‘type’ should have been declared inside ‘::’
If i remove the //#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS i get:
builder1: from File_Meta_FSM.cpp:12:
builder1: /usr/local/include/boost/proto/transform/when.hpp:243: error: wrong number of template arguments (30, should be 20)
builder1: /usr/local/include/boost/mpl/aux_/preprocessed/gcc/map.hpp:22: error: provided for ‘template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12, class T13, class T14, class T15, class T16, class T17, class T18, class T19> struct boost::mpl::map’
builder1: Execution failed: Command exit with 1
>You think the problem is with states?I try to guess without seeing code...>But before I defined the mpl no preprocessed header macro all compiles well except that I have 21 states which is beyond the limitThen it’s definitely wrong.Frankly, don’t rely too much on the compiler to not compile if you exceed the limit. I once saw a fsm with 40 transitions and 30 states and gcc never complained, never understood why.
>When I define the no preprocessed header macro I get this weird warnings.
>Do I need to define those macros in my dependencies project as well? Since they use some boost..You need to define it in the TU including the msm headers. If you include msm from a header (which you should avoid) you might get a conflict so you’d have to define it for all, which would everywhere increase compile-times so don’t do it.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users