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
00042
00043
00044 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00045 # error This file must not be included independently of stlsoft/stlsoft.h
00046 #endif
00047
00054 #ifdef STLSOFT_INCL_H_STLSOFT_CCCAP_INTEL
00055 # error This file cannot be included more than once in any compilation unit
00056 #endif
00057
00058 #ifndef STLSOFT_COMPILER_IS_INTEL
00059 # error This file has been erroneously included for a compiler other than Intel C/C++
00060 #endif
00061
00062
00063
00064 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00065 # define STLSOFT_VER_H_STLSOFT_CCCAP_INTEL_MAJOR 3
00066 # define STLSOFT_VER_H_STLSOFT_CCCAP_INTEL_MINOR 18
00067 # define STLSOFT_VER_H_STLSOFT_CCCAP_INTEL_REVISION 2
00068 # define STLSOFT_VER_H_STLSOFT_CCCAP_INTEL_EDIT 78
00069 #endif
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105 #if defined(_MSC_VER) && \
00106 _MSC_VER < 1200
00107 # error STLSoft does not support Intel C/C++ in compatibility mode with versions of Visual C++ less than 6.0
00108 #endif
00109
00110
00111 #if __INTEL_COMPILER == 700 && \
00112 _MSC_VER == 1310
00113 # define STLSOFT_INCL_H_STLSOFT_CCCAP_INTEL_7_1
00114 #endif
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 #define STLSOFT_PPF_pragma_message_SUPPORT
00127
00128 #if __INTEL_COMPILER >= 700
00129 # define STLSOFT_PPF_pragma_once_SUPPORT
00130 #endif
00131
00132 #if __INTEL_COMPILER >= 700
00133 # define STLSOFT_PPF_COUNTER_SYMBOL_SUPPORT
00134 #endif
00135
00136 #if __INTEL_COMPILER >= 700
00137 # define STLSOFT_PPF_FUNCTION_SYMBOL_SUPPORT
00138 #endif
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157 #if !defined(_MSC_VER) || \
00158 defined(__BOOL_DEFINED)
00159 # define STLSOFT_CF_BUILTIN_bool_SUPPORT
00160 #endif
00161
00162 #ifdef _NATIVE_WCHAR_T_DEFINED
00163 # define STLSOFT_CF_BUILTIN_wchar_t_SUPPORT
00164 #endif
00165
00166
00167
00168
00169
00170 #define STLSOFT_CF_BUILTIN___int8_SUPPORT
00171
00172 #define STLSOFT_CF_BUILTIN___int16_SUPPORT
00173
00174 #define STLSOFT_CF_BUILTIN___int32_SUPPORT
00175
00176 #if _MSC_VER >= 1020
00177 # define STLSOFT_CF_BUILTIN___int64_SUPPORT
00178 #endif
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189 #ifdef _CHAR_UNSIGNED
00190 # define STLSOFT_CF_CHAR_IS_UNSIGNED
00191 #endif
00192
00193 #if !defined(STLSOFT_CF_BUILTIN_wchar_t_SUPPORT) && \
00194 defined(_WCHAR_T_DEFINED)
00195 # define STLSOFT_CF_wchar_t_IS_SYNTHESISED
00196 #endif
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207 #if __INTEL_COMPILER >= 700
00208 # define STLSOFT_CF_return_void_SUPPORT
00209 #endif
00210
00211 #define STLSOFT_CF_STATIC_ASSERT_SUPPORT
00212
00213 #define STLSOFT_CF_ANONYMOUS_UNION_SUPPORT
00214
00215 #define STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227 #define STLSOFT_CUSTOM_C_INLINE __inline
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261 #ifdef _CPPUNWIND
00262 # define STLSOFT_CF_EXCEPTION_SUPPORT
00263 # if defined(_MSC_VER) && \
00264 _MSC_VER >= 1100
00265 # define STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
00266 # endif
00267
00268
00269
00270 # if ( defined(_MSC_VER) && \
00271 _MSC_VER >= 1300) || \
00272 ( !defined(_MSC_VER) && \
00273 __INTEL_COMPILER >= 900)
00274 # define STLSOFT_CF_EXCEPTION_OPERATOR_NEW_THROWS_BAD_ALLOC
00275 # endif
00276 #endif
00277
00278 #ifdef _CPPRTTI
00279 # define STLSOFT_CF_RTTI_SUPPORT
00280 #endif
00281
00282 #ifdef __cplusplus
00283 # define STLSOFT_CF_NAMESPACE_SUPPORT
00284 #endif
00285
00286
00287
00288
00289
00290 #define STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
00291
00292 #define STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
00293
00294 #define STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
00295
00296
00297
00298
00299
00300 #define STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT
00301
00302 #define STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT
00303
00304 #define STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
00305
00306 #define STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT
00307
00308 #define STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
00309
00310 #if defined(STLSOFT_INCL_H_STLSOFT_CCCAP_INTEL_7_1) || \
00311 __INTEL_COMPILER >= 800
00312 # define STLSOFT_CF_ADL_SUPPORT
00313 #endif
00314
00315 #define STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT
00316
00317 #ifdef _MSC_EXTENSIONS
00318 # define STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT
00319 #endif
00320
00321 #if !defined(_MSC_VER) || \
00322 _MSC_VER >= 1300
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 #endif
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358 #define STLSOFT_CF_TEMPLATE_SUPPORT
00359
00360 #define STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX_SUPPORT
00361
00362 #define STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
00363
00364 #define STLSOFT_CF_TEMPLATE_FUNCTION_TEMPLATE_SUPPORT
00365
00366 #define STLSOFT_CF_TEMPLATE_CLASS_TEMPLATE_SUPPORT
00367
00368 #define STLSOFT_CF_TEMPLATE_MEMBER_CLASS_TEMPLATE_SUPPORT
00369
00370 #define STLSOFT_CF_TEMPLATE_MEMBER_FUNCTION_TEMPLATE_SUPPORT
00371
00372 #define STLSOFT_CF_TEMPLATE_MEMBER_RANGE_FUNCTION_TEMPLATE_SUPPORT
00373
00374 #define STLSOFT_CF_TEMPLATE_CTOR_TEMPLATE_SUPPORT
00375
00376 #define STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT
00377
00378 #define STLSOFT_CF_TEMPLATE_FUNDAMENTAL_PARAMETER_SUPPORT
00379
00380 #define STLSOFT_CF_TEMPLATE_TYPE_PARAMETER_SUPPORT
00381
00382 #define STLSOFT_CF_TEMPLATE_MEMBER_FUNCTION_PARAMETER_SUPPORT
00383
00384 #define STLSOFT_CF_TEMPLATE_DEFAULT_FUNDAMENTAL_PARAMETER_SUPPORT
00385
00386 #define STLSOFT_CF_TEMPLATE_DEFAULT_TYPE_PARAMETER_SUPPORT
00387
00388 #define STLSOFT_CF_TEMPLATE_FUNCTION_TEMPLATE_REQUIRES_TEMPLATE_PARAMETERS_IN_FUNCTION_PARAMETER_LIST
00389
00390 #define STLSOFT_CF_TEMPLATE_MEMBER_FUNCTION_TEMPLATE_OVERLOAD_DISCRIMINATED_AGAINST_NON_TEMPLATE_MEMBER_FUNCTION
00391
00392 #define STLSOFT_CF_TEMPLATE_CONSTRUCTOR_TEMPLATE_OVERLOAD_DISCRIMINATED_AGAINST_NON_TEMPLATE_CONSTRUCTOR
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402 #if defined(_M_IX86)
00403 # define STSLSOFT_INLINE_ASM_SUPPORTED
00404 # define STSLSOFT_ASM_IN_INLINE_SUPPORTED
00405 #elif defined(_M_IA64) || \
00406 defined(_M_X64)
00407
00408 #endif
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422 #if defined(_M_IX86)
00423
00424 # define STLSOFT_CF_THISCALL_SUPPORTED
00425 # define STLSOFT_CF_CDECL_SUPPORTED
00426 # ifndef _MANAGED
00427 # define STLSOFT_CF_FASTCALL_SUPPORTED
00428 # endif
00429 # define STLSOFT_CF_STDCALL_SUPPORTED
00430
00431 # define STLSOFT_CDECL __cdecl
00432 # ifndef _MANAGED
00433 # define STLSOFT_FASTCALL __fastcall
00434 # endif
00435 # define STLSOFT_STDCALL __stdcall
00436
00437 #elif defined(_M_IA64) || \
00438 defined(_M_X64)
00439
00440 # define STLSOFT_CF_CDECL_SUPPORTED
00441
00442 # define STLSOFT_CDECL
00443
00444 #elif defined(unix) || \
00445 defined(__unix__)
00446
00447 # define STLSOFT_CF_CDECL_SUPPORTED
00448
00449 # define STLSOFT_CDECL
00450
00451 #else
00452 # error Only defined for the Intel x86, IA64 and x64 architectures
00453 #endif
00454
00455
00456
00457
00458
00459 #if defined(__LP64__)
00460 # define _STLSOFT_SIZEOF_CHAR (1)
00461 # define _STLSOFT_SIZEOF_SHORT (2)
00462 # define _STLSOFT_SIZEOF_INT (4)
00463 # define _STLSOFT_SIZEOF_LONG (8)
00464 # define _STLSOFT_SIZEOF_LONG_LONG (8)
00465 #elif defined(_WIN32) || \
00466 defined(_WIN64)
00467 # define _STLSOFT_SIZEOF_CHAR (1)
00468 # define _STLSOFT_SIZEOF_SHORT (2)
00469 # define _STLSOFT_SIZEOF_INT (4)
00470 # define _STLSOFT_SIZEOF_LONG (4)
00471 # define _STLSOFT_SIZEOF_LONG_LONG (8)
00472 #else
00473 # error Use of Intel C/C++ has not been verified on any operation system other than Win32. Please contact Synesis Software
00474 #endif
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00499 #define STLSOFT_CF_8BIT_INT_SUPPORT
00500 #define STLSOFT_SI08_T_BASE_TYPE signed __int8
00501 #define STLSOFT_UI08_T_BASE_TYPE unsigned __int8
00502 #if _MSC_VER == 1200
00503 # define STLSOFT_CF_CHAR_DISTINCT_INT_TYPE
00504 #endif
00505
00506
00507 #define STLSOFT_CF_16BIT_INT_SUPPORT
00508 #define STLSOFT_SI16_T_BASE_TYPE signed __int16
00509 #define STLSOFT_UI16_T_BASE_TYPE unsigned __int16
00510 #if _MSC_VER == 1200
00511 # define STLSOFT_CF_SHORT_DISTINCT_INT_TYPE
00512 #endif
00513
00514
00515 #define STLSOFT_CF_32BIT_INT_SUPPORT
00516 #define STLSOFT_SI32_T_BASE_TYPE signed __int32
00517 #define STLSOFT_UI32_T_BASE_TYPE unsigned __int32
00518 #if _MSC_VER == 1200
00519 # define STLSOFT_CF_INT_DISTINCT_INT_TYPE
00520 #endif
00521 #define STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00522
00523
00524 #define STLSOFT_CF_64BIT_INT_SUPPORT
00525 #define STLSOFT_CF_64BIT_INT_IS___int64
00526 #define STLSOFT_SI64_T_BASE_TYPE signed __int64
00527 #define STLSOFT_UI64_T_BASE_TYPE unsigned __int64
00528
00529
00530
00531
00532
00533 #if defined(_MSC_VER)
00534 # if _MSC_VER >= 1300
00535
00536
00537
00538
00539
00540
00541 # ifdef _NATIVE_WCHAR_T_DEFINED
00542 # define STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
00543 # elif defined(_WCHAR_T_DEFINED)
00544 # define STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
00545 # else
00546
00547 # define STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
00548 # endif
00549 # else
00550
00551
00552
00553 # if defined(_WCHAR_T_DEFINED)
00554 # define STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
00555 # else
00556
00557 # endif
00558 # endif
00559 #endif
00560
00561 #define STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
00562
00563 #define STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
00564
00565 #define STLSOFT_CF_std_NAMESPACE
00566
00567 #define STLSOFT_CF_std_char_traits_AVAILABLE
00568
00569 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_NON_TEMPLATE
00570 #define STLSOFT_CF_PARENT_TYPES_CAN_BE_USED_IN_TEMPLATE
00571
00572 #define STLSOFT_CF_VENEER_SUPPORT
00573
00574 #if !defined(_ATL_MIN_CRT)
00575 # define STLSOFT_CF_ALLOCATOR_BASE_EXPENSIVE
00576 #endif
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589 #if defined(_STLSOFT_CUSTOM_ASSERT)
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610
00611
00612 # define __STLSOFT_CF_ASSERT_SUPPORT
00613 # define STLSOFT_CF_ASSERT_SUPPORT
00614 # define STLSOFT_ASSERT(_x) _STLSOFT_CUSTOM_ASSERT(_x)
00615 # if defined(_STLSOFT_CUSTOM_ASSERT_INCLUDE)
00616 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME _STLSOFT_CUSTOM_ASSERT_INCLUDE
00617 # else
00618 # error You must define _STLSOFT_CUSTOM_ASSERT_INCLUDE along with _STLSOFT_CUSTOM_ASSERT()
00619 # endif
00620 #else
00621 # define __STLSOFT_CF_ASSERT_SUPPORT
00622 # define STLSOFT_CF_ASSERT_SUPPORT
00623
00624 # ifdef _MSC_VER
00625 # if defined(__cplusplus) && \
00626 _MSC_VER >= 1200
00627 # include <new>
00628
00629
00630 # endif
00631 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME <crtdbg.h>
00632 # define STLSOFT_ASSERT(_x) _ASSERTE(_x)
00633 # else
00634 # define __STLSOFT_CF_ASSERT_INCLUDE_NAME <assert.h>
00635 # define STLSOFT_ASSERT(_x) assert(_x)
00636 # endif
00637 #endif
00638
00639
00640
00641
00642
00643 #ifdef _DEBUG
00644
00645 # pragma warning(disable : 174)
00646 #endif
00647
00648
00649 #pragma warning(disable : 279)
00650
00651 #ifdef _DEBUG
00652
00653 # pragma warning(disable : 383)
00654 #endif
00655
00656
00657 #pragma warning(disable : 981)
00658
00659
00660
00661
00662
00663 #include <stlsoft/internal/cccap/obsolete.h>
00664
00665