111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1994 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Hewlett-Packard Company 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1996,1997 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Silicon Graphics Computer Systems, Inc. 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1997 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Moscow Center for SPARC Technology 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1999 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Boris Fomitchev 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This material is provided "as is", with absolutely no warranty expressed 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * or implied. Any use is at your own risk. 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to use or copy this software for any purpose is hereby granted 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without fee, provided the above notices are retained on all copies. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to modify the code and to distribute modified code is granted, 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * provided the above notices are retained, and a notice that the code was 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modified is included with the above copyright notice. 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include "stlport_prefix.h" 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_DEBUG) && ! defined (_STLP_ASSERTIONS) 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if !defined (__APPLE__) || !defined (__GNUC__) || (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* dums: Please if the following code was being uncommented please explain why 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * as for the moment it only looks like a source of inconsistency in the way 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * STLport different translation units are compiled. 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//# define _STLP_ASSERTIONS 1 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <utility> 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <memory> 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <vector> 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <set> 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <list> 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <slist> 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <deque> 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <hash_map> 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <limits> 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <string> 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stdexcept> 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <bitset> 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <locale> 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (__DMC__) 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// for rope static members 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# include <rope> 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stl/_range_errors.c> 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS) 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertexception::exception() _STLP_NOTHROW {} 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertexception::~exception() _STLP_NOTHROW {} 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertbad_exception::bad_exception() _STLP_NOTHROW {} 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertbad_exception::~bad_exception() _STLP_NOTHROW {} 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertconst char* exception::what() const _STLP_NOTHROW { return "class exception"; } 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertconst char* bad_exception::what() const _STLP_NOTHROW { return "class bad_exception"; } 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_OWN_STDEXCEPT) 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# include <stl/_stdexcept_base.c> 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// boris : those are needed to force typeinfo nodes to be created in here only 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertlogic_error::~logic_error() _STLP_NOTHROW_INHERENTLY {} 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertruntime_error::~runtime_error() _STLP_NOTHROW_INHERENTLY {} 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdomain_error::~domain_error() _STLP_NOTHROW_INHERENTLY {} 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinvalid_argument::~invalid_argument() _STLP_NOTHROW_INHERENTLY {} 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertlength_error::~length_error() _STLP_NOTHROW_INHERENTLY {} 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertout_of_range::~out_of_range() _STLP_NOTHROW_INHERENTLY {} 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertrange_error::~range_error() _STLP_NOTHROW_INHERENTLY {} 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertoverflow_error::~overflow_error() _STLP_NOTHROW_INHERENTLY {} 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunderflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {} 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(_STLP_WCE_EVC3) 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_NO_BAD_ALLOC) 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertconst nothrow_t nothrow /* = {} */; 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_NO_FORCE_INSTANTIATE) 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS) 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC __debug_alloc<__node_alloc>; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC __debug_alloc<__new_alloc>; 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//Export of the types used to represent buckets in the hashtable implementation. 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * For the vector class we do not use any MSVC6 workaround even if we export it from 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * the STLport dynamic libraries because we know what methods are called and none is 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * a template method. Moreover the exported class is an instanciation of vector with 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * _Slist_node_base struct that is an internal STLport class that no user should ever 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * use. 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if !defined (_STLP_USE_PTR_SPECIALIZATIONS) 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC allocator<_STLP_PRIV _Slist_node_base*>; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*, 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert allocator<_Slist_node_base*> >; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Vector_base<_Slist_node_base*, 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert allocator<_Slist_node_base*> >; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_DEBUG) 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_NAME(vector)<_Slist_node_base*, 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert allocator<_Slist_node_base*> >; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC vector<_STLP_PRIV _Slist_node_base*, 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert allocator<_STLP_PRIV _Slist_node_base*> >; 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//End of hashtable bucket types export. 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//Export of _Locale_impl facets container: 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if !defined (_STLP_USE_PTR_SPECIALIZATIONS) 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC allocator<locale::facet*>; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<locale::facet**, locale::facet*, allocator<locale::facet*> >; 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Vector_base<locale::facet*, allocator<locale::facet*> >; 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_DEBUG) 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector) 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC __construct_checker<_STLP_PRIV _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> > >; 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> >; 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# undef _STLP_NON_DBG_VECTOR 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC vector<locale::facet*, allocator<locale::facet*> >; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//End of export of _Locale_impl facets container. 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_USE_PTR_SPECIALIZATIONS) 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC allocator<void*>; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef _STLP_PRIV _List_node<void*> _VoidPtr_Node; 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC allocator<_VoidPtr_Node>; 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void**, void*, allocator<void*> >; 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Vector_base<void*, allocator<void*> >; 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(vector)<void*, allocator<void*> >; 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _List_node<void*>; 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_List_node_base, _VoidPtr_Node, allocator<_VoidPtr_Node> >; 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _List_base<void*, allocator<void*> >; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(list)<void*, allocator<void*> >; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Slist_node<void*>; 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base, _Slist_node<void*>, allocator<_Slist_node<void*> > >; 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Slist_base<void*, allocator<void*> >; 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(slist)<void*, allocator<void*> >; 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<size_t, void*, allocator<void*> >; 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void***, void**, allocator<void**> >; 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >; 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Deque_base<void*, allocator<void*> >; 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(deque)<void*, allocator<void*> >; 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif /* _STLP_USE_PTR_SPECIALIZATIONS */ 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Rb_global<bool>; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _List_global<bool>; 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Sl_global<bool>; 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _Stl_prime<bool>; 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate class _STLP_CLASS_DECLSPEC _LimG<bool>; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_NO_FORCE_INSTANTIATE */ 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY) 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern "C" void _STLP_DECLSPEC _STLP_CALL _STLP_SIGNAL_RUNTIME_COMPATIBILITY() {} 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FORCE_SYMBOL extern 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_WIN32) && defined (_STLP_USE_DECLSPEC) && !defined (_STLP_USE_STATIC_LIB) 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// stlportmt.cpp : Defines the entry point for the DLL application. 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# undef FORCE_SYMBOL 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# define FORCE_SYMBOL APIENTRY 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern "C" { 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertBOOL APIENTRY DllMain( HANDLE hModule, 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DWORD ul_reason_for_call, 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert LPVOID) { 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert switch (ul_reason_for_call) { 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case DLL_PROCESS_ATTACH: 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DisableThreadLibraryCalls((HINSTANCE)hModule); 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case DLL_THREAD_ATTACH: 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case DLL_THREAD_DETACH: 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case DLL_PROCESS_DETACH: 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return TRUE; 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} /* extern "C" */ 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_MSVC) && !defined (__MINGW32__) 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstatic void FORCE_SYMBOL 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertforce_link() { 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert set<int>::iterator iter; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert // _M_increment; _M_decrement instantiation 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ++iter; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert --iter; 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _WIN32 */ 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300) 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# undef std 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertnamespace std 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _STLP_CALL unexpected() { 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unexpected_handler hdl; 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert set_unexpected(hdl = set_unexpected((unexpected_handler)0)); 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert hdl(); 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 263