Boost Exception

Configuration

Boost Exception responds to the following configuration macros:

BOOST_NO_RTTI/BOOST_NO_TYPEID

The first macro prevents Boost Exception from using dynamic_cast and dynamic typeid. If the second macro is also defined, Boost Exception does not use static typeid either. Defining either macro does not have an observable degrading effect on the library functionality, except for the following:

By default, the get_error_info function template can be called with any exception type. If BOOST_NO_RTTI is defined, get_error_info can be used only with objects of type boost::exception.

Note: the configuration where BOOST_NO_RTTI is defined but BOOST_NO_TYPEID is not defined is specific for MSVC compilers; it reduces RTTI overhead without fully disabling std::type_info. For most (all?) other compilers, to use Boost Exception without RTTI, both BOOST_NO_RTTI and BOOST_NO_TYPEID must be defined.

BOOST_EXCEPTION_DISABLE

By default, enable_current_exception and enable_error_info are integrated directly in the throw_exception function. Defining BOOST_EXCEPTION_DISABLE disables this integration.

Note that on some non-conformant compilers, for example MSVC 7.0 and older, as well as BCC, BOOST_EXCEPTION_DISABLE is implicitly defined in boost/throw_exception.hpp.