36 #ifndef INCLUDE_NRT_PROBABILISTIC_TYPES_STATEDEFINITION_H
37 #define INCLUDE_NRT_PROBABILISTIC_TYPES_STATEDEFINITION_H
39 #include <boost/preprocessor/seq/for_each.hpp>
40 #include <boost/preprocessor/seq/for_each_i.hpp>
41 #include <boost/preprocessor/seq/enum.hpp>
42 #include <boost/preprocessor/punctuation/comma_if.hpp>
43 #include <boost/mpl/begin_end.hpp>
44 #include <boost/mpl/vector.hpp>
45 #include <boost/mpl/insert_range.hpp>
46 #include <boost/mpl/at.hpp>
47 #include <boost/mpl/size.hpp>
48 #include <boost/mpl/find.hpp>
49 #include <boost/mpl/contains.hpp>
69 #define NRT_STATE_FIELD_GROUP(StateFieldsName, Fields) \
70 NRT_CREATE_STATE_FIELD_GROUP(StateFieldsName, Fields)
90 template<
class ...FieldGroups>
102 static size_t const num_fields=boost::mpl::size<fields>::value;
105 template<
class Field>
111 boost::mpl::bool_<true>,
112 typename boost::mpl::contains<fields, Field>::type
117 template<
class Group>
123 boost::mpl::bool_<true>,
124 typename boost::mpl::contains<groups, Group>::type
130 #endif // INCLUDE_NRT_PROBABILISTIC_TYPES_STATEDEFINITION_H