我还不知道如何使用 boost msm 动态创建 FSM,例如读取描述机器的模板 XML 文件。知道如何解决这个问题吗?我想在 boost msm 1.61 中使用仿函数方法。
我已经取得了一些进展,因此我可以用常见的方式为前端创建一个基类:
class SMBase : public msmf::state_machine_def<SMBase>
{
...
};
using SMBaseBackend = msm::back::state_machine<SMBase>;
class SMDerived : public SMBase
{
...
};
using SMDerivedBackend = msm::back::state_machine<SMDerived>;
class SMDerived2 : public SMBase
{
...
};
using SMDerived2Backend = msm::back::state_machine<SMDerived2>;
但是,状态机本身是由后端控制的,到目前为止,我看不到在运行时选择后者(例如使用
map<int, smart_pointer<SMBaseBackend> >
)。