throw_exception.hpp

The header <boost/throw_exception.hpp> defines the
helper function boost::throw_exception. It is intended to be
used in Boost libraries that need to throw exceptions, but support
configurations and platforms where exceptions aren't available, as indicated by
the presence of the BOOST_NO_EXCEPTIONS
configuration macro.

When BOOST_NO_EXCEPTIONS is not defined, boost::throw_exception(e)
is equivalent to throw e. Otherwise, the function is left undefined,
and the user is expected to supply an appropriate definition. Callers of throw_exception
are allowed to assume that the function never returns; therefore, if the
user-defined throw_exception returns, the behavior is undefined.