|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r57822 - in sandbox/msm/libs/msm/doc: . index-Dateien
From: christophe.j.henry_at_[hidden]
Date: 2009-11-20 15:45:03
Author: chenry
Date: 2009-11-20 15:45:02 EST (Fri, 20 Nov 2009)
New Revision: 57822
URL: http://svn.boost.org/trac/boost/changeset/57822
Log:
fixed no_transition doc error
Text files modified:
sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml | 2
sandbox/msm/libs/msm/doc/index.htm | 630 +++++++++++++++++++--------------------
2 files changed, 313 insertions(+), 319 deletions(-)
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-20 15:45:02 EST (Fri, 20 Nov 2009)
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<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
+<ds:datastoreItem ds:itemID="{6361FD76-1A79-4CC6-9F4B-E43CA6B60F5E}" 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-20 15:45:02 EST (Fri, 20 Nov 2009)
@@ -23,15 +23,15 @@
<o:Author>Christophe</o:Author>
<o:Template>Normal</o:Template>
<o:LastAuthor>Christophe</o:LastAuthor>
- <o:Revision>280</o:Revision>
+ <o:Revision>283</o:Revision>
<o:Created>2009-09-03T20:17:00Z</o:Created>
- <o:LastSaved>2009-11-15T22:56:00Z</o:LastSaved>
+ <o:LastSaved>2009-11-20T20:29:00Z</o:LastSaved>
<o:Pages>39</o:Pages>
- <o:Words>18953</o:Words>
- <o:Characters>119404</o:Characters>
+ <o:Words>18955</o:Words>
+ <o:Characters>119422</o:Characters>
<o:Lines>995</o:Lines>
<o:Paragraphs>276</o:Paragraphs>
- <o:CharactersWithSpaces>138081</o:CharactersWithSpaces>
+ <o:CharactersWithSpaces>138101</o:CharactersWithSpaces>
<o:Version>12.00</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
@@ -1785,7 +1785,8 @@
font-weight:bold;
font-style:italic;}
a:link, span.MsoHyperlink
- {mso-style-priority:99;
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
@@ -4998,7 +4999,7 @@
<meta name=CHANGEDBY content=xtoff>
<meta name=CHANGEDBY content=xtoff>
<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="41986"/>
+ <o:shapedefaults v:ext="edit" spidmax="43010"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
@@ -5504,8 +5505,8 @@
to describe a state machine. Msm now proudly offers as a frontend actions made
of functors instead of actions methods and a new Domain-Specific-Embedded
Language for UML-like description of transition tables named eUML. This
-frontend also allows writing actions and guards directly in the transition table
-or state definition, without the need to define extra functions.<o:p></o:p></span></p>
+frontend also allows writing actions and guards directly in the transition
+table or state definition, without the need to define extra functions.<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>Msm
was designed with the idea of helping developers build software the
@@ -5516,9 +5517,9 @@
structure definition (states, transitions, etc.) and there is little help for
actually writing the actions, guards and stat actions. Msm now brings MDD
further by providing a new functional language for the definition of actions
-and guards directly in the transition table. Functional languages have
-interesting properties, one of which is relevant to MDD, the ability to be
-easily graphically represented.<o:p></o:p></span></p>
+and guards directly in the transition table. Functional languages have interesting
+properties, one of which is relevant to MDD, the ability to be easily
+graphically represented.<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
a UML diagram, a transition is represented as:<o:p></o:p></span></p>
@@ -5560,9 +5561,9 @@
(Action1(),Action2())<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>UML
-designers are also used to write pseudo-code in the action methods, like
-++counter. This is now also possible, along with most of the STL algorithms or
-container methods.<o:p></o:p></span></p>
+designers are also used to write pseudo-code in the action methods, like ++counter.
+This is now also possible, along with most of the STL algorithms or container
+methods.<o:p></o:p></span></p>
<p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>To
achieve this, eUML also acts like a compile-time boost::phoenix adapted to the
@@ -5816,9 +5817,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>
@@ -6551,8 +6552,9 @@
<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"
@@ -6764,34 +6766,29 @@
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'>// Replaces the
-default no-transition response.</span></code><span lang=EN-US style='mso-ansi-language:
+style='font-size:10.0pt;color:green;mso-ansi-language:EN-US'>// Replaces the default
+no-transition response.</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</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'>class</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'>Event</span></code><code><span
-lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>></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'>int</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'>no_transition</span></code><code><span
-lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>(</span></code><code><span
+<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";
+color:blue;mso-ansi-language:EN-US;mso-no-proof:yes'>template</span><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='color:blue'>class</span> <span style='color:#030003'>FSM</span>,<span
+style='color:blue'>class</span> <span style='color:#030003'>Event</span>> </span><code><span
lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>int</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'>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='font-size:10.0pt;color:#030003;mso-ansi-language:EN-US'>Event</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'>const</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'>e</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'>no_transition</span></code><code><span
+lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'>(</span></code><span
+lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
+"Times New Roman";color:#030003;mso-ansi-language:EN-US;mso-no-proof:yes'>Event</span><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='color:blue'>const</span>& <span style='color:#030003'>e</span>, <span
+style='color:#030003'>FSM</span>&,<span style='color:blue'>int</span> <span
+style='color:#030003'>state</span></span><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;
color:black;mso-ansi-language:EN-US'>...}</span></code><span lang=EN-US
style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
@@ -6911,7 +6908,8 @@
<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>
@@ -6939,8 +6937,9 @@
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
@@ -7176,15 +7175,15 @@
<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>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>This tutorial will
-demonstrate the use of three more features that UML defines: Othogonal regions,
-deferring of events and terminate States.<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>This tutorial will demonstrate
+the use of three more features that UML defines: Othogonal regions, deferring
+of events and terminate States.<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>It is a very common problem
in many state machines to have to handle errors. It usually involves defining a
@@ -7217,9 +7216,9 @@
<p><span lang=EN-US style='mso-ansi-language:EN-US'>Usually, when you get an
error, you do not want other events to be handled. To achieve this, we use
-another UML feature, terminate states. When any region moves to a terminate
-state, the state machine “terminates” (the state machine and all
-its states stay alive) and all further events are ignored.<o:p></o:p></span></p>
+another UML feature, terminate states. When any region moves to a terminate state,
+the state machine “terminates” (the state machine and all its
+states stay alive) and all further events are ignored.<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>This is of course not
mandatory, one can use orthogonal regions without terminate states.<o:p></o:p></span></p>
@@ -7234,8 +7233,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>
@@ -7331,8 +7330,8 @@
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>
+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>
@@ -7448,9 +7447,9 @@
<p><span lang=EN-US style='mso-ansi-language:EN-US'>As explained in the <a
href="MsmSession_Handout.pdf">BoostCon09 paper</a>, Histories are weird. First,
-there can be just one. And they can have only one out transition, so if you
-have orthogonal regions, you are out of luck. They also replace the initial
-state symbol. And if you have deep policy, things become much worse because you
+there can be just one. And they can have only one out transition, so if you have
+orthogonal regions, you are out of luck. They also replace the initial state
+symbol. And if you have deep policy, things become much worse because you
cannot easily draw a line into a submachine. To make it worse, they are not
exactly object-oriented as a on the picture, a transition should have been
drawn directly into Playing, with the History as target.<o:p></o:p></span></p>
@@ -7493,8 +7492,8 @@
"Courier New";mso-ansi-language:EN-US'>Playing</span><span lang=EN-US
style='mso-ansi-language:EN-US'> state machine gets activated by the </span><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>end_pause</span><span
-lang=EN-US style='mso-ansi-language:EN-US'> event and only this one (or any
-other event added to the mpl::vector). If the state machine was in the </span><span
+lang=EN-US style='mso-ansi-language:EN-US'> event and only this one (or any other
+event added to the mpl::vector). If the state machine was in the </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'> state and the event </span><span
lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>play</span><span
@@ -7525,12 +7524,12 @@
<p><span lang=EN-US style='mso-ansi-language:EN-US'>Flags.cpp<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>This tutorial is devoted to
-a concept not defined in UML: flags. It has been added into Msm after proving itself
-useful on many occasions. Please, do not be frightened as we are not talking
-about ugly shortcuts made of an improbable collusion of Booleans.<o:p></o:p></span></p>
+a concept not defined in UML: flags. It has been added into Msm after proving
+itself useful on many occasions. Please, do not be frightened as we are not
+talking about ugly shortcuts made of an improbable collusion of Booleans.<o:p></o:p></span></p>
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>So what is it and what is
-its use?<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>So what is it and what is its
+use?<o:p></o:p></span></p>
<p><span lang=EN-US style='mso-ansi-language:EN-US'>If you look into the
Boost.Statechart documentation you'll find some code like:<o:p></o:p></span></p>
@@ -7568,8 +7567,8 @@
style='color:blue'>Playing</span> * >() != 0 ) )<o:p></o:p></span></pre>
<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'>Or flag these 4 states as
-CDLoaded-able. You can do it like this:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Or flag these 4 states as CDLoaded-able.
+You can do it like this:<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'>typedef</span></code><code><span
@@ -7634,9 +7633,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
@@ -7694,8 +7693,8 @@
<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
@@ -7755,8 +7754,7 @@
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>
@@ -7889,8 +7887,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>
@@ -8010,8 +8008,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";
@@ -8167,9 +8165,9 @@
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%"
@@ -8255,9 +8253,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>
@@ -8296,9 +8294,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>
@@ -8454,8 +8452,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
@@ -8543,9 +8541,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'>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>
+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>
<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,
@@ -8704,14 +8702,14 @@
Msm v2.0 but made obsolete by the fact that every guard/action/entry
action/exit action get the state machine passed as argument.<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'><i
-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.
-Basically, a state needs to change its declaration to:<o:p></o:p></span></i></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'>All of the states defined in the
+state machine are created upon state machine construction. 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. Basically, a state needs to
+change its declaration to:<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'><code><i
style='mso-bidi-font-style:normal'><span lang=EN-US style='font-size:10.0pt;
@@ -8837,9 +8835,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'><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
+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
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>
@@ -8954,8 +8952,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
@@ -9124,9 +9122,9 @@
color:black;mso-ansi-language:EN-US'>process_event</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'>can
-execute up to 4 times faster. On a Q6600, an average transition execution lasts
-45ns with a full state machine, 10ns in the minimal case.</span></code><span
+font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>can execute
+up to 4 times faster. On a Q6600, an average transition execution lasts 45ns
+with a full state machine, 10ns in the minimal case.</span></code><span
lang=EN-US style='mso-ansi-language:EN-US'><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
@@ -9164,9 +9162,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
@@ -9229,8 +9227,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
@@ -9321,11 +9319,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>
@@ -10025,9 +10023,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
@@ -10074,8 +10072,7 @@
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'>void</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>&
@@ -10118,9 +10115,8 @@
"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
@@ -10151,8 +10147,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
@@ -10199,10 +10195,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='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
@@ -10265,8 +10260,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
@@ -10537,8 +10532,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>
@@ -10575,8 +10570,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
@@ -10655,10 +10650,9 @@
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
@@ -10741,8 +10735,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";
@@ -10853,9 +10847,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
@@ -11320,10 +11314,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:
@@ -11923,9 +11917,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'>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>
@@ -12231,8 +12224,7 @@
<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
@@ -12264,8 +12256,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:
@@ -12544,12 +12536,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
@@ -12998,7 +12990,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'>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'>
@@ -13134,7 +13127,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'>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;
@@ -13356,8 +13350,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><span
- style='mso-spacerun:yes'> </span>--Source_<0>())<o:p></o:p></span></p>
+ 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>
@@ -13479,8 +13473,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;
@@ -13503,8 +13497,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";
@@ -13621,8 +13615,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;
@@ -13715,8 +13709,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;
@@ -13745,9 +13739,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";
@@ -13937,9 +13931,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;
@@ -14250,12 +14244,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
@@ -14316,8 +14310,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>
@@ -14378,15 +14372,14 @@
<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
@@ -14488,8 +14481,7 @@
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:
@@ -15522,8 +15514,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;
@@ -16274,8 +16266,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'>
@@ -16527,8 +16519,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'>
@@ -16598,8 +16590,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'>
@@ -16982,8 +16974,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;
@@ -17004,8 +16996,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'>
@@ -17039,8 +17031,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'>
@@ -17072,8 +17064,7 @@
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'>
@@ -17084,8 +17075,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;
@@ -17145,8 +17136,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'>
@@ -17180,8 +17171,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'>
@@ -17288,8 +17279,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>
@@ -17302,7 +17293,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_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;
@@ -17361,8 +17353,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>
@@ -17399,8 +17391,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'>
@@ -17485,8 +17477,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_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;
@@ -17511,8 +17502,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'>
@@ -17580,13 +17571,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
@@ -17708,13 +17699,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='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='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;
@@ -17799,8 +17790,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>
@@ -17898,13 +17889,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'>The same simple
-and composite state machines are implemented with
-Msm2 with standard frontend, the simple one also with eUML.<o:p></o:p></span></p>
+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>
<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>
@@ -17931,8 +17923,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>
@@ -17976,11 +17968,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'>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>
+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>
@@ -18158,9 +18150,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
@@ -18373,8 +18365,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
@@ -18613,8 +18605,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"
@@ -18668,10 +18660,11 @@
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>
@@ -18798,8 +18791,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
@@ -19065,8 +19058,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
@@ -19181,8 +19174,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'>process2_</span>(<span style='color:#030003'>OneSong</span>(),<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='color:#030003'>*</span>(<span style='color:#030003'>State_</span><<span
style='color:#030003'>m_src_it</span>>()++)) ),<o:p></o:p></span></p>
@@ -19206,8 +19201,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>
@@ -19225,14 +19220,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'><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><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>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
@@ -19307,18 +19301,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='color:#030003'>NoAction</span>(), <o:p></o:p></span></p>
+style='mso-spacerun:yes'>
+</span><span
+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='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='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:
@@ -19485,8 +19480,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
+mso-ansi-language:EN-US;mso-no-proof:yes'><span style='mso-spacerun:yes'>
+</span><span style='mso-spacerun:yes'> </span><span
style='color:green'>//<span style='mso-spacerun:yes'>
</span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
@@ -19494,10 +19489,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'>transition_table</span>;<o:p></o:p></span></p>
+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
@@ -19519,9 +19512,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'>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='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
@@ -19535,10 +19529,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'>NoAction</span>(), <span style='color:green'>// Exit<o:p></o:p></span></span></p>
+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
@@ -19554,19 +19547,20 @@
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'>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='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='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='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
@@ -19596,8 +19590,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
@@ -19686,11 +19680,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