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