• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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__)
51 using std::type_info;
52 using std::bad_typeid;
53 using 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 
61 _STLP_BEGIN_NAMESPACE
62 
63 using /*_STLP_VENDOR_EXCEPT_STD */ :: type_info;
64 #      if !(defined(__MRC__) || (defined(__SC__) && !defined(__DMC__)))
65 using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_typeid;
66 #      endif
67 
68 using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_cast;
69 
70 _STLP_END_NAMESPACE
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:
88