00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef BOOST_CONFIG_SUFFIX_HPP
00025 #define BOOST_CONFIG_SUFFIX_HPP
00026
00027
00028
00029
00030
00031
00032
00033 #include <limits.h>
00034 # if !defined(BOOST_HAS_LONG_LONG) \
00035 && !defined(BOOST_MSVC) && !defined(__BORLANDC__) \
00036 && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
00037 # define BOOST_HAS_LONG_LONG
00038 #endif
00039
00040
00041
00042
00043 #if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(__DECCXX_VER)
00044 # define BOOST_NO_INTEGRAL_INT64_T
00045 #endif
00046
00047
00048
00049
00050 #if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
00051 # undef BOOST_NO_CTYPE_FUNCTIONS
00052 #endif
00053
00054
00055
00056
00057
00058 # ifndef BOOST_STD_EXTENSION_NAMESPACE
00059 # define BOOST_STD_EXTENSION_NAMESPACE std
00060 # endif
00061
00062
00063
00064
00065 # if defined(BOOST_NO_CV_SPECIALIZATIONS) \
00066 && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
00067 # define BOOST_NO_CV_VOID_SPECIALIZATIONS
00068 # endif
00069
00070
00071
00072
00073
00074 # if defined(BOOST_NO_LIMITS) \
00075 && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
00076 # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
00077 # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
00078 # define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
00079 # endif
00080
00081
00082
00083
00084
00085 #if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
00086 # define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
00087 #endif
00088
00089
00090
00091
00092
00093 #if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
00094 # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
00095 #endif
00096
00097
00098
00099
00100
00101 # if !defined(BOOST_NO_MEMBER_TEMPLATES) \
00102 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
00103 # define BOOST_MSVC6_MEMBER_TEMPLATES
00104 # endif
00105
00106
00107
00108
00109 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00110 && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
00111 # define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
00112 # endif
00113
00114
00115
00116
00117 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00118 && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
00119 # define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
00120 # endif
00121
00122
00123
00124
00125 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00126 && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
00127 # define BOOST_NO_STD_ITERATOR_TRAITS
00128 # endif
00129
00130
00131
00132
00133
00134 # if defined(BOOST_NO_MEMBER_TEMPLATES) \
00135 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
00136 && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
00137 # define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
00138 # endif
00139
00140
00141
00142
00143
00144 # if defined(BOOST_NO_MEMBER_TEMPLATES) \
00145 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
00146 && !defined(BOOST_NO_STD_ALLOCATOR)
00147 # define BOOST_NO_STD_ALLOCATOR
00148 # endif
00149
00150
00151
00152
00153 #if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
00154 # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
00155 #endif
00156
00157
00158
00159
00160 #if !defined(BOOST_NO_STD_ALLOCATOR)
00161 # define BOOST_HAS_PARTIAL_STD_ALLOCATOR
00162 #endif
00163
00164
00165
00166
00167 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
00168 # define BOOST_NO_STD_USE_FACET
00169 # endif
00170
00171
00172
00173
00174 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
00175 # define BOOST_NO_STD_MESSAGES
00176 # endif
00177
00178
00179
00180
00181 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
00182 # define BOOST_NO_STD_WSTREAMBUF
00183 # endif
00184
00185
00186
00187
00188 # if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
00189 # define BOOST_NO_CWCTYPE
00190 # endif
00191
00192
00193
00194
00195 # if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
00196 # define BOOST_NO_SWPRINTF
00197 # endif
00198
00199
00200
00201
00202
00203
00204 #if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
00205 && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
00206 # define BOOST_DISABLE_THREADS
00207 #endif
00208
00209
00210
00211
00212
00213
00214
00215 #if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
00216 || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
00217 # define BOOST_HAS_THREADS
00218 #endif
00219
00220
00221
00222
00223 #if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
00224 # undef BOOST_HAS_THREADS
00225 #endif
00226
00227
00228
00229
00230 #if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
00231 && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
00232 && !defined(BOOST_HAS_MPTASKS)
00233 # undef BOOST_HAS_THREADS
00234 #endif
00235
00236
00237
00238
00239 #ifndef BOOST_HAS_THREADS
00240 # undef BOOST_HAS_PTHREADS
00241 # undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
00242 # undef BOOST_HAS_WINTHREADS
00243 # undef BOOST_HAS_BETHREADS
00244 # undef BOOST_HAS_MPTASKS
00245 #endif
00246
00247
00248
00249
00250
00251 # if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
00252 # define BOOST_HAS_STDINT_H
00253 # endif
00254
00255
00256
00257
00258
00259 # ifndef BOOST_HAS_SLIST
00260 # define BOOST_NO_SLIST
00261 # endif
00262
00263 # ifndef BOOST_HAS_HASH
00264 # define BOOST_NO_HASH
00265 # endif
00266
00267
00268
00269
00270 #if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
00271 # define BOOST_HAS_ABI_HEADERS
00272 #endif
00273
00274 #if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
00275 # undef BOOST_HAS_ABI_HEADERS
00276 #endif
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287 # ifdef BOOST_NO_STDC_NAMESPACE
00288 # include <cstddef>
00289 namespace std { using ::ptrdiff_t; using ::size_t; }
00290 # endif
00291
00292
00293
00294 #define BOOST_PREVENT_MACRO_SUBSTITUTION
00295
00296 #ifndef BOOST_USING_STD_MIN
00297 # define BOOST_USING_STD_MIN() using std::min
00298 #endif
00299
00300 #ifndef BOOST_USING_STD_MAX
00301 # define BOOST_USING_STD_MAX() using std::max
00302 #endif
00303
00304
00305
00306 # ifdef BOOST_NO_STD_MIN_MAX
00307
00308 namespace std {
00309 template <class _Tp>
00310 inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
00311 return __b < __a ? __b : __a;
00312 }
00313 template <class _Tp>
00314 inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
00315 return __a < __b ? __b : __a;
00316 }
00317 }
00318
00319 # endif
00320
00321
00322
00323
00324
00325
00326
00327 # ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
00328 # define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
00329 # else
00330 # define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
00331 # endif
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346 #if defined(BOOST_NO_STD_USE_FACET)
00347 # ifdef BOOST_HAS_TWO_ARG_USE_FACET
00348 # define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
00349 # define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
00350 # elif defined(BOOST_HAS_MACRO_USE_FACET)
00351 # define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
00352 # define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
00353 # elif defined(BOOST_HAS_STLP_USE_FACET)
00354 # define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
00355 # define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
00356 # endif
00357 #else
00358 # define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
00359 # define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
00360 #endif
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372 #ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
00373 # define BOOST_NESTED_TEMPLATE template
00374 #else
00375 # define BOOST_NESTED_TEMPLATE
00376 #endif
00377
00378
00379
00380
00381
00382
00383 #ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
00384 # define BOOST_UNREACHABLE_RETURN(x) return x;
00385 #else
00386 # define BOOST_UNREACHABLE_RETURN(x)
00387 #endif
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400 #ifndef BOOST_NO_DEDUCED_TYPENAME
00401 # define BOOST_DEDUCED_TYPENAME typename
00402 #else
00403 # define BOOST_DEDUCED_TYPENAME
00404 #endif
00405
00406
00407
00408
00409
00410
00411 #if defined(BOOST_HAS_LONG_LONG)
00412 namespace boost{
00413 # ifdef __GNUC__
00414 __extension__ typedef long long long_long_type;
00415 __extension__ typedef unsigned long long ulong_long_type;
00416 # else
00417 typedef long long long_long_type;
00418 typedef unsigned long long ulong_long_type;
00419 # endif
00420 }
00421 #endif
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466 #if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
00467
00468 # include "sysc/packages/boost/type.hpp"
00469 # include "sysc/packages/boost/non_type.hpp"
00470
00471 # define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
00472 # define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
00473 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
00474 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
00475
00476 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
00477 , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
00478 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
00479 , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
00480 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
00481 , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
00482 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
00483 , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
00484
00485 #else
00486
00487
00488
00489 # define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
00490 # define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
00491 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
00492 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
00493
00494 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
00495 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
00496 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
00497 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
00498
00499
00500 #endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510 #define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
00511 #define BOOST_DO_STRINGIZE(X) #X
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521 #define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
00522 #define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
00523 #define BOOST_DO_JOIN2( X, Y ) X##Y
00524
00525
00526
00527
00528
00529 # ifndef BOOST_COMPILER
00530 # define BOOST_COMPILER "Unknown ISO C++ Compiler"
00531 # endif
00532 # ifndef BOOST_STDLIB
00533 # define BOOST_STDLIB "Unknown ISO standard library"
00534 # endif
00535 # ifndef BOOST_PLATFORM
00536 # if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
00537 || defined(_POSIX_SOURCE)
00538 # define BOOST_PLATFORM "Generic Unix"
00539 # else
00540 # define BOOST_PLATFORM "Unknown"
00541 # endif
00542 # endif
00543
00544 #endif
00545
00546
00547