Chris@102: //Copyright (c) 2006-2013 Emil Dotchevski and Reverge Studios, Inc. Chris@102: Chris@102: //Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@102: //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@102: Chris@102: #ifndef UUID_9011016A11A711E3B46CD9FA6088709B Chris@102: #define UUID_9011016A11A711E3B46CD9FA6088709B Chris@102: #if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) Chris@102: #pragma GCC system_header Chris@102: #endif Chris@102: #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) Chris@102: #pragma warning(push,1) Chris@102: #endif Chris@102: Chris@102: #include Chris@102: #include Chris@102: Chris@102: namespace Chris@102: boost Chris@102: { Chris@102: //Here we're using the boost::error_info machinery to store the info in the exception Chris@102: //object. Within the context of N3757, this is strictly an implementation detail. Chris@102: Chris@102: template Chris@102: inline Chris@102: void Chris@102: exception:: Chris@102: set( typename Tag::type const & v ) Chris@102: { Chris@102: exception_detail::set_info(*this,error_info(v)); Chris@102: } Chris@102: Chris@102: template Chris@102: inline Chris@102: typename Tag::type const * Chris@102: exception:: Chris@102: get() const Chris@102: { Chris@102: return get_error_info >(*this); Chris@102: } Chris@102: } Chris@102: Chris@102: #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) Chris@102: #pragma warning(pop) Chris@102: #endif Chris@102: #endif