青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
jack-wang
小王
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-380 評論-37 文章-0 trackbacks-0
Boost的狀態(tài)機庫教程(1)
轉(zhuǎn):
http://www.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 小王
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
夜夜躁日日躁狠狠久久88av
|
亚洲欧美国产视频
|
久久一区二区三区国产精品
|
欧美亚洲三级
|
亚洲在线免费观看
|
国产一区二区三区四区老人
|
久久蜜桃av一区精品变态类天堂
|
欧美一区深夜视频
|
亚洲国产婷婷香蕉久久久久久
|
欧美电影在线免费观看网站
|
欧美激情第六页
|
午夜精品短视频
|
久久嫩草精品久久久久
|
日韩一区二区精品
|
亚洲免费网站
|
一区在线电影
|
9色精品在线
|
国产一区二区三区在线观看免费视频
|
欧美专区在线播放
|
久久综合给合久久狠狠狠97色69
|
亚洲日本理论电影
|
亚洲欧美高清
|
国产精品入口66mio
|
久久久综合激的五月天
|
欧美电影免费观看大全
|
午夜久久影院
|
久久综合伊人77777
|
亚洲免费中文字幕
|
久久影院亚洲
|
亚洲专区一区二区三区
|
久久综合一区
|
久久不射电影网
|
欧美国产在线观看
|
久久久夜夜夜
|
国产精品久久久久77777
|
猛男gaygay欧美视频
|
国产精品高清免费在线观看
|
欧美阿v一级看视频
|
国产精品久久久久久久电影
|
亚洲大片免费看
|
国产精品视频yy9299一区
|
欧美国产欧美亚洲国产日韩mv天天看完整
|
国产精品理论片
|
欧美激情在线有限公司
|
国产一区二区三区免费在线观看
|
老牛国产精品一区的观看方式
|
欧美日韩国产区一
|
免费久久99精品国产自
|
国产日韩欧美精品综合
|
一区二区精品国产
|
9久re热视频在线精品
|
久久这里只有
|
老司机午夜精品视频
|
国产日本欧美一区二区三区在线
|
亚洲一区二区三区777
|
亚洲色图制服丝袜
|
欧美日本不卡
|
91久久国产自产拍夜夜嗨
|
亚洲国产成人精品女人久久久
|
午夜一级在线看亚洲
|
久久精品国产综合精品
|
国产精品一国产精品k频道56
|
一区二区精品在线观看
|
亚洲视频欧美视频
|
欧美午夜在线视频
|
夜夜嗨av一区二区三区网页
|
亚洲国产天堂久久综合
|
美国十次了思思久久精品导航
|
久久一区视频
|
亚洲缚视频在线观看
|
老色鬼精品视频在线观看播放
|
美女露胸一区二区三区
|
亚洲精品欧美一区二区三区
|
国产精品久久一级
|
亚洲天堂av在线免费
|
亚洲欧美www
|
国产视频一区二区在线观看
|
欧美亚洲一区二区在线观看
|
久久久噜噜噜久久人人看
|
狠色狠色综合久久
|
欧美国产高清
|
亚洲天堂av高清
|
乱中年女人伦av一区二区
|
亚洲国产精品久久久久秋霞影院
|
欧美xart系列在线观看
|
日韩一级二级三级
|
久久精品国产综合
|
亚洲日韩欧美一区二区在线
|
欧美伦理影院
|
午夜日韩视频
|
欧美激情欧美狂野欧美精品
|
一区二区三区四区蜜桃
|
国产欧美日韩免费
|
欧美www视频
|
午夜视频一区
|
亚洲黄色成人久久久
|
先锋影音网一区二区
|
亚洲第一二三四五区
|
欧美日韩欧美一区二区
|
久久国产精品99精品国产
|
91久久久久久久久久久久久
|
亚洲欧美在线观看
|
亚洲高清在线观看一区
|
国产精品久久久久久久免费软件
|
欧美77777
|
亚洲欧美一区二区激情
|
最新亚洲一区
|
久久人91精品久久久久久不卡
|
亚洲二区在线视频
|
国产精品你懂的在线欣赏
|
葵司免费一区二区三区四区五区
|
这里只有精品视频
|
欧美xx视频
|
久久精品中文字幕一区二区三区
|
99re热这里只有精品视频
|
国产精品视频一二三
|
欧美国产亚洲精品久久久8v
|
久久久国际精品
|
亚洲欧美另类在线观看
|
亚洲免费福利视频
|
亚洲高清不卡一区
|
久久中文字幕导航
|
久久久福利视频
|
午夜视频一区
|
亚洲女同在线
|
一区二区电影免费观看
|
最新成人在线
|
亚洲国内自拍
|
黑丝一区二区
|
国产亚洲综合在线
|
国产精品一级二级三级
|
欧美日韩一区二区三区四区在线观看
|
久久亚洲私人国产精品va媚药
|
亚洲午夜一区二区三区
|
aⅴ色国产欧美
|
亚洲精品乱码久久久久
|
亚洲国产精品久久久久久女王
|
久久精品国产亚洲精品
|
欧美一区二区三区视频在线
|
亚洲你懂的在线视频
|
在线亚洲欧美视频
|
亚洲午夜女主播在线直播
|
亚洲日本国产
|
欧美成人影音
|
欧美成人tv
|
久久精品网址
|
欧美亚洲视频在线观看
|
中国成人亚色综合网站
|
日韩一级精品视频在线观看
|
亚洲欧洲精品成人久久奇米网
|
99伊人成综合
|
在线视频欧美精品
|
亚洲在线免费
|
久久国产精品99久久久久久老狼
|
久久国产精品亚洲va麻豆
|
久久成人人人人精品欧
|
久久精品在线视频
|
你懂的国产精品
|
欧美激情在线免费观看
|
欧美国产视频在线
|
国产精品高潮呻吟久久av无限
|
国产精品二区三区四区
|
国产欧美一区二区精品性色
|
国产在线乱码一区二区三区
|
国内精品久久久久影院 日本资源
|
国内精品99
|
日韩性生活视频
|
午夜视频在线观看一区二区
|
久久精品国产免费看久久精品
|
久久只精品国产
|
亚洲精品一区久久久久久
|
999亚洲国产精
|
久久精品国产欧美激情
|
老司机67194精品线观看
|
欧美色视频日本高清在线观看
|
国产欧美一区二区三区沐欲
|
亚洲大胆视频
|
亚洲欧美日韩综合
|
欧美99在线视频观看
|
一区二区欧美精品
|
久久精品99国产精品日本
|
欧美激情中文字幕一区二区
|
国产精品一区二区三区久久
|
在线欧美视频
|
羞羞答答国产精品www一本
|
美女亚洲精品
|
亚洲午夜免费视频
|
免播放器亚洲
|
国产日韩欧美a
|
99国产精品久久久久久久
|
欧美中文字幕在线观看
|
最新亚洲一区
|
久久久久久久999精品视频
|
欧美日韩高清在线观看
|
激情一区二区
|
午夜免费电影一区在线观看
|
欧美激情一区二区久久久
|
亚洲欧美日韩精品久久奇米色影视
|
欧美一区二区国产
|
99av国产精品欲麻豆
|