1 //Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #ifndef UUID_CE6983AC753411DDA764247956D89593
7 #define UUID_CE6983AC753411DDA764247956D89593
9 #include <boost/config.hpp>
10 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
11 #include <boost/type_traits/is_nothrow_move_constructible.hpp>
16 #if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
17 #pragma GCC system_header
19 #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
20 #pragma warning(push,1)
34 virtual std::string name_value_string() const = 0;
35 virtual error_info_base * clone() const = 0;
38 ~error_info_base() BOOST_NOEXCEPT_OR_NOTHROW
44 template <class Tag,class T>
47 public exception_detail::error_info_base
49 exception_detail::error_info_base *
52 return new error_info<Tag,T>(*this);
56 error_info( value_type const & v ):
60 #if (__GNUC__*100+__GNUC_MINOR__!=406) //workaround for g++ bug
61 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
62 error_info( error_info const & x ):
66 error_info( T && v ) BOOST_NOEXCEPT_IF(boost::is_nothrow_move_constructible<T>::value):
70 error_info( error_info && x ) BOOST_NOEXCEPT_IF(boost::is_nothrow_move_constructible<T>::value):
76 ~error_info() BOOST_NOEXCEPT_OR_NOTHROW
90 error_info & operator=( error_info const & );
91 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
92 error_info & operator=( error_info && x );
94 std::string name_value_string() const;
99 #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)