void <spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span>( std::exception const & e ); // user defined
#else
template <class E>
void <spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span>( E const & e );
#endif</span>
}</pre>
</div><h4>Requirements:</h4>
<p>E must derive publicly from std::exception.</p>
<h4>Effects:</h4>
<div><ul><li> If BOOST_NO_EXCEPTIONS is not defined, boost::<spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span>(e) is equivalent to throw boost::<spanclass="RenoLink"><ahref="enable_current_exception.html">enable_current_exception</a></span>(boost::<spanclass="RenoLink"><ahref="enable_error_info.html">enable_error_info</a></span>(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::<spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span>(e) is equivalent to throw e;</li>
<li> If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span> are allowed to assume that the function never returns; therefore, if the user-defined <spanclass="RenoLink"><ahref="throw_exception.html">throw_exception</a></span> returns, the behavior is undefined.</li>