00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00042 # error This file must not be included independently of stlsoft/stlsoft.h
00043 #endif
00044
00051 #ifdef STLSOFT_INCL_H_STLSOFT_CCCAP_DMC
00052 # error This file cannot be included more than once in any compilation unit
00053 #endif
00054
00055
00056
00057 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00058 # define STLSOFT_VER_H_STLSOFT_CCCAP_DMC_MAJOR 3
00059 # define STLSOFT_VER_H_STLSOFT_CCCAP_DMC_MINOR 18
00060 # define STLSOFT_VER_H_STLSOFT_CCCAP_DMC_REVISION 2
00061 # define STLSOFT_VER_H_STLSOFT_CCCAP_DMC_EDIT 91
00062 #endif
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081 #ifdef __cplusplus
00082 # include <algorithm>
00083
00084 # include <utility>
00085
00086 # if defined(_STLPORT_VERSION)
00087
00088 # elif defined(__SGI_STL_ALGORITHM)
00089
00090 # else
00091 # error STLSoft is compatible with only STLport and the SGI STL, when used with the Digital Mars compiler
00092 # endif
00093 #endif
00094
00095
00096
00097
00098
00099
00100
00101
00102 #define STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT
00103
00104
00105
00106
00107 #define STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00108
00109
00110
00111
00112 #if __DMC__ >= 0x850
00113 # define STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT
00114 #endif
00115
00116
00117
00118
00119 #if __DMC__ >= 0x850
00120 # define STLSOFT_CF_SUPPORTS_VARIADIC_MACROS
00121 #endif
00122
00123
00124
00125
00126
00127 #ifdef _BOOL_DEFINED
00128 # define STLSOFT_CF_NATIVE_BOOL_SUPPORT
00129 #else
00130
00131 #endif
00132
00133
00134 #ifdef _CHAR_UNSIGNED
00135 # define STLSOFT_CF_CHAR_IS_UNSIGNED
00136 #endif
00137
00138
00139 #ifdef _WCHAR_T_DEFINED
00140 # define STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
00141 #else
00142
00143 #endif
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178 #define _STLSOFT_SIZEOF_CHAR (1)
00179 #define _STLSOFT_SIZEOF_SHORT (2)
00180 #define _STLSOFT_SIZEOF_INT (4)
00181 #define _STLSOFT_SIZEOF_LONG (4)
00182 #define _STLSOFT_SIZEOF_LONG_LONG (8)
00183
00184
00185 #define STLSOFT_CF_8BIT_INT_SUPPORT
00186 #define STLSOFT_SI08_T_BASE_TYPE signed char
00187 #define STLSOFT_UI08_T_BASE_TYPE unsigned char
00188
00189
00190 #define STLSOFT_CF_16BIT_INT_SUPPORT
00191 #define STLSOFT_SI16_T_BASE_TYPE signed short
00192 #define STLSOFT_UI16_T_BASE_TYPE unsigned short
00193
00194
00195 #define STLSOFT_CF_32BIT_INT_SUPPORT
00196 #define STLSOFT_SI32_T_BASE_TYPE signed int
00197 #define STLSOFT_UI32_T_BASE_TYPE unsigned int
00198 #define STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00199
00200
00201 #define STLSOFT_CF_64BIT_INT_SUPPORT
00202 #define STLSOFT_CF_64BIT_INT_IS_long_long
00203 #define STLSOFT_SI64_T_BASE_TYPE signed long long
00204 #define STLSOFT_UI64_T_BASE_TYPE unsigned long long
00205
00206
00207 #define STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
00208
00209
00210 #if __DMC__ >= 0x0835
00211 # define STLSOFT_CF_STATIC_ASSERT_SUPPORT
00212 #endif
00213
00214
00215 #ifdef _CPPRTTI
00216 # define STLSOFT_CF_RTTI_SUPPORT
00217 #else
00218
00219 #endif
00220
00221
00222 #ifdef _CPPUNWIND
00223 # define STLSOFT_CF_EXCEPTION_SUPPORT
00224 #else
00225
00226 #endif
00227
00228
00229 #define STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
00230
00231
00232
00233
00234
00235
00236
00237 #if __DMC__ < 0x833
00238 # define _STLSOFT_NO_NAMESPACES
00239 #endif
00240
00241 #ifdef __cplusplus
00242 # define STLSOFT_CF_NAMESPACE_SUPPORT
00243 #endif
00244
00245 #define STLSOFT_CF_ANONYMOUS_UNION_SUPPORT
00246
00247 #define STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID
00248
00249
00250 #define STLSOFT_CF_TEMPLATE_SUPPORT
00251
00252
00253
00254 #if __DMC__ >= 0x0838 && \
00255 defined(_STLPORT_VERSION)
00256 # define STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
00257 #endif
00258
00259
00260
00261
00262
00263 #define STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT
00264
00265 #define STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
00266
00267 #if __DMC__ >= 0x0837
00268 # define STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT
00269 #else
00270
00271 #endif
00272
00273 #if __DMC__ >= 0x0832
00274 # define STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00275 #else
00276
00277 #endif
00278
00279 #if __DMC__ >= 0x0832
00280 # define STLSOFT_CF_MEMBER_TEMPLATE_OVERLOAD_DISCRIMINATED
00281 #else
00282
00283 #endif
00284
00285 #if __DMC__ >= 0x0832
00286 # define STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
00287 #else
00288
00289 #endif
00290
00291 #if __DMC__ >= 0x0832
00292 # define STLSOFT_CF_MEMBER_TEMPLATE_CTOR_OVERLOAD_DISCRIMINATED
00293 #else
00294
00295 #endif
00296
00297 #if __DMC__ >= 0x0843
00298 # define STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
00299 #else
00300
00301 #endif
00302
00303 #if __DMC__ >= 0x0829
00304 # define STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
00305 #else
00306
00307 #endif
00308
00309 #if __DMC__ >= 0x0829
00310 # define STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX
00311 #else
00312
00313 #endif
00314
00315 #if __DMC__ >= 0x0829
00316 # define STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
00317 #else
00318
00319 #endif
00320
00321 #define STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
00322
00323 #if defined(_STLPORT_VERSION) || \
00324 defined(__STL_USE_NAMESPACES)
00325 # define STLSOFT_CF_std_NAMESPACE
00326 #else
00327
00328 #endif
00329
00330 #define STLSOFT_CF_std_char_traits_AVAILABLE
00331
00332 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_NON_TEMPLATE
00333
00334 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_TEMPLATE
00335
00336 #define STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
00337
00338 #define STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
00339
00340 #define STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT
00341
00342 #define STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT
00343
00344 #define STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
00345
00346
00347
00348 #define STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
00349
00350 #if __DMC__ >= 0x0840
00351 # define STLSOFT_CF_TEMPLATE_QUALIFIER_KEYWORD_SUPPORT
00352 #endif
00353
00354 #define STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT
00355
00356 #if __DMC__ >= 0x0834
00357 # define STLSOFT_CF_ADL_LOOKUP_SUPPORT
00358 #endif
00359
00360
00361
00362 #if __DMC__ >= 0x0846
00363
00364 #else
00365
00366 #endif
00367
00368 #define STLSOFT_CF_VENEER_SUPPORT
00369
00370 #define STLSOFT_CF_ALLOCATOR_BASE_EXPENSIVE
00371
00372
00373
00374
00375
00376
00377 #define STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT
00378
00379 #define STLSOFT_CF_OPERATOR_BOOL_AS_OPERATOR_POINTER_TO_MEMBER_SUPPORT
00380 #define STLSOFT_CF_OPERATOR_NOT_VIA_OPERATOR_POINTER_TO_MEMBER_SUPPORT
00381
00382
00383 #define STLSOFT_CF_REQUIRE_RETURN_ALWAYS
00384
00385
00386
00387
00388
00389
00390 #if defined(_STLSOFT_CUSTOM_ASSERT)
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413 # define __STLSOFT_CF_ASSERT_SUPPORT
00414 # define STLSOFT_CF_ASSERT_SUPPORT
00415 # define STLSOFT_ASSERT(_x) _STLSOFT_CUSTOM_ASSERT(_x)
00416 # if defined(_STLSOFT_CUSTOM_ASSERT_INCLUDE)
00417 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME _STLSOFT_CUSTOM_ASSERT_INCLUDE
00418 # else
00419 # error You must define _STLSOFT_CUSTOM_ASSERT_INCLUDE along with _STLSOFT_CUSTOM_ASSERT()
00420 # endif
00421 #else
00422 # define __STLSOFT_CF_ASSERT_SUPPORT
00423 # define STLSOFT_CF_ASSERT_SUPPORT
00424
00425 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME <assert.h>
00426 # define STLSOFT_ASSERT(_x) assert(_x)
00427 #endif
00428
00429
00430
00431
00432
00433 #define STLSOFT_CF_THISCALL_SUPPORTED
00434 #define STLSOFT_CF_CDECL_SUPPORTED
00435 #define STLSOFT_CF_STDCALL_SUPPORTED
00436
00437 #ifdef STLSOFT_CF_CDECL_SUPPORTED
00438 # define STLSOFT_CDECL __cdecl
00439 #endif
00440 #ifdef STLSOFT_CF_STDCALL_SUPPORTED
00441 # define STLSOFT_STDCALL __stdcall
00442 #endif
00443
00444
00445
00446
00447
00448 #define STSLSOFT_INLINE_ASM_SUPPORTED
00449 #define STSLSOFT_ASM_IN_INLINE_SUPPORTED
00450
00451
00452
00453
00454
00455 #define STLSOFT_CF_C99_INLINE
00456
00457
00458
00459
00460
00461