1.1 --- a/epoc32/include/tools/stlport/stl/config/_msvc.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/tools/stlport/stl/config/_msvc.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,355 +1,355 @@
1.4 -/* STLport configuration file
1.5 - * It is internal STLport header - DO NOT include it directly
1.6 - * Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL
1.7 - */
1.8 -
1.9 -#if !defined (_STLP_COMPILER)
1.10 -# define _STLP_COMPILER "Microsoft Visual Studio C++"
1.11 -#endif
1.12 -
1.13 -#if !defined (__ICL) && !defined (_STLP_MSVC)
1.14 -# define _STLP_MSVC _MSC_VER
1.15 -#endif
1.16 -
1.17 -#if !defined (_STLP_MSVC_LIB)
1.18 -# define _STLP_MSVC_LIB _MSC_VER
1.19 -#endif
1.20 -
1.21 -#if defined (__BUILDING_STLPORT) && defined (_MANAGED)
1.22 -/* Building a managed version of STLport is not supported because we haven't
1.23 - * found a good reason to support it. However, building a managed translation
1.24 - * unit using STLport _is_ supported.
1.25 - */
1.26 -# error Sorry but building a managed version of STLport is not supported.
1.27 -#endif
1.28 -
1.29 -#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
1.30 -/* This is a specific section for compilers coming with platform SDKs. Native
1.31 - * library coming with it is different from the one coming with commercial
1.32 - * MSVC compilers so there is some specific settings.
1.33 - */
1.34 -# define _STLP_NATIVE_INCLUDE_PATH ../crt
1.35 -# define _STLP_VENDOR_GLOBAL_CSTD
1.36 -# define _STLP_VENDOR_TERMINATE_STD
1.37 -# define _STLP_GLOBAL_NEW_HANDLER
1.38 -# if (_STLP_MSVC_LIB <= 1400)
1.39 -/* We hope this bug will be fixed in future versions. */
1.40 -# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
1.41 -# endif
1.42 -#endif
1.43 -
1.44 -#define _STLP_CALL __cdecl
1.45 -
1.46 -#ifndef _STLP_LONG_LONG
1.47 -# define _STLP_LONG_LONG __int64
1.48 -#endif
1.49 -
1.50 -#define _STLP_PRAGMA_ONCE
1.51 -
1.52 -/* These switches depend on compiler flags. We are hoping here that compilers
1.53 - * simulating MSVC behavior use identical macros to report compilation context.
1.54 - * Otherwise those macros will have to be undef in specific compiler configuration
1.55 - * files.
1.56 - */
1.57 -#ifndef _CPPUNWIND
1.58 -# define _STLP_DONT_USE_EXCEPTIONS 1
1.59 -#endif
1.60 -
1.61 -#ifndef _CPPRTTI
1.62 -# define _STLP_NO_RTTI 1
1.63 -#endif
1.64 -
1.65 -#if defined (_MT) && !defined (_STLP_NO_THREADS) && !defined (_REENTRANT)
1.66 -# define _REENTRANT 1
1.67 -#endif
1.68 -
1.69 -#if !defined (_NATIVE_WCHAR_T_DEFINED)
1.70 -# define _STLP_WCHAR_T_IS_USHORT 1
1.71 -#endif
1.72 -
1.73 -#define _STLP_MINIMUM_IMPORT_STD
1.74 -#define _STLP_NO_VENDOR_STDLIB_L 1
1.75 -
1.76 -#if defined (_STLP_MSVC)
1.77 -
1.78 -#define _STLP_NORETURN_FUNCTION __declspec(noreturn)
1.79 -
1.80 -/* Full compiler version comes from boost library intrinsics.hpp header. */
1.81 -# if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
1.82 -# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
1.83 -# define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
1.84 -# define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
1.85 -# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
1.86 -# define _STLP_IS_POD(T) __is_pod(T)
1.87 -# define _STLP_HAS_TYPE_TRAITS_INTRINSICS
1.88 -# endif
1.89 -
1.90 -# ifndef _STLP_MSVC50_COMPATIBILITY
1.91 -# define _STLP_MSVC50_COMPATIBILITY 1
1.92 -# endif
1.93 -
1.94 -# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
1.95 -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
1.96 -
1.97 -/* # ifndef __BUILDING_STLPORT
1.98 - * # define _STLP_USE_TEMPLATE_EXPORT 1
1.99 - * # endif
1.100 - */
1.101 -# if (_STLP_MSVC <= 1400)
1.102 -# define _STLP_STATIC_CONST_INIT_BUG 1
1.103 -# endif
1.104 -
1.105 -/** Note: the macro _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT is defined
1.106 -unconditionally and undef'ed here when applicable. */
1.107 -# if defined(UNDER_CE)
1.108 -/* eVCx:
1.109 -uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is
1.110 -unknown) and they all reside in namespace 'std' there. However, they are not
1.111 -part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on
1.112 -an ARMV4I, the uncaught_exception test fails, the function returns the wrong
1.113 -value. */
1.114 -# else
1.115 -/* VCx:
1.116 -These are present at least since VC6, but the uncaught_exception() of VC6 is
1.117 -broken, it returns the wrong value in the unittests. 7.1 and later seem to
1.118 -work, 7.0 is still unknown (we assume it works until negative report). */
1.119 -# if (_STLP_MSVC >= 1300)// VC7 and later
1.120 -# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
1.121 -# if !defined (_STLP_DONT_USE_EXCEPTIONS)
1.122 -# define _STLP_NOTHROW throw()
1.123 -# endif
1.124 -# endif
1.125 -# endif
1.126 -
1.127 -# if (_STLP_MSVC <= 1300)
1.128 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
1.129 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
1.130 -/* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */
1.131 -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.132 -# define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
1.133 -# define _STLP_NO_METHOD_SPECIALIZATION 1
1.134 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
1.135 -# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
1.136 -/* VC++ cannot handle default allocator argument in template constructors */
1.137 -# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
1.138 -# define _STLP_NO_QUALIFIED_FRIENDS 1
1.139 -# define _STLP_NO_FRIEND_TEMPLATES
1.140 -/* Fails to properly resolve call to sin() from within sin() */
1.141 -# endif
1.142 -
1.143 -# if (_STLP_MSVC < 1300)
1.144 -# define _STLP_NO_IEC559_SUPPORT 1
1.145 -# endif
1.146 -
1.147 -# if (_STLP_MSVC < 1300) /* including MSVC 6.0 */
1.148 -/* These work, as long they are inline */
1.149 -# define _STLP_INLINE_MEMBER_TEMPLATES 1
1.150 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
1.151 -# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
1.152 -# endif
1.153 -
1.154 -# if (_STLP_MSVC >= 1200)
1.155 -# define _STLP_HAS_NATIVE_FLOAT_ABS 1
1.156 -# endif
1.157 -
1.158 -// TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to?
1.159 -# if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310)
1.160 -# define _STLP_NO_MOVE_SEMANTIC
1.161 -# endif
1.162 -
1.163 -# if (_STLP_MSVC < 1300)
1.164 -/* TODO: remove this if it is handled and documented elsewhere
1.165 - * dums: VC6 do not handle correctly member templates of class that are explicitely
1.166 - * instanciated to be exported. There is a workaround, seperate the non template methods
1.167 - * from the template ones within 2 different classes and only export the non template one.
1.168 - * It is implemented for basic_string and locale at the writing of this note.
1.169 - * However this problem hos not been considered as important enough to remove template member
1.170 - * methods for other classes. Moreover Boost (www.boost.org) required it to be granted.
1.171 - * The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined
1.172 - * later in this config file.
1.173 - */
1.174 -/*
1.175 -# if defined (_DLL)
1.176 -# define _STLP_NO_MEMBER_TEMPLATES 1
1.177 -# endif
1.178 -*/
1.179 -
1.180 -/* Boris : not defining this macro for SP5 causes other problems */
1.181 -/*# if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */
1.182 -# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
1.183 -/*# endif */
1.184 -# define _STLP_DONT_USE_BOOL_TYPEDEF 1
1.185 -# define _STLP_DONT_RETURN_VOID 1
1.186 -# endif
1.187 -
1.188 -/*
1.189 - * MSVC6 is known to have many trouble with namespace management but
1.190 - * MSVC .Net 2003 and 2005 also have a bug difficult to reproduce without
1.191 - * STLport:
1.192 - * namespace stlp_std {
1.193 - * typedef int foo_int;
1.194 - * }
1.195 - * #include <map>
1.196 - * const foo_int bar = 0;
1.197 - *
1.198 - * As you can see foo is available without namespace specification as if
1.199 - * a using namespace stlp_std has been performed. Defining _STLP_USING_NAMESPACE_BUG
1.200 - * restore the expected compilation error.
1.201 - */
1.202 -# define _STLP_USING_NAMESPACE_BUG 1
1.203 -
1.204 -# if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */
1.205 -/* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */
1.206 -# define _STLP_USE_ABBREVS
1.207 -# endif
1.208 -
1.209 -// TODO: what is the earliest version for this? If it is 1200, use _STLP_MSVC>=1200.
1.210 -# if (_STLP_MSVC > 1100) && (_STLP_MSVC < 1300)
1.211 -typedef char __stl_char;
1.212 -# define _STLP_DEFAULTCHAR __stl_char
1.213 -# endif
1.214 -
1.215 -# if (_STLP_MSVC < 1200) /* before VC++ 6.0 */
1.216 -/* # define _STLP_NO_MEMBER_TEMPLATES 1 */
1.217 -/* # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 */
1.218 -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS 1
1.219 -# define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1
1.220 -# define _STLP_QUALIFIED_SPECIALIZATION_BUG 1
1.221 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
1.222 -# define _STLP_THROW_RETURN_BUG 1
1.223 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
1.224 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
1.225 -# endif
1.226 -
1.227 -# if (_STLP_MSVC < 1100 )
1.228 -# ifndef _STLP_USE_NO_IOSTREAMS
1.229 -# define _STLP_USE_NO_IOSTREAMS
1.230 -# endif
1.231 -/* # define _STLP_NESTED_TYPE_PARAM_BUG 1 */
1.232 -/* Debug mode does not work for 4.2 */
1.233 -# if defined (_STLP_DEBUG)
1.234 -# pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
1.235 -# undef _STLP_DEBUG
1.236 -# endif
1.237 -# define _STLP_NO_BOOL 1
1.238 -# define _STLP_NEED_TYPENAME 1
1.239 -# define _STLP_NEED_EXPLICIT 1
1.240 -# define _STLP_NEED_MUTABLE 1
1.241 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
1.242 -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
1.243 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
1.244 -# define _STLP_BROKEN_USING_DIRECTIVE 1
1.245 -# define _STLP_NO_ARROW_OPERATOR 1
1.246 -# define _STLP_NO_SIGNED_BUILTINS 1
1.247 -# define _STLP_NO_EXCEPTION_SPEC 1
1.248 -# define _STLP_HAS_NO_NAMESPACES 1
1.249 -# define _STLP_NO_AT_MEMBER_FUNCTION 1
1.250 -# define _STLP_NO_MEMBER_TEMPLATES 1
1.251 -# endif /* 1100 */
1.252 -
1.253 -#endif /* _STLP_MSVC */
1.254 -
1.255 -/** The desktop variants starting with VC8 have a set of more secure replacements
1.256 -for the error-prone string handling functions of the C standard lib. */
1.257 -#if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined(UNDER_CE)
1.258 -# define _STLP_USE_SAFE_STRING_FUNCTIONS 1
1.259 -#endif
1.260 -
1.261 -#if (_STLP_MSVC_LIB <= 1310)
1.262 -# define _STLP_VENDOR_GLOBAL_CSTD
1.263 -#endif
1.264 -
1.265 -#if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE)
1.266 -/* Starting with MSVC 7.0 and compilers simulating it,
1.267 - * we assume that the new SDK is granted:
1.268 - */
1.269 -# define _STLP_NEW_PLATFORM_SDK 1
1.270 -#endif
1.271 -
1.272 -#if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */
1.273 -# define _STLP_GLOBAL_NEW_HANDLER 1
1.274 -# define _STLP_VENDOR_UNEXPECTED_STD
1.275 -# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
1.276 -#endif
1.277 -
1.278 -#if (_STLP_MSVC_LIB < 1100)
1.279 -/* up to 4.2, library is in global namespace */
1.280 -# define _STLP_VENDOR_GLOBAL_STD
1.281 -#endif
1.282 -
1.283 -#if (_STLP_MSVC_LIB <= 1010)
1.284 -/* "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so : */
1.285 -# define _STLP_NO_BAD_ALLOC
1.286 -# define _STLP_HAS_NO_NEW_C_HEADERS 1
1.287 -# define _STLP_NO_NEW_NEW_HEADER 1
1.288 -#elif (_STLP_MSVC_LIB < 1100)
1.289 -/* VC++ 4.2 and higher */
1.290 -# define _STLP_YVALS_H 1
1.291 -# define _STLP_USE_NO_IOSTREAMS 1
1.292 -#endif
1.293 -
1.294 -#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
1.295 -#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
1.296 -
1.297 -#if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1100)
1.298 -# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
1.299 -# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
1.300 -#endif
1.301 -
1.302 -#if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL)
1.303 -# define _STLP_RUNTIME_DLL
1.304 -#endif
1.305 -#if defined (__BUILDING_STLPORT) && \
1.306 - (defined (_STLP_USE_DYNAMIC_LIB) || \
1.307 - defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB))
1.308 -# define _STLP_DLL
1.309 -#endif
1.310 -#include <stl/config/_detect_dll_or_lib.h>
1.311 -#undef _STLP_RUNTIME_DLL
1.312 -#undef _STLP_DLL
1.313 -
1.314 -#if defined (_STLP_USE_DYNAMIC_LIB)
1.315 -# undef _STLP_USE_DECLSPEC
1.316 -# define _STLP_USE_DECLSPEC 1
1.317 -# if (_STLP_MSVC >= 1200) && (_STLP_MSVC < 1300)
1.318 -# define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1
1.319 -# endif
1.320 -#endif
1.321 -
1.322 -#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD)
1.323 -# if !defined (_MSC_EXTENSIONS) || defined(_STLP_MSVC) && _STLP_MSVC >= 1300
1.324 -# define _STLP_IMPORT_TEMPLATE_KEYWORD
1.325 -# else
1.326 -# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
1.327 -# endif
1.328 -#endif
1.329 -#define _STLP_EXPORT_TEMPLATE_KEYWORD
1.330 -
1.331 -#if defined (_STLP_MSVC) && (_STLP_MSVC < 1200)
1.332 -/* only static STLport lib now works for VC 5.0 */
1.333 -# undef _STLP_USE_STATIC_LIB
1.334 -# undef _STLP_USE_DYNAMIC_LIB
1.335 -# define _STLP_USE_STATIC_LIB
1.336 -/* disable hook which makes template symbols to be searched for in the library */
1.337 -# undef _STLP_NO_CUSTOM_IO
1.338 -#endif
1.339 -
1.340 -#include <stl/config/_auto_link.h>
1.341 -
1.342 -#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
1.343 -/* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for
1.344 - * additional buffer overrun checks. Rather than require the STLport build system and
1.345 - * users to explicitely link with it we use the MSVC auto link feature.
1.346 - */
1.347 -# if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT)
1.348 -# pragma comment (lib, "bufferoverflowU.lib")
1.349 -# if defined (_STLP_VERBOSE_AUTO_LINK)
1.350 -# pragma message ("STLport: Auto linking to bufferoverflowU.lib")
1.351 -# endif
1.352 -# endif
1.353 -#endif
1.354 -
1.355 -/* Local Variables:
1.356 - * mode:C++
1.357 - * End:
1.358 - */
1.359 +/* STLport configuration file
1.360 + * It is internal STLport header - DO NOT include it directly
1.361 + * Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL
1.362 + */
1.363 +
1.364 +#if !defined (_STLP_COMPILER)
1.365 +# define _STLP_COMPILER "Microsoft Visual Studio C++"
1.366 +#endif
1.367 +
1.368 +#if !defined (__ICL) && !defined (_STLP_MSVC)
1.369 +# define _STLP_MSVC _MSC_VER
1.370 +#endif
1.371 +
1.372 +#if !defined (_STLP_MSVC_LIB)
1.373 +# define _STLP_MSVC_LIB _MSC_VER
1.374 +#endif
1.375 +
1.376 +#if defined (__BUILDING_STLPORT) && defined (_MANAGED)
1.377 +/* Building a managed version of STLport is not supported because we haven't
1.378 + * found a good reason to support it. However, building a managed translation
1.379 + * unit using STLport _is_ supported.
1.380 + */
1.381 +# error Sorry but building a managed version of STLport is not supported.
1.382 +#endif
1.383 +
1.384 +#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
1.385 +/* This is a specific section for compilers coming with platform SDKs. Native
1.386 + * library coming with it is different from the one coming with commercial
1.387 + * MSVC compilers so there is some specific settings.
1.388 + */
1.389 +# define _STLP_NATIVE_INCLUDE_PATH ../crt
1.390 +# define _STLP_VENDOR_GLOBAL_CSTD
1.391 +# define _STLP_VENDOR_TERMINATE_STD
1.392 +# define _STLP_GLOBAL_NEW_HANDLER
1.393 +# if (_STLP_MSVC_LIB <= 1400)
1.394 +/* We hope this bug will be fixed in future versions. */
1.395 +# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
1.396 +# endif
1.397 +#endif
1.398 +
1.399 +#define _STLP_CALL __cdecl
1.400 +
1.401 +#ifndef _STLP_LONG_LONG
1.402 +# define _STLP_LONG_LONG __int64
1.403 +#endif
1.404 +
1.405 +#define _STLP_PRAGMA_ONCE
1.406 +
1.407 +/* These switches depend on compiler flags. We are hoping here that compilers
1.408 + * simulating MSVC behavior use identical macros to report compilation context.
1.409 + * Otherwise those macros will have to be undef in specific compiler configuration
1.410 + * files.
1.411 + */
1.412 +#ifndef _CPPUNWIND
1.413 +# define _STLP_DONT_USE_EXCEPTIONS 1
1.414 +#endif
1.415 +
1.416 +#ifndef _CPPRTTI
1.417 +# define _STLP_NO_RTTI 1
1.418 +#endif
1.419 +
1.420 +#if defined (_MT) && !defined (_STLP_NO_THREADS) && !defined (_REENTRANT)
1.421 +# define _REENTRANT 1
1.422 +#endif
1.423 +
1.424 +#if !defined (_NATIVE_WCHAR_T_DEFINED)
1.425 +# define _STLP_WCHAR_T_IS_USHORT 1
1.426 +#endif
1.427 +
1.428 +#define _STLP_MINIMUM_IMPORT_STD
1.429 +#define _STLP_NO_VENDOR_STDLIB_L 1
1.430 +
1.431 +#if defined (_STLP_MSVC)
1.432 +
1.433 +#define _STLP_NORETURN_FUNCTION __declspec(noreturn)
1.434 +
1.435 +/* Full compiler version comes from boost library intrinsics.hpp header. */
1.436 +# if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
1.437 +# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
1.438 +# define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
1.439 +# define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
1.440 +# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
1.441 +# define _STLP_IS_POD(T) __is_pod(T)
1.442 +# define _STLP_HAS_TYPE_TRAITS_INTRINSICS
1.443 +# endif
1.444 +
1.445 +# ifndef _STLP_MSVC50_COMPATIBILITY
1.446 +# define _STLP_MSVC50_COMPATIBILITY 1
1.447 +# endif
1.448 +
1.449 +# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
1.450 +# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
1.451 +
1.452 +/* # ifndef __BUILDING_STLPORT
1.453 + * # define _STLP_USE_TEMPLATE_EXPORT 1
1.454 + * # endif
1.455 + */
1.456 +# if (_STLP_MSVC <= 1400)
1.457 +# define _STLP_STATIC_CONST_INIT_BUG 1
1.458 +# endif
1.459 +
1.460 +/** Note: the macro _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT is defined
1.461 +unconditionally and undef'ed here when applicable. */
1.462 +# if defined(UNDER_CE)
1.463 +/* eVCx:
1.464 +uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is
1.465 +unknown) and they all reside in namespace 'std' there. However, they are not
1.466 +part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on
1.467 +an ARMV4I, the uncaught_exception test fails, the function returns the wrong
1.468 +value. */
1.469 +# else
1.470 +/* VCx:
1.471 +These are present at least since VC6, but the uncaught_exception() of VC6 is
1.472 +broken, it returns the wrong value in the unittests. 7.1 and later seem to
1.473 +work, 7.0 is still unknown (we assume it works until negative report). */
1.474 +# if (_STLP_MSVC >= 1300)// VC7 and later
1.475 +# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
1.476 +# if !defined (_STLP_DONT_USE_EXCEPTIONS)
1.477 +# define _STLP_NOTHROW throw()
1.478 +# endif
1.479 +# endif
1.480 +# endif
1.481 +
1.482 +# if (_STLP_MSVC <= 1300)
1.483 +# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
1.484 +# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
1.485 +/* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */
1.486 +# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.487 +# define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
1.488 +# define _STLP_NO_METHOD_SPECIALIZATION 1
1.489 +# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
1.490 +# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
1.491 +/* VC++ cannot handle default allocator argument in template constructors */
1.492 +# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
1.493 +# define _STLP_NO_QUALIFIED_FRIENDS 1
1.494 +# define _STLP_NO_FRIEND_TEMPLATES
1.495 +/* Fails to properly resolve call to sin() from within sin() */
1.496 +# endif
1.497 +
1.498 +# if (_STLP_MSVC < 1300)
1.499 +# define _STLP_NO_IEC559_SUPPORT 1
1.500 +# endif
1.501 +
1.502 +# if (_STLP_MSVC < 1300) /* including MSVC 6.0 */
1.503 +/* These work, as long they are inline */
1.504 +# define _STLP_INLINE_MEMBER_TEMPLATES 1
1.505 +# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
1.506 +# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
1.507 +# endif
1.508 +
1.509 +# if (_STLP_MSVC >= 1200)
1.510 +# define _STLP_HAS_NATIVE_FLOAT_ABS 1
1.511 +# endif
1.512 +
1.513 +// TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to?
1.514 +# if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310)
1.515 +# define _STLP_NO_MOVE_SEMANTIC
1.516 +# endif
1.517 +
1.518 +# if (_STLP_MSVC < 1300)
1.519 +/* TODO: remove this if it is handled and documented elsewhere
1.520 + * dums: VC6 do not handle correctly member templates of class that are explicitely
1.521 + * instanciated to be exported. There is a workaround, seperate the non template methods
1.522 + * from the template ones within 2 different classes and only export the non template one.
1.523 + * It is implemented for basic_string and locale at the writing of this note.
1.524 + * However this problem hos not been considered as important enough to remove template member
1.525 + * methods for other classes. Moreover Boost (www.boost.org) required it to be granted.
1.526 + * The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined
1.527 + * later in this config file.
1.528 + */
1.529 +/*
1.530 +# if defined (_DLL)
1.531 +# define _STLP_NO_MEMBER_TEMPLATES 1
1.532 +# endif
1.533 +*/
1.534 +
1.535 +/* Boris : not defining this macro for SP5 causes other problems */
1.536 +/*# if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */
1.537 +# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
1.538 +/*# endif */
1.539 +# define _STLP_DONT_USE_BOOL_TYPEDEF 1
1.540 +# define _STLP_DONT_RETURN_VOID 1
1.541 +# endif
1.542 +
1.543 +/*
1.544 + * MSVC6 is known to have many trouble with namespace management but
1.545 + * MSVC .Net 2003 and 2005 also have a bug difficult to reproduce without
1.546 + * STLport:
1.547 + * namespace stlp_std {
1.548 + * typedef int foo_int;
1.549 + * }
1.550 + * #include <map>
1.551 + * const foo_int bar = 0;
1.552 + *
1.553 + * As you can see foo is available without namespace specification as if
1.554 + * a using namespace stlp_std has been performed. Defining _STLP_USING_NAMESPACE_BUG
1.555 + * restore the expected compilation error.
1.556 + */
1.557 +# define _STLP_USING_NAMESPACE_BUG 1
1.558 +
1.559 +# if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */
1.560 +/* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */
1.561 +# define _STLP_USE_ABBREVS
1.562 +# endif
1.563 +
1.564 +// TODO: what is the earliest version for this? If it is 1200, use _STLP_MSVC>=1200.
1.565 +# if (_STLP_MSVC > 1100) && (_STLP_MSVC < 1300)
1.566 +typedef char __stl_char;
1.567 +# define _STLP_DEFAULTCHAR __stl_char
1.568 +# endif
1.569 +
1.570 +# if (_STLP_MSVC < 1200) /* before VC++ 6.0 */
1.571 +/* # define _STLP_NO_MEMBER_TEMPLATES 1 */
1.572 +/* # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 */
1.573 +# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS 1
1.574 +# define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1
1.575 +# define _STLP_QUALIFIED_SPECIALIZATION_BUG 1
1.576 +# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
1.577 +# define _STLP_THROW_RETURN_BUG 1
1.578 +# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
1.579 +# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
1.580 +# endif
1.581 +
1.582 +# if (_STLP_MSVC < 1100 )
1.583 +# ifndef _STLP_USE_NO_IOSTREAMS
1.584 +# define _STLP_USE_NO_IOSTREAMS
1.585 +# endif
1.586 +/* # define _STLP_NESTED_TYPE_PARAM_BUG 1 */
1.587 +/* Debug mode does not work for 4.2 */
1.588 +# if defined (_STLP_DEBUG)
1.589 +# pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
1.590 +# undef _STLP_DEBUG
1.591 +# endif
1.592 +# define _STLP_NO_BOOL 1
1.593 +# define _STLP_NEED_TYPENAME 1
1.594 +# define _STLP_NEED_EXPLICIT 1
1.595 +# define _STLP_NEED_MUTABLE 1
1.596 +# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
1.597 +# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
1.598 +# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
1.599 +# define _STLP_BROKEN_USING_DIRECTIVE 1
1.600 +# define _STLP_NO_ARROW_OPERATOR 1
1.601 +# define _STLP_NO_SIGNED_BUILTINS 1
1.602 +# define _STLP_NO_EXCEPTION_SPEC 1
1.603 +# define _STLP_HAS_NO_NAMESPACES 1
1.604 +# define _STLP_NO_AT_MEMBER_FUNCTION 1
1.605 +# define _STLP_NO_MEMBER_TEMPLATES 1
1.606 +# endif /* 1100 */
1.607 +
1.608 +#endif /* _STLP_MSVC */
1.609 +
1.610 +/** The desktop variants starting with VC8 have a set of more secure replacements
1.611 +for the error-prone string handling functions of the C standard lib. */
1.612 +#if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined(UNDER_CE)
1.613 +# define _STLP_USE_SAFE_STRING_FUNCTIONS 1
1.614 +#endif
1.615 +
1.616 +#if (_STLP_MSVC_LIB <= 1310)
1.617 +# define _STLP_VENDOR_GLOBAL_CSTD
1.618 +#endif
1.619 +
1.620 +#if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE)
1.621 +/* Starting with MSVC 7.0 and compilers simulating it,
1.622 + * we assume that the new SDK is granted:
1.623 + */
1.624 +# define _STLP_NEW_PLATFORM_SDK 1
1.625 +#endif
1.626 +
1.627 +#if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */
1.628 +# define _STLP_GLOBAL_NEW_HANDLER 1
1.629 +# define _STLP_VENDOR_UNEXPECTED_STD
1.630 +# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
1.631 +#endif
1.632 +
1.633 +#if (_STLP_MSVC_LIB < 1100)
1.634 +/* up to 4.2, library is in global namespace */
1.635 +# define _STLP_VENDOR_GLOBAL_STD
1.636 +#endif
1.637 +
1.638 +#if (_STLP_MSVC_LIB <= 1010)
1.639 +/* "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so : */
1.640 +# define _STLP_NO_BAD_ALLOC
1.641 +# define _STLP_HAS_NO_NEW_C_HEADERS 1
1.642 +# define _STLP_NO_NEW_NEW_HEADER 1
1.643 +#elif (_STLP_MSVC_LIB < 1100)
1.644 +/* VC++ 4.2 and higher */
1.645 +# define _STLP_YVALS_H 1
1.646 +# define _STLP_USE_NO_IOSTREAMS 1
1.647 +#endif
1.648 +
1.649 +#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
1.650 +#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
1.651 +
1.652 +#if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1100)
1.653 +# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
1.654 +# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
1.655 +#endif
1.656 +
1.657 +#if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL)
1.658 +# define _STLP_RUNTIME_DLL
1.659 +#endif
1.660 +#if defined (__BUILDING_STLPORT) && \
1.661 + (defined (_STLP_USE_DYNAMIC_LIB) || \
1.662 + defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB))
1.663 +# define _STLP_DLL
1.664 +#endif
1.665 +#include <stl/config/_detect_dll_or_lib.h>
1.666 +#undef _STLP_RUNTIME_DLL
1.667 +#undef _STLP_DLL
1.668 +
1.669 +#if defined (_STLP_USE_DYNAMIC_LIB)
1.670 +# undef _STLP_USE_DECLSPEC
1.671 +# define _STLP_USE_DECLSPEC 1
1.672 +# if (_STLP_MSVC >= 1200) && (_STLP_MSVC < 1300)
1.673 +# define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1
1.674 +# endif
1.675 +#endif
1.676 +
1.677 +#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD)
1.678 +# if !defined (_MSC_EXTENSIONS) || defined(_STLP_MSVC) && _STLP_MSVC >= 1300
1.679 +# define _STLP_IMPORT_TEMPLATE_KEYWORD
1.680 +# else
1.681 +# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
1.682 +# endif
1.683 +#endif
1.684 +#define _STLP_EXPORT_TEMPLATE_KEYWORD
1.685 +
1.686 +#if defined (_STLP_MSVC) && (_STLP_MSVC < 1200)
1.687 +/* only static STLport lib now works for VC 5.0 */
1.688 +# undef _STLP_USE_STATIC_LIB
1.689 +# undef _STLP_USE_DYNAMIC_LIB
1.690 +# define _STLP_USE_STATIC_LIB
1.691 +/* disable hook which makes template symbols to be searched for in the library */
1.692 +# undef _STLP_NO_CUSTOM_IO
1.693 +#endif
1.694 +
1.695 +#include <stl/config/_auto_link.h>
1.696 +
1.697 +#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
1.698 +/* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for
1.699 + * additional buffer overrun checks. Rather than require the STLport build system and
1.700 + * users to explicitely link with it we use the MSVC auto link feature.
1.701 + */
1.702 +# if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT)
1.703 +# pragma comment (lib, "bufferoverflowU.lib")
1.704 +# if defined (_STLP_VERBOSE_AUTO_LINK)
1.705 +# pragma message ("STLport: Auto linking to bufferoverflowU.lib")
1.706 +# endif
1.707 +# endif
1.708 +#endif
1.709 +
1.710 +/* Local Variables:
1.711 + * mode:C++
1.712 + * End:
1.713 + */