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_COMO
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_COMO_MAJOR 3
00059 # define STLSOFT_VER_H_STLSOFT_CCCAP_COMO_MINOR 16
00060 # define STLSOFT_VER_H_STLSOFT_CCCAP_COMO_REVISION 2
00061 # define STLSOFT_VER_H_STLSOFT_CCCAP_COMO_EDIT 68
00062 #endif
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077 #if defined(__BORLANDC__)
00078 # define STLSOFT_CF_COMO_BACKEND_IS_BORLAND
00079 #elif defined(__DMC__)
00080 # define STLSOFT_CF_COMO_BACKEND_IS_DMC
00081 #elif defined(__GNUC__)
00082 # define STLSOFT_CF_COMO_BACKEND_IS_GCC
00083 #elif defined(__INTEL_COMPILER)
00084 # define STLSOFT_CF_COMO_BACKEND_IS_INTEL
00085 #elif defined(__MWERKS__)
00086 # define STLSOFT_CF_COMO_BACKEND_IS_MWERKS
00087 #elif defined(_MSC_VER)
00088 # define STLSOFT_CF_COMO_BACKEND_IS_MSVC
00089 #else
00090 # error Your Comeau back-end is not recognised. Please contact admin hat stlsoft dot org
00091 #endif
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105 #define STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00106
00107
00108
00109
00110 #define STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT
00111
00112
00113
00114
00115 #define STLSOFT_CF_SUPPORTS_VARIADIC_MACROS
00116
00117
00118
00119
00120
00121 #ifdef _BOOL
00122 # define STLSOFT_CF_NATIVE_BOOL_SUPPORT
00123 #else
00124
00125 #endif
00126
00127
00128 #ifdef _WCHAR_T
00129 # define STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
00130 #else
00131
00132 #endif
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167 #if defined(__LP64__)
00168 # define _STLSOFT_SIZEOF_CHAR (1)
00169 # define _STLSOFT_SIZEOF_SHORT (2)
00170 # define _STLSOFT_SIZEOF_INT (4)
00171 # define _STLSOFT_SIZEOF_LONG (8)
00172 # define _STLSOFT_SIZEOF_LONG_LONG (8)
00173 #elif defined(__linux__) || \
00174 defined(__APPLE__)
00175 # define _STLSOFT_SIZEOF_CHAR (1)
00176 # define _STLSOFT_SIZEOF_SHORT (2)
00177 # define _STLSOFT_SIZEOF_INT (4)
00178 # define _STLSOFT_SIZEOF_LONG (4)
00179 # define _STLSOFT_SIZEOF_LONG_LONG (8)
00180 #elif defined(_WIN64) || \
00181 defined(_WIN32)
00182 # define _STLSOFT_SIZEOF_CHAR (1)
00183 # define _STLSOFT_SIZEOF_SHORT (2)
00184 # define _STLSOFT_SIZEOF_INT (4)
00185 # define _STLSOFT_SIZEOF_LONG (4)
00186 # define _STLSOFT_SIZEOF_LONG_LONG (8)
00187 #else
00188 # error Use of Comeau has not been verified on any operation system other than Win32. Please contact Synesis Software
00189 #endif
00190
00191
00192 #define STLSOFT_CF_8BIT_INT_SUPPORT
00193 #define STLSOFT_SI08_T_BASE_TYPE signed char
00194 #define STLSOFT_UI08_T_BASE_TYPE unsigned char
00195
00196
00197 #define STLSOFT_CF_16BIT_INT_SUPPORT
00198 #define STLSOFT_SI16_T_BASE_TYPE signed short
00199 #define STLSOFT_UI16_T_BASE_TYPE unsigned short
00200
00201
00202 #define STLSOFT_CF_32BIT_INT_SUPPORT
00203 #define STLSOFT_SI32_T_BASE_TYPE signed int
00204 #define STLSOFT_UI32_T_BASE_TYPE unsigned int
00205 #define STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00206
00207
00208 #define STLSOFT_CF_64BIT_INT_SUPPORT
00209 #define STLSOFT_CF_64BIT_INT_IS_long_long
00210 #define STLSOFT_SI64_T_BASE_TYPE signed long long
00211 #define STLSOFT_UI64_T_BASE_TYPE unsigned long long
00212
00213
00214 #define STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
00215
00216
00217 #define STLSOFT_CF_STATIC_ASSERT_SUPPORT
00218
00219
00220 #ifdef __cplusplus
00221 # define STLSOFT_CF_RTTI_SUPPORT
00222 #endif
00223
00224
00225 #ifdef __cplusplus
00226 # define STLSOFT_CF_EXCEPTION_SUPPORT
00227 #endif
00228
00229
00230 #define STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
00231
00232
00233
00234
00235 #ifdef __cplusplus
00236 # define STLSOFT_CF_NAMESPACE_SUPPORT
00237 #endif
00238
00239 #define STLSOFT_CF_ANONYMOUS_UNION_SUPPORT
00240
00241 #if __COMO__ >= 4303
00242 # define STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID
00243 #endif
00244
00245
00246 #define STLSOFT_CF_TEMPLATE_SUPPORT
00247
00248
00249
00250 #define STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
00251
00252 #define STLSOFT_CF_EXCEPTION_SPEC_EXPENSIVE
00253
00254 #define STLSOFT_CF_THROW_BAD_ALLOC
00255
00256 #define STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT
00257
00258 #define STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
00259
00260 #define STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT
00261
00262 #define STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00263
00264 #define STLSOFT_CF_MEMBER_TEMPLATE_OVERLOAD_DISCRIMINATED
00265
00266 #define STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
00267
00268 #define STLSOFT_CF_MEMBER_TEMPLATE_CTOR_OVERLOAD_DISCRIMINATED
00269
00270 #define STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
00271
00272 #define STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
00273
00274 #define STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX
00275
00276 #define STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
00277
00278 #define STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
00279
00280 #define STLSOFT_CF_std_NAMESPACE
00281
00282 #define STLSOFT_CF_std_char_traits_AVAILABLE
00283
00284 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_NON_TEMPLATE
00285
00286 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_TEMPLATE
00287
00288 #define STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
00289
00290 #define STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
00291
00292 #define STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT
00293
00294 #define STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT
00295
00296 #define STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
00297
00298
00299
00300 #define STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
00301
00302 #define STLSOFT_CF_TEMPLATE_QUALIFIER_KEYWORD_SUPPORT
00303
00304
00305
00306 #define STLSOFT_CF_ADL_LOOKUP_SUPPORT
00307
00308 #define STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT
00309
00310 #define STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT
00311
00312 #define STLSOFT_CF_VENEER_SUPPORT
00313
00314 #define STLSOFT_CF_ALLOCATOR_BASE_EXPENSIVE
00315
00316
00317
00318
00319
00320
00321 #define STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT
00322
00323 #define STLSOFT_CF_OPERATOR_BOOL_AS_OPERATOR_POINTER_TO_MEMBER_SUPPORT
00324 #define STLSOFT_CF_OPERATOR_NOT_VIA_OPERATOR_POINTER_TO_MEMBER_SUPPORT
00325
00326
00327
00328
00329
00330 #if defined(_STLSOFT_CUSTOM_ASSERT)
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353 # define __STLSOFT_CF_ASSERT_SUPPORT
00354 # define STLSOFT_CF_ASSERT_SUPPORT
00355 # define STLSOFT_ASSERT(_x) _STLSOFT_CUSTOM_ASSERT(_x)
00356 # if defined(_STLSOFT_CUSTOM_ASSERT_INCLUDE)
00357 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME _STLSOFT_CUSTOM_ASSERT_INCLUDE
00358 # else
00359 # error You must define _STLSOFT_CUSTOM_ASSERT_INCLUDE along with _STLSOFT_CUSTOM_ASSERT()
00360 # endif
00361 #else
00362 # if defined(STLSOFT_CF_COMO_BACKEND_IS_BORLAND)
00363 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME <assert.h>
00364 # define STLSOFT_ASSERT(_x) assert(_x)
00365 # else
00366 # define __STLSOFT_CF_ASSERT_SUPPORT
00367 # define STLSOFT_CF_ASSERT_SUPPORT
00368 # define __STLSOFT_CF_USE_cassert
00369 # endif
00370 #endif
00371
00372
00373
00374
00375
00376 #define STLSOFT_CF_CDECL_SUPPORTED
00377
00378 #if defined(__STDC__)
00379
00380
00381
00382 #else
00383
00384 # if defined(STLSOFT_CF_COMO_BACKEND_IS_BORLAND)
00385
00386 # define STLSOFT_CF_THISCALL_SUPPORTED
00387 # define STLSOFT_CF_FASTCALL_SUPPORTED
00388 # define STLSOFT_CF_STDCALL_SUPPORTED
00389
00390 # define STLSOFT_CDECL __cdecl
00391 # define STLSOFT_FASTCALL __msfastcall
00392 # define STLSOFT_STDCALL __stdcall
00393
00394 # elif defined(STLSOFT_CF_COMO_BACKEND_IS_DMC)
00395
00396 # define STLSOFT_CF_THISCALL_SUPPORTED
00397 # define STLSOFT_CF_STDCALL_SUPPORTED
00398
00399 # define STLSOFT_CDECL __cdecl
00400 # define STLSOFT_STDCALL __stdcall
00401
00402 # elif defined(STLSOFT_CF_COMO_BACKEND_IS_GCC)
00403
00404 # if defined(WIN32) || \
00405 defined(WIN64)
00406
00407 # define STLSOFT_CF_THISCALL_SUPPORTED
00408 # define STLSOFT_CF_FASTCALL_SUPPORTED
00409 # define STLSOFT_CF_STDCALL_SUPPORTED
00410
00411 # define STLSOFT_CDECL __cdecl
00412 # define STLSOFT_FASTCALL __fastcall
00413 # define STLSOFT_STDCALL __stdcall
00414
00415 # endif
00416
00417 # elif defined(STLSOFT_CF_COMO_BACKEND_IS_INTEL)
00418
00419 # if defined(WIN32) || \
00420 defined(WIN64)
00421
00422 # define STLSOFT_CF_THISCALL_SUPPORTED
00423 # define STLSOFT_CF_FASTCALL_SUPPORTED
00424 # define STLSOFT_CF_STDCALL_SUPPORTED
00425
00426 # define STLSOFT_CDECL __cdecl
00427 # define STLSOFT_FASTCALL __fastcall
00428 # define STLSOFT_STDCALL __stdcall
00429
00430 # endif
00431
00432 # elif defined(STLSOFT_CF_COMO_BACKEND_IS_MWERKS)
00433
00434 # if defined(WIN32) || \
00435 defined(WIN64)
00436
00437 # define STLSOFT_CF_THISCALL_SUPPORTED
00438 # define STLSOFT_CF_FASTCALL_SUPPORTED
00439 # define STLSOFT_CF_STDCALL_SUPPORTED
00440
00441 # define STLSOFT_CDECL __cdecl
00442 # define STLSOFT_FASTCALL __fastcall
00443 # define STLSOFT_STDCALL __stdcall
00444
00445 # endif
00446
00447 # elif defined(STLSOFT_CF_COMO_BACKEND_IS_MSVC)
00448
00449 # define STLSOFT_CF_THISCALL_SUPPORTED
00450 # define STLSOFT_CF_FASTCALL_SUPPORTED
00451 # define STLSOFT_CF_STDCALL_SUPPORTED
00452
00453 # define STLSOFT_CDECL __cdecl
00454 # define STLSOFT_FASTCALL __fastcall
00455 # define STLSOFT_STDCALL __stdcall
00456
00457 # else
00458 # error Unrecognised compiler
00459 # endif
00460
00461 #endif
00462
00463
00464
00465
00466
00467 #if !defined(_MSC_VER)
00468 # define STSLSOFT_INLINE_ASM_SUPPORTED
00469 # define STSLSOFT_ASM_IN_INLINE_SUPPORTED
00470 #endif
00471
00472
00473
00474
00475
00476 #define STLSOFT_CF_C99_INLINE
00477
00478
00479
00480
00481
00482