1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott /*
2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Copyright (c) 1994
4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Hewlett-Packard Company
5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Copyright (c) 1996,1997
7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Silicon Graphics Computer Systems, Inc.
8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Copyright (c) 1997
10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Moscow Center for SPARC Technology
11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Copyright (c) 1999
13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Boris Fomitchev
14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * This material is provided "as is", with absolutely no warranty expressed
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * or implied. Any use is at your own risk.
17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Permission to use or copy this software for any purpose is hereby granted
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * without fee, provided the above notices are retained on all copies.
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Permission to modify the code and to distribute modified code is granted,
21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * provided the above notices are retained, and a notice that the code was
22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * modified is included with the above copyright notice.
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott *
24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */
25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "stlport_prefix.h"
29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (_STLP_DEBUG) && ! defined (_STLP_ASSERTIONS)
31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (__APPLE__) || !defined (__GNUC__) || (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/* dums: Please if the following code was being uncommented please explain why
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * as for the moment it only looks like a source of inconsistency in the way
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * STLport different translation units are compiled.
35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */
36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//#    define _STLP_ASSERTIONS 1
37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <utility>
41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <memory>
42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <vector>
43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <set>
44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <list>
45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <slist>
46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <deque>
47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <hash_map>
48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <limits>
49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <string>
50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <stdexcept>
51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <bitset>
52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <locale>
53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (__DMC__)
55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// for rope static members
56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <rope>
57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <stl/_range_errors.c>
60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_BEGIN_NAMESPACE
62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS)
64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottexception::exception() _STLP_NOTHROW {}
65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottexception::~exception() _STLP_NOTHROW {}
66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottbad_exception::bad_exception() _STLP_NOTHROW {}
67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottbad_exception::~bad_exception() _STLP_NOTHROW {}
68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottconst char* exception::what() const _STLP_NOTHROW { return "class exception"; }
69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottconst char* bad_exception::what() const _STLP_NOTHROW { return "class bad_exception"; }
70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_STLP_OWN_STDEXCEPT)
73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <stl/_stdexcept_base.c>
74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// boris : those are needed to force typeinfo nodes to be created in here only
76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottlogic_error::~logic_error() _STLP_NOTHROW_INHERENTLY {}
77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottruntime_error::~runtime_error() _STLP_NOTHROW_INHERENTLY {}
78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottdomain_error::~domain_error() _STLP_NOTHROW_INHERENTLY {}
79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottinvalid_argument::~invalid_argument() _STLP_NOTHROW_INHERENTLY {}
80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottlength_error::~length_error() _STLP_NOTHROW_INHERENTLY {}
81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottout_of_range::~out_of_range() _STLP_NOTHROW_INHERENTLY {}
82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottrange_error::~range_error() _STLP_NOTHROW_INHERENTLY {}
83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottoverflow_error::~overflow_error() _STLP_NOTHROW_INHERENTLY {}
84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottunderflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {}
85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined(_STLP_WCE_EVC3)
89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_NO_BAD_ALLOC)
90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottconst nothrow_t nothrow /* = {} */;
91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (_STLP_NO_FORCE_INSTANTIATE)
95e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
96e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS)
97e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
98e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>;
99e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
100e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
101e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
102e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __debug_alloc<__node_alloc>;
103e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __debug_alloc<__new_alloc>;
104e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
105e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//Export of the types used to represent buckets in the hashtable implementation.
106e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/*
107e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * For the vector class we do not use any MSVC6 workaround even if we export it from
108e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * the STLport dynamic libraries because we know what methods are called and none is
109e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * a template method. Moreover the exported class is an instanciation of vector with
110e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * _Slist_node_base struct that is an internal STLport class that no user should ever
111e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * use.
112e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */
113e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
114e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<_STLP_PRIV _Slist_node_base*>;
115e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
116e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
117e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*,
118e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                                                      allocator<_Slist_node_base*> >;
119e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Vector_base<_Slist_node_base*,
120e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                                                 allocator<_Slist_node_base*> >;
121e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
122e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
123e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
124e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_DEBUG)
125e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
126e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_NAME(vector)<_Slist_node_base*,
127e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                                                               allocator<_Slist_node_base*> >;
128e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
129e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
130e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
131e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC vector<_STLP_PRIV _Slist_node_base*,
132e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                                           allocator<_STLP_PRIV _Slist_node_base*> >;
133e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//End of hashtable bucket types export.
134e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
135e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//Export of _Locale_impl facets container:
136e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
137e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<locale::facet*>;
138e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
139e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
140e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<locale::facet**, locale::facet*, allocator<locale::facet*> >;
141e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Vector_base<locale::facet*, allocator<locale::facet*> >;
142e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
143e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
144e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
145e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_DEBUG)
146e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
147e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector)
148e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __construct_checker<_STLP_PRIV _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> > >;
149e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> >;
150e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    undef _STLP_NON_DBG_VECTOR
151e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
152e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
153e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
154e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC vector<locale::facet*, allocator<locale::facet*> >;
155e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//End of export of _Locale_impl facets container.
156e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
157e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_USE_PTR_SPECIALIZATIONS)
158e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<void*>;
159e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
160e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttypedef _STLP_PRIV _List_node<void*> _VoidPtr_Node;
161e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<_VoidPtr_Node>;
162e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
163e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
164e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
165e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void**, void*, allocator<void*> >;
166e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Vector_base<void*, allocator<void*> >;
167e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(vector)<void*, allocator<void*> >;
168e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
169e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _List_node<void*>;
170e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_List_node_base, _VoidPtr_Node, allocator<_VoidPtr_Node> >;
171e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _List_base<void*, allocator<void*> >;
172e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(list)<void*, allocator<void*> >;
173e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
174e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Slist_node<void*>;
175e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base, _Slist_node<void*>, allocator<_Slist_node<void*> > >;
176e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Slist_base<void*, allocator<void*> >;
177e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(slist)<void*, allocator<void*> >;
178e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
179e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class  _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<size_t, void*, allocator<void*> >;
180e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class  _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void***, void**, allocator<void**> >;
181e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >;
182e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class  _STLP_CLASS_DECLSPEC _Deque_base<void*, allocator<void*> >;
183e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class  _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(deque)<void*, allocator<void*> >;
184e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
185e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
186e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
187e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif /* _STLP_USE_PTR_SPECIALIZATIONS */
188e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
189e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE
190e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
191e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Rb_global<bool>;
192e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _List_global<bool>;
193e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
194e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Sl_global<bool>;
195e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _Stl_prime<bool>;
196e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
197e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _LimG<bool>;
198e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
199e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE
200e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
201e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif /* _STLP_NO_FORCE_INSTANTIATE */
202e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
203e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_END_NAMESPACE
204e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
205e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY)
206e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottextern "C" void _STLP_DECLSPEC _STLP_CALL _STLP_SIGNAL_RUNTIME_COMPATIBILITY() {}
207e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
208e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
209e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define FORCE_SYMBOL extern
210e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
211e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_WIN32) && defined (_STLP_USE_DECLSPEC) && !defined (_STLP_USE_STATIC_LIB)
212e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// stlportmt.cpp : Defines the entry point for the DLL application.
213e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
214e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  undef FORCE_SYMBOL
215e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  define FORCE_SYMBOL APIENTRY
216e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
217e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottextern "C" {
218e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
219e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick ScottBOOL APIENTRY DllMain( HANDLE hModule,
220e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                       DWORD  ul_reason_for_call,
221e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott                       LPVOID) {
222e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  switch (ul_reason_for_call) {
223e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    case DLL_PROCESS_ATTACH:
224e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott      DisableThreadLibraryCalls((HINSTANCE)hModule);
225e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    case DLL_THREAD_ATTACH:
226e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    case DLL_THREAD_DETACH:
227e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    case DLL_PROCESS_DETACH:
228e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott      break;
229e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    }
230e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  return TRUE;
231e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}
232e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
233e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} /* extern "C" */
234e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
235e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (_STLP_MSVC) && !defined (__MINGW32__)
236e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_BEGIN_NAMESPACE
237e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
238e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstatic void FORCE_SYMBOL
239e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottforce_link() {
240e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  set<int>::iterator iter;
241e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  // _M_increment; _M_decrement instantiation
242e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  ++iter;
243e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  --iter;
244e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}
245e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
246e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_END_NAMESPACE
247e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
248e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
249e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif /* _WIN32 */
250e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
251e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300)
252e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  undef std
253e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
254e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottnamespace std
255e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{
256e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _STLP_CALL unexpected() {
257e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    unexpected_handler hdl;
258e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    set_unexpected(hdl = set_unexpected((unexpected_handler)0));
259e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott    hdl();
260e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  }
261e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}
262e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
263