|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r57693 - in sandbox/msm/libs/msm/doc: . index-Dateien
From: christophe.j.henry_at_[hidden]
Date: 2009-11-15 17:57:08
Author: chenry
Date: 2009-11-15 17:57:06 EST (Sun, 15 Nov 2009)
New Revision: 57693
URL: http://svn.boost.org/trac/boost/changeset/57693
Log:
updated section about executable size
Text files modified:
sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml | 26
sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml | 2
sandbox/msm/libs/msm/doc/index.htm | 715 ++++++++++++++++++++-------------------
3 files changed, 375 insertions(+), 368 deletions(-)
Modified: sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml
==============================================================================
--- sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml (original)
+++ sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml 2009-11-15 17:57:06 EST (Sun, 15 Nov 2009)
@@ -5,30 +5,30 @@
<o:File HRef="themedata.thmx"/>
<o:File HRef="colorschememapping.xml"/>
<o:File HRef="image001.jpg"/>
- <o:File HRef="image027.jpg"/>
+ <o:File HRef="image002.jpg"/>
<o:File HRef="image003.jpg"/>
- <o:File HRef="image028.jpg"/>
+ <o:File HRef="image004.jpg"/>
<o:File HRef="image005.jpg"/>
- <o:File HRef="image029.jpg"/>
+ <o:File HRef="image006.jpg"/>
<o:File HRef="image007.jpg"/>
- <o:File HRef="image030.jpg"/>
+ <o:File HRef="image008.jpg"/>
<o:File HRef="image009.jpg"/>
- <o:File HRef="image031.jpg"/>
+ <o:File HRef="image010.jpg"/>
<o:File HRef="image011.jpg"/>
- <o:File HRef="image032.jpg"/>
+ <o:File HRef="image012.jpg"/>
<o:File HRef="image013.jpg"/>
- <o:File HRef="image033.jpg"/>
+ <o:File HRef="image014.jpg"/>
<o:File HRef="image015.jpg"/>
- <o:File HRef="image034.jpg"/>
+ <o:File HRef="image016.jpg"/>
<o:File HRef="image017.jpg"/>
- <o:File HRef="image035.jpg"/>
+ <o:File HRef="image018.jpg"/>
<o:File HRef="image019.jpg"/>
- <o:File HRef="image036.jpg"/>
+ <o:File HRef="image020.jpg"/>
<o:File HRef="image021.jpg"/>
- <o:File HRef="image037.jpg"/>
+ <o:File HRef="image022.jpg"/>
<o:File HRef="image023.jpg"/>
- <o:File HRef="image038.jpg"/>
+ <o:File HRef="image024.jpg"/>
<o:File HRef="image025.jpg"/>
- <o:File HRef="image039.jpg"/>
+ <o:File HRef="image026.jpg"/>
<o:File HRef="filelist.xml"/>
</xml>
\ No newline at end of file
Modified: sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml
==============================================================================
--- sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml (original)
+++ sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml 2009-11-15 17:57:06 EST (Sun, 15 Nov 2009)
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<ds:datastoreItem ds:itemID="{2F692F76-3B14-40AE-8571-9C8DCBB2B21F}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customXml"><ds:schemaRefs><ds:schemaRef ds:uri="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"/></ds:schemaRefs></ds:datastoreItem>
\ No newline at end of file
+<ds:datastoreItem ds:itemID="{5D53E1BA-76C2-4B61-A162-F608A44C098C}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customXml"><ds:schemaRefs><ds:schemaRef ds:uri="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"/></ds:schemaRefs></ds:datastoreItem>
\ No newline at end of file
Modified: sandbox/msm/libs/msm/doc/index.htm
==============================================================================
--- sandbox/msm/libs/msm/doc/index.htm (original)
+++ sandbox/msm/libs/msm/doc/index.htm 2009-11-15 17:57:06 EST (Sun, 15 Nov 2009)
@@ -23,15 +23,15 @@
<o:Author>Christophe</o:Author>
<o:Template>Normal</o:Template>
<o:LastAuthor>Christophe</o:LastAuthor>
- <o:Revision>279</o:Revision>
+ <o:Revision>280</o:Revision>
<o:Created>2009-09-03T20:17:00Z</o:Created>
- <o:LastSaved>2009-11-14T15:27:00Z</o:LastSaved>
+ <o:LastSaved>2009-11-15T22:56:00Z</o:LastSaved>
<o:Pages>39</o:Pages>
- <o:Words>18935</o:Words>
- <o:Characters>119293</o:Characters>
- <o:Lines>994</o:Lines>
- <o:Paragraphs>275</o:Paragraphs>
- <o:CharactersWithSpaces>137953</o:CharactersWithSpaces>
+ <o:Words>18953</o:Words>
+ <o:Characters>119404</o:Characters>
+ <o:Lines>995</o:Lines>
+ <o:Paragraphs>276</o:Paragraphs>
+ <o:CharactersWithSpaces>138081</o:CharactersWithSpaces>
<o:Version>12.00</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
@@ -1785,8 +1785,7 @@
font-weight:bold;
font-style:italic;}
a:link, span.MsoHyperlink
- {mso-style-noshow:yes;
- mso-style-priority:99;
+ {mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
@@ -4999,7 +4998,7 @@
<meta name=CHANGEDBY content=xtoff>
<meta name=CHANGEDBY content=xtoff>
<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="40962"/>
+ <o:shapedefaults v:ext="edit" spidmax="41986"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
@@ -5313,6 +5312,9 @@
<p><span lang=EN-US style='mso-ansi-language:EN-US'>Performance<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'><a href="#_Executable_size">Executable
+size</a><o:p></o:p></span></p>
+
<p><span lang=EN-US style='mso-ansi-language:EN-US'>Compilers<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>Limitations<o:p></o:p></span></p>
@@ -5352,11 +5354,11 @@
lang=EN-US style='font-size:16.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US'>Introduction<o:p></o:p></span></h1>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>Msm is a framework which enables
-you to build a Finite State Machine in a straightforward, descriptive and
-easy-to-use manner. It requires minimal effort to generate a working program
-from an UML state machine diagram. This work was inspired by the state machine
-described in the book of David Abrahams and Aleksey Gurtovoy “C++
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>Msm is a framework which
+enables you to build a Finite State Machine in a straightforward, descriptive
+and easy-to-use manner. It requires minimal effort to generate a working
+program from an UML state machine diagram. This work was inspired by the state
+machine described in the book of David Abrahams and Aleksey Gurtovoy “C++
Template Metaprogramming” and adds most of what UML Designers are
expecting from an UML State Machine framework:<o:p></o:p></span></p>
@@ -5546,7 +5548,7 @@
mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image001.jpg" o:title="Transition"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=202 height=96
-src="index-Dateien/image027.jpg" alt=Transition.jpg v:shapes="Grafik_x0020_16"><![endif]></span><span
+src="index-Dateien/image002.jpg" alt=Transition.jpg v:shapes="Grafik_x0020_16"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>Where
@@ -5787,10 +5789,11 @@
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>For people working on embedded
-systems, selling Boost.Statechart has got the handicap O (n) double-dispatch,
-the virtual calls and the fact that many of them are coming from the C world
-and thus no fans of big template argument lists or forward-declarations.<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>For people working on
+embedded systems, selling Boost.Statechart has got the handicap O (n)
+double-dispatch, the virtual calls and the fact that many of them are coming
+from the C world and thus no fans of big template argument lists or
+forward-declarations.<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>The declarative interface
of Msm is transparent, and a developer not needing the more complex features is
@@ -5813,9 +5816,9 @@
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>If you are looking for an efficient
-and straightforward UML-based finite state machine framework, we sincerely hope
-you will enjoy this work!<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>If you are looking for an
+efficient and straightforward UML-based finite state machine framework, we
+sincerely hope you will enjoy this work!<o:p></o:p></span></p>
<h2><a name="_Founding_example"></a><span lang=EN-US style='mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US'>Founding example<o:p></o:p></span></h2>
@@ -6548,23 +6551,22 @@
<p><span lang=EN-US style='mso-ansi-language:EN-US'>SimpleTutorial.cpp<o:p></o:p></span></p>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>The previously described
-transition table is an easily-generated view of the following UML State Machine
-Diagram:<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>The previously described transition
+table is an easily-generated view of the following UML State Machine Diagram:<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span style='mso-no-proof:yes'><!--[if gte vml 1]><v:shape
id="Grafik_x0020_15" o:spid="_x0000_i1036" type="#_x0000_t75" alt="SimpleTutorial.jpg"
style='width:450pt;height:435.6pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image003.jpg" o:title="SimpleTutorial"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=600 height=581
-src="index-Dateien/image028.jpg" alt=SimpleTutorial.jpg v:shapes="Grafik_x0020_15"><![endif]></span><span
+src="index-Dateien/image004.jpg" alt=SimpleTutorial.jpg v:shapes="Grafik_x0020_15"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>First we need to choose a
-frontend. We first take the “standard” frontend looking much like Msm
-v1.x. We need to define events, state machine and states, for example:<o:p></o:p></span></p>
+frontend. We first take the “standard” frontend looking much like
+Msm v1.x. We need to define events, state machine and states, for example:<o:p></o:p></span></p>
<p><code><span lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:
EN-US'>struct</span></code><code><span lang=EN-US style='font-size:10.0pt;
@@ -6609,9 +6611,9 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><code><span lang=EN-US
-style='font-size:10.0pt;color:green;mso-ansi-language:EN-US'>// every (optional)
-entry/exit methods get the event and containing state machine as parameters.</span></code><span
-lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+style='font-size:10.0pt;color:green;mso-ansi-language:EN-US'>// every
+(optional) entry/exit methods get the event and containing state machine as
+parameters.</span></code><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><code><span lang=EN-US
style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>template <class
@@ -6798,8 +6800,8 @@
style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'>Finally, a backend must be chosen. For the moment,
-as there is only one backend, the choice is pretty easy to do:<o:p></o:p></span></p>
+style='mso-ansi-language:EN-US'>Finally, a backend must be chosen. For the
+moment, as there is only one backend, the choice is pretty easy to do:<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
@@ -6846,8 +6848,8 @@
color:black;mso-ansi-language:EN-US'>No id as an int has to be defined</span></u></code><code><span
lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>,
-which allows reuse of states in other state machines. The ids get generated at compile-time.
-The disadvantage is that it makes debugging harder. See <a
+which allows reuse of states in other state machines. The ids get generated at
+compile-time. The disadvantage is that it makes debugging harder. See <a
href="#_Annex_A_Debugging">Annex A</a> for an explanation of how to find the
generated id. A small helper to get a state array as typeid-generated names is
explained in Annex A and an example is shown
@@ -6909,8 +6911,7 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><code><span lang=EN-US
style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman","serif";
color:black;mso-ansi-language:EN-US'>Quite easy, isn't it? You may however
-think the added value is not as great as promised, which leads us to the next
-tutorials...<o:p></o:p></span></code></p>
+think the added value is not as great as promised, which leads us to the next tutorials...<o:p></o:p></span></code></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt'><span lang=EN-US
style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -6938,9 +6939,8 @@
style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>player_</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> : </span></code><code><span
lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>public</span></code><code><span
-lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>
-msm::front::</span></code><code><span lang=EN-US style='font-size:10.0pt;
-color:#030003;mso-ansi-language:EN-US'>state_machine_def</span></code><code><span
+lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> msm::front::</span></code><code><span
+lang=EN-US style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>state_machine_def</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'><</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>player_</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>>{...}</span></code><span
@@ -6969,7 +6969,7 @@
style='width:462pt;height:620.4pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image005.jpg" o:title="CompositeTutorial"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=616 height=827
-src="index-Dateien/image029.jpg" alt=CompositeTutorial.jpg v:shapes="Grafik_x0020_14"><![endif]></span><span
+src="index-Dateien/image006.jpg" alt=CompositeTutorial.jpg v:shapes="Grafik_x0020_14"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -7176,8 +7176,8 @@
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<h3><a name="_Orthogonal_States_(+Defer"></a><span lang=EN-US style='mso-fareast-font-family:
-"Times New Roman";mso-ansi-language:EN-US'>Orthogonal States (+Defer and
-Terminate State)<o:p></o:p></span></h3>
+"Times New Roman";mso-ansi-language:EN-US'>Orthogonal States (+Defer and Terminate
+State)<o:p></o:p></span></h3>
<p><span lang=EN-US style='mso-ansi-language:EN-US'><a
href="Orthogonal-deferred.cpp">Orthogonal-deferred.cpp</a><o:p></o:p></span></p>
@@ -7234,8 +7234,8 @@
lang=EN-US style='mso-ansi-language:EN-US'> as interrupt state instead, the
state machine will not handle any event other than the one which ends the
interrupt. So it's like a terminate state, with the difference that you are
-allowed to resume the state machine when a condition (like handling of the
-original error) is met.<o:p></o:p></span></p>
+allowed to resume the state machine when a condition (like handling of the original
+error) is met.<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -7248,11 +7248,11 @@
lang=EN-US style='mso-ansi-language:EN-US'> and </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>Open</span><span
lang=EN-US style='mso-ansi-language:EN-US'> states and get it handled in the
-first state where the event is not to be deferred. It can then be handled or rejected.
-In this example, only when </span><span lang=EN-US style='font-family:"Courier New";
-mso-ansi-language:EN-US'>Stopped</span><span lang=EN-US style='mso-ansi-language:
-EN-US'> becomes active will the event be handled as </span><span lang=EN-US
-style='font-family:"Courier New";mso-ansi-language:EN-US'>Empty</span><span
+first state where the event is not to be deferred. It can then be handled or
+rejected. In this example, only when </span><span lang=EN-US style='font-family:
+"Courier New";mso-ansi-language:EN-US'>Stopped</span><span lang=EN-US
+style='mso-ansi-language:EN-US'> becomes active will the event be handled as </span><span
+lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>Empty</span><span
lang=EN-US style='mso-ansi-language:EN-US'> and </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>Open</span><span
lang=EN-US style='mso-ansi-language:EN-US'> defer the event.<o:p></o:p></span></p>
@@ -7262,7 +7262,7 @@
style='width:486.6pt;height:604.2pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image007.jpg" o:title="Orthogonal-deferred"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=649 height=806
-src="index-Dateien/image030.jpg" alt=Orthogonal-deferred.jpg v:shapes="Bild_x0020_4"><![endif]></span><span
+src="index-Dateien/image008.jpg" alt=Orthogonal-deferred.jpg v:shapes="Bild_x0020_4"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -7300,8 +7300,9 @@
style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>ErrorMode</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> : </span></code><code><span
lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>public</span></code><code><span
-lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> msm::front::</span></code><code><span
-lang=EN-US style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>terminate_state<></span></code><span
+lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>
+msm::front::</span></code><code><span lang=EN-US style='font-size:10.0pt;
+color:#030003;mso-ansi-language:EN-US'>terminate_state<></span></code><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p><code><span lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:
@@ -7328,10 +7329,10 @@
<p><code><span lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:
12.0pt;font-family:"Times New Roman","serif";color:#030003;mso-ansi-language:
-EN-US'>And you're done with the orthogonal regions! You don't have to give the regions
-an id but be advised that there is currently no compile time enforcement of
-region consistency (Msm does not yet check that the regions are truly
-orthogonal)</span></code><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+EN-US'>And you're done with the orthogonal regions! You don't have to give the
+regions an id but be advised that there is currently no compile time
+enforcement of region consistency (Msm does not yet check that the regions are
+truly orthogonal)</span></code><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -7440,7 +7441,7 @@
style='width:427.2pt;height:617.4pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image009.jpg" o:title="HistoryTutorial"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=570 height=823
-src="index-Dateien/image031.jpg" alt=HistoryTutorial.jpg v:shapes="Grafik_x0020_12"><![endif]></span><span
+src="index-Dateien/image010.jpg" alt=HistoryTutorial.jpg v:shapes="Grafik_x0020_12"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -7611,8 +7612,8 @@
lang=EN-US style='mso-ansi-language:EN-US'> supports both properties.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Now to check if your player has a loaded
-CD, check if your flag is active in the current state:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Now to check if your player has a
+loaded CD, check if your flag is active in the current state:<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><span
lang=EN-US style='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>player</span></code><code><span
@@ -7633,9 +7634,9 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>And what if you have orthogonal
-regions? How to decide if a state machine is in a flagged state? By default,
-you keep the same code and the current states will be OR'ed, meaning if one of
-the active states has the flag, then </span><span lang=EN-US style='font-family:
+regions? How to decide if a state machine is in a flagged state? By default, you
+keep the same code and the current states will be OR'ed, meaning if one of the
+active states has the flag, then </span><span lang=EN-US style='font-family:
"Courier New";mso-ansi-language:EN-US'>is_flag_active</span><span lang=EN-US
style='mso-ansi-language:EN-US'> returns true. Of course, in some cases, you
might want that all of the active states are flagged for the state to be
@@ -7663,7 +7664,7 @@
height:655.2pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image011.jpg" o:title="FlagsTutorial"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=616 height=874
-src="index-Dateien/image032.jpg" alt=FlagsTutorial.jpg v:shapes="Grafik_x0020_11"><![endif]></span><span
+src="index-Dateien/image012.jpg" alt=FlagsTutorial.jpg v:shapes="Grafik_x0020_11"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -7687,14 +7688,14 @@
height:331.8pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image013.jpg" o:title="Anonymous"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=444 height=442
-src="index-Dateien/image033.jpg" alt=Anonymous.jpg v:shapes="Grafik_x0020_13"><![endif]></span><span
+src="index-Dateien/image014.jpg" alt=Anonymous.jpg v:shapes="Grafik_x0020_13"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='page-break-before:always;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Anonymous transitions are
transitions without a named event. This means that the transition automatically
-fires when the predecessor state is entered (to be exact, after the entry
-condition). Otherwise it is a normal transition with actions and guards. <o:p></o:p></span></p>
+fires when the predecessor state is entered (to be exact, after the entry condition).
+Otherwise it is a normal transition with actions and guards. <o:p></o:p></span></p>
<p style='page-break-before:always;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Why would you need something like
@@ -7754,7 +7755,8 @@
style='mso-spacerun:yes'> </span>, <span
style='color:#030003'>State4</span><span style='mso-spacerun:yes'>
</span>, <span style='color:#030003'>State3ToState4</span><span
-style='mso-spacerun:yes'> </span>, <span
+style='mso-spacerun:yes'> </span><span
+style='mso-spacerun:yes'> </span>, <span
style='color:#030003'>always_true</span><span
style='mso-spacerun:yes'>
</span>></span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
@@ -7793,9 +7795,9 @@
href="DirectEntryTutorial.cpp">DirectEntryTutorial</a>.<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>This tutorial is for expert UML designers,
-and most designers will fortunately never need any of the explained concepts,
-with the possible exception of exit points.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>This tutorial is for expert UML
+designers, and most designers will fortunately never need any of the explained
+concepts, with the possible exception of exit points.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Let us count the ways to enter a
@@ -7851,11 +7853,11 @@
EN-US'>: Entering a submachine through an entry point pseudo state. A pseudo
state is defined as connecting exactly one transition ending on the pseudo
state outside of the submachine to one transition inside the submachine and
-having the pseudo state as source. There are two differences with explicit entries.
-First you have two transitions, meaning two actions (but just one guard as UML
-forbids guard conditions on the inside transition), second you have only one
-transition inside the composite. It is supposed to provide some kind of
-encapsulation.<o:p></o:p></span></p>
+having the pseudo state as source. There are two differences with explicit
+entries. First you have two transitions, meaning two actions (but just one
+guard as UML forbids guard conditions on the inside transition), second you
+have only one transition inside the composite. It is supposed to provide some
+kind of encapsulation.<o:p></o:p></span></p>
<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l13 level1 lfo17;
tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
@@ -7887,8 +7889,8 @@
Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Exit
-point pseudo state: connects one transition inside a composite state to a
-transition outside the composite and leading to another (outside) state.<o:p></o:p></span></p>
+point pseudo state: connects one transition inside a composite state to a transition
+outside the composite and leading to another (outside) state.<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -7913,7 +7915,7 @@
height:574.8pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image015.jpg" o:title="entry tutorial"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=634 height=766
-src="index-Dateien/image034.jpg" alt="entry tutorial.jpg" v:shapes="Grafik_x0020_10"><![endif]></span><span
+src="index-Dateien/image016.jpg" alt="entry tutorial.jpg" v:shapes="Grafik_x0020_10"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -8008,8 +8010,8 @@
mso-ansi-language:EN-US'>PseudoExit1</span><span lang=EN-US style='mso-ansi-language:
EN-US'>, triggered by </span><span lang=EN-US style='font-family:"Courier New";
mso-ansi-language:EN-US'>event5</span><span lang=EN-US style='mso-ansi-language:
-EN-US'> and connecting two transitions using the same event. Again, the event
-is forwarded to the second transition and both regions are exited, as </span><span
+EN-US'> and connecting two transitions using the same event. Again, the event is
+forwarded to the second transition and both regions are exited, as </span><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>SubFsm2</span><span
lang=EN-US style='mso-ansi-language:EN-US'> becomes inactive. Note that if no
transition is defined from </span><span lang=EN-US style='font-family:"Courier New";
@@ -8030,10 +8032,10 @@
EN-US'>Explicit entry<o:p></o:p></span></h4>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>First, to define that a state is an explicit
-entry, you have to make it a state and mark it as explicit, giving as template
-parameters the zone id (the zone id starts with 0 and corresponds to the first
-initial state of the </span><span lang=EN-US style='font-family:"Courier New";
+lang=EN-US style='mso-ansi-language:EN-US'>First, to define that a state is an
+explicit entry, you have to make it a state and mark it as explicit, giving as
+template parameters the zone id (the zone id starts with 0 and corresponds to
+the first initial state of the </span><span lang=EN-US style='font-family:"Courier New";
mso-ansi-language:EN-US'>initial_state</span><span lang=EN-US style='mso-ansi-language:
EN-US'> type sequence).<o:p></o:p></span></p>
@@ -8157,17 +8159,17 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Of course, if these states are found
-in the transition table, which is the common case, this is not necessary. The tutorial
-makes use of this typedef for teaching purposes.<o:p></o:p></span></p>
+in the transition table, which is the common case, this is not necessary. The
+tutorial makes use of this typedef for teaching purposes.<o:p></o:p></span></p>
<h4 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
name="_Fork_1"></a><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US'>Fork<o:p></o:p></span></h4>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>Need a fork instead of
-an explicit entry? Then, as a fork is an entry into states of different
-regions, we need to give it a list of target states:</span><span lang=EN-US
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>Need a fork instead of an
+explicit entry? Then, as a fork is an entry into states of different regions,
+we need to give it a list of target states:</span><span lang=EN-US
style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
@@ -8253,9 +8255,9 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>And add the corresponding
-transition in Fsm's transition table:</span><span lang=EN-US style='mso-ansi-language:
-EN-US'><o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>And add the
+corresponding transition in Fsm's transition table:</span><span lang=EN-US
+style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -8294,9 +8296,9 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='color:black;mso-ansi-language:EN-US'>And another in the
-SubFsm2_ submachine definition (remember that UML defines an entry point as a connection
-between two transitions), for example this time with an action method:</span><span
-lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+SubFsm2_ submachine definition (remember that UML defines an entry point as a
+connection between two transitions), for example this time with an action
+method:</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -8452,8 +8454,8 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
lang=EN-US style='mso-ansi-language:EN-US'>Important note 1:</span></u><span
lang=EN-US style='mso-ansi-language:EN-US'> UML defines transiting to an entry
-pseudo state and having either no second transition or one with a guard as an
-error but defines no error handling. Msm will tolerate this behavior; the entry
+pseudo state and having either no second transition or one with a guard as an error
+but defines no error handling. Msm will tolerate this behavior; the entry
pseudo state will simply be the newly active state.<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -8542,8 +8544,8 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>According to the UML standard, two
transitions are said to be in conflict if they can both trigger an exit from
-the same state with the same event, meaning if at a certain time and for a given
-event, these two transitions can be triggered.<o:p></o:p></span></p>
+the same state with the same event, meaning if at a certain time and for a
+given event, these two transitions can be triggered.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>There are two kinds of conflicts,
@@ -8706,9 +8708,9 @@
style='mso-bidi-font-style:normal'><span lang=EN-US style='mso-ansi-language:
EN-US'>All of the states defined in the state machine are created upon program
initialization. This has the huge advantage of a reduced syntactic noise. The
-cost is a small loss of control of the user on the state creation and access.
-Quite fast came from the beta testers the request of a way for a state to get
-access to its containing state machine. This is implemented via another policy.
+cost is a small loss of control of the user on the state creation and access. Quite
+fast came from the beta testers the request of a way for a state to get access
+to its containing state machine. This is implemented via another policy.
Basically, a state needs to change its declaration to:<o:p></o:p></span></i></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><i
@@ -8767,8 +8769,8 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><i
style='mso-bidi-font-style:normal'><span lang=EN-US style='mso-ansi-language:
-EN-US'>to get a pointer to the containing state machine. The same applies to terminate_state
-/ interrupt_state and entry_pseudo_state / exit_pseudo_state.<o:p></o:p></span></i></p>
+EN-US'>to get a pointer to the containing state machine. The same applies to
+terminate_state / interrupt_state and entry_pseudo_state / exit_pseudo_state.<o:p></o:p></span></i></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><i
style='mso-bidi-font-style:normal'><span lang=EN-US style='mso-ansi-language:
@@ -8780,11 +8782,11 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>It is sometimes necessary to have
-the client code get access to the states' data. After all, the states are created
-once for good and hang around as long as the state machine does so why not use
-it? You simply just need sometimes to get information about any state, even
-inactive ones. An example is if you want to write a coverage tool and know how
-many times a state was visited. How to do it? Again, quite simply:<o:p></o:p></span></p>
+the client code get access to the states' data. After all, the states are
+created once for good and hang around as long as the state machine does so why
+not use it? You simply just need sometimes to get information about any state,
+even inactive ones. An example is if you want to write a coverage tool and know
+how many times a state was visited. How to do it? Again, quite simply:<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><span
lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>player::Stopped</span></code><code><span
@@ -8836,8 +8838,8 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><span
lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
font-family:"Times New Roman","serif";mso-ansi-language:EN-US'>Of course,
-errors happen. In this case, the state machine is said to be unstable, because a
-transition may have been partially executed. The framework offers a chance to
+errors happen. In this case, the state machine is said to be unstable, because
+a transition may have been partially executed. The framework offers a chance to
set it straight by catching std::exception and calling: </span></code><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
@@ -8952,8 +8954,8 @@
style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;color:blue;
mso-ansi-language:EN-US'>const</span></code><code><span lang=EN-US
style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman","serif";
-color:black;mso-ansi-language:EN-US'>: returns true if the state machine is
-used as a composite in another state machine, false otherwise.</span></code><span
+color:black;mso-ansi-language:EN-US'>: returns true if the state machine is used
+as a composite in another state machine, false otherwise.</span></code><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -9162,9 +9164,9 @@
Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span
lang=EN-US style='mso-ansi-language:EN-US'>Use a functor “<a
-href="#_Functor_rows">Row</a>” transition. These rows offer an FSM
-template argument. This argument is the concrete (back-end) state machine on
-which process_event can be called.<o:p></o:p></span></p>
+href="#_Functor_rows">Row</a>” transition. These rows offer an FSM template
+argument. This argument is the concrete (back-end) state machine on which
+process_event can be called.<o:p></o:p></span></p>
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l6 level1 lfo23;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
@@ -9227,8 +9229,8 @@
back-end as forwarding object:<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>typedef
-msm::back::state_machine<player_ > player;<o:p></o:p></span></p>
+lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>typedef msm::back::state_machine<player_
+> player;<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>player
@@ -9255,9 +9257,9 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>By default, all states derive from </span><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>msm::default_base_state</span><span
-lang=EN-US style='mso-ansi-language:EN-US'>, which is neither polymorphic nor has
-any other useful purpose than to define a base for all states. The following
-part will describe the customization possibilities offered by Msm.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>, which is neither polymorphic nor
+has any other useful purpose than to define a base for all states. The
+following part will describe the customization possibilities offered by Msm.<o:p></o:p></span></p>
<h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
name="_User-defined_base_state"></a><code><span lang=EN-US style='mso-ansi-font-size:
@@ -9319,11 +9321,11 @@
12.0pt;mso-bidi-font-size:12.0pt;color:black;mso-ansi-language:EN-US'>my_base_state</span></code><code><span
lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> </span></code><code><span
lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
-font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>is
-your new base state. If it has a virtual function, your states become
-polymorphic. Msm also provides a default polymorphic base type for your
-convenience, </span></code><code><span lang=EN-US style='mso-ansi-font-size:
-12.0pt;mso-bidi-font-size:12.0pt;color:black;mso-ansi-language:EN-US'>msm::front::polymorphic_</span></code><code><span
+font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>is your
+new base state. If it has a virtual function, your states become polymorphic.
+Msm also provides a default polymorphic base type for your convenience, </span></code><code><span
+lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
+color:black;mso-ansi-language:EN-US'>msm::front::polymorphic_</span></code><code><span
lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
color:#030003;mso-ansi-language:EN-US'>state</span></code><span lang=EN-US
style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
@@ -9697,11 +9699,11 @@
lang=EN-US style='color:black;mso-ansi-language:EN-US'>Important warning:</span></u><span
lang=EN-US style='color:black;mso-ansi-language:EN-US'> The method </span><span
lang=EN-US style='font-family:"Courier New";color:black;mso-ansi-language:EN-US'>visit_current_states</span><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'> takes its parameter by value,
-so if the signature of the accept function is to contain a parameter passed by
-reference, pass this parameter with a boost:ref/cref to avoid undesired copies
-or slicing. So, for example, in the above case, call:</span><span lang=EN-US
-style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'> takes its parameter by
+value, so if the signature of the accept function is to contain a parameter
+passed by reference, pass this parameter with a boost:ref/cref to avoid
+undesired copies or slicing. So, for example, in the above case, call:</span><span
+lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -9751,8 +9753,8 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>This chapter will introduce the new
-features of Msm. This is actually just the beginning of the story; more, much more
-will come!<o:p></o:p></span></p>
+features of Msm. This is actually just the beginning of the story; more, much
+more will come!<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>We will first warm up with a
@@ -10023,9 +10025,9 @@
lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span
-lang=EN-US style='mso-ansi-language:EN-US'>“Row” allows reusing your
-functors in other state machines. State machine function pointers cannot offer
-this easily.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>“Row” allows reusing
+your functors in other state machines. State machine function pointers cannot
+offer this easily.<o:p></o:p></span></p>
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l14 level1 lfo26;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
@@ -10072,7 +10074,8 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'> </span><span style='color:blue'>void</span>
+style='mso-spacerun:yes'> </span><span
+style='mso-spacerun:yes'> </span><span style='color:blue'>void</span>
<span style='color:blue'>operator</span>()(<span style='color:#030003'>FSM</span>&
<span style='color:#030003'>fsm</span>,<span style='color:#030003'>EVT</span> <span
style='color:blue'>const</span>& ,<span style='color:#030003'>SourceState</span>&
@@ -10115,8 +10118,9 @@
"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'><o:p> </o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>It is a functor object taking as template
-arguments, the back-end state machine, event, and source and target states. <o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>It is a functor object taking as
+template arguments, the back-end state machine, event, and source and target
+states. <o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Notice how the functor places a new
@@ -10147,8 +10151,8 @@
style='mso-spacerun:yes'> </span><o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>We can, and why stop here? Wouldn’t
-we like to define guards like: <o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>We can, and why stop here?
+Wouldn’t we like to define guards like: <o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>“</span><span lang=EN-US
@@ -10195,9 +10199,10 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='color:black;mso-ansi-language:EN-US'>eUML is a
(Boost.)Proto-based compile-time domain specific embedded language. It provides
-grammars which allow the definition of actions/guards directly inside the transition
-table or entry/exit in the state definition. It is defined in the namespace </span><u><span
-lang=EN-US style='font-family:"Courier New";color:black;mso-ansi-language:EN-US'>msm::front::euml</span></u><span
+grammars which allow the definition of actions/guards directly inside the
+transition table or entry/exit in the state definition. It is defined in the
+namespace </span><u><span lang=EN-US style='font-family:"Courier New";
+color:black;mso-ansi-language:EN-US'>msm::front::euml</span></u><span
lang=EN-US style='color:black;mso-ansi-language:EN-US'>.<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -10260,8 +10265,8 @@
lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>Examples will be provided
-in the next paragraphs. The basic eUML features can be found in:<o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>Examples will be
+provided in the next paragraphs. The basic eUML features can be found in:<o:p></o:p></span></p>
<p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -10532,8 +10537,8 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>The only differences with our
-previous functors is that they return a bool (guards are in UML actions returning
-a bool and producing no side-effect), and they must inherit from </span><span
+previous functors is that they return a bool (guards are in UML actions
+returning a bool and producing no side-effect), and they must inherit from </span><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>euml_action</span><span
lang=EN-US style='mso-ansi-language:EN-US'> in order to enable the grammar. The
same is also necessary for events which must inherit from euml_event:<o:p></o:p></span></p>
@@ -10570,8 +10575,8 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>This means that Empty is defined as
-a state with an entry action made of two sub-actions, </span><span lang=EN-US
+lang=EN-US style='mso-ansi-language:EN-US'>This means that Empty is defined as a
+state with an entry action made of two sub-actions, </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>Empty_Entry</span><span
lang=EN-US style='mso-ansi-language:EN-US'> and </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>Dummy_Entry </span><span
@@ -10650,9 +10655,10 @@
EN-US;mso-no-proof:yes'>A </span><span lang=EN-US style='font-family:"Courier New";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:
yes'>NoAction</span><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
-mso-ansi-language:EN-US;mso-no-proof:yes'> is also defined, which does, well, nothing
-except being a placeholder (needed for example as entry action if we have no
-entry but an exit).</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+mso-ansi-language:EN-US;mso-no-proof:yes'> is also defined, which does, well,
+nothing except being a placeholder (needed for example as entry action if we
+have no entry but an exit).</span><span lang=EN-US style='mso-ansi-language:
+EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>Expr1</span><span
@@ -10735,8 +10741,8 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Likewise, eUML provides other state-building
-functions for other types of states:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Likewise, eUML provides other
+state-building functions for other types of states:<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
@@ -10847,9 +10853,9 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>build_sm(Stt,
Init, Expr1, Expr2, Attributes, Configure)</span><span lang=EN-US
-style='mso-ansi-language:EN-US'>: state machine where the transition table,
-initial state, entry and exit actions are defined. Furthermore, some attributes
-(read further on)</span><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
+style='mso-ansi-language:EN-US'>: state machine where the transition table, initial
+state, entry and exit actions are defined. Furthermore, some attributes (read
+further on)</span><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'>, flags, deferred events and <a
href="#_Customizing_a_state">configuration capabilities</a> (no message queue /
no exception catching) </span><span lang=EN-US style='mso-ansi-language:EN-US'>are
@@ -11314,10 +11320,10 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
-EN-US;mso-no-proof:yes'>A fork is a direct entry into several
-regions of a composite substate. EUML also supports this by allowing the user
-to define a list of entry states separated by a comma and enclosed inside
-parenthesis, for eaxample:<o:p></o:p></span></p>
+EN-US;mso-no-proof:yes'>A fork is a direct entry into
+several regions of a composite substate. EUML also supports this by allowing
+the user to define a list of entry states separated by a comma and enclosed
+inside parenthesis, for eaxample:<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
@@ -11917,8 +11923,9 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>EUML also supports defining <a
-href="#_Orthogonal_States_(+Defer">deferred events</a> in the state (state machine)
-definition. To this aim, we can reuse the previous flag grammar. For example:<o:p></o:p></span></p>
+href="#_Orthogonal_States_(+Defer">deferred events</a> in the state (state
+machine) definition. To this aim, we can reuse the previous flag grammar. For
+example:<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -12224,7 +12231,8 @@
<p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN style='font-size:11.0pt;font-family:"Courier New";mso-fareast-font-family:
-"Times New Roman";color:black;mso-ansi-language:EN'>#include < msm/front/euml/operator.hpp><o:p></o:p></span></p>
+"Times New Roman";color:black;mso-ansi-language:EN'>#include <
+msm/front/euml/operator.hpp><o:p></o:p></span></p>
<p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -12256,8 +12264,8 @@
Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>if_then_(guard,
-action)</span><span lang=EN-US style='mso-ansi-language:EN-US'> where guard respects
-the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
+action)</span><span lang=EN-US style='mso-ansi-language:EN-US'> where guard
+respects the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
<p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l45 level1 lfo33;tab-stops:
@@ -12536,12 +12544,12 @@
<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Notice that we have lots of
-operators, functors and functions like </span><span lang=EN-US
-style='font-family:"Courier New";mso-ansi-language:EN-US'>build_stt</span><span
-lang=EN-US style='mso-ansi-language:EN-US'> but all is compile-time, there is
-no run-time penalty as the code is not really called but simply evaluated. Now
-try to do this with your local javac compiler…<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Notice that we have lots of operators,
+functors and functions like </span><span lang=EN-US style='font-family:"Courier New";
+mso-ansi-language:EN-US'>build_stt</span><span lang=EN-US style='mso-ansi-language:
+EN-US'> but all is compile-time, there is no run-time penalty as the code is
+not really called but simply evaluated. Now try to do this with your local
+javac compiler…<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>The following table lists the
@@ -12990,8 +12998,7 @@
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
- mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Action1() *
- Action2()<o:p></o:p></span></p>
+ mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Action1() * Action2()<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:solid #4F81BD 1.0pt;
mso-border-themecolor:accent1;border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -13127,8 +13134,7 @@
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
- mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Calls lazily
- -Action1<o:p></o:p></span></p>
+ mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Calls lazily -Action1<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13350,8 +13356,8 @@
mso-ansi-language:EN-US'>if_then_else_(Condition1(),++Source_<0>(),<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US'><span
- style='mso-spacerun:yes'>
- </span>--Source_<0>())<o:p></o:p></span></p>
+ style='mso-spacerun:yes'> </span><span
+ style='mso-spacerun:yes'> </span>--Source_<0>())<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US'>[if_then_else_(Condition1(),True_(), False())]<o:p></o:p></span></p>
</td>
@@ -13473,8 +13479,8 @@
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
- mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the
- some_int attribute of the currently processed event.<o:p></o:p></span></p>
+ mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the some_int
+ attribute of the currently processed event.<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13497,8 +13503,8 @@
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
- lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the source
- state from the currently triggered transition.<o:p></o:p></span></p>
+ lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the
+ source state from the currently triggered transition.<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
@@ -13615,8 +13621,8 @@
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
- mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Wrappers around the
- value some_int<o:p></o:p></span></p>
+ mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Wrappers around
+ the value some_int<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13709,8 +13715,8 @@
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Processes Event
- on the current state machine (if no fsm specified) or on up to 4 state machines
- returned by an appropriate functor.<o:p></o:p></span></p>
+ on the current state machine (if no fsm specified) or on up to 4 state
+ machines returned by an appropriate functor.<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13739,9 +13745,9 @@
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
- lang=EN style='mso-ansi-language:EN'>Processes Event on the current state
- machine (if no fsm specified) or on up to 2 state machines returned by an
- appropriate functor. The event is copy-constructed from what Data() returns.<o:p></o:p></span></p>
+ lang=EN style='mso-ansi-language:EN'>Processes Event on the current state machine
+ (if no fsm specified) or on up to 2 state machines returned by an appropriate
+ functor. The event is copy-constructed from what Data() returns.<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN style='mso-fareast-font-family:"Times New Roman";
@@ -13931,9 +13937,9 @@
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
- mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the current
- state machine (as reference). Valid inside a state entry/exit action or a
- transition.<o:p></o:p></span></p>
+ mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the
+ current state machine (as reference). Valid inside a state entry/exit action
+ or a transition.<o:p></o:p></span></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -14244,12 +14250,12 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Your functors will usually not need this.
-You will only need these extra declarations if your functors are to be used in
-combination with eUML functions (if_then_else_ , STL algorithms) or operators
-returning a value (++, +=, etc.). If you simply need simple guards /actions
-like [Condition1() && Condition2()] / (Action1(),Action2()), you do not
-need to declare the return type.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Your functors will usually not need
+this. You will only need these extra declarations if your functors are to be
+used in combination with eUML functions (if_then_else_ , STL algorithms) or
+operators returning a value (++, +=, etc.). If you simply need simple guards
+/actions like [Condition1() && Condition2()] / (Action1(),Action2()),
+you do not need to declare the return type.<o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>This declaration is not very nice
@@ -14310,8 +14316,8 @@
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>In a nutshell, almost every STL
-method or algorithm is matched by a corresponding functor, which can then be used
-in the transition table or state actions. The following tables explain in
+method or algorithm is matched by a corresponding functor, which can then be
+used in the transition table or state actions. The following tables explain in
detail the possible argument combination and the underlying functor, so that
this possibility is not reserved to eUML but also to the functor-based
front-end previously explained.<o:p></o:p></span></p>
@@ -14372,14 +14378,15 @@
<p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN style='font-size:11.0pt;font-family:"Courier New";mso-fareast-font-family:
-"Times New Roman";color:black;mso-ansi-language:EN'>#include < msm/front/euml/container.hpp><o:p></o:p></span></p>
+"Times New Roman";color:black;mso-ansi-language:EN'>#include <
+msm/front/euml/container.hpp><o:p></o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN style='mso-ansi-language:EN'><o:p> </o:p></span></p>
<p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN style='mso-ansi-language:EN'>Or one can simply include the whole STL
-support (you will also need to include euml.hpp):<o:p></o:p></span></p>
+lang=EN style='mso-ansi-language:EN'>Or one can simply include the whole STL support
+(you will also need to include euml.hpp):<o:p></o:p></span></p>
<p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -14481,7 +14488,8 @@
accent1;border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:
accent1;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='mso-yfti-cnfc:5'><b><span lang=EN style='color:
- white;mso-themecolor:background1;mso-ansi-language:EN'>STL functions in querying.hpp<o:p></o:p></span></b></p>
+ white;mso-themecolor:background1;mso-ansi-language:EN'>STL functions in
+ querying.hpp<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;background:#4F81BD;mso-background-themecolor:
@@ -15514,8 +15522,8 @@
</td>
<td width=437 valign=top style='width:262.25pt;border:none;border-bottom:
solid #4F81BD 1.0pt;mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>rotate_(first, middle,
- last)ᵇ<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>rotate_(first,
+ middle, last)ᵇ<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border-top:none;border-left:
none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:accent1;
@@ -16266,8 +16274,8 @@
EN'>void erase(pos)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>void associative_erase_(
- container , pos)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>void
+ associative_erase_( container , pos)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -16519,8 +16527,8 @@
EN'>int compare(string)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>int string_compare_(container,
- another_string)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>int
+ string_compare_(container, another_string)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -16590,8 +16598,8 @@
EN'>string& append(const string&)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& append_(container,
- another_string)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
+ append_(container, another_string)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -16974,8 +16982,8 @@
<td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
- style='mso-ansi-language:EN'>string& replace(iterator first, iterator
- last, const charT*, size_type n)<o:p></o:p></span></b></p>
+ style='mso-ansi-language:EN'>string& replace(iterator first, iterator last,
+ const charT*, size_type n)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -16996,8 +17004,8 @@
EN'>string& replace(iterator first, iterator last, const charT*)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& string_replace_(container,
- first, last, another_string)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
+ string_replace_(container, first, last, another_string)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17031,8 +17039,8 @@
l)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
- string_replace_(container, first, last, f, l)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& string_replace_(container,
+ first, last, f, l)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17064,7 +17072,8 @@
EN'>const charT* data()<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>const charT* string_data_(container)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>const charT*
+ string_data_(container)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17075,8 +17084,8 @@
<td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
- style='mso-ansi-language:EN'>size_type copy(charT* buf, size_type n,
- size_type pos = 0)<o:p></o:p></span></b></p>
+ style='mso-ansi-language:EN'>size_type copy(charT* buf, size_type n, size_type
+ pos = 0)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17136,8 +17145,8 @@
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
string_find_(container, s, pos)<o:p></o:p></span></p>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
- string_find_(container, s)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type string_find_(container,
+ s)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17171,8 +17180,8 @@
EN'>size_type rfind(charT* s, size_type pos, size_type n)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
- string_rfind_(container, s, pos, n)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type string_rfind_(container,
+ s, pos, n)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17279,8 +17288,8 @@
EN'>size_type find_first_of (const string& s, size_type pos=0)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_first_of_(container,
- s, pos)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+ find_first_of_(container, s, pos)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
find_first_of_(container, s)<o:p></o:p></span></p>
</td>
@@ -17293,8 +17302,7 @@
<td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
- style='mso-ansi-language:EN'>size_type find_first_of (charT c, size_type
- pos=0)<o:p></o:p></span></b></p>
+ style='mso-ansi-language:EN'>size_type find_first_of (charT c, size_type pos=0)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17353,8 +17361,8 @@
EN'>size_type find_first_not_of (const string& s, size_type pos=0)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
- find_first_not_of_(container, s, pos)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_first_not_of_(container,
+ s, pos)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
find_first_not_of_(container, s)<o:p></o:p></span></p>
</td>
@@ -17391,8 +17399,8 @@
EN'>size_type find_last_of(charT* s, size_type pos, size_type n)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_last_of_(container,
- s, pos, n)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+ find_last_of_(container, s, pos, n)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17477,7 +17485,8 @@
<td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
- style='mso-ansi-language:EN'>size_type find_last_not_of (charT* s, size_type pos=npos)<o:p></o:p></span></b></p>
+ style='mso-ansi-language:EN'>size_type find_last_not_of (charT* s, size_type
+ pos=npos)<o:p></o:p></span></b></p>
</td>
<td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17502,8 +17511,8 @@
<td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
find_last_not_of_(container, s, pos)<o:p></o:p></span></p>
- <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_last_not_of_(container,
- s)<o:p></o:p></span></p>
+ <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+ find_last_not_of_(container, s)<o:p></o:p></span></p>
</td>
<td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17571,13 +17580,13 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>EUML provides two macros (sorry
-about that) to convert a function or method into a eUML-compatible functor for
-use in action / guard declarations.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>EUML provides two macros (sorry about
+that) to convert a function or method into a eUML-compatible functor for use in
+action / guard declarations.<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Let’s suppose we wrote a function
-printing the typeid of its parameter:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Let’s suppose we wrote a
+function printing the typeid of its parameter:<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -17699,13 +17708,13 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
-mso-ansi-language:EN-US;mso-no-proof:yes'><span style='mso-spacerun:yes'>
-</span><span style='mso-spacerun:yes'> </span><span
-style='color:blue'>int</span> <span style='color:#030003'>foo</span>(<span
-style='color:blue'>int</span> <span style='color:#030003'>i</span>)<span
-style='color:blue'>const</span> {<span style='color:#030003'>std</span>::<span
-style='color:#030003'>cout</span> << <span style='color:#A31515'>"foo(int):"</span>
-<< <span style='color:#030003'>i</span> << <span style='color:#030003'>std</span>::<span
+mso-ansi-language:EN-US;mso-no-proof:yes'><span
+style='mso-spacerun:yes'> </span><span style='color:blue'>int</span>
+<span style='color:#030003'>foo</span>(<span style='color:blue'>int</span> <span
+style='color:#030003'>i</span>)<span style='color:blue'>const</span> {<span
+style='color:#030003'>std</span>::<span style='color:#030003'>cout</span>
+<< <span style='color:#A31515'>"foo(int):"</span> << <span
+style='color:#030003'>i</span> << <span style='color:#030003'>std</span>::<span
style='color:#030003'>endl</span>; <span style='color:blue'>return</span> 1;}<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
@@ -17790,8 +17799,8 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>We now have a way to bind a method
-of an event, state or state machine or a simple function with a nicer syntax than
-a normal bind.<o:p></o:p></span></p>
+of an event, state or state machine or a simple function with a nicer syntax
+than a normal bind.<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -17889,14 +17898,13 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>The same simple
-and composite state machines are implemented
-with Msm2 with standard frontend, the simple one also with <a
-href="EumlSimple.cpp">eUML</a>.<o:p></o:p></span></p>
+and composite state machines are implemented with
+Msm2 with standard frontend, the simple one also with eUML.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>As these simple machines need no terminate/interrupt
-states, no message queue and have no-throw guarantee on their actions, the Msm
-state machines are defined with minimum functionality.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>As these simple machines need no
+terminate/interrupt states, no message queue and have no-throw guarantee on
+their actions, the Msm state machines are defined with minimum functionality.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>VC9:<o:p></o:p></span></p>
@@ -17923,8 +17931,8 @@
Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>The
-fastest version is with eUML. It completes 47 times faster than
-Boost.Statechart. A transition costs on my Q6600 9ns.<o:p></o:p></span></p>
+fastest version is with eUML. It completes 47 times faster than Boost.Statechart.
+A transition costs on my Q6600 9ns.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>gcc 4.2.3:<o:p></o:p></span></p>
@@ -17948,12 +17956,14 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
-<h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Executable size<o:p></o:p></span></h1>
+<h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
+name="_Executable_size"></a><span lang=EN-US style='mso-ansi-language:EN-US'>Executable
+size<o:p></o:p></span></h1>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>There are some worries that Msm
-generates huge code. Is it true? It depends on the compiler. <o:p></o:p></span></p>
+generates huge code. Is it true? The 2 compilers I tested disagree with this
+claim. <o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>On VC9, the test state machines used
@@ -17965,11 +17975,12 @@
gain.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>With g++, it seems to be true, even
-though I admit not being a g++ expert. A good size state machine can generate
-an executable of 600kB, and with eUML you can get to 1.5MB. I tried with -O0 to
-–O3 and did not manage to get it smaller. I’d be happy with some
-help about how to make g++ come at a reasonable level.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>With g++ 4.3, it strongly depends on
+the compiler option (much more than VC). A good size state machine with –O3
+can generate an executable of 600kB, and with eUML you can get to 1.5MB. Now,
+trying with –Os –s I come down to 18kB and 30kB for the test state
+machines, while eUML will go down to 1MB (which is still big), so in this case
+eUML does not come for free.<o:p></o:p></span></p>
<h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
name="_Compilers"></a><span lang=EN-US style='mso-ansi-language:EN-US'>Compilers<o:p></o:p></span></h1>
@@ -18042,9 +18053,9 @@
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Compilation
times that are going to make you storm the CFO's office and make sure you get a
-shiny octocore with 8GB RAM by next week, unless he's interested in paying you watch
-the compiler agonize for hours... (Make sure you ask for dual 24" as well,
-it doesn't hurt).<o:p></o:p></span></p>
+shiny octocore with 8GB RAM by next week, unless he's interested in paying you
+watch the compiler agonize for hours... (Make sure you ask for dual 24" as
+well, it doesn't hurt).<o:p></o:p></span></p>
<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l33 level1 lfo41;
tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
@@ -18089,8 +18100,7 @@
has_exit_pseudo_states<StateType>::type>::type,<br>
<span
style='mso-spacerun:yes'>
-</span>typename ::boost::mpl::not_<typename
-is_pseudo_exit<StateType>::type>::type<br>
+</span>typename ::boost::mpl::not_<typename is_pseudo_exit<StateType>::type>::type<br>
>::type,BaseState*>::type<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -18148,9 +18158,9 @@
Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span
lang=EN-US style='mso-ansi-language:EN-US'>Typeof: While g++ and VC9 compile
-“standard” state machines in comparable times, Typeof (while in
-both ways natively supported) seems to behave in a quadratic complexity with
-VC9 and VC10.<o:p></o:p></span></p>
+“standard” state machines in comparable times, Typeof (while in both
+ways natively supported) seems to behave in a quadratic complexity with VC9 and
+VC10.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
lang=EN-US style='mso-ansi-language:EN-US'>g++ 4.x</span></u><span lang=EN-US
@@ -18363,8 +18373,8 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
lang=EN-US style='mso-ansi-language:EN-US'>Question</span></u><span lang=EN-US
-style='mso-ansi-language:EN-US'>: on_entry gets as argument, the sent event.
-What event do I get when the state becomes default-activated (because it is an
+style='mso-ansi-language:EN-US'>: on_entry gets as argument, the sent event. What
+event do I get when the state becomes default-activated (because it is an
initial state)?<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
@@ -18479,8 +18489,8 @@
"Times New Roman";mso-ansi-language:EN-US'>Explicit Entry vs Orthogonal zones<o:p></o:p></span></i></h2>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Let us try to implement the state machine
-defined in a paper from David Harel (Figure 8 in <a
+lang=EN-US style='mso-ansi-language:EN-US'>Let us try to implement the state
+machine defined in a paper from David Harel (Figure 8 in <a
href="http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf">http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf>).<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -18505,14 +18515,13 @@
disadvantages. <o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>First, we notice that
-“alarm-beeps” has an implementation visible to the outside world.
-This particularity is being used and this leads to three states with close
-names, “alarm1 beeps”, “alarm2 beeps”, “both
-beep”. If you think that this starts sounding like duplication of information,
-you are not the only one. The second point is about design and reuse. Let us
-imagine what could happen if Harel really was working for a company producing
-watches.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>First, we notice that “alarm-beeps”
+has an implementation visible to the outside world. This particularity is being
+used and this leads to three states with close names, “alarm1
+beeps”, “alarm2 beeps”, “both beep”. If you think
+that this starts sounding like duplication of information, you are not the only
+one. The second point is about design and reuse. Let us imagine what could
+happen if Harel really was working for a company producing watches.<o:p></o:p></span></p>
<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo46;
tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
@@ -18552,15 +18561,15 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Please keep in mind that these
-companies produce hundreds of slightly different products, which makes this
-quite a realistic scenario.<o:p></o:p></span></p>
+companies produce hundreds of slightly different products, which makes this quite
+a realistic scenario.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>What would be the result? New states
like “alarm3 beeps” or “three beep” + “both
beep” (backward compatibility). Maintenance would quickly become a
-nightmare. The reason? A breach of encapsulation caused by “alarm beeps”
-letting other state machines use its internals.<o:p></o:p></span></p>
+nightmare. The reason? A breach of encapsulation caused by “alarm
+beeps” letting other state machines use its internals.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Luckily, UML provides not only the
@@ -18594,7 +18603,7 @@
height:388.8pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image017.jpg" o:title="clock"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=554 height=518
-src="index-Dateien/image035.jpg" alt=clock.jpg v:shapes="Grafik_x0020_5"><![endif]></span><span
+src="index-Dateien/image018.jpg" alt=clock.jpg v:shapes="Grafik_x0020_5"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -18604,8 +18613,8 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>As you see, it is quite simple. You
-only need define an instance of Alarm in each zone. To add a new alarm is as
-simple as adding a new instance. The Alarm submachine is simply defined as:<o:p></o:p></span></p>
+only need define an instance of Alarm in each zone. To add a new alarm is as simple
+as adding a new instance. The Alarm submachine is simply defined as:<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='mso-no-proof:yes'><!--[if gte vml 1]><v:shape id="Grafik_x0020_6"
@@ -18613,7 +18622,7 @@
height:229.2pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image019.jpg" o:title="alarm"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=467 height=306
-src="index-Dateien/image036.jpg" alt=alarm.jpg v:shapes="Grafik_x0020_6"><![endif]></span><span
+src="index-Dateien/image020.jpg" alt=alarm.jpg v:shapes="Grafik_x0020_6"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -18659,11 +18668,10 @@
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>And identify each
-instance in </span><span lang=EN-US style='font-family:"Courier New";
-color:black;mso-ansi-language:EN-US'>alarmBeeps</span><span lang=EN-US
-style='color:black;mso-ansi-language:EN-US'> as Alarm<1>, Alarm<2>,
-etc.<o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>And identify each instance
+in </span><span lang=EN-US style='font-family:"Courier New";color:black;
+mso-ansi-language:EN-US'>alarmBeeps</span><span lang=EN-US style='color:black;
+mso-ansi-language:EN-US'> as Alarm<1>, Alarm<2>, etc.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -18790,8 +18798,8 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>The following UML diagram shows how
-a UML designer might want to solve the problem (note, in UML, guards are
+lang=EN-US style='mso-ansi-language:EN-US'>The following UML diagram shows how a
+UML designer might want to solve the problem (note, in UML, guards are
surrounded by “[ ]” and actions follow a “ / “):<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -18803,7 +18811,7 @@
height:471pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image021.jpg" o:title="Timer"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=594 height=628
-src="index-Dateien/image037.jpg" alt=Timer.jpg v:shapes="Grafik_x0020_7"><![endif]></span><span
+src="index-Dateien/image022.jpg" alt=Timer.jpg v:shapes="Grafik_x0020_7"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -19047,7 +19055,7 @@
height:200.4pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image023.jpg" o:title="iPodSearch"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=308 height=267
-src="index-Dateien/image038.jpg" alt=iPodSearch.jpg v:shapes="Grafik_x0020_8"><![endif]></span><span
+src="index-Dateien/image024.jpg" alt=iPodSearch.jpg v:shapes="Grafik_x0020_8"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -19057,8 +19065,8 @@
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>Foreach</span><span
lang=EN-US style='mso-ansi-language:EN-US'> sends one </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>OneSong</span><span
-lang=EN-US style='mso-ansi-language:EN-US'> event for every song of the song
-list. If </span><span lang=EN-US style='font-family:"Courier New";mso-ansi-language:
+lang=EN-US style='mso-ansi-language:EN-US'> event for every song of the song list.
+If </span><span lang=EN-US style='font-family:"Courier New";mso-ansi-language:
EN-US'>StringFind</span><span lang=EN-US style='mso-ansi-language:EN-US'> finds
the user-provided letters in the song, it sends a </span><span lang=EN-US
style='font-family:"Courier New";mso-ansi-language:EN-US'>Found</span><span
@@ -19173,10 +19181,8 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span
-style='mso-spacerun:yes'> </span><span
-style='color:#030003'>process2_</span>(<span style='color:#030003'>OneSong</span>(),<span
+style='mso-spacerun:yes'>
+</span><span style='color:#030003'>process2_</span>(<span style='color:#030003'>OneSong</span>(),<span
style='color:#030003'>*</span>(<span style='color:#030003'>State_</span><<span
style='color:#030003'>m_src_it</span>>()++)) ),<o:p></o:p></span></p>
@@ -19200,8 +19206,8 @@
lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>We define one attribute in Foreach, an
-iterator on the Input list. <o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>We define one attribute in Foreach,
+an iterator on the Input list. <o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>Entry:<o:p></o:p></span></p>
@@ -19219,13 +19225,14 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><span
-style='mso-spacerun:yes'> </span>Fsm_ refers to the current state machine
-containing Input and Result lists.<o:p></o:p></span></p>
+style='mso-spacerun:yes'> </span>Fsm_ refers to the current state
+machine containing Input and Result lists.<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><span
-style='mso-spacerun:yes'>
-</span>Fsm_<m_src_container> refers to the Input list.<o:p></o:p></span></p>
+style='mso-spacerun:yes'> </span><span
+style='mso-spacerun:yes'> </span>Fsm_<m_src_container>
+refers to the Input list.<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'><span
@@ -19300,19 +19307,18 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span
-style='mso-spacerun:yes'> </span><span
-style='color:#030003'>NoAction</span>(), <o:p></o:p></span></p>
+style='mso-spacerun:yes'>
+</span><span style='color:#030003'>NoAction</span>(), <o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span style='color:#030003'>attributes_</span> << <span
-style='color:#030003'>string</span>()<span style='color:green'>/*m_letters*/</span>
-)) <o:p></o:p></span></p>
+style='mso-spacerun:yes'>
+</span><span
+style='mso-spacerun:yes'> </span><span
+style='color:#030003'>attributes_</span> << <span style='color:#030003'>string</span>()<span
+style='color:green'>/*m_letters*/</span> )) <o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
@@ -19479,8 +19485,8 @@
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
-mso-ansi-language:EN-US;mso-no-proof:yes'><span style='mso-spacerun:yes'>
-</span><span style='mso-spacerun:yes'> </span><span
+mso-ansi-language:EN-US;mso-no-proof:yes'><span
+style='mso-spacerun:yes'> </span><span
style='color:green'>//<span style='mso-spacerun:yes'>
</span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
@@ -19488,8 +19494,10 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span>) ) ) <span style='color:#030003'>transition_table</span>;<o:p></o:p></span></p>
+style='mso-spacerun:yes'>
+</span><span
+style='mso-spacerun:yes'> </span>) ) ) <span
+style='color:#030003'>transition_table</span>;<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -19511,10 +19519,9 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span style='mso-spacerun:yes'> </span><span
-style='color:#030003'>init_</span> << <span style='color:#030003'>Foreach</span>(),
-<span style='color:green'>// Init<o:p></o:p></span></span></p>
+style='mso-spacerun:yes'>
+</span><span style='color:#030003'>init_</span> << <span
+style='color:#030003'>Foreach</span>(), <span style='color:green'>// Init<o:p></o:p></span></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -19528,9 +19535,10 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span style='color:#030003'>NoAction</span>(), <span style='color:green'>//
-Exit<o:p></o:p></span></span></p>
+style='mso-spacerun:yes'>
+</span><span
+style='mso-spacerun:yes'> </span><span
+style='color:#030003'>NoAction</span>(), <span style='color:green'>// Exit<o:p></o:p></span></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -19546,20 +19554,19 @@
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span
-style='mso-spacerun:yes'> </span><<
-<span style='color:#030003'>vector</span><<span style='color:#030003'>OneSong</span>>()
-<span style='color:green'>/*m_tgt_container*/</span>, <span style='color:green'>//
-result<o:p></o:p></span></span></p>
+style='mso-spacerun:yes'>
+</span><< <span style='color:#030003'>vector</span><<span
+style='color:#030003'>OneSong</span>>() <span style='color:green'>/*m_tgt_container*/</span>,
+<span style='color:green'>// result<o:p></o:p></span></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>
-</span><span style='color:#030003'>flags_</span><< <span
-style='color:#030003'>no_flags_</span>,<o:p></o:p></span></p>
+style='mso-spacerun:yes'>
+</span><span
+style='mso-spacerun:yes'> </span><span
+style='color:#030003'>flags_</span><< <span style='color:#030003'>no_flags_</span>,<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -19589,8 +19596,8 @@
mso-ansi-language:EN-US'>Annex A Debugging<o:p></o:p></span></h1>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Normally, one does not need to know
-the ids generated for all the states of a state machine, unless for debugging
+lang=EN-US style='mso-ansi-language:EN-US'>Normally, one does not need to know the
+ids generated for all the states of a state machine, unless for debugging
purposes, like the </span><span lang=EN-US style='font-family:"Courier New";
mso-ansi-language:EN-US'>pstate</span><span lang=EN-US style='mso-ansi-language:
EN-US'> function does in the tutorials in order to display the name of the
@@ -19612,7 +19619,7 @@
height:384.6pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="index-Dateien/image025.jpg" o:title="AnnexA"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=798 height=513
-src="index-Dateien/image039.jpg" alt=AnnexA.jpg v:shapes="Grafik_x0020_9"><![endif]></span><span
+src="index-Dateien/image026.jpg" alt=AnnexA.jpg v:shapes="Grafik_x0020_9"><![endif]></span><span
lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
line-break'>
<o:p></o:p></span></p>
@@ -19679,11 +19686,11 @@
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>What would you need for a coverage
-tool? You'd probably need to know how many states are defined in the state
-machine, and how many events can be fired. This way you could log the fired
-events and the states visited in the life of a concrete machine and be able to
-perform some coverage analysis, like “fired 65% of all possible events
-and visited 80% of the states defined in the state machine”.<o:p></o:p></span></p>
+tool? You'd probably need to know how many states are defined in the state machine,
+and how many events can be fired. This way you could log the fired events and
+the states visited in the life of a concrete machine and be able to perform
+some coverage analysis, like “fired 65% of all possible events and
+visited 80% of the states defined in the state machine”.<o:p></o:p></span></p>
<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
lang=EN-US style='mso-ansi-language:EN-US'>To achieve this, Msm provides a few
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk