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