青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
jack-wang
小王
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-380 評論-37 文章-0 trackbacks-0
Boost的狀態(tài)機庫教程(1)
轉(zhuǎn):
http://m.shnenglu.com/shaker/archive/2010/08/16/123597.html
介紹
Boost狀態(tài)機庫一個應(yīng)用程序框架,你可以用它將UML狀態(tài)圖快速的轉(zhuǎn)換為可執(zhí)行的c++代碼,而不需要任何的代碼生成器。它支持幾乎所有的UML特征,可以直接了當(dāng)?shù)霓D(zhuǎn)換,并且轉(zhuǎn)換后的c++代碼就像對狀態(tài)機進(jìn)行一次文本描述一樣具體可讀性。
如何閱讀這個教程
這個教程是以線性閱讀的方式進(jìn)行的章節(jié)設(shè)計。如果你是第一次看這個教程的話,你可以從頭開始讀,到你覺得了解的東西對你手頭的任務(wù)來說已經(jīng)足夠時就停止。具體可以這樣:
* 如果你的任務(wù)是要實現(xiàn)一個小的、簡單的,并且有很少幾個狀態(tài)的狀態(tài)機,那么下面的“初級主題:秒表”里所講的就差不多夠你用的了。
* 如果你要做一個有很多狀態(tài)的大型狀態(tài)機,你可以看一下“中級主題:數(shù)碼相機”,那里的講解可能對你有幫助。
* 最后,如果你是一個要創(chuàng)建異常復(fù)雜狀態(tài)機的用戶,或者是一個想要評估一個Boost狀態(tài)機的設(shè)計師的話,你就要看一下“高級主題”部分。并且,我還強烈建議你看一下Rationle里的Limitions部分。
Hello World!
我們將要從一個最簡單程序開始我們的第一步,狀態(tài)圖如下:
對于這個狀態(tài)圖,我們的實現(xiàn)代碼如下:
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
//
我們需要先聲明一下初始狀態(tài),這是因為我們要在定義狀態(tài)機時使用它
11
//
但又不得不在狀態(tài)機這后定義它。
12
13
struct
Greeting;
14
15
//
Boost.Statechart大量應(yīng)用模板模式。
16
//
派生類必須將自己做為基類模板的第一個參數(shù)。
17
//
18
//
狀態(tài)機必須要知道當(dāng)其初始化后進(jìn)行的第一個狀態(tài)。
19
//
這就是為什么Greeting要做為每二個模板參數(shù)。
20
//
(譯者注:也就是說Greeting狀態(tài)是Machine狀態(tài)機初始化后進(jìn)入的第一個狀態(tài))
21
struct
Machine : sc::state_machine
<
Machine, Greeting
>
{}
;
22
23
//
對于每一個狀態(tài),我們需要為其指明:它屬于哪一個狀態(tài)機,它位于狀態(tài)圖的哪個位置。
24
//
我們用simple_state<>的上下文參數(shù)就可以完成這些指定了。
25
//
對于我們目前的這個簡單的狀態(tài)機來說,上下文就是狀態(tài)機(Machine)
26
//
所以,Machine必須要做為simple_state的第二個模塊參數(shù)。
27
//
(關(guān)于上下文參數(shù)的詳細(xì)解釋在下一個例子中有)
28
struct
Greeting : sc::simple_state
<
Greeting, Machine
>
29
{
30
//
一旦狀態(tài)機進(jìn)行一個狀態(tài)的時候,它就要創(chuàng)建一個相應(yīng)狀態(tài)類的對象(類實例)
31
//
只要狀態(tài)機保持在這個狀態(tài)下,這個對象就會一直存在。
32
//
最后,當(dāng)狀態(tài)機離開這個狀態(tài)時,對象被銷毀。
33
//
所以,一個狀態(tài)的進(jìn)入動作就是這個狀態(tài)類的構(gòu)造器,而它的退出動作則是它的析構(gòu)類。 Greeting() { std::cout << "Hello World!\n" ; }
//
進(jìn)入
34
~
Greeting()
{ std::cout
<<
"
Bye Bye World!\n
"
; }
//
退出
35
}
;
36
37
int
main()
38
{
39
Machine myMachine;
40
//
構(gòu)造完狀態(tài)機后,它并未開始運行。我們要通過調(diào)用它的initiate()來啟動它。
41
//
同時,它也將觸發(fā)它的初始狀態(tài)(Greeting)的構(gòu)造。
42
myMachine.initiate();
43
//
當(dāng)我們離開main()函數(shù)時,myMachine將被銷毀,這將導(dǎo)致它銷毀它內(nèi)部的所有活動的狀態(tài)類。
44
//
(譯者注:為什么會說所有?這是因為一個狀態(tài)機可以同時
保持在多個狀態(tài)中,可以參考“高級主題”部分)
45
return
0
;
46
}
這個程序會顯示“
Hello World!”和“
Bye Bye World!
”,然后退出。
posted on 2010-10-03 19:06
小王
閱讀(1819)
評論(0)
編輯
收藏
引用
所屬分類:
Boost
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
boost編譯(Windows平臺)
編譯boost1.54
模板元編程 --- 用 MPL 解決實際問題
Boost的狀態(tài)機庫教程 補充
Boost的狀態(tài)機庫教程(3)
Boost的狀態(tài)機庫教程(2)
Boost的狀態(tài)機庫教程(1)
vc7編譯boost 1.33.1記錄(轉(zhuǎn))
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2019年1月
>
日
一
二
三
四
五
六
30
31
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
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(16)
給我留言
查看公開留言
查看私人留言
隨筆分類
(442)
Android(7)
Boost(8)
C#
c++ 程序設(shè)計基礎(chǔ)(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開發(fā)(12)
Win32(4)
編譯(34)
操作系統(tǒng)(3)
調(diào)試(2)
多核編程(3)
分布式系統(tǒng)(4)
匯編(1)
腳本(1)
開源項目(3)
其他(16)
嵌入式(1)
軟件工程(5)
瑞芯微(1)
設(shè)計模式(7)
昇騰(1)
算法與數(shù)據(jù)結(jié)構(gòu)(1)
網(wǎng)絡(luò)通訊(17)
音視頻(7)
游戲服務(wù)器端開發(fā)(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
游戲開發(fā)
金慶
云風(fēng)
綜合
Intel
λ-calculus
周偉明
最新隨筆
1.?ROS2開發(fā)環(huán)境搭建
2.?dnf安裝失敗
3.?RK3588設(shè)備中運行可執(zhí)行程序報錯:error while loading shared libraries: librknnrt.so: cannot open shared object file:
4.?wget下載報錯:The certificate of ‘www.python.org’ is not trusted.
5.?執(zhí)行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,導(dǎo)致無法到入第三方庫libjsoncpp.so
8.?鏈接libjsoncpp.a時報錯:which may bind externally can not be used when making a shared object; recompile with -fPIC
9.?vs code中g(shù)it push代碼報錯:Missing or invalid credentials.
10.?git clone報錯:SSL certificate problem: self signed certificate in certificate chain
搜索
最新隨筆
1.?ROS2開發(fā)環(huán)境搭建
2.?dnf安裝失敗
3.?RK3588設(shè)備中運行可執(zhí)行程序報錯:error while loading shared libraries: librknnrt.so: cannot open shared object file:
4.?wget下載報錯:The certificate of ‘www.python.org’ is not trusted.
5.?執(zhí)行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,導(dǎo)致無法到入第三方庫libjsoncpp.so
8.?鏈接libjsoncpp.a時報錯:which may bind externally can not be used when making a shared object; recompile with -fPIC
9.?vs code中g(shù)it 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編寫說明[未登錄]
很好,對于我這樣的初學(xué)者很用幫助,謝謝樓主
--king
4.?re: WindowXP下PHP5開發(fā)環(huán)境配置
謝謝樓主分享,已經(jīng)按樓主的方法配置成功
--bbreay
5.?re: error C2220: 警告被視為錯誤 - 沒有生成“object”文件
你好,我用的是vs2012,沒有你說的“選擇該cpp”,如:
--coco
閱讀排行榜
1.?protobuf使用方法(9451)
2.?執(zhí)行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(9070)
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.(8376)
5.?把python3的版本從3.6升級到3.10(7445)
評論排行榜
1.?網(wǎng)游服務(wù)器通信架構(gòu)的設(shè)計(3)
2.?公司散伙啦。杯具!反思!(3)
3.?Ubuntu9.10 VI下方向鍵變成ABCD的解決辦法(3)
4.?kosmix,又一個開源的類似GFS的分布式文件系統(tǒng)(2)
5.?服務(wù)器宕機(2)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 小王
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
中文成人激情娱乐网
|
99视频一区二区
|
欧美1区2区视频
|
久久久欧美精品
|
久久嫩草精品久久久精品
|
久久久亚洲高清
|
久久综合一区二区
|
免费在线视频一区
|
欧美日本簧片
|
国产精品久久久久久超碰
|
国产精品日韩欧美一区
|
国产日韩欧美在线
|
伊人婷婷欧美激情
|
99视频在线精品国自产拍免费观看
|
亚洲精品自在久久
|
亚洲欧美日韩中文视频
|
午夜精品www
|
久久一二三区
|
最新亚洲视频
|
99热免费精品
|
欧美一级理论性理论a
|
久久免费精品日本久久中文字幕
|
久久人人97超碰精品888
|
欧美成人a∨高清免费观看
|
欧美日韩精品
|
国产一区二区三区最好精华液
|
亚洲国产精品久久久
|
亚洲免费视频在线观看
|
免费一区二区三区
|
亚洲欧美日韩国产中文
|
欧美高清视频www夜色资源网
|
欧美日韩综合在线
|
伊人婷婷久久
|
欧美一区二区日韩一区二区
|
欧美高清在线精品一区
|
亚洲一区二区3
|
欧美激情欧美激情在线五月
|
国产自产v一区二区三区c
|
一区二区三区产品免费精品久久75
|
欧美激情综合色
|
国产精品永久免费在线
|
亚洲国产视频a
|
亚洲欧美日韩久久精品
|
亚洲福利视频二区
|
欧美在线精品免播放器视频
|
欧美日韩视频在线
|
欧美另类高清视频在线
|
国语精品一区
|
欧美一级久久
|
亚洲欧洲一区二区三区久久
|
久久精品人人做人人爽
|
国产精品视频1区
|
99热精品在线
|
亚洲福利免费
|
欧美国产日韩一二三区
|
亚洲激情网站
|
欧美大片在线观看
|
久久亚洲精品伦理
|
精品电影在线观看
|
男女视频一区二区
|
美女诱惑黄网站一区
|
在线观看中文字幕亚洲
|
蜜桃av综合
|
久久久久久一区
|
一色屋精品亚洲香蕉网站
|
鲁大师影院一区二区三区
|
久久国产精品网站
|
在线看片一区
|
亚洲国产欧美精品
|
欧美日韩精品一区二区三区
|
一本色道久久综合亚洲精品不
|
亚洲经典一区
|
欧美三级黄美女
|
亚洲综合日韩中文字幕v在线
|
一区二区三区鲁丝不卡
|
国产精品xvideos88
|
亚洲一区二区三区在线观看视频
|
亚洲精品久久7777
|
亚洲制服丝袜在线
|
欧美国产精品
|
一个色综合av
|
一本色道久久88综合亚洲精品ⅰ
|
欧美激情欧美激情在线五月
|
中文亚洲字幕
|
99国内精品久久
|
欧美精品在线一区
|
宅男噜噜噜66一区二区
|
日韩一本二本av
|
欧美视频一区二区三区在线观看
|
一区二区三区精品久久久
|
亚洲综合精品四区
|
国产一区二区三区黄视频
|
久久久久欧美精品
|
久久香蕉国产线看观看av
|
亚洲第一页在线
|
欧美成人一区二区三区
|
久热爱精品视频线路一
|
欧美日本不卡高清
|
巨乳诱惑日韩免费av
|
精品成人国产在线观看男人呻吟
|
久久综合久久综合久久
|
久久躁日日躁aaaaxxxx
|
亚洲第一区色
|
亚洲最新视频在线
|
国产欧美一区二区色老头
|
久久久久久9
|
久久高清国产
|
日韩视频不卡
|
亚洲字幕一区二区
|
在线欧美一区
|
亚欧美中日韩视频
|
亚洲高清不卡在线
|
99国内精品
|
激情懂色av一区av二区av
|
亚洲高清电影
|
国产欧美日韩不卡
|
亚洲高清激情
|
蜜桃av一区二区
|
久久精品网址
|
欧美日本韩国一区二区三区
|
欧美中文在线字幕
|
欧美国产视频在线观看
|
欧美一区二区精美
|
欧美日韩精品一区二区天天拍小说
|
亚洲国产经典视频
|
国产精品初高中精品久久
|
久久久久久噜噜噜久久久精品
|
欧美不卡高清
|
久久久噜噜噜久久中文字免
|
欧美精品二区三区四区免费看视频
|
午夜精品久久久久久久久久久久久
|
亚洲私人影院在线观看
|
国产精品久久久久久久第一福利
|
亚洲黄色免费
|
在线播放豆国产99亚洲
|
亚洲永久精品国产
|
日韩网站在线观看
|
久久香蕉精品
|
久久久噜噜噜久久中文字幕色伊伊
|
欧美日韩免费看
|
久久久久欧美
|
在线观看亚洲视频啊啊啊啊
|
亚洲欧美日韩国产成人精品影院
|
在线一区二区三区四区五区
|
久久亚洲国产成人
|
久久免费视频网站
|
国产农村妇女毛片精品久久麻豆
|
亚洲欧洲日产国产综合网
|
米奇777在线欧美播放
|
蜜桃伊人久久
|
欧美xart系列在线观看
|
黄色免费成人
|
久久精品一区二区三区不卡
|
欧美在线视频观看
|
国产乱码精品1区2区3区
|
免费在线观看成人av
|
黄色影院成人
|
久久亚洲一区
|
亚洲成人在线视频播放
|
午夜日韩电影
|
欧美影院久久久
|
国产主播精品在线
|
久久久久se
|
久久久久久久波多野高潮日日
|
国产精品天天摸av网
|
亚洲午夜一区
|
久久国产精品72免费观看
|
国产免费成人av
|
久久精品免费
|
亚洲第一福利在线观看
|
亚洲综合电影
|
国产一区二区三区的电影
|
久久国产精品久久久久久
|
久久综合九色欧美综合狠狠
|
精品51国产黑色丝袜高跟鞋
|
鲁鲁狠狠狠7777一区二区
|
亚洲福利在线看
|
99精品视频免费
|
国产精品www色诱视频
|
午夜精品久久久
|
免费日韩一区二区
|
99精品久久
|
国产精品视频免费在线观看
|
午夜久久久久
|
欧美国产综合视频
|
在线午夜精品自拍
|
国产手机视频一区二区
|
久久在精品线影院精品国产
|
亚洲国产毛片完整版
|
亚洲综合日韩在线
|
激情91久久
|
国产热re99久久6国产精品
|
久久亚洲春色中文字幕
|
一区二区三区三区在线
|
久久精品卡一
|
亚洲天堂偷拍
|
一区二区三区中文在线观看
|
欧美日韩1区2区3区
|
欧美一级夜夜爽
|
日韩午夜激情
|