Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendll_main.cpp
Go to the documentation of this file.
00001 /* 00002 * 00003 * Copyright (c) 1994 00004 * Hewlett-Packard Company 00005 * 00006 * Copyright (c) 1996,1997 00007 * Silicon Graphics Computer Systems, Inc. 00008 * 00009 * Copyright (c) 1997 00010 * Moscow Center for SPARC Technology 00011 * 00012 * Copyright (c) 1999 00013 * Boris Fomitchev 00014 * 00015 * This material is provided "as is", with absolutely no warranty expressed 00016 * or implied. Any use is at your own risk. 00017 * 00018 * Permission to use or copy this software for any purpose is hereby granted 00019 * without fee, provided the above notices are retained on all copies. 00020 * Permission to modify the code and to distribute modified code is granted, 00021 * provided the above notices are retained, and a notice that the code was 00022 * modified is included with the above copyright notice. 00023 * 00024 */ 00025 00026 #define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION 00027 00028 #include "stlport_prefix.h" 00029 00030 #if !defined (_STLP_DEBUG) && ! defined (_STLP_ASSERTIONS) 00031 # if !defined (__APPLE__) || !defined (__GNUC__) || (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) 00032 /* dums: Please if the following code was being uncommented please explain why 00033 * as for the moment it only looks like a source of inconsistency in the way 00034 * STLport different translation units are compiled. 00035 */ 00036 //# define _STLP_ASSERTIONS 1 00037 # endif 00038 #endif 00039 00040 #include <utility> 00041 #include <memory> 00042 #include <vector> 00043 #include <set> 00044 #include <list> 00045 #include <slist> 00046 #include <deque> 00047 #include <hash_map> 00048 #include <limits> 00049 #include <string> 00050 #include <stdexcept> 00051 #include <bitset> 00052 #include <locale> 00053 00054 #if defined (__DMC__) 00055 // for rope static members 00056 # include <rope> 00057 #endif 00058 00059 #include <stl/_range_errors.c> 00060 00061 _STLP_BEGIN_NAMESPACE 00062 00063 #if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS) 00064 exception::exception() _STLP_NOTHROW {} 00065 exception::~exception() _STLP_NOTHROW {} 00066 bad_exception::bad_exception() _STLP_NOTHROW {} 00067 bad_exception::~bad_exception() _STLP_NOTHROW {} 00068 const char* exception::what() const _STLP_NOTHROW { return "class exception"; } 00069 const char* bad_exception::what() const _STLP_NOTHROW { return "class bad_exception"; } 00070 #endif 00071 00072 #if defined (_STLP_OWN_STDEXCEPT) 00073 # include <stl/_stdexcept_base.c> 00074 00075 // boris : those are needed to force typeinfo nodes to be created in here only 00076 logic_error::~logic_error() _STLP_NOTHROW_INHERENTLY {} 00077 runtime_error::~runtime_error() _STLP_NOTHROW_INHERENTLY {} 00078 domain_error::~domain_error() _STLP_NOTHROW_INHERENTLY {} 00079 invalid_argument::~invalid_argument() _STLP_NOTHROW_INHERENTLY {} 00080 length_error::~length_error() _STLP_NOTHROW_INHERENTLY {} 00081 out_of_range::~out_of_range() _STLP_NOTHROW_INHERENTLY {} 00082 range_error::~range_error() _STLP_NOTHROW_INHERENTLY {} 00083 overflow_error::~overflow_error() _STLP_NOTHROW_INHERENTLY {} 00084 underflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {} 00085 00086 #endif 00087 00088 #if !defined(_STLP_WCE_EVC3) 00089 # if defined (_STLP_NO_BAD_ALLOC) 00090 const nothrow_t nothrow /* = {} */; 00091 # endif 00092 #endif 00093 00094 #if !defined (_STLP_NO_FORCE_INSTANTIATE) 00095 00096 # if defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS) 00097 _STLP_MOVE_TO_PRIV_NAMESPACE 00098 template class _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>; 00099 _STLP_MOVE_TO_STD_NAMESPACE 00100 # endif 00101 00102 template class _STLP_CLASS_DECLSPEC __debug_alloc<__node_alloc>; 00103 template class _STLP_CLASS_DECLSPEC __debug_alloc<__new_alloc>; 00104 00105 //Export of the types used to represent buckets in the hashtable implementation. 00106 /* 00107 * For the vector class we do not use any MSVC6 workaround even if we export it from 00108 * the STLport dynamic libraries because we know what methods are called and none is 00109 * a template method. Moreover the exported class is an instanciation of vector with 00110 * _Slist_node_base struct that is an internal STLport class that no user should ever 00111 * use. 00112 */ 00113 # if !defined (_STLP_USE_PTR_SPECIALIZATIONS) 00114 template class _STLP_CLASS_DECLSPEC allocator<_STLP_PRIV _Slist_node_base*>; 00115 00116 _STLP_MOVE_TO_PRIV_NAMESPACE 00117 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*, 00118 allocator<_Slist_node_base*> >; 00119 template class _STLP_CLASS_DECLSPEC _Vector_base<_Slist_node_base*, 00120 allocator<_Slist_node_base*> >; 00121 _STLP_MOVE_TO_STD_NAMESPACE 00122 # endif 00123 00124 # if defined (_STLP_DEBUG) 00125 _STLP_MOVE_TO_PRIV_NAMESPACE 00126 template class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_NAME(vector)<_Slist_node_base*, 00127 allocator<_Slist_node_base*> >; 00128 _STLP_MOVE_TO_STD_NAMESPACE 00129 # endif 00130 00131 template class _STLP_CLASS_DECLSPEC vector<_STLP_PRIV _Slist_node_base*, 00132 allocator<_STLP_PRIV _Slist_node_base*> >; 00133 //End of hashtable bucket types export. 00134 00135 //Export of _Locale_impl facets container: 00136 # if !defined (_STLP_USE_PTR_SPECIALIZATIONS) 00137 template class _STLP_CLASS_DECLSPEC allocator<locale::facet*>; 00138 00139 _STLP_MOVE_TO_PRIV_NAMESPACE 00140 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<locale::facet**, locale::facet*, allocator<locale::facet*> >; 00141 template class _STLP_CLASS_DECLSPEC _Vector_base<locale::facet*, allocator<locale::facet*> >; 00142 _STLP_MOVE_TO_STD_NAMESPACE 00143 00144 # endif 00145 # if defined (_STLP_DEBUG) 00146 _STLP_MOVE_TO_PRIV_NAMESPACE 00147 # define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector) 00148 template class _STLP_CLASS_DECLSPEC __construct_checker<_STLP_PRIV _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> > >; 00149 template class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> >; 00150 # undef _STLP_NON_DBG_VECTOR 00151 _STLP_MOVE_TO_STD_NAMESPACE 00152 # endif 00153 00154 template class _STLP_CLASS_DECLSPEC vector<locale::facet*, allocator<locale::facet*> >; 00155 //End of export of _Locale_impl facets container. 00156 00157 # if defined (_STLP_USE_PTR_SPECIALIZATIONS) 00158 template class _STLP_CLASS_DECLSPEC allocator<void*>; 00159 00160 typedef _STLP_PRIV _List_node<void*> _VoidPtr_Node; 00161 template class _STLP_CLASS_DECLSPEC allocator<_VoidPtr_Node>; 00162 00163 _STLP_MOVE_TO_PRIV_NAMESPACE 00164 00165 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void**, void*, allocator<void*> >; 00166 template class _STLP_CLASS_DECLSPEC _Vector_base<void*, allocator<void*> >; 00167 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(vector)<void*, allocator<void*> >; 00168 00169 template class _STLP_CLASS_DECLSPEC _List_node<void*>; 00170 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_List_node_base, _VoidPtr_Node, allocator<_VoidPtr_Node> >; 00171 template class _STLP_CLASS_DECLSPEC _List_base<void*, allocator<void*> >; 00172 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(list)<void*, allocator<void*> >; 00173 00174 template class _STLP_CLASS_DECLSPEC _Slist_node<void*>; 00175 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base, _Slist_node<void*>, allocator<_Slist_node<void*> > >; 00176 template class _STLP_CLASS_DECLSPEC _Slist_base<void*, allocator<void*> >; 00177 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(slist)<void*, allocator<void*> >; 00178 00179 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<size_t, void*, allocator<void*> >; 00180 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void***, void**, allocator<void**> >; 00181 template struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >; 00182 template class _STLP_CLASS_DECLSPEC _Deque_base<void*, allocator<void*> >; 00183 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(deque)<void*, allocator<void*> >; 00184 00185 _STLP_MOVE_TO_STD_NAMESPACE 00186 00187 # endif /* _STLP_USE_PTR_SPECIALIZATIONS */ 00188 00189 _STLP_MOVE_TO_PRIV_NAMESPACE 00190 00191 template class _STLP_CLASS_DECLSPEC _Rb_global<bool>; 00192 template class _STLP_CLASS_DECLSPEC _List_global<bool>; 00193 00194 template class _STLP_CLASS_DECLSPEC _Sl_global<bool>; 00195 template class _STLP_CLASS_DECLSPEC _Stl_prime<bool>; 00196 00197 template class _STLP_CLASS_DECLSPEC _LimG<bool>; 00198 00199 _STLP_MOVE_TO_STD_NAMESPACE 00200 00201 #endif /* _STLP_NO_FORCE_INSTANTIATE */ 00202 00203 _STLP_END_NAMESPACE 00204 00205 #if defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY) 00206 extern "C" void _STLP_DECLSPEC _STLP_CALL _STLP_SIGNAL_RUNTIME_COMPATIBILITY() {} 00207 #endif 00208 00209 #define FORCE_SYMBOL extern 00210 00211 #if defined (_WIN32) && defined (_STLP_USE_DECLSPEC) && !defined (_STLP_USE_STATIC_LIB) 00212 // stlportmt.cpp : Defines the entry point for the DLL application. 00213 // 00214 # undef FORCE_SYMBOL 00215 # define FORCE_SYMBOL APIENTRY 00216 00217 extern "C" { 00218 00219 BOOL APIENTRY DllMain( HANDLE hModule, 00220 DWORD ul_reason_for_call, 00221 LPVOID) { 00222 switch (ul_reason_for_call) { 00223 case DLL_PROCESS_ATTACH: 00224 DisableThreadLibraryCalls((HINSTANCE)hModule); 00225 case DLL_THREAD_ATTACH: 00226 case DLL_THREAD_DETACH: 00227 case DLL_PROCESS_DETACH: 00228 break; 00229 } 00230 return TRUE; 00231 } 00232 00233 } /* extern "C" */ 00234 00235 #if !defined (_STLP_MSVC) && !defined (__MINGW32__) 00236 _STLP_BEGIN_NAMESPACE 00237 00238 static void FORCE_SYMBOL 00239 force_link() { 00240 set<int>::iterator iter; 00241 // _M_increment; _M_decrement instantiation 00242 ++iter; 00243 --iter; 00244 } 00245 00246 _STLP_END_NAMESPACE 00247 #endif 00248 00249 #endif /* _WIN32 */ 00250 00251 #if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300) 00252 # undef std 00253 00254 namespace std 00255 { 00256 void _STLP_CALL unexpected() { 00257 unexpected_handler hdl; 00258 set_unexpected(hdl = set_unexpected((unexpected_handler)0)); 00259 hdl(); 00260 } 00261 } 00262 #endif Generated on Sat May 26 2012 04:34:01 for ReactOS by
1.7.6.1
|