ReactOS 0.4.15-dev-7934-g1dc8d80
typeinfo.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 1999
3 * Boris Fomitchev
4 *
5 * This material is provided "as is", with absolutely no warranty expressed
6 * or implied. Any use is at your own risk.
7 *
8 * Permission to use or copy this software for any purpose is hereby granted
9 * without fee, provided the above notices are retained on all copies.
10 * Permission to modify the code and to distribute modified code is granted,
11 * provided the above notices are retained, and a notice that the code was
12 * modified is included with the above copyright notice.
13 *
14 */
15
16// DMC has hardcoded inclusion of typeinfo.h at the begining of any translation unit.
17// So inclusion of this header will directly reference the native header. This is not
18// a problem as typeinfo.h is neither a C nor C++ Standard header, this header should
19// never be used in user code.
20#if defined (__DMC__)
21// We define _STLP_OUTERMOST_HEADER_ID to signal to other STLport headers that inclusion
22// is done from native typeinfo.h (see exception header).
23# define _STLP_OUTERMOST_HEADER_ID 0x874
24# include <../include/typeinfo.h>
25# undef _STLP_OUTERMOST_HEADER_ID
26#else
27# ifndef _STLP_OLDSTD_typeinfo
28# define _STLP_OLDSTD_typeinfo
29
30# ifndef _STLP_OUTERMOST_HEADER_ID
31# define _STLP_OUTERMOST_HEADER_ID 0x874
32# include <stl/_prolog.h>
33# endif
34
35# ifndef _STLP_NO_TYPEINFO
36
37# if defined (__GNUC__)
38# undef _STLP_OLDSTD_typeinfo
39# include <typeinfo>
40# define _STLP_OLDSTD_typeinfo
41# else
42# if defined (_STLP_HAS_INCLUDE_NEXT)
43# include_next <typeinfo.h>
44# elif !defined (__BORLANDC__) || (__BORLANDC__ < 0x580)
45# include _STLP_NATIVE_CPP_RUNTIME_HEADER(typeinfo.h)
46# else
47# include _STLP_NATIVE_CPP_C_HEADER(typeinfo.h)
48# endif
49# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x580) || \
50 defined (__DMC__)
51using std::type_info;
52using std::bad_typeid;
53using std::bad_cast;
54# endif
55# endif
56
57// if <typeinfo> already included, do not import anything
58
59# if defined (_STLP_USE_OWN_NAMESPACE) && !(defined (_STLP_TYPEINFO) && !defined (_STLP_NO_NEW_NEW_HEADER))
60
62
63using /*_STLP_VENDOR_EXCEPT_STD */ :: type_info;
64# if !(defined(__MRC__) || (defined(__SC__) && !defined(__DMC__)))
65using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_typeid;
66# endif
67
68using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_cast;
69
71
72# endif /* _STLP_OWN_NAMESPACE */
73
74# endif /* _STLP_NO_TYPEINFO */
75
76# if (_STLP_OUTERMOST_HEADER_ID == 0x874)
77# include <stl/_epilog.h>
78# undef _STLP_OUTERMOST_HEADER_ID
79# endif
80
81# endif /* _STLP_OLDSTD_typeinfo */
82
83#endif /* __DMC__ */
84
85// Local Variables:
86// mode:C++
87// End:
#define _STLP_BEGIN_NAMESPACE
Definition: features.h:501
#define _STLP_END_NAMESPACE
Definition: features.h:503
struct __type_info type_info