1 //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
\r
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
\r
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
\r
6 #ifndef UUID_C3E1741C754311DDB2834CCA55D89593
\r
7 #define UUID_C3E1741C754311DDB2834CCA55D89593
\r
9 #include <boost/detail/sp_typeinfo.hpp>
\r
10 #include <boost/current_function.hpp>
\r
20 #ifdef BOOST_NO_TYPEID
\r
21 return BOOST_CURRENT_FUNCTION;
\r
23 return typeid(T*).name();
\r
32 #ifdef BOOST_NO_TYPEID
\r
33 return BOOST_CURRENT_FUNCTION;
\r
35 return typeid(T).name();
\r
42 #ifdef BOOST_NO_TYPEID
\r
46 detail::sp_typeinfo type_;
\r
50 type_info_( detail::sp_typeinfo type, char const * name ):
\r
58 operator==( type_info_ const & a, type_info_ const & b )
\r
60 return a.type_==b.type_;
\r
65 operator<( type_info_ const & a, type_info_ const & b )
\r
67 return a.type_<b.type_;
\r
80 detail::sp_typeinfo const * type_;
\r
83 type_info_( detail::sp_typeinfo const & type ):
\r
88 type_info_( detail::sp_typeinfo const & type, char const * ):
\r
95 operator==( type_info_ const & a, type_info_ const & b )
\r
97 return (*a.type_)==(*b.type_);
\r
102 operator<( type_info_ const & a, type_info_ const & b )
\r
104 return 0!=(a.type_->before(*b.type_));
\r
110 return type_->name();
\r
117 operator!=( type_info_ const & a, type_info_ const & b )
\r
124 #define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())
\r
126 #ifndef BOOST_NO_RTTI
\r
127 #define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))
\r