1 //Copyright (c) 2006-2009 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_C3E1741C754311DDB2834CCA55D89593
7 #define UUID_C3E1741C754311DDB2834CCA55D89593
9 #include <boost/detail/sp_typeinfo.hpp>
10 #include <boost/current_function.hpp>
20 #ifdef BOOST_NO_TYPEID
21 return BOOST_CURRENT_FUNCTION;
23 return typeid(T*).name();
32 #ifdef BOOST_NO_TYPEID
33 return BOOST_CURRENT_FUNCTION;
35 return typeid(T).name();
42 #ifdef BOOST_NO_TYPEID
46 detail::sp_typeinfo type_;
50 type_info_( detail::sp_typeinfo type, char const * name ):
58 operator==( type_info_ const & a, type_info_ const & b )
60 return a.type_==b.type_;
65 operator<( type_info_ const & a, type_info_ const & b )
67 return a.type_<b.type_;
80 detail::sp_typeinfo const * type_;
83 type_info_( detail::sp_typeinfo const & type ):
88 type_info_( detail::sp_typeinfo const & type, char const * ):
95 operator==( type_info_ const & a, type_info_ const & b )
97 return (*a.type_)==(*b.type_);
102 operator<( type_info_ const & a, type_info_ const & b )
104 return 0!=(a.type_->before(*b.type_));
110 return type_->name();
117 operator!=( type_info_ const & a, type_info_ const & b )
124 #define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())
126 #ifndef BOOST_NO_RTTI
127 #define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))