定义超过 50 行的升压 msm 状态机

Defining boost msm state machine with more than 50 rows

本文关键字:msm 状态机 定义      更新时间:2023-10-16

我有状态机,其中有大约 60 行(转换)。它不再编译,因为 MPL 类型存在一些限制。

我从Boost MSM文档中发现,可以通过以下方法解决此限制

目前,实现更多目标的唯一解决方案是添加标头 到 MPL(幸运的是,这并不复杂)。

那么如何将标头添加到 MPL?

在任何#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