1 stl_rvct.h |
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
3 |
|
4 * Redistribution and use in source and binary forms, with or without |
|
5 * modification, are permitted provided that the following conditions are met: |
|
6 |
|
7 * Redistributions of source code must retain the above copyright notice, this |
|
8 * list of conditions and the following disclaimer. |
|
9 * Redistributions in binary form must reproduce the above copyright notice, |
|
10 * this list of conditions and the following disclaimer in the documentation |
|
11 * and/or other materials provided with the distribution. |
|
12 * Neither the name of Nokia Corporation nor the names of its contributors |
|
13 * may be used to endorse or promote products derived from this software |
|
14 * without specific prior written permission. |
|
15 |
|
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
|
19 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
|
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|
22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
|
23 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
26 * |
|
27 * Description: |
|
28 * |
|
29 */ |
|
30 |
|
31 // ============================================================================= |
|
32 // stl_rvct.h |
|
33 // This is a list of settings for STLport specific to the ARM RVCT compiler. |
|
34 // Do not include this file directly. |
|
35 // ============================================================================= |
|
36 |
|
37 # ifndef _STLP_RVCT_H |
|
38 # define _STLP_RVCT_H |
|
39 |
|
40 |
|
41 #if defined(__WINS__) |
|
42 # pragma warning ( disable : 4018 4097 4100 4127 4244 4284 4511 4512 4514 4786 4800 ) //4355 4284 4231 4511 4512 4097 4786 4800 4018 4146 4244 4514 4127 4100 4663) |
|
43 # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 |
|
44 // Uncomment if partial order of template functions is not available |
|
45 # define _STLP_NO_FUNC_PARTIAL_ORDERING 1 |
|
46 #endif |
|
47 |
|
48 #ifndef _STLP_NO_IOSTREAMS |
|
49 //# define _STLP_NO_IOSTREAMS 1 |
|
50 #endif |
|
51 |
|
52 //# undef _STLP_OWN_IOSTREAMS |
|
53 //#define _STLP_OWN_IOSTREAMS |
|
54 #define _STLP_USE_NEW_IOSTREAMS |
|
55 //# define _STLP_NO_NATIVE_MBSTATE_T 1 |
|
56 //# define _NOTHREADS 1 |
|
57 //# define _STLP_NO_TYPEINFO 1 |
|
58 |
|
59 #ifndef __PLACEMENT_NEW_INLINE |
|
60 #ifndef __E32STD_H__ |
|
61 #ifdef __cplusplus |
|
62 inline void * operator new(unsigned int, void *_P) throw() { return (_P); } |
|
63 inline void operator delete(void* /*aPtr*/, void* /*aBase*/) __NO_THROW {} |
|
64 #endif |
|
65 #define __PLACEMENT_NEW_INLINE |
|
66 #endif // E32STD_H |
|
67 #endif |
|
68 |
|
69 |
|
70 //========================================================== |
|
71 |
|
72 // the values choosen here as defaults try to give |
|
73 // maximum functionality on the most conservative settings |
|
74 |
|
75 // Mostly correct guess, change it for Alpha (and other environments |
|
76 // that has 64-bit "long") |
|
77 # define _STLP_UINT32_T unsigned long |
|
78 |
|
79 |
|
80 // Define if wchar_t is not a unique type, and is actually a typedef to unsigned short. |
|
81 // # define _STLP_WCHAR_T_IS_USHORT 1 |
|
82 |
|
83 // Uncomment if long long is available |
|
84 # define _STLP_LONG_LONG long long |
|
85 |
|
86 // Uncomment if long double is not available |
|
87 // # define _STLP_NO_LONG_DOUBLE 1 |
|
88 |
|
89 // Uncomment this if your compiler does not support namespaces |
|
90 //# define _STLP_HAS_NO_NAMESPACES 1 |
|
91 |
|
92 // Uncomment if "using" keyword does not work with template types |
|
93 // # define _STLP_BROKEN_USING_DIRECTIVE 1 |
|
94 |
|
95 // Uncomment this if your compiler does not support exceptions |
|
96 //# define _STLP_HAS_NO_EXCEPTIONS 1 |
|
97 //# define _STLP_USE_TRAP_LEAVE 1 |
|
98 |
|
99 // Header <new> that comes with the compiler |
|
100 // does not define bad_alloc exception |
|
101 //#if defined(__WINS__) |
|
102 // Possibly required ??? |
|
103 # define _STLP_NO_BAD_ALLOC 1 |
|
104 //#endif |
|
105 |
|
106 // Uncomment if member template methods are not available |
|
107 // # define _STLP_NO_MEMBER_TEMPLATES 1 |
|
108 |
|
109 // Uncomment if member template classes are not available |
|
110 #if defined(__WINS__) |
|
111 # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 |
|
112 #endif |
|
113 |
|
114 // Uncomment if friend member templates are not available |
|
115 #if defined(__WINS__) |
|
116 // Possibly required ??? |
|
117 //# define _STLP_NO_FRIEND_TEMPLATES 1 |
|
118 #endif |
|
119 |
|
120 // Compiler does not accept friend declaration qualified with namespace name. |
|
121 // # define _STLP_NO_QUALIFIED_FRIENDS 1 |
|
122 |
|
123 // Uncomment if partial specialization is not available |
|
124 #if defined(__WINS__) |
|
125 # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 |
|
126 #endif |
|
127 |
|
128 // Define if class being partially specialized require full name (template parameters) |
|
129 // of itself for method declarations |
|
130 // # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS |
|
131 |
|
132 // Compiler has problems specializing members of partially |
|
133 // specialized class |
|
134 // # define _STLP_MEMBER_SPECIALIZATION_BUG |
|
135 |
|
136 // Compiler requires typename keyword on outline method definition |
|
137 // explicitly taking nested types/typedefs |
|
138 // #define _STLP_TYPENAME_ON_RETURN_TYPE |
|
139 |
|
140 // * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a |
|
141 // constant-initializer in the declaration of a static const data member |
|
142 // of integer type. (See section 9.4.2, paragraph 4, of the C++ standard.) |
|
143 #if defined(__WINS__) |
|
144 # define _STLP_STATIC_CONST_INIT_BUG |
|
145 #endif |
|
146 |
|
147 // Define if default constructor for builtin integer type fails to initialize it to 0 |
|
148 // # define _STLP_DEFAULT_CONSTRUCTOR_BUG 1 |
|
149 |
|
150 // Defined if constructor |
|
151 // required to explicitly call member's default constructors for const objects |
|
152 // # define _STLP_CONST_CONSTRUCTOR_BUG 1 |
|
153 |
|
154 // Define this if compiler lacks <exception> header |
|
155 # define _STLP_NO_EXCEPTION_HEADER 1 |
|
156 |
|
157 // Uncomment if native new-style C library headers lile <cstddef>, etc are not available. |
|
158 # define _STLP_HAS_NO_NEW_C_HEADERS 1 |
|
159 |
|
160 // uncomment if new-style headers <new> is available |
|
161 // # define _STLP_HAS_NEW_NEW_HEADER 1 |
|
162 |
|
163 // uncomment this if <iostream> and other STD headers put their stuff in ::namespace, |
|
164 // not std:: |
|
165 // # define _STLP_VENDOR_GLOBAL_STD |
|
166 |
|
167 // uncomment this if <cstdio> and the like put stuff in ::namespace, |
|
168 // not std:: |
|
169 # define _STLP_VENDOR_GLOBAL_CSTD |
|
170 /* |
|
171 # ifdef _PTHREADS |
|
172 # undef _PTHREADS |
|
173 # endif |
|
174 # ifdef _STLP_PTHREADS |
|
175 # undef _STLP_PTHREADS |
|
176 # endif |
|
177 # ifdef _STLP_THREADS |
|
178 # undef _STLP_THREADS |
|
179 # endif |
|
180 */ |
|
181 |
|
182 #ifdef _STLP_USE_NEW_C_HEADERS |
|
183 #undef _STLP_USE_NEW_C_HEADERS |
|
184 #endif |
|
185 |
|
186 #undef _STLP_NATIVE_C_HEADER |
|
187 #ifndef __SYMBIAN32__ |
|
188 #define _STLP_NATIVE_C_HEADER(x) <libc/##x> |
|
189 #endif |
|
190 #define _STLP_NATIVE_HEADER(x) <x> |
|
191 |
|
192 |
|
193 |
|
194 # define _STLP_NO_NEW_HEADER |
|
195 # define _STLP_NO_THREADS |
|
196 |
|
197 # define _STLP_NO_EXCEPTIONS |
|
198 //# define _STLP_USE_TRAP_LEAVE |
|
199 |
|
200 # define _STLP_NO_OWN_IOSTREAMS |
|
201 //# undef _STLP_OWN_IOSTREAMS |
|
202 //#define _STLP_OWN_IOSTREAMS |
|
203 #define _STLP_USE_NEW_IOSTREAMS |
|
204 # define _STLP_USE_NEWALLOC |
|
205 //# define _STLP_NO_NODE_ALLOC |
|
206 # define _STLP_NO_LONG_DOUBLE |
|
207 # define _STLP_BIG_ENDIAN |
|
208 // this one causes recursive abs() calls |
|
209 # define _STLP_LABS |
|
210 # define _STLP_LDIV |
|
211 # define _STLP_CONST_CONSTRUCTOR_BUG |
|
212 // # define _STLP_HAS_NAMESPACES |
|
213 |
|
214 //#define _STLP_NO_CSTD_FUNCTION_IMPORTS |
|
215 |
|
216 |
|
217 //#warning ********** COMPILER SETTINGS ********** |
|
218 // ----------------------------------------------------------------------------- |
|
219 // wstring support |
|
220 // This is a bit confusing. |
|
221 // * _STLP_NO_WCHAR_T inhibits the standard C wchar functions (Symbian doesn't |
|
222 // have them). |
|
223 // * _STLP_HAS_WCHAR_T triggers the typedef of wstring. It's based on wint_t, |
|
224 // which isn't typedef's elsewhere, so we take care of it here. |
|
225 // ----------------------------------------------------------------------------- |
|
226 //#define _STLP_NO_WCHAR_T 1 |
|
227 #define _STLP_HAS_WCHAR_T 1 |
|
228 //typedef unsigned int wint_t; |
|
229 # include <wchar.h> |
|
230 |
|
231 #ifdef _WCHAR_T |
|
232 #warning ********** _WCHAR_T is defined ********** |
|
233 #endif |
|
234 |
|
235 #define _STLP_COMPLEX_SPECIALIZATION_BUG |
|
236 #define _STLP_USE_EXCEPTIONS |
|
237 #define _STLP_EXTERN_RANGE_ERRORS |
|
238 //#define _STLP_NO_FORCE_INSTANTIATE |
|
239 //#define __BUILDING_STLPORT |
|
240 # define _STLP_NO_NEW_NEW_HEADER 1 |
|
241 # define _STLP_USE_DECLSPEC |
|
242 #define _STLP_LIBSTD_CPP_NO_STATIC_VAR_ |
|
243 |
|
244 #endif // _STLP_RVCT_H |