青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
jack-wang
小王
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆-380 評論-37 文章-0 trackbacks-0
Boost的狀態機庫教程(1)
轉:
http://m.shnenglu.com/shaker/archive/2010/08/16/123597.html
介紹
Boost狀態機庫一個應用程序框架,你可以用它將UML狀態圖快速的轉換為可執行的c++代碼,而不需要任何的代碼生成器。它支持幾乎所有的UML特征,可以直接了當的轉換,并且轉換后的c++代碼就像對狀態機進行一次文本描述一樣具體可讀性。
如何閱讀這個教程
這個教程是以線性閱讀的方式進行的章節設計。如果你是第一次看這個教程的話,你可以從頭開始讀,到你覺得了解的東西對你手頭的任務來說已經足夠時就停止。具體可以這樣:
* 如果你的任務是要實現一個小的、簡單的,并且有很少幾個狀態的狀態機,那么下面的“初級主題:秒表”里所講的就差不多夠你用的了。
* 如果你要做一個有很多狀態的大型狀態機,你可以看一下“中級主題:數碼相機”,那里的講解可能對你有幫助。
* 最后,如果你是一個要創建異常復雜狀態機的用戶,或者是一個想要評估一個Boost狀態機的設計師的話,你就要看一下“高級主題”部分。并且,我還強烈建議你看一下Rationle里的Limitions部分。
Hello World!
我們將要從一個最簡單程序開始我們的第一步,狀態圖如下:
對于這個狀態圖,我們的實現代碼如下:
1
#include
<
boost
/
statechart
/
state_machine.hpp
>
2
#include
<
boost
/
statechart
/
simple_state.hpp
>
3
#include
<
iostream
>
4
5
namespace
sc
=
boost::statechart;
6
7
//
為了避免寫public,下面聲明的類型全部為struct。
8
//
如果你不在乎的話可以把它們都改成class。
9
10
//
我們需要先聲明一下初始狀態,這是因為我們要在定義狀態機時使用它
11
//
但又不得不在狀態機這后定義它。
12
13
struct
Greeting;
14
15
//
Boost.Statechart大量應用模板模式。
16
//
派生類必須將自己做為基類模板的第一個參數。
17
//
18
//
狀態機必須要知道當其初始化后進行的第一個狀態。
19
//
這就是為什么Greeting要做為每二個模板參數。
20
//
(譯者注:也就是說Greeting狀態是Machine狀態機初始化后進入的第一個狀態)
21
struct
Machine : sc::state_machine
<
Machine, Greeting
>
{}
;
22
23
//
對于每一個狀態,我們需要為其指明:它屬于哪一個狀態機,它位于狀態圖的哪個位置。
24
//
我們用simple_state<>的上下文參數就可以完成這些指定了。
25
//
對于我們目前的這個簡單的狀態機來說,上下文就是狀態機(Machine)
26
//
所以,Machine必須要做為simple_state的第二個模塊參數。
27
//
(關于上下文參數的詳細解釋在下一個例子中有)
28
struct
Greeting : sc::simple_state
<
Greeting, Machine
>
29
{
30
//
一旦狀態機進行一個狀態的時候,它就要創建一個相應狀態類的對象(類實例)
31
//
只要狀態機保持在這個狀態下,這個對象就會一直存在。
32
//
最后,當狀態機離開這個狀態時,對象被銷毀。
33
//
所以,一個狀態的進入動作就是這個狀態類的構造器,而它的退出動作則是它的析構類。 Greeting() { std::cout << "Hello World!\n" ; }
//
進入
34
~
Greeting()
{ std::cout
<<
"
Bye Bye World!\n
"
; }
//
退出
35
}
;
36
37
int
main()
38
{
39
Machine myMachine;
40
//
構造完狀態機后,它并未開始運行。我們要通過調用它的initiate()來啟動它。
41
//
同時,它也將觸發它的初始狀態(Greeting)的構造。
42
myMachine.initiate();
43
//
當我們離開main()函數時,myMachine將被銷毀,這將導致它銷毀它內部的所有活動的狀態類。
44
//
(譯者注:為什么會說所有?這是因為一個狀態機可以同時
保持在多個狀態中,可以參考“高級主題”部分)
45
return
0
;
46
}
這個程序會顯示“
Hello World!”和“
Bye Bye World!
”,然后退出。
posted on 2010-10-03 19:06
小王
閱讀(1819)
評論(0)
編輯
收藏
引用
所屬分類:
Boost
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
boost編譯(Windows平臺)
編譯boost1.54
模板元編程 --- 用 MPL 解決實際問題
Boost的狀態機庫教程 補充
Boost的狀態機庫教程(3)
Boost的狀態機庫教程(2)
Boost的狀態機庫教程(1)
vc7編譯boost 1.33.1記錄(轉)
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2020年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(16)
給我留言
查看公開留言
查看私人留言
隨筆分類
(442)
Android(7)
Boost(8)
C#
c++ 程序設計基礎(11)
CMake(2)
Cocos2d-X(1)
CUDA(2)
DB(21)
DirectX(2)
Docker(5)
Dubbo(3)
Erlang(5)
Git(6)
GO(1)
IE(1)
iOS(1)
Java(19)
JPA(2)
LibTorch(1)
linux(99)
MQTT(2)
node.js(3)
OpenGL(2)
Python(15)
Qt(7)
Redis(5)
ROS(4)
ROS2(1)
SpringBoot(4)
TensorRT(3)
UI(5)
Unreal Engine(1)
VC(44)
VLC(2)
Web開發(12)
Win32(4)
編譯(34)
操作系統(3)
調試(2)
多核編程(3)
分布式系統(4)
匯編(1)
腳本(1)
開源項目(3)
其他(16)
嵌入式(1)
軟件工程(5)
瑞芯微(1)
設計模式(7)
昇騰(1)
算法與數據結構(1)
網絡通訊(17)
音視頻(7)
游戲服務器端開發(17)
游戲引擎(7)
隨筆檔案
(380)
2025年5月 (1)
2024年11月 (2)
2024年10月 (1)
2024年6月 (2)
2024年5月 (4)
2024年4月 (4)
2024年3月 (9)
2024年2月 (1)
2024年1月 (6)
2023年12月 (2)
2023年10月 (8)
2023年9月 (1)
2023年7月 (2)
2023年5月 (1)
2023年4月 (3)
2023年3月 (2)
2022年12月 (2)
2022年11月 (3)
2022年10月 (3)
2022年9月 (5)
2022年8月 (2)
2022年7月 (10)
2022年6月 (5)
2022年5月 (7)
2022年4月 (4)
2022年3月 (1)
2022年2月 (11)
2022年1月 (6)
2021年12月 (7)
2021年10月 (3)
2021年6月 (2)
2021年4月 (1)
2021年3月 (3)
2021年2月 (1)
2021年1月 (3)
2020年12月 (2)
2020年11月 (1)
2020年10月 (2)
2020年9月 (2)
2020年7月 (4)
2020年6月 (2)
2020年4月 (3)
2020年3月 (2)
2020年2月 (2)
2020年1月 (3)
2019年11月 (2)
2019年10月 (5)
2019年9月 (1)
2019年8月 (3)
2019年7月 (1)
2019年6月 (6)
2019年5月 (4)
2019年4月 (2)
2019年3月 (2)
2019年2月 (1)
2019年1月 (4)
2018年1月 (2)
2017年12月 (8)
2017年11月 (3)
2017年9月 (4)
2017年8月 (1)
2017年3月 (1)
2017年2月 (2)
2017年1月 (5)
2016年12月 (1)
2016年5月 (1)
2016年4月 (1)
2016年1月 (1)
2015年8月 (3)
2015年6月 (1)
2015年5月 (1)
2015年4月 (1)
2014年7月 (2)
2014年6月 (2)
2014年5月 (1)
2014年3月 (1)
2014年2月 (2)
2013年11月 (3)
2013年9月 (4)
2013年8月 (1)
2013年6月 (1)
2013年5月 (1)
2013年4月 (3)
2013年3月 (5)
2013年2月 (1)
2013年1月 (2)
2012年11月 (1)
2012年10月 (3)
2012年9月 (1)
2012年7月 (3)
2012年6月 (3)
2012年5月 (1)
2012年3月 (5)
2012年2月 (2)
2012年1月 (1)
2011年12月 (3)
2011年9月 (1)
2011年8月 (2)
2011年6月 (1)
2011年4月 (1)
2011年3月 (2)
2011年2月 (2)
2010年12月 (1)
2010年11月 (7)
2010年10月 (7)
2010年9月 (2)
2010年8月 (2)
2010年7月 (3)
2010年6月 (2)
2010年4月 (4)
2010年3月 (6)
2010年2月 (12)
2010年1月 (22)
2009年11月 (6)
2009年8月 (5)
2009年6月 (2)
2009年2月 (4)
2009年1月 (15)
2008年10月 (1)
Linux
chinaunix
游戲開發
金慶
云風
綜合
Intel
λ-calculus
周偉明
最新隨筆
1.?ROS2開發環境搭建
2.?dnf安裝失敗
3.?RK3588設備中運行可執行程序報錯:error while loading shared libraries: librknnrt.so: cannot open shared object file:
4.?wget下載報錯:The certificate of ‘www.python.org’ is not trusted.
5.?執行torch.load(模型名稱, map_location='cpu')報錯:from torchvision.transforms.functional_tensor import rgb_to_grayscale
6.?pip安裝basicsr報錯:To fix this you could try to:
7.?cmake文件中D_GLIBCXX_USE_CXX11_ABI=0,導致無法到入第三方庫libjsoncpp.so
8.?鏈接libjsoncpp.a時報錯:which may bind externally can not be used when making a shared object; recompile with -fPIC
9.?vs code中git push代碼報錯:Missing or invalid credentials.
10.?git clone報錯:SSL certificate problem: self signed certificate in certificate chain
搜索
最新隨筆
1.?ROS2開發環境搭建
2.?dnf安裝失敗
3.?RK3588設備中運行可執行程序報錯:error while loading shared libraries: librknnrt.so: cannot open shared object file:
4.?wget下載報錯:The certificate of ‘www.python.org’ is not trusted.
5.?執行torch.load(模型名稱, map_location='cpu')報錯:from torchvision.transforms.functional_tensor import rgb_to_grayscale
6.?pip安裝basicsr報錯:To fix this you could try to:
7.?cmake文件中D_GLIBCXX_USE_CXX11_ABI=0,導致無法到入第三方庫libjsoncpp.so
8.?鏈接libjsoncpp.a時報錯:which may bind externally can not be used when making a shared object; recompile with -fPIC
9.?vs code中git push代碼報錯:Missing or invalid credentials.
10.?git clone報錯:SSL certificate problem: self signed certificate in certificate chain
最新評論
1.?re: DirectUI Lib XML編寫說明
這個不錯,很有用。
--dictbox
2.?re: MFC:為CListCtrl添加背景圖片[未登錄]
沒用
--123
3.?re: DirectUI Lib XML編寫說明[未登錄]
很好,對于我這樣的初學者很用幫助,謝謝樓主
--king
4.?re: WindowXP下PHP5開發環境配置
謝謝樓主分享,已經按樓主的方法配置成功
--bbreay
5.?re: error C2220: 警告被視為錯誤 - 沒有生成“object”文件
你好,我用的是vs2012,沒有你說的“選擇該cpp”,如:
--coco
閱讀排行榜
1.?protobuf使用方法(9451)
2.?執行pip install報錯: WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv(9071)
3.?1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d](8675)
4.?編譯cmake報錯:Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.(8381)
5.?把python3的版本從3.6升級到3.10(7447)
評論排行榜
1.?網游服務器通信架構的設計(3)
2.?公司散伙啦。杯具!反思!(3)
3.?Ubuntu9.10 VI下方向鍵變成ABCD的解決辦法(3)
4.?kosmix,又一個開源的類似GFS的分布式文件系統(2)
5.?服務器宕機(2)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 小王
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久久精品一区
|
久久综合久久综合久久
|
国产精品区一区
|
欧美在线精品免播放器视频
|
亚洲天堂网站在线观看视频
|
亚洲综合视频一区
|
久久精品在线
|
欧美激情精品久久久
|
亚洲黄网站在线观看
|
久久综合福利
|
亚洲人成网站777色婷婷
|
亚洲精品你懂的
|
91久久精品一区
|
这里只有精品丝袜
|
久久精品女人
|
欧美日韩精品一区
|
国产一区二区精品丝袜
|
亚洲久久一区
|
久久成人精品电影
|
91久久嫩草影院一区二区
|
亚洲综合丁香
|
欧美—级a级欧美特级ar全黄
|
国产精品久久久久毛片大屁完整版
|
国产一区三区三区
|
一区二区三区不卡视频在线观看
|
香蕉成人久久
|
亚洲人成网站在线观看播放
|
欧美亚洲尤物久久
|
欧美日本一区二区三区
|
亚洲一区二区精品在线
|
久久久免费av
|
国产精品亚洲第一区在线暖暖韩国
|
激情综合在线
|
亚洲一区二区三区四区中文
|
你懂的国产精品
|
性色av一区二区三区在线观看
|
亚洲黄色一区二区三区
|
午夜精品美女久久久久av福利
|
亚洲第一级黄色片
|
久久er99精品
|
国产美女精品视频
|
中文av字幕一区
|
欧美激情国产日韩
|
久久久久久久久岛国免费
|
国产精品www994
|
一二三区精品
|
亚洲精品系列
|
欧美日产在线观看
|
亚洲精品一二区
|
欧美成在线观看
|
久久久在线视频
|
玉米视频成人免费看
|
久久精彩免费视频
|
欧美一级久久久
|
国产亚洲精品久久久久婷婷瑜伽
|
亚洲天堂av在线免费
|
日韩一级在线
|
欧美午夜性色大片在线观看
|
一本一本a久久
|
亚洲乱码一区二区
|
欧美日韩在线高清
|
亚洲欧美另类在线观看
|
在线中文字幕日韩
|
亚洲图片在区色
|
国产精品久在线观看
|
亚洲一区二区三区精品在线观看
|
亚洲经典一区
|
欧美视频不卡中文
|
午夜免费在线观看精品视频
|
亚洲一区三区电影在线观看
|
国产精品视频xxxx
|
久久精品国产亚洲高清剧情介绍
|
午夜天堂精品久久久久
|
狠狠色狠狠色综合人人
|
欧美插天视频在线播放
|
欧美精品久久久久久久免费观看
|
一级日韩一区在线观看
|
亚洲一区二区高清
|
国产一区亚洲一区
|
欧美国产精品va在线观看
|
欧美大胆人体视频
|
亚洲永久免费精品
|
久久久欧美精品sm网站
|
日韩一区二区高清
|
亚洲男人第一网站
|
亚洲国产精品一区制服丝袜
|
亚洲免费观看高清完整版在线观看熊
|
久久久美女艺术照精彩视频福利播放
|
亚洲福利视频免费观看
|
欧美日产在线观看
|
久久国产综合精品
|
欧美77777
|
欧美在线精品免播放器视频
|
久久久久综合网
|
亚洲欧美激情诱惑
|
欧美成人69
|
久久久久久久久岛国免费
|
欧美激情久久久
|
久久久久久久综合狠狠综合
|
欧美黄在线观看
|
久久艳片www.17c.com
|
欧美女主播在线
|
久久久久se
|
欧美色大人视频
|
欧美jizzhd精品欧美巨大免费
|
国产精品大片免费观看
|
欧美高清在线视频
|
国产日韩在线看
|
亚洲精品1区2区
|
在线观看一区视频
|
宅男噜噜噜66一区二区66
|
亚洲第一区在线观看
|
午夜国产精品影院在线观看
|
黑人极品videos精品欧美裸
|
9色国产精品
|
亚洲精品乱码久久久久久蜜桃麻豆
|
亚洲一区二区三区在线看
|
亚洲国产一区二区三区a毛片
|
亚洲欧美日韩国产
|
一二三四社区欧美黄
|
美女国内精品自产拍在线播放
|
久久成人免费
|
欧美伊人精品成人久久综合97
|
亚洲精品自在久久
|
欧美在线视频观看
|
先锋影音久久久
|
国产精品久久综合
|
国产精品99久久久久久宅男
|
9久草视频在线视频精品
|
麻豆亚洲精品
|
欧美福利一区二区
|
亚洲夫妻自拍
|
久久亚洲综合色
|
久久亚洲私人国产精品va媚药
|
国产美女精品视频
|
亚洲欧美日韩国产一区
|
亚洲欧美另类国产
|
国产精品天天看
|
亚洲欧美日韩精品综合在线观看
|
亚洲欧美日韩直播
|
国产精品入口福利
|
亚洲欧美国产视频
|
久久久国产成人精品
|
尤妮丝一区二区裸体视频
|
久久综合给合久久狠狠色
|
在线观看国产成人av片
|
久久久久久网
|
亚洲狠狠婷婷
|
中日韩在线视频
|
国产精品爽黄69
|
欧美自拍偷拍
|
亚洲电影下载
|
亚洲视频1区
|
国产视频亚洲精品
|
老司机精品导航
|
亚洲精品视频一区二区三区
|
亚洲一区三区视频在线观看
|
国产精品自拍网站
|
久久久精品五月天
|
亚洲精品在线二区
|
午夜久久美女
|
一区二区在线观看视频
|
欧美成人69av
|
亚洲一区二区三区成人在线视频精品
|
午夜精品国产精品大乳美女
|
国产在线精品成人一区二区三区
|
老巨人导航500精品
|
99视频日韩
|
久久久青草婷婷精品综合日韩
|
最新国产成人在线观看
|
亚洲国产视频一区二区
|
欧美啪啪一区
|
午夜性色一区二区三区免费视频
|
免费欧美日韩
|
亚洲伊人久久综合
|
久久婷婷麻豆
|
宅男噜噜噜66一区二区66
|
久久夜色精品国产
|
欧美福利一区二区
|
亚洲专区一区
|
亚洲精品国产精品国自产观看浪潮
|
午夜久久久久久
|
亚洲美女在线视频
|
国内精品久久久久影院 日本资源
|
欧美精品在线免费观看
|
久久精品一二三区
|
午夜精品久久久久久久久久久久
|
久久国产精品一区二区三区四区
|
欧美日韩aaaaa
|
久久精品国产v日韩v亚洲
|
欧美高清在线一区二区
|
午夜伦欧美伦电影理论片
|
亚洲精品自在在线观看
|
蜜臀av国产精品久久久久
|
欧美一区二区免费视频
|
在线中文字幕日韩
|
亚洲最新合集
|
亚洲精品在线电影
|
亚洲区一区二区三区
|
伊人影院久久
|