Boost C++ 库

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Meta State Machine (MSM) - Boost C++ 函数库

Meta State Machine (MSM)


目录

前言
I. 用户指南
1. 基本理念
2. UML简要指南
什么是状态机?
概念
状态机,状态,转移,事件
子状态机,正交区域,伪状态
历史
完成转移/匿名转移
内部转移
冲突转移
新增概念
状态机词汇表
3. 教程
设计
基础前端
一个简单的例子
转移表
定义带有进入/退出动作的状态
在动作/守卫中实际做什么?
定义一个简单的状态机
定义一个子状态机
正交区域,终止状态,事件延迟
历史
完成(匿名)转移
内部转移
更多行类型
显式进入/进入和退出伪状态/分叉
标志
事件层次结构
自定义状态机/提高速度
选择初始事件
包含状态机(已弃用)
函数对象前端
转移表
定义带有进入/退出动作的状态
在动作/守卫中实际做什么(第二部分)?
定义一个简单的状态机
匿名转移
内部转移
Kleene(任意)事件
PUML(C++-20),实验性
PlantUML基础
复合状态机
eUML
转移表
一个简单的例子:只重写我们的转移表
定义带有进入/退出动作的事件、动作和状态
总结一个简单的状态机和第一个完整的例子
定义一个子状态机
属性/函数调用
正交区域,标志,事件延迟
自定义状态机/提高速度
完成/匿名转移
内部转移
Kleene(任意)事件)
其他状态类型
辅助函数
Phoenix风格的STL支持
使用Boost.Phoenix编写动作(开发中)
后端
创建
启动和停止状态机
事件分发
活动状态
上层状态机(仅msm::back11)
Serialization
基础状态类型
访问者
标志
获取状态
带参数的状态机构造函数
用更好的编译时/多TU编译来牺牲运行时速度(仅msm::back)
编译时状态机分析
排队等待处理的事件
自定义消息队列
使用Boost.Parameter定义策略
选择何时切换活动状态
4. 性能/编译器
速度
可执行文件大小
支持的编译器
限制
编译器角落
5. 问答,技巧
6. 内部
后端:完成即运行
前端/后端接口
生成的状态ID
元编程工具
7. 致谢
MSM v2
MSM v1
8. 版本历史
Boost 1.85
Boost 1.72
Boost 1.57
Boost 1.56
Boost 1.55
Boost 1.54
从V2.23到V2.24(Boost 1.51)
从V2.22到V2.23(Boost 1.50)
从V2.21到V2.22(Boost 1.48)
从V2.20到V2.21(Boost 1.47)
从V2.12到V2.20(Boost 1.46)
从V2.10到V2.12(Boost 1.45)
从V2.0到V2.12(Boost 1.44)
II. 参考
9. MSM的外部引用
10. eUML运算符和基本助手
11. 函数式编程
通用头文件 — 前后端使用的通用类型
后端 — 后端头文件
前端 — 前端头文件