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

The Boost Statechart Library - Configuration

Boost , ,

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

The Boost Statechart Library

Configuration

General configuration
Introduction
Debug mode compilation options
Release mode compilation options
Application Defined Macros

General configuration

Introduction

Библиотека использует несколько макросов конфигурации в , а также два макроса конфигурации, предназначенные для предоставления приложением. Кроме того, два общедоступных варианта компилятора также влияют на доступные функции.

Debug mode compilation options

  • C++ RTTI должен быть включен (используется различными утверждениями)
  • Обработка исключений C++ может быть включена или выключена. При выключении поддержка обработки ошибок библиотекибольше не доступна.

Release mode compilation options

  • C++ RTTI можно включать или выключать. При выключении использованиеstate_cast<>()приводит к ошибке времени компиляции (state_downcast<>()все еще доступно). Кроме того,BOOST_STATECHART_USE_NATIVE_RTTIне должно быть определено одновременно.
  • Обработка исключений C++ может быть включена или выключена. При выключении поддержка обработки ошибок библиотекибольше не доступна.

Application Defined Macros

Следующие макросы могут быть определены приложением, использующим библиотеку:

Macro Meaning
BOOST_STATECHART_USE_NATIVE_RTTI When defined, the library no longer uses its own speed-optimized RTTI implementation. Instead, native C++ RTTI is employed (see RTTI customization in the performance document for more information). This has the following effects:
  • state_machine::state_base_typeстановится полиморфным типом. То есть, когдаtypeidприменяется кstate_machine::state_base_typeссылке, результат относится кtype_infoобъекту, представляющему тип наиболее производного типа состояния.
  • Информация о типе пользовательского состояниябольше не доступна
  • Все государства должны хранить на один указатель меньше, что приводит к сокращению объема памяти машины в лучшем случае примерно на 15%.
  • В большинстве случаев скорость отправки снижается. Это связано с тем, что нативные значения C++ RTTI извлекаются через дополнительное опосредование практически на всех платформах. См.Компромиссы скорости и масштабируемостив документе об исполнении для сроков
BOOST_STATECHART_RELAX_TRANSITION_CONTEXT When defined, the sequence of actions that are called during a transition is relaxed. That is, its is no longer necessary that all states up to the innermost common context are exited before the transition action is called (as mandated by the UML standard). Instead, the transition action can be a member of either the transition source or any direct or indirect outer context and is called as soon as all possibly active inner states have been exited. Then all remaining active states up to the innermost common context are exited before entering all states down to the transition destination

Оба макроса должны быть последовательно определены или не определены для всех блоков перевода, которые позже связаны в один и тот же исполняемый файл. Невыполнение этого требования неизбежно приведет к нарушениям ПДР. В зависимости от компилятора и технологии линкера такие нарушения могут проявляться или не проявляться в ошибках времени ссылки.

Valid HTML 4.01 Transitional

Пересмотрено 05 января 2008 года

Copyright © 2003-2008 Andreas Huber Dönni

Распространяется в соответствии с Лицензией на программное обеспечение Boost версии 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресу http://www.boost.org/LICENSE_1_0.txt)

Статья The Boost Statechart Library - Configuration раздела может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: ::


реклама


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

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