|
The Boost Statechart LibraryConfiguration |
The library uses several configuration macros in <boost/config.hpp>, as well as two configuration macros meant to be supplied by the application. Moreover, two commonly available compiler options also have an impact on the available features.
state_cast<>()
leads to a compile time error (state_downcast<>()
is still available). Moreover, BOOST_STATECHART_USE_NATIVE_RTTI
must
not be defined simultaneouslyThe following macros may be defined by an application using the library:
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 Rationale for more information).
This has the following effects:
|
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 |
Both macros need to be consistently defined or undefined for all translation units that are later linked into the same executable. Not doing so will inevitably lead to ODR violations. Depending on compiler and linker technology such violations may or may not manifest themselves in link-time errors.
By default, this compiler has argument dependent lookup disabled. ADL must
be enabled to compile the library without errors. To enable ADL, /Qoption,c,--arg_dep_lookup
must be added to the compiler command line. See
<boost/config/compiler/intel.hpp>
for more information.
Revised 10 May, 2005
© Copyright Andreas Huber Dönni 2003-2005. The link refers to a spam honeypot. Please remove the words spam and trap to obtain my real address.
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)