sl@0: #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED
sl@0: #define BOOST_THROW_EXCEPTION_HPP_INCLUDED
sl@0: 
sl@0: // MS compatible compilers support #pragma once
sl@0: 
sl@0: #if defined(_MSC_VER) && (_MSC_VER >= 1020)
sl@0: # pragma once
sl@0: #endif
sl@0: 
sl@0: //
sl@0: //  boost/throw_exception.hpp
sl@0: //
sl@0: //  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
sl@0: //
sl@0: // Distributed under the Boost Software License, Version 1.0. (See
sl@0: // accompanying file LICENSE_1_0.txt or copy at
sl@0: // http://www.boost.org/LICENSE_1_0.txt)
sl@0: //
sl@0: //  http://www.boost.org/libs/utility/throw_exception.html
sl@0: //
sl@0: 
sl@0: #include <boost/config.hpp>
sl@0: 
sl@0: #ifdef BOOST_NO_EXCEPTIONS
sl@0: # include <exception>
sl@0: #endif
sl@0: 
sl@0: namespace boost
sl@0: {
sl@0: 
sl@0: #ifdef BOOST_NO_EXCEPTIONS
sl@0: 
sl@0: void throw_exception(std::exception const & e); // user defined
sl@0: 
sl@0: #else
sl@0: 
sl@0: template<class E> inline void throw_exception(E const & e)
sl@0: {    
sl@0: //Adding this #if statement for WINSCW because currently winscw compiler does not support catching of const exception by non const catch blocks
sl@0: //Once compiler starts supporting, this #if statement needs to be removed
sl@0: #if ( defined __WINSCW__)
sl@0:     E a = e;
sl@0:     throw a;
sl@0: #else
sl@0:     throw e;
sl@0: #endif
sl@0: }
sl@0: 
sl@0: #endif
sl@0: 
sl@0: } // namespace boost
sl@0: 
sl@0: #endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED