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 #ifndef UNIXSTL_INCL_UNIXSTL_H_UNIXSTL
00043 #define UNIXSTL_INCL_UNIXSTL_H_UNIXSTL
00044 #define UNIXSTL_INCL_H_UNIXSTL
00045
00046
00047 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00048 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MAJOR 3
00049 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MINOR 7
00050 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_REVISION 2
00051 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_EDIT 89
00052 #endif
00053
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00106 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00107 # define _UNIXSTL_VER_0_9_1 0x00000901
00108 # define _UNIXSTL_VER_0_9_2 0x00000902
00109 # define _UNIXSTL_VER_1_0_1 0x00010001
00110 # define _UNIXSTL_VER_1_0_2 0x00010002
00111 # define _UNIXSTL_VER_1_0_3 0x00010003
00112 # define _UNIXSTL_VER_1_1_1 0x00010101
00113 # define _UNIXSTL_VER_1_2_1 0x00010201
00114 # define _UNIXSTL_VER_1_3_1 0x00010301
00115 # define _UNIXSTL_VER_1_4_1 0x00010401
00116 # define _UNIXSTL_VER_1_5_1 0x00010501
00117 # define _UNIXSTL_VER_1_6_1 0x00010601
00118 # define _UNIXSTL_VER_1_6_2 0x00010602
00119 # define _UNIXSTL_VER_1_6_3 0x00010603
00120 # define _UNIXSTL_VER_1_6_4 0x00010604
00121 # define _UNIXSTL_VER_1_6_5 0x00010605
00122 # define _UNIXSTL_VER_1_6_6 0x00010606
00123 # define _UNIXSTL_VER_1_6_7 0x010607ff
00124 # define _UNIXSTL_VER_1_6_8 0x010608ff
00125 # define _UNIXSTL_VER_1_7_1 0x010701ff
00126 # define _UNIXSTL_VER_1_7_2 0x010702ff
00127 # define _UNIXSTL_VER_1_7_3 0x010703ff
00128 #endif
00129
00130 #define _UNIXSTL_VER_MAJOR 1
00131 #define _UNIXSTL_VER_MINOR 7
00132 #define _UNIXSTL_VER_REVISION 3
00133 #define _UNIXSTL_VER _UNIXSTL_VER_1_7_3
00134
00135
00136
00137
00138
00139 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00140 # include <stlsoft/stlsoft.h>
00141 #endif
00142
00143
00144
00145
00146
00147 #if !defined(_STLSOFT_VER) || \
00148 _STLSOFT_VER < 0x01095cff
00149 # error This version of the UNIXSTL libraries requires STLSoft version 1.9.92, or later
00150 #endif
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162 #if defined(STLSOFT_COMPILER_IS_COMO)
00163
00164 # if __COMO_VERSION__ < 4300
00165 # error Versions of Comeau C++ prior to 4.3.0.1 are not supported by the UNIXSTL libraries
00166 # endif
00167
00168 #elif defined(STLSOFT_COMPILER_IS_GCC)
00169
00170 # if __GNUC__ < 2 || \
00171 ( __GNUC__ == 2 && \
00172 __GNUC_MINOR__ < 95)
00173 # error Versions of GNU C/C++ prior to 2.95 are not supported by the UNIXSTL libraries
00174 # endif
00175
00176 #elif defined(STLSOFT_COMPILER_IS_INTEL)
00177
00178 # if (__INTEL_COMPILER < 700)
00179 # error Versions of Intel C++ prior to 7.0 are not supported by the UNIXSTL libraries
00180 # endif
00181
00182 #elif defined(STLSOFT_COMPILER_IS_SUNPRO)
00183
00184 # ifdef __cplusplus
00185 # if ((__SUNPRO_CC & 0xFFF0) < 0x0590)
00186 # error Versions of Sun Pro C++ prior to 5.9 are not supported by the UNIXSTL libraries
00187 # endif
00188 # else
00189 # if ((__SUNPRO_C & 0xFFF0) < 0x0590)
00190 # error Versions of Sun Pro C prior to 5.9 are not supported by the UNIXSTL libraries
00191 # endif
00192 # endif
00193
00194 #else
00195
00196 # ifdef _STLSOFT_FORCE_ANY_COMPILER
00197 # define _UNIXSTL_COMPILER_IS_UNKNOWN
00198 # ifdef _STLSOFT_COMPILE_VERBOSE
00199 # pragma message("Compiler is unknown to UNIXSTL")
00200 # endif
00201 # else
00202 # error Currently only the Comeau, GCC, Intel and Sun Pro C/C++ compilers are supported by the UNIXSTL libraries. To use other, possibly untested, compilers, define _STLSOFT_FORCE_ANY_COMPILER
00203 # endif
00204 #endif
00205
00206
00207
00208
00209
00210
00211
00212 #ifdef UNIXSTL_ARCH_IS_X86
00213 # undef UNIXSTL_ARCH_IS_X86
00214 #endif
00215 #ifdef UNIXSTL_ARCH_IS_IA64
00216 # undef UNIXSTL_ARCH_IS_IA64
00217 #endif
00218 #ifdef UNIXSTL_ARCH_IS_X64
00219 # undef UNIXSTL_ARCH_IS_X64
00220 #endif
00221
00222 #ifdef UNIXSTL_ARCH_IS_INTEL
00223 # undef UNIXSTL_ARCH_IS_INTEL
00224 #endif
00225 #ifdef UNIXSTL_ARCH_IS_POWERPC
00226 # undef UNIXSTL_ARCH_IS_POWERPC
00227 #endif
00228 #ifdef UNIXSTL_ARCH_IS_ALPHA
00229 # undef UNIXSTL_ARCH_IS_ALPHA
00230 #endif
00231 #ifdef UNIXSTL_ARCH_IS_HPPA
00232 # undef UNIXSTL_ARCH_IS_HPPA
00233 #endif
00234 #ifdef UNIXSTL_ARCH_IS_SPARC
00235 # undef UNIXSTL_ARCH_IS_SPARC
00236 #endif
00237 #ifdef UNIXSTL_ARCH_IS_UNKNOWN
00238 # undef UNIXSTL_ARCH_IS_UNKNOWN
00239 #endif
00240
00241 #if defined(__amd64__) || \
00242 defined(__amd64) || \
00243 defined(_AMD64_) || \
00244 defined(_M_AMD64) || \
00245 defined(_M_X64)
00246 # define UNIXSTL_ARCH_IS_INTEL
00247 # define UNIXSTL_ARCH_IS_X64
00248 #elif defined(__ia64__) || \
00249 defined(__ia64) || \
00250 defined(_IA64_) || \
00251 defined(_M_IA64)
00252 # define UNIXSTL_ARCH_IS_INTEL
00253 # define UNIXSTL_ARCH_IS_IA64
00254 #elif defined(__i386__) || \
00255 defined(__i386) || \
00256 defined(_X86_) || \
00257 defined(_M_IX86)
00258 # define UNIXSTL_ARCH_IS_INTEL
00259 # define UNIXSTL_ARCH_IS_X86
00260 #elif defined(__alpha__) || \
00261 defined(__alpha) || \
00262 defined(_M_ALPHA)
00263 # define UNIXSTL_ARCH_IS_ALPHA
00264 #elif defined(__hppa__) || \
00265 defined(__hppa)
00266 # define UNIXSTL_ARCH_IS_HPPA
00267 #elif defined(__ppc__) || \
00268 defined(__ppc) || \
00269 defined(__POWERPC__) || \
00270 defined(_POWER) || \
00271 defined(_M_PPC)
00272 # define UNIXSTL_ARCH_IS_POWERPC
00273 #elif defined(__sparc__) || \
00274 defined(__sparc)
00275
00276 # define UNIXSTL_ARCH_IS_SPARC
00277 #else
00278 # define UNIXSTL_ARCH_IS_UNKNOWN
00279 #endif
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289 #ifdef UNIXSTL_OSFAMILY_IS_BSD
00290 # undef UNIXSTL_OSFAMILY_IS_BSD
00291 #endif
00292 #ifdef UNIXSTL_OSFAMILY_IS_SVR4
00293 # undef UNIXSTL_OSFAMILY_IS_SVR4
00294 #endif
00295
00296
00297 #if defined(__FreeBSD__) || \
00298 defined(__NetBSD__) || \
00299 defined(__OpenBSD__) || \
00300 defined(__bsdi__) || \
00301 defined(_SYSTYPE_BSD)
00302 # define UNIXSTL_OSFAMILY_IS_BSD
00303 #endif
00304
00305 #if defined(__sysv__) || \
00306 defined(__SVR4) || \
00307 defined(__svr4__) || \
00308 defined(_SYSTYPE_SVR4)
00309 # define UNIXSTL_OSFAMILY_IS_SVR4
00310 #endif
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320 #ifdef UNIXSTL_OS_IS_APPLE
00321 # undef UNIXSTL_OS_IS_APPLE
00322 #endif
00323 #ifdef UNIXSTL_OS_IS_AIX
00324 # undef UNIXSTL_OS_IS_AIX
00325 #endif
00326 #ifdef UNIXSTL_OS_IS_FREEBSD
00327 # undef UNIXSTL_OS_IS_FREEBSD
00328 #endif
00329 #ifdef UNIXSTL_OS_IS_HPUX
00330 # undef UNIXSTL_OS_IS_HPUX
00331 #endif
00332 #ifdef UNIXSTL_OS_IS_LINUX
00333 # undef UNIXSTL_OS_IS_LINUX
00334 #endif
00335 #ifdef UNIXSTL_OS_IS_MACOSX
00336 # undef UNIXSTL_OS_IS_MACOSX
00337 #endif
00338 #ifdef UNIXSTL_OS_IS_NETBSD
00339 # undef UNIXSTL_OS_IS_NETBSD
00340 #endif
00341 #ifdef UNIXSTL_OS_IS_OPENBSD
00342 # undef UNIXSTL_OS_IS_OPENBSD
00343 #endif
00344 #ifdef UNIXSTL_OS_IS_SOLARIS
00345 # undef UNIXSTL_OS_IS_SOLARIS
00346 #endif
00347 #ifdef UNIXSTL_OS_IS_FREEBSD
00348 # undef UNIXSTL_OS_IS_FREEBSD
00349 #endif
00350 #ifdef UNIXSTL_OS_IS_UNKNOWN
00351 # undef UNIXSTL_OS_IS_UNKNOWN
00352 #endif
00353
00354 #if defined(__APPLE__) || \
00355 defined(__MACOSX__)
00356 # define UNIXSTL_OS_IS_APPLE
00357 # define UNIXSTL_OS_IS_MACOSX
00358 #elif defined(_AIX)
00359 # define UNIXSTL_OS_IS_AIX
00360 #elif defined(__FreeBSD__)
00361 # define UNIXSTL_OS_IS_FREEBSD
00362 #elif defined(hpux) || \
00363 defined(_hpux)
00364 # define UNIXSTL_OS_IS_HPUX
00365 #elif defined(__linux__) || \
00366 defined(__linux) || \
00367 defined(linux)
00368 # define UNIXSTL_OS_IS_LINUX
00369 #elif defined(__NetBSD__)
00370 # define UNIXSTL_OS_IS_NETBSD
00371 #elif defined(__OpenBSD__)
00372 # define UNIXSTL_OS_IS_OPENBSD
00373 #elif defined(sun) || \
00374 defined(__sun)
00375 # if defined(UNIXSTL_OSFAMILY_IS_SVR4)
00376 # define UNIXSTL_OS_IS_SOLARIS
00377 # else
00378 # define UNIXSTL_OS_IS_SUNOS
00379 # endif
00380 #else
00381 # define UNIXSTL_OS_IS_UNKNOWN
00382 #endif
00383
00384
00385
00386
00387
00388
00389
00396 #if defined(UNIXSTL_OS_IS_MACOSX) && \
00397 defined(__assert)
00398 # define UNIXSTL_ASSERT(expr) ((void)((expr) ? 0 : (__assert(#expr, __FILE__, __LINE__), 0)))
00399 #else
00400 # define UNIXSTL_ASSERT(expr) STLSOFT_ASSERT(expr)
00401 #endif
00402
00410 #define UNIXSTL_MESSAGE_ASSERT(msg, expr) STLSOFT_MESSAGE_ASSERT(msg, expr)
00411
00418 #define UNIXSTL_STATIC_ASSERT(expr) STLSOFT_STATIC_ASSERT(expr)
00419
00420
00421
00422 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00423 # define unixstl_assert(expr) UNIXSTL_ASSERT(expr)
00424 # define unixstl_message_assert(msg, expr) UNIXSTL_MESSAGE_ASSERT(msg, expr)
00425 # define unixstl_static_assert(expr) UNIXSTL_STATIC_ASSERT(expr)
00426 #endif
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
00467
00468
00469 #ifdef _STLSOFT_NO_NAMESPACES
00470 # define _UNIXSTL_NO_NAMESPACES
00471 #endif
00472
00473
00474 #ifdef _UNIXSTL_NO_NAMESPACES
00475 # define _UNIXSTL_NO_NAMESPACE
00476 #endif
00477
00478 #ifndef _UNIXSTL_NO_NAMESPACE
00479 # if defined(_STLSOFT_NO_NAMESPACE) || \
00480 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00481
00512 namespace unixstl
00513 {
00514 # else
00515
00516
00517 namespace stlsoft
00518 {
00519
00520 namespace unixstl_project
00521 {
00522
00523 # endif
00524 #else
00525 stlsoft_ns_using(move_lhs_from_rhs)
00526 #endif
00527
00536 #ifndef _UNIXSTL_NO_NAMESPACE
00537 # define unixstl_ns_qual(x) ::unixstl::x
00538 # define unixstl_ns_using(x) using ::unixstl::x;
00539 #else
00540 # define unixstl_ns_qual(x) x
00541 # define unixstl_ns_using(x)
00542 #endif
00543
00552 #ifdef STLSOFT_CF_std_NAMESPACE
00553 # define unixstl_ns_qual_std(x) ::std::x
00554 # define unixstl_ns_using_std(x) using ::std::x;
00555 #else
00556 # define unixstl_ns_qual_std(x) x
00557 # define unixstl_ns_using_std(x)
00558 #endif
00559
00560
00561
00562
00563
00564
00565
00566
00567 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00568
00569 typedef stlsoft_ns_qual(ss_char_a_t) us_char_a_t;
00570 typedef stlsoft_ns_qual(ss_char_w_t) us_char_w_t;
00571 typedef stlsoft_ns_qual(ss_sint8_t) us_sint8_t;
00572 typedef stlsoft_ns_qual(ss_uint8_t) us_uint8_t;
00573 typedef stlsoft_ns_qual(ss_int16_t) us_int16_t;
00574 typedef stlsoft_ns_qual(ss_sint16_t) us_sint16_t;
00575 typedef stlsoft_ns_qual(ss_uint16_t) us_uint16_t;
00576 typedef stlsoft_ns_qual(ss_int32_t) us_int32_t;
00577 typedef stlsoft_ns_qual(ss_sint32_t) us_sint32_t;
00578 typedef stlsoft_ns_qual(ss_uint32_t) us_uint32_t;
00579 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00580 typedef stlsoft_ns_qual(ss_int64_t) us_int64_t;
00581 typedef stlsoft_ns_qual(ss_sint64_t) us_sint64_t;
00582 typedef stlsoft_ns_qual(ss_uint64_t) us_uint64_t;
00583 #endif
00584 typedef stlsoft_ns_qual(ss_int_t) us_int_t;
00585 typedef stlsoft_ns_qual(ss_sint_t) us_sint_t;
00586 typedef stlsoft_ns_qual(ss_uint_t) us_uint_t;
00587 typedef stlsoft_ns_qual(ss_long_t) us_long_t;
00588 #if defined(__cplusplus)
00589 typedef stlsoft_ns_qual(ss_bool_t) us_bool_t;
00590 #endif
00591 typedef stlsoft_ns_qual(ss_size_t) us_size_t;
00592 typedef stlsoft_ns_qual(ss_ptrdiff_t) us_ptrdiff_t;
00593 typedef stlsoft_ns_qual(ss_streampos_t) us_streampos_t;
00594 typedef stlsoft_ns_qual(ss_streamoff_t) us_streamoff_t;
00596 #endif
00597
00598 #ifndef _UNIXSTL_NO_NAMESPACE
00599 typedef us_char_a_t char_a_t;
00600 typedef us_char_w_t char_w_t;
00601
00602 typedef us_sint8_t sint8_t;
00603 typedef us_uint8_t uint8_t;
00604 typedef us_int16_t int16_t;
00605 typedef us_sint16_t sint16_t;
00606 typedef us_uint16_t uint16_t;
00607 typedef us_int32_t int32_t;
00608 typedef us_sint32_t sint32_t;
00609 typedef us_uint32_t uint32_t;
00610 # ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00611 typedef us_int64_t int64_t;
00612 typedef us_sint64_t sint64_t;
00613 typedef us_uint64_t uint64_t;
00614 # endif
00615
00616 typedef us_int_t int_t;
00617 typedef us_sint_t sint_t;
00618 typedef us_uint_t uint_t;
00619 typedef us_long_t long_t;
00620
00621 typedef us_bool_t bool_t;
00622 # if !defined(STLSOFT_COMPILER_IS_DMC)
00623 typedef us_streampos_t streampos_t;
00624 typedef us_streamoff_t streamoff_t;
00625 # endif
00626 #endif
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00637
00638 #define us_true_v ss_true_v
00639 #define us_false_v ss_false_v
00640
00641 #endif
00642
00643
00644
00645
00646 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00647
00648 #define unixstl_throw_0() stlsoft_throw_0()
00649 #define unixstl_throw_1(x1) stlsoft_throw_1(x1)
00650 #define unixstl_throw_2(x1, x2) stlsoft_throw_2(x1, x2)
00651 #define unixstl_throw_3(x1, x2, x3) stlsoft_throw_3(x1, x2, x3)
00652 #define unixstl_throw_4(x1, x2, x3, x4) stlsoft_throw_4(x1, x2, x3, x4)
00653 #define unixstl_throw_5(x1, x2, x3, x4, x5) stlsoft_throw_5(x1, x2, x3, x4, x5)
00654 #define unixstl_throw_6(x1, x2, x3, x4, x5, x6) stlsoft_throw_6(x1, x2, x3, x4, x5, x6)
00655 #define unixstl_throw_7(x1, x2, x3, x4, x5, x6, x7) stlsoft_throw_7(x1, x2, x3, x4, x5, x6, x7)
00656 #define unixstl_throw_8(x1, x2, x3, x4, x5, x6, x7, x8) stlsoft_throw_8(x1, x2, x3, x4, x5, x6, x7, x8)
00657 #endif
00658
00659 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00660 # define UNIXSTL_NUM_ELEMENTS(ar) STLSOFT_NUM_ELEMENTS(ar)
00661 # define unixstl_num_elements(ar) UNIXSTL_NUM_ELEMENTS(ar)
00662 #endif
00663
00668 #define unixstl_destroy_instance(t, _type, p) STLSOFT_DESTROY_INSTANCE(t, _type, p)
00669
00674 #define unixstl_gen_opaque(_htype) STLSOFT_GEN_OPAQUE(_htype)
00675
00676
00677
00678 #ifndef _UNIXSTL_NO_NAMESPACE
00679 # if defined(_STLSOFT_NO_NAMESPACE) || \
00680 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00681 }
00682 # else
00683 }
00684 }
00685 namespace unixstl = ::stlsoft::unixstl_project;
00686 # endif
00687 #endif
00688
00689
00690
00691
00692
00693 #ifdef STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00694 # pragma once
00695 #endif
00696
00697
00698
00699 #endif
00700
00701