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
 | 
