Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Generated state ids

Boost , Meta State Machine (MSM) , Chapter 6. Internals

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Generated state ids

Обычно не нужно знать, что идентификаторы генерируются для всех состояний машины состояния, если только для целей отладки, как функция состояния делает в учебниках, чтобы отображать имя текущего состояния. В этом разделе будет показано, как автоматически отображать имена, генерируемые шрифтом, но они не очень читаемы на всех платформах, поэтому он может помочь узнать, как генерируются идентификаторы. Идентификаторы генерируются с использованием таблицы перехода от “Start” столбца вверх донизу, затем от “Next” столбца вниз, как показано на следующем изображении:

Stopped получит id 0, Open id 1, ErrorMode id 6 и SleepMode (видны только в “Next” столбец) id 7. Если у вас есть некоторые неявно созданные состояния, такие как начальные состояния без перехода или состояния, созданные с использованием явного_creation typedef, они будут добавлены в качестве источника в конце таблицы перехода. Если у вас есть состояния подмашины, в конце таблицы будет добавлена строка после автоматически или явно созданных состояний, которые могут изменить их идентификатор. Следующая помощь, которая вам понадобится для отладки, будет называть текущий метод состояния класса state_machine, а затем помощник типа display_type для создания читаемого имени из идентификатора. Если вы не хотите проходить через таблицу перехода для заполнения массива имен, библиотека предоставляет другого помощника, заполните_state_names, который, учитывая массив достаточного размера (см. следующий раздел, чтобы узнать, сколько состояний определено в машине состояний), заполнит его сгенерированными шрифтом именами.

Статья Generated state ids раздела Meta State Machine (MSM) Chapter 6. Internals может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 6. Internals ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:36:30/0.0080859661102295/1