19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_TYPEINFO 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_INTERNAL_TYPEINFO 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_NO_TYPEINFO) 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined (_STLP_NO_NEW_NEW_HEADER) 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <typeinfo.h> 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# else 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_HAS_INCLUDE_NEXT) 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include_next <typeinfo> 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include _STLP_NATIVE_CPP_RUNTIME_HEADER(typeinfo) 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if (defined(_STLP_MSVC) && (_STLP_MSVC >= 1300)) || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800)) 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// In .NET, <typeinfo> actually includes <typeinfo.h> 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _STLP_OLDSTD_typeinfo 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// if <typeinfo.h> already included, do not import anything 379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined(_STLP_USE_NAMESPACES) && !defined(_STLP_OLDSTD_typeinfo) && \ 389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block (defined(_STLP_VENDOR_GLOBAL_EXCEPT_STD) || \ 399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block defined(_STLP_USE_OWN_NAMESPACE) || defined (_STLP_DEBUG)) 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined(_STLP_MSVC) && (_STLP_MSVC < 1300) && !defined(_STLP_WCE_NET) 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockclass bad_cast : public exception {}; 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// VC 6 and eVC 4 have type_info in the global namespace 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if (defined(_STLP_MSVC) && (_STLP_MSVC < 1300)) || defined(_STLP_WCE_NET) 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing ::type_info; 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# else 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_EXCEPT_STD::type_info; 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (__DMC__) 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_EXCEPT_STD::bad_typeid; 549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined (_STLP_MSVC) && (_STLP_MSVC < 1300) && !defined (_STLP_WCE_NET) 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing ::bad_cast; 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# else 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_EXCEPT_STD::bad_cast; 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# ifndef _STLP_INTERNAL_EXCEPTION 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_exception.h> 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if !defined (__DMC__) 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstruct bad_cast : exception {}; 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 80