Знаете ли вы, есть ли какая-либо возможность с Qt StateMachine Framework применять правила компоновки, такие как «это состояние не должно предшествовать этому типу состояния» и т. Д. Предпочтительно во время компиляции.
Пример:
QStateMachine machine;
QState *checked = new QState();
QState *prepared = new QState();
QState *loaded = new QState();
QState *synced = new QState();
checked->addTransition(thread, SIGNAL(prepared()), prepared);
prepared->addTransition(thread, SIGNAL(loaded()), loaded);
loaded->addTransition(thread, SIGNAL(prepared()), prepared); // <- for example compile-time error, should not allow prepared after loaded
Я знаю, что определение конечного автомата — это «набор правил» для исполнения. Это просто для минимизации ошибок копирования и вставки и других нарушений при повторном использовании состояний и конечных автоматов и получения ранней обратной связи.
Задача ещё не решена.
Других решений пока нет …