ブースト msm ですべての状態 (アクティブな状態だけでなく) にアクセスする方法はありますか? たとえば、状態に配置されたすべての UI コントロールは、状態がアクティブかどうかに関係なく、サイズ変更イベントでサイズ変更する必要があります。
更新: 少し明確にさせてください。ステート マシンによって作成されたすべてのオブジェクト状態を介して、ある種のイテレータが必要です。
更新 #2: 以下は例です。すべての状態のサイズ変更メソッドを呼び出す必要があります。
struct EventOne {};
struct EventTwo {};
struct StateOne : public state<> {
void resize() { }
};
struct StateTwo : public state<> {
void resize() { }
};
struct MyFsm : public state_machine_def<MyFsm> {
typedef int no_exception_thrown;
typedef StateOne initial_state;
struct transition_table : boost::mpl::vector<
// Start, Event, Next, Action, Guard
Row< StateOne, EventOne, StateTwo, none, none >,
Row< StateTwo, EventTwo, StateOne, none, none >
> {
};
};
typedef boost::msm::back::state_machine<MyFsm> Fsm;