PureFSM
pure::guard_none_of< Guard, Guards > Struct Template Reference

Guard negation. More...

+ Inheritance diagram for pure::guard_none_of< Guard, Guards >:
+ Collaboration diagram for pure::guard_none_of< Guard, Guards >:

Detailed Description

template<class Guard, class... Guards>
struct pure::guard_none_of< Guard, Guards >

Guard negation.

Template Parameters
Guardthe first guard of a set
Guards...the rest guards

Allows to specify a set of guards, that are not allowed to match the transition. Must contain at least one guard. Guard negation means that the transition is matched, if the current guard is any, except the negated guards.

Be aware that State Machine does not check, if the union of negation sets is not strictly included in the set of all guards. E.g, there are two transitions with negated guard sets, \(T_1 = \{a_1, ..., a_n\}\) and \(T_2 = \{b_1, ..., b_n\}\), \(T_1 \cap T_2 = \emptyset\). The whole guard set is \(G\), and \(T_1 \in G, T_2 \in G\).

In case if \(T_1 \cup T_2 \neq G\), i.e there is at least one guard that is not included in both sets, \(G - (T_1 \cup T_2) = D, D \neq \emptyset\), the behaviour is undefined. If the current guard \(g_c \in D\), then it is matched to both transitions.


The documentation for this struct was generated from the following file: