82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
 | 
						|
 | 
						|
//Distributed under the Boost Software License, Version 1.0. (See accompanying
 | 
						|
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
 | 
						|
#ifndef UUID_C3E1741C754311DDB2834CCA55D89593
 | 
						|
#define UUID_C3E1741C754311DDB2834CCA55D89593
 | 
						|
#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
 | 
						|
#pragma GCC system_header
 | 
						|
#endif
 | 
						|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
 | 
						|
#pragma warning(push,1)
 | 
						|
#endif
 | 
						|
 | 
						|
#include <boost/core/typeinfo.hpp>
 | 
						|
#include <boost/core/demangle.hpp>
 | 
						|
#include <boost/current_function.hpp>
 | 
						|
#include <boost/config.hpp>
 | 
						|
#include <string>
 | 
						|
 | 
						|
namespace
 | 
						|
boost
 | 
						|
    {
 | 
						|
    template <class T>
 | 
						|
    inline
 | 
						|
    std::string
 | 
						|
    tag_type_name()
 | 
						|
        {
 | 
						|
#ifdef BOOST_NO_TYPEID
 | 
						|
        return BOOST_CURRENT_FUNCTION;
 | 
						|
#else
 | 
						|
        return core::demangle(typeid(T*).name());
 | 
						|
#endif
 | 
						|
        }
 | 
						|
 | 
						|
    template <class T>
 | 
						|
    inline
 | 
						|
    std::string
 | 
						|
    type_name()
 | 
						|
        {
 | 
						|
#ifdef BOOST_NO_TYPEID
 | 
						|
        return BOOST_CURRENT_FUNCTION;
 | 
						|
#else
 | 
						|
        return core::demangle(typeid(T).name());
 | 
						|
#endif
 | 
						|
        }
 | 
						|
 | 
						|
    namespace
 | 
						|
    exception_detail
 | 
						|
        {
 | 
						|
        struct
 | 
						|
        type_info_
 | 
						|
            {
 | 
						|
            core::typeinfo const * type_;
 | 
						|
 | 
						|
            explicit
 | 
						|
            type_info_( core::typeinfo const & type ):
 | 
						|
                type_(&type)
 | 
						|
                {
 | 
						|
                }
 | 
						|
 | 
						|
            friend
 | 
						|
            bool
 | 
						|
            operator<( type_info_ const & a, type_info_ const & b )
 | 
						|
                {
 | 
						|
                return 0!=(a.type_->before(*b.type_));
 | 
						|
                }
 | 
						|
            };
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_CORE_TYPEID(T))
 | 
						|
 | 
						|
#ifndef BOOST_NO_RTTI
 | 
						|
#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))
 | 
						|
#endif
 | 
						|
 | 
						|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
 | 
						|
#pragma warning(pop)
 | 
						|
#endif
 | 
						|
#endif
 |