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