source: XIOS/dev/dev_olga/src/extern/boost/include/boost/exception/detail/type_info.hpp @ 1022

Last change on this file since 1022 was 1022, checked in by mhnguyen, 7 years ago
File size: 2.0 KB
Line 
1//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
2
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)
5
6#ifndef UUID_C3E1741C754311DDB2834CCA55D89593
7#define UUID_C3E1741C754311DDB2834CCA55D89593
8#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
9#pragma GCC system_header
10#endif
11#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
12#pragma warning(push,1)
13#endif
14
15#include <boost/detail/sp_typeinfo.hpp>
16#include <boost/current_function.hpp>
17#include <boost/config.hpp>
18#ifndef BOOST_NO_TYPEID
19#include <boost/units/detail/utility.hpp>
20#endif
21#include <string>
22
23namespace
24boost
25    {
26    template <class T>
27    inline
28    std::string
29    tag_type_name()
30        {
31#ifdef BOOST_NO_TYPEID
32        return BOOST_CURRENT_FUNCTION;
33#else
34        return units::detail::demangle(typeid(T*).name());
35#endif
36        }
37
38    template <class T>
39    inline
40    std::string
41    type_name()
42        {
43#ifdef BOOST_NO_TYPEID
44        return BOOST_CURRENT_FUNCTION;
45#else
46        return units::detail::demangle(typeid(T).name());
47#endif
48        }
49
50    namespace
51    exception_detail
52        {
53        struct
54        type_info_
55            {
56            detail::sp_typeinfo const & type_;
57
58            explicit
59            type_info_( detail::sp_typeinfo const & type ):
60                type_(type)
61                {
62                }
63
64            friend
65            bool
66            operator<( type_info_ const & a, type_info_ const & b )
67                {
68                return 0!=(a.type_.before(b.type_));
69                }
70            };
71        }
72    }
73
74#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T))
75
76#ifndef BOOST_NO_RTTI
77#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))
78#endif
79
80#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
81#pragma warning(pop)
82#endif
83#endif
Note: See TracBrowser for help on using the repository browser.