Compare commits

...

339 Commits

Author SHA1 Message Date
nobody
a51de109b7 This commit was manufactured by cvs2svn to create tag
'Version_1_30_1'.

[SVN r19444]
2003-08-04 17:55:29 +00:00
Dave Abrahams
dc1a500cc6 merged from trunk
[SVN r19404]
2003-08-02 16:20:49 +00:00
Dave Abrahams
fcc6f41a56 merged from trunk
[SVN r18033]
2003-03-20 15:38:58 +00:00
Ralf W. Grosse-Kunstleve
d11fe4464a adjustment for Itanium2
[SVN r17803]
2003-03-11 01:32:03 +00:00
nobody
283d55a144 This commit was manufactured by cvs2svn to create branch 'RC_1_30_0'.
[SVN r17693]
2003-03-01 19:43:06 +00:00
Beman Dawes
261a01ccab See format_test1 for example of why needed
[SVN r17583]
2003-02-21 22:08:01 +00:00
Markus Schöpflin
f07d411903 Define BOOST_NO_MEMBER_TEMPLATE_KEYWORD only for compiler version <= 502.
[SVN r17484]
2003-02-17 12:34:08 +00:00
Gennadiy Rozental
44d1e083e8 test library rename
[SVN r17445]
2003-02-15 21:59:54 +00:00
Beman Dawes
0a24a02b94 undef didn't work
[SVN r17382]
2003-02-13 22:34:23 +00:00
John Maddock
adbd58188c Added BOOST_HAS_SIGACTION
[SVN r17360]
2003-02-13 12:28:49 +00:00
Beman Dawes
c90afc4022 standarize version message format so status reporting finds it
[SVN r17338]
2003-02-12 20:41:55 +00:00
Beman Dawes
9d6d544940 undef BOOST_COMPILER_VERSION
[SVN r17337]
2003-02-12 20:32:35 +00:00
Björn Karlsson
2a0358cb5f Added copyright statement
[SVN r17203]
2003-02-04 15:02:15 +00:00
Björn Karlsson
ded9a55c2d Untabified
[SVN r17202]
2003-02-04 15:01:48 +00:00
Dave Abrahams
39d0339f38 detect single-threaded builds for MinGW
[SVN r17094]
2003-01-30 18:13:55 +00:00
Dave Abrahams
8c654b6131 bugfix
[SVN r17083]
2003-01-29 20:28:46 +00:00
John Maddock
ddd1594f79 Reverted to previous hopefully good version
[SVN r17040]
2003-01-25 11:56:53 +00:00
Dave Abrahams
598573bd19 Add -AA option for aCC
[SVN r17026]
2003-01-24 13:58:57 +00:00
John Maddock
b0aa8f3c2c Disabled threading support when _POSIX_THREADS is not set
[SVN r17023]
2003-01-24 12:44:33 +00:00
John Maddock
e4171501b5 Moved platform specific HP options into platform config
and out of the compiler config (these options need to
be set for gcc as well as for HP aCC for example).


[SVN r17006]
2003-01-23 12:33:29 +00:00
Dave Abrahams
609a9b1721 Update config to match configure results
[SVN r16976]
2003-01-21 14:04:09 +00:00
Dave Abrahams
10b23200bb Add -AA option to aCC so that we get accurate info
[SVN r16974]
2003-01-21 13:41:00 +00:00
John Maddock
e457f90dfa Enabled pthread support for OpenBSD
[SVN r16927]
2003-01-18 11:30:51 +00:00
John Maddock
659d73e807 loosened feature detection: previous change was too tight.
[SVN r16874]
2003-01-12 11:37:53 +00:00
Beman Dawes
1789378a6e fix broken links
[SVN r16818]
2003-01-09 12:30:58 +00:00
John Maddock
c2f2333c2d config_info now prints BOOST_DEDUCED_TYPENAME
Jamfile and generator program now uses compile-fail tests


[SVN r16745]
2003-01-04 12:55:01 +00:00
John Maddock
043ada7c08 Fixed cygwin config to cope with new stricter POSIX feature detection
Modified dinkumware config to not set BOOST_NO_STD_ALLOCATOR when the compiler is not MSVC.


[SVN r16744]
2003-01-04 12:53:08 +00:00
Dave Abrahams
18e4652814 Patch for missing long long numeric limits.
[SVN r16738]
2003-01-03 15:16:30 +00:00
Beman Dawes
7c7da1d09a Use __VERSION__ for msg to pick up all 3 levels
[SVN r16728]
2003-01-01 19:19:57 +00:00
Beman Dawes
ce94616f6e add or update See www.boost.org comments
[SVN r16708]
2002-12-27 16:51:53 +00:00
Beman Dawes
783b6407c3 ++last known
[SVN r16694]
2002-12-23 19:49:22 +00:00
Beman Dawes
bd3900cb28 1.30.0 prep
[SVN r16693]
2002-12-23 15:19:21 +00:00
Beman Dawes
6fc288a2cd rename Boost.test libraries
[SVN r16680]
2002-12-22 20:57:56 +00:00
John Maddock
21922c5b5b Added checks for _POSIX_C_SOURCE and _XOPEN_SOURCE
[SVN r16677]
2002-12-22 12:11:07 +00:00
Dave Abrahams
5e5eaae566 add missing parens
[SVN r16665]
2002-12-19 17:01:00 +00:00
John Maddock
3ada4c5873 MacOS fixes for Carbon builds
[SVN r16662]
2002-12-19 11:38:07 +00:00
Dave Abrahams
ff6bee14c8 doc fix
[SVN r16661]
2002-12-19 04:29:53 +00:00
Dave Abrahams
75d1036e2b Final version, I think.
Includes BOOST_TESTED_AT error/warning mechanism for latest version tests.


[SVN r16660]
2002-12-19 04:29:03 +00:00
John Maddock
941d72d8df Initial commit
[SVN r16601]
2002-12-13 11:14:29 +00:00
Dave Abrahams
6b980a5a2d Fold in results of all recent discussions
[SVN r16596]
2002-12-12 18:43:26 +00:00
Dave Abrahams
430d235b4e Added BOOST_NO_UNREACHABLE_RETURN_DETECTION
[SVN r16575]
2002-12-09 14:57:59 +00:00
John Maddock
3596eec09a Added BOOST_UNREACHABLE_RETURN workaround macro.
[SVN r16574]
2002-12-09 12:21:54 +00:00
Dave Abrahams
555d41525d Add boost/config.hpp include
[SVN r16529]
2002-12-06 19:17:42 +00:00
Dave Abrahams
eb0e48ba27 initial commit
[SVN r16527]
2002-12-06 19:07:40 +00:00
Dave Abrahams
09ab4bc87b Account for broken pthreads on HPUX
[SVN r16519]
2002-12-04 17:58:12 +00:00
Dave Abrahams
0c41779a38 added BOOST_NO_MEMBER_TEMPLATE_KEYWORD
[SVN r16507]
2002-12-04 15:49:51 +00:00
Dave Abrahams
dd33b06231 update configuration for latest HP
[SVN r16492]
2002-12-03 19:04:22 +00:00
John Maddock
a7e89b0c67 removed defunct BOOST_DECL macro
[SVN r16257]
2002-11-15 12:57:13 +00:00
John Maddock
93c84f7657 Added new macros to config_info
Updated configure script to log the results


[SVN r16251]
2002-11-15 11:46:26 +00:00
John Maddock
180d63457b Added new config macro test cases, removed old testing script (use bjam instead).
[SVN r16222]
2002-11-13 12:19:31 +00:00
Dave Abrahams
b09fd33660 BOOST_NO_EXCEPTIONS patch from Alberto Barbati <abarbati@iaanus.com>
[SVN r16219]
2002-11-13 04:49:56 +00:00
Dave Abrahams
2ca6ac7df2 Fix for vc7
[SVN r16207]
2002-11-12 03:18:20 +00:00
Daniel Frey
ea44ab1401 Added BOOST_HAS_NRVO
[SVN r16204]
2002-11-12 00:18:26 +00:00
John Maddock
0ec58eab08 Added BOOST_STD_EXTENTION_NAMESPACE docs.
[SVN r16193]
2002-11-11 12:14:04 +00:00
John Maddock
3c3999d851 fixed mis-spelled BOOST_NO_CWCTYPE
[SVN r16192]
2002-11-11 12:12:55 +00:00
John Maddock
49ab0b66d5 Added BOOST_DINKUMWARE_STDLIB macro
[SVN r16172]
2002-11-09 11:54:05 +00:00
Dave Abrahams
14bbe68053 BOOST_DEDUCED_TYPENAME
[SVN r16146]
2002-11-07 14:01:16 +00:00
Dave Abrahams
f217166b21 BOOST_DEDUCED_TYPENAME
[SVN r16138]
2002-11-07 01:11:13 +00:00
Dave Abrahams
48b23b5064 No member template friends in 8.x
[SVN r16135]
2002-11-06 19:40:16 +00:00
Dave Abrahams
f0ab8c6d41 Daniel Frey's NRVO patches
[SVN r16084]
2002-11-04 01:59:32 +00:00
Dave Abrahams
49e2972952 Update for Sun Workshop 7
[SVN r16036]
2002-11-01 02:41:01 +00:00
Darin Adler
253bd15cf1 Fix standard C library check so it will work with CodeWarrior Pro 8.
[SVN r15972]
2002-10-23 23:32:38 +00:00
John Maddock
f72495d8b5 Moved Dinkumware lib detection further down the list,
so that it doesn't get confused with any possible replacements.


[SVN r15965]
2002-10-23 11:02:04 +00:00
John Maddock
7302ec29fe Merged changes from RC_1_29_0.
[SVN r15960]
2002-10-21 11:05:10 +00:00
John Maddock
9ec9927674 Merged changes from the RC_1_29_0 branch.
[SVN r15959]
2002-10-21 11:03:05 +00:00
Aleksey Gurtovoy
e1504cfb2e BOOST_NO_TEMPLATE_TEMPLATES fix
[SVN r15568]
2002-09-30 05:25:45 +00:00
Aleksey Gurtovoy
c980eca229 undo incorrect BOOST_STRICT_CONFIG changes
[SVN r15567]
2002-09-30 05:21:38 +00:00
Aleksey Gurtovoy
b0310d66ea undo incorrect BOOST_STRICT_CONFIG changes
[SVN r15566]
2002-09-30 05:03:47 +00:00
Aleksey Gurtovoy
397e88754d BOOST_STRICT_CONFIG fix
[SVN r15565]
2002-09-30 04:47:03 +00:00
Dave Abrahams
8c49d00328 Correct BOOST_NO_EXCEPTIONS for KAI
[SVN r15414]
2002-09-17 17:37:31 +00:00
Dave Abrahams
61cc49fd2f Move BOOST_NO_TEMPLATE_TEMPLATES check to edg_common
[SVN r15393]
2002-09-17 01:00:31 +00:00
Dave Abrahams
78dddbc032 Old EDG fixes
[SVN r15392]
2002-09-17 00:49:09 +00:00
Dave Abrahams
f7ca700f8a No template template parameters for Intel 5.x
[SVN r15387]
2002-09-16 20:09:04 +00:00
John Maddock
a37bdd82b5 Updated last vacpp version number
[SVN r15370]
2002-09-16 11:52:30 +00:00
Björn Karlsson
1ac93b8c1a fix: changed ULONG_LONG_MIN to ULONGLONG_MIN
[SVN r15369]
2002-09-16 11:00:55 +00:00
Dave Abrahams
beeb65b38d vc6 fix
[SVN r15340]
2002-09-15 19:28:13 +00:00
John Maddock
d3a4cda4c0 Made changes to work with new boost.test library.
Added separate Jamfile


[SVN r15299]
2002-09-13 11:44:40 +00:00
John Maddock
d3cc222fe9 VC7 has no numeric_limits<__int64> specialisation
[SVN r15209]
2002-09-08 11:31:56 +00:00
John Maddock
5241fbdd13 Fixed def of mumeric_limits<unsigned long long>::digits
[SVN r15208]
2002-09-08 11:31:17 +00:00
John Maddock
4000c1eeed Fixed Intel C++ fix (had previously mis-spelled __ICL)
[SVN r15194]
2002-09-07 10:45:47 +00:00
John Maddock
398a9b79f0 Tentative changes for Visual C++ .NET 2003 (Beta)
[SVN r15174]
2002-09-06 10:16:56 +00:00
John Maddock
cb0286c416 Added BOOST_NO_STD_LOCALE for intel C++ on Dinkumware.
Removed BOOST_HAS_STDINT_H for Borland on non-Win32 platforms


[SVN r15125]
2002-09-01 10:45:12 +00:00
Beman Dawes
b99b9771c1 8.02
[SVN r15113]
2002-08-30 12:47:29 +00:00
John Maddock
e0d2db8a3d Misc Kylix fixes
[SVN r15086]
2002-08-25 11:57:37 +00:00
John Maddock
d6a89e7d49 Added Kylix 3 support
[SVN r15050]
2002-08-22 11:50:39 +00:00
Beman Dawes
414d604f79 init commit
[SVN r14977]
2002-08-19 23:29:18 +00:00
John Maddock
3dfd72e3bc Added new config macros:
BOOST_HAS_PARTIAL_STD_ALLOCATOR
	BOOST_NO_EXCEPTION_STD_NAMESPACE


[SVN r14809]
2002-08-13 11:52:06 +00:00
Dave Abrahams
9a536e3f28 Fix for platforms (MINGW 2.95.2) where only one of ULLONG_MAX and ULLONG_MIN are defined.
[SVN r14718]
2002-08-06 22:32:37 +00:00
Beman Dawes
7c8d4f23ce clear un/signed warnings
[SVN r14692]
2002-08-05 11:16:14 +00:00
John Maddock
93a28fab3b Corrected Typo in BOOST_NO_STD_WSTREAMBUF
[SVN r14652]
2002-07-31 11:23:53 +00:00
John Maddock
51aac5ee14 Tidied up #if
[SVN r14651]
2002-07-31 11:23:01 +00:00
John Maddock
ec0bf8e76a Added BOOST_NO_STD_WSTREAMBUF to GNU libstdc++3 config
[SVN r14632]
2002-07-28 11:06:51 +00:00
John Maddock
f591b2901f Added some more EDG compiler macros
[SVN r14631]
2002-07-28 11:01:28 +00:00
John Maddock
392bbe5700 Updated dinkumware config: should work for Intel C++ now.
[SVN r14626]
2002-07-27 11:43:45 +00:00
John Maddock
81097e309e Stripped tabs from files.
[SVN r14618]
2002-07-26 11:17:37 +00:00
Dave Abrahams
0c1888c352 GCC 2.95.x fixes
[SVN r14591]
2002-07-24 16:07:41 +00:00
Beman Dawes
053c1fb45f Removed several spurious ";" to quiet warnings
[SVN r14577]
2002-07-23 20:47:35 +00:00
Beman Dawes
56c052de56 Better version identification
[SVN r14576]
2002-07-23 19:47:15 +00:00
John Maddock
23308946c7 Added documentation for new config macros:
BOOST_NO_MS_INT64_NUMERIC_LIMTS
	BOOST_NO_LONG LONG_NUMERIC_LIMTS
	BOOST_NO_STD_WSTREAM
Added new macros to config_info.cpp program.


[SVN r14560]
2002-07-22 11:23:24 +00:00
John Maddock
3168ad683a Added __int64 and long long tests.
[SVN r14559]
2002-07-22 11:01:23 +00:00
John Maddock
3a70564582 Added specialisations for __int64 and long long where these are missing.
[SVN r14558]
2002-07-22 11:00:20 +00:00
John Maddock
06034f2281 Moved min/max overloads to win32.hpp from suffix.hpp
[SVN r14551]
2002-07-21 11:06:29 +00:00
John Maddock
f1d6e86af9 Fixed VC6 warnings.
[SVN r14547]
2002-07-20 12:06:34 +00:00
John Maddock
5406c65596 Moved definition of NOMINMAX to win32.hpp
[SVN r14546]
2002-07-20 12:06:05 +00:00
John Maddock
5c7f8b9290 Added new config macros:
BOOST_NO_STD_WSTREAMBUF
	BOOST_NO_LONG_LONG_NUMERIC_LIMITS
	BOOST_NO_MS_INT64_NUMERIC_LIMITS


[SVN r14514]
2002-07-18 11:10:04 +00:00
John Maddock
113cded49d Added new libcomo.hpp config header.
Added new config macros:
	BOOST_NO_STD_WSTREAMBUF
	BOOST_NO_LONG_LONG_NUMERIC_LIMITS
	BOOST_NO_MS_INT64_NUMERIC_LIMITS


[SVN r14512]
2002-07-18 11:06:42 +00:00
John Maddock
08cf657ad4 Updated support for Borland C++ and STLport (again)
Hopefully fixed support for platforms where STLport imports names from std:: to _STL::


[SVN r14490]
2002-07-17 11:37:48 +00:00
John Maddock
224e97fbb6 Fixed support for C++ Builder 5 + STLport.
[SVN r14476]
2002-07-16 11:18:02 +00:00
Dave Abrahams
bc1b510b18 Rip out mistaken "fix" based on John Maddock's advice
[SVN r14446]
2002-07-14 11:47:42 +00:00
Dave Abrahams
99b01de780 Fix unversioned VC++ checks
[SVN r14436]
2002-07-13 12:26:19 +00:00
Beman Dawes
873f5745a6 Improve BOOST_COMPILER
[SVN r14430]
2002-07-12 21:41:55 +00:00
Beman Dawes
f6c78ce85d 8.1 increment
[SVN r14429]
2002-07-12 19:58:26 +00:00
Peter Dimov
8f83b72cfb Last tested version is 1310.
[SVN r14425]
2002-07-12 18:24:15 +00:00
Dave Abrahams
2fbcada958 Add specializations for __int64 and unsigned __int64 for MSVC6
[SVN r14409]
2002-07-11 20:30:32 +00:00
John Maddock
b79fe524db Added needed BOOST_NO_TEMPLATE_TEMPLATES option.
[SVN r14405]
2002-07-11 10:38:21 +00:00
John Maddock
2f2fe38142 Added detection for exception and long long support.
[SVN r14320]
2002-07-07 10:44:08 +00:00
Dave Abrahams
a02e3a0b7e Commited patch from "Lars Gullik Bjønnes" <larsbj@lyx.org>
[SVN r14279]
2002-07-02 12:59:37 +00:00
Dave Abrahams
17dcb7eabb Fix mistaken config changes
[SVN r14259]
2002-06-29 18:31:27 +00:00
Beman Dawes
388bf56907 8.0 further update
[SVN r14254]
2002-06-28 00:27:02 +00:00
Beman Dawes
739a468531 add 8.0
[SVN r14253]
2002-06-28 00:06:47 +00:00
Darin Adler
03affa0d41 Use if __MACH__ instead of ifdef __MACH__
[SVN r14089]
2002-06-06 13:53:49 +00:00
John Maddock
a2e706b74a Updated docs on BOOST_MSVC_ITERATOR
[SVN r14034]
2002-05-24 11:08:36 +00:00
John Maddock
d0e59f4b09 Removed msvc-iterator flag
[SVN r14033]
2002-05-24 11:07:09 +00:00
John Maddock
52a0dc9a14 Hopefully fixed Intel C++ on linux by adding BOOST_NO_STDC_NAMESPACE
(the C++ headers for this compiler seem to do an incomplete job of
importing C functions into std:: as per usual).


[SVN r14018]
2002-05-23 11:41:10 +00:00
Dave Abrahams
edc44fc45d remove bogus BOOST_NO_INCLASS_MEMBER_INITIALIZATION
[SVN r13992]
2002-05-21 13:09:25 +00:00
John Maddock
234c93f760 Re-enabled BOOST_MSVC_STD_ITERATOR for VC+STLport (seems to work now).
[SVN r13985]
2002-05-20 11:44:31 +00:00
John Maddock
d88a4e5f15 Several new config macros added.
[SVN r13984]
2002-05-20 11:28:22 +00:00
Jens Maurer
71bb9dcb7e don't give an error or warning with gcc 3.2 (current gcc main branch)
[SVN r13983]
2002-05-20 10:53:04 +00:00
Jens Maurer
c039069703 add comment for BOOST_BIG_ENDIAN etc.
[SVN r13982]
2002-05-20 10:50:04 +00:00
John Maddock
a10341d270 Added new config options - not yet quite finished - test cases to come.
[SVN r13972]
2002-05-18 11:31:51 +00:00
Beman Dawes
b6045d7e4a 1.29.0
[SVN r13955]
2002-05-16 18:07:26 +00:00
Dave Abrahams
d8cfcaf517 Merged from RC_1_28_0
[SVN r13944]
2002-05-16 00:56:42 +00:00
John Maddock
b44b6d5082 Removed reference to BOOST_HAS_LONG_LONG (doesn't work yet).
[SVN r13819]
2002-05-11 10:58:12 +00:00
John Maddock
8dfc8e3813 Removed tabs, fixed end of files.
[SVN r13803]
2002-05-10 11:35:38 +00:00
John Maddock
d1c3bf73de Added user-config macro BOOST_DISABLE_WIN32
(also set in the compiler 's strict mode).
Modified Boost source not to use Win32 specific
extentions in the presence of BOOST_DISABLE_WIN32.


[SVN r13771]
2002-05-09 11:40:52 +00:00
John Maddock
697f09e480 Moved config_info.cpp and the config docs into synch.
[SVN r13715]
2002-05-07 11:40:13 +00:00
John Maddock
9e02db296c Added new config macro BOOST_HAS_MS_INT64 to detect presence of __int64 data type.
Modified boost source to use BOOST_HAS_LONG_LONG and BOOST_HAS_MS_INT64
   where appropriate to do so.


[SVN r13714]
2002-05-07 11:24:29 +00:00
John Maddock
6b5a580456 Patched so that the code now compilers with VC6
[SVN r13669]
2002-05-05 11:00:28 +00:00
John Maddock
33badb1465 Borland C++ Builder 6 fixes
[SVN r13659]
2002-05-04 10:55:15 +00:00
John Maddock
40652fd38b Como on linux fix - sets BOOST_NO_STDC_NAMESPACE
[SVN r13658]
2002-05-04 10:51:33 +00:00
John Maddock
8b19f71d8b Added some more fixes for calling config script from an alien directory
[SVN r13563]
2002-04-25 11:57:48 +00:00
John Maddock
529cd10632 Added --with-boost=DIR option
[SVN r13558]
2002-04-24 11:31:31 +00:00
Jens Maurer
9bbd6ebd4e SunCC <= 5.2 does not do partial specialization sufficiently well
[SVN r13555]
2002-04-23 19:55:47 +00:00
Peter Dimov
86fdd6b8b7 Fixes for Comeau strict mode on Windows
[SVN r13544]
2002-04-22 21:17:42 +00:00
Peter Dimov
125d0a3960 Preliminary 7.01 support
[SVN r13540]
2002-04-22 09:36:25 +00:00
John Maddock
2b3a97d877 tweeks for C++ Builder 6
[SVN r13481]
2002-04-14 11:41:54 +00:00
John Maddock
1c7875b8f3 Replace BOOST_NO_EXCEPTIONS support which had got lost in the last checkin.
[SVN r13355]
2002-04-03 10:29:32 +00:00
Jens Maurer
f60564c3fc BOOST_NO_LIMITS should not be used by user code; use <boost/limits.hpp> instead
BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS should not be defined when
BOOST_NO_LIMITS is defined


[SVN r13340]
2002-04-01 18:57:43 +00:00
John Maddock
e9a05a8e99 Added BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS workaround.
[SVN r13293]
2002-03-28 12:45:03 +00:00
John Maddock
77408f35fa Added new amiga config.
[SVN r13292]
2002-03-28 12:44:12 +00:00
John Maddock
6c739c164c Added amiga config.
[SVN r13291]
2002-03-28 12:43:38 +00:00
Dave Abrahams
9689b13885 Fixes for use with older dinkum libraries
[SVN r13189]
2002-03-14 05:08:55 +00:00
Beman Dawes
32b9a941eb Fix copyright message
[SVN r13185]
2002-03-13 01:34:11 +00:00
Aleksey Gurtovoy
98c7b04e09 fixed incorrect #warning directive
[SVN r13171]
2002-03-11 01:23:15 +00:00
John Maddock
8e4cc7303b Updated description
[SVN r13048]
2002-03-03 11:38:18 +00:00
John Maddock
70bbd4f23e Updated BOOST_NO_USING_TEMPLATE docs.
[SVN r13047]
2002-03-03 11:36:31 +00:00
John Maddock
6018d270bc Fixed selection of BOOST_NO_STDC_NAMESPACE on bcb6
[SVN r13046]
2002-03-03 11:33:14 +00:00
Jens Maurer
7e7c15a4cc add "long double" overloads of min/max for MSVC to avoid choosing
the "long" overloads for floating-point numbers


[SVN r13041]
2002-03-03 10:03:00 +00:00
John Maddock
69ad1282a3 Added some RT and thread API selection options which otherwise auto-detected.
[SVN r12991]
2002-03-01 12:24:20 +00:00
John Maddock
a62b71e0f7 Turned on threading support.
[SVN r12990]
2002-03-01 12:23:40 +00:00
Dave Abrahams
e21b6658c9 Applying Patch from "Ed James-Beckham" <edjboost@yahoo.com>
[SVN r12940]
2002-02-26 13:10:28 +00:00
Dave Abrahams
bd52ac9181 #undef min/max for MinGW if neccessary
[SVN r12917]
2002-02-24 02:35:55 +00:00
John Maddock
57743254f6 Moved como entry up the list so that como+borland works now.
[SVN r12911]
2002-02-23 12:57:54 +00:00
John Maddock
8d9d0c50da Defined BOOST_NO_STDC_NAMESPACE for VC6 (or compatible) compiler with updated Dinkumware lib.
[SVN r12873]
2002-02-21 11:34:11 +00:00
John Maddock
10f4ccdeb5 Added more (and better) docs for BOOST_NO_EXCEPTIONS
[SVN r12791]
2002-02-13 12:29:31 +00:00
Lie-Quan Lee
2e8d7faec6 OST_NO_INCLASS_MEMBER_INITIALIZATION
[SVN r12790]
2002-02-12 22:34:28 +00:00
Douglas Gregor
43130a3d85 FreeBSD 3.x has pthreads support, but _POSIX_THREADS isn't defined by
<unistd.h>


[SVN r12771]
2002-02-09 15:02:48 +00:00
Douglas Gregor
77c2b1f807 FreeBSD 3.x has <hl_types.h>
[SVN r12770]
2002-02-09 14:55:37 +00:00
John Maddock
bdf2ddfb26 Added support for BOOST_NO_EXCEPTIONS
[SVN r12756]
2002-02-08 12:42:59 +00:00
John Maddock
4091f8c54f Added BOOST_NO_EXCEPTIONS support
[SVN r12754]
2002-02-08 12:39:21 +00:00
Beman Dawes
a42bc25797 1.27.0 runup
[SVN r12733]
2002-02-05 18:37:22 +00:00
Douglas Gregor
95579505ba Linux has pthread_mutexattr_settype with _XOPEN_VERSION == 500
[SVN r12728]
2002-02-05 15:59:48 +00:00
Douglas Gregor
dfdd6c27c0 Regenerated
[SVN r12668]
2002-02-03 15:12:29 +00:00
Darin Adler
466f871557 Fix small HTML problems.
[SVN r12650]
2002-02-02 19:05:15 +00:00
Darin Adler
577d925828 New smart pointer documentation. Related clean-up of the smart pointer
library. Changing includes to include the new individual smart pointer
headers. Replacing old smart pointer library with an include of the new
smart pointer headers. Simplify ifdefs that involve the member templates
macros now that BOOST_MSVC6_MEMBER_TEMPLATES is also guaranteed to bet
set for platforms that have full member templates.


[SVN r12647]
2002-02-02 18:36:12 +00:00
John Maddock
d4cb507015 Undone previous mistaken fix.
[SVN r12629]
2002-02-02 12:16:25 +00:00
John Maddock
82c4ce106f Added BOOST_NO_VOID_RETURNS to ensure bind/function code works.
[SVN r12628]
2002-02-02 11:56:07 +00:00
Dave Abrahams
c556aa4e2d Improved GCC 2.95 compatibility. Now works with MinGW 1.1
[SVN r12589]
2002-01-30 20:02:44 +00:00
Douglas Gregor
b73d7be5f1 boost_no_priv_aggregate.cxx:
- Make dummy function uncallable (added to silence GCC warning)

config_test.cpp:
regression.cfg:
  - Regenerated

boost_has_pthread_ma_st.cxx:
  - BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE macro test

boost_has_pthread_ma_gt.cxx:
  - BOOST_HAS_PTHREAD_MUTEXATTR_GETTYPE macro is unused, so remove it


[SVN r12551]
2002-01-29 13:48:02 +00:00
John Maddock
ed54a93299 Added BOOST_NO_CTYPE_FUNCTIONS fix for gcc 3.x
[SVN r12548]
2002-01-29 12:56:11 +00:00
Douglas Gregor
0483b05a98 Silence a warning from GCC
[SVN r12527]
2002-01-27 18:00:20 +00:00
William E. Kempf
b9cd52c6a2 Added Mac Carbon implementation to Boost.Threads.
[SVN r12480]
2002-01-24 16:32:23 +00:00
Douglas Gregor
78793dd2ba update version comment
[SVN r12477]
2002-01-24 13:33:11 +00:00
Douglas Gregor
810fea3ae9 gcc.hpp:
- Bump GCC version accepted to 3.1


[SVN r12476]
2002-01-24 13:31:39 +00:00
Peter Dimov
3cc12ab7e0 smart_ptr.hpp less<> fixed, partial specialization enabled on Sun 5.3
[SVN r12334]
2002-01-17 12:46:45 +00:00
John Maddock
5dcc786a6d Stripped tabs from source files
[SVN r12333]
2002-01-17 12:46:26 +00:00
Beman Dawes
ae5fdbe5f4 7.1
[SVN r12142]
2001-12-24 14:40:17 +00:00
Jens Maurer
1a8c1dda68 void returns not supported on EDG <= 2.40 (Ralf W. Grosse-Kunstleve)
[SVN r12069]
2001-12-16 16:31:20 +00:00
Beman Dawes
2a53a7458e backout #define BOOST_NO_STRINGSTREAM - later versions of 2.9x supply it
[SVN r12033]
2001-12-13 16:24:31 +00:00
Beman Dawes
cf0493ff14 add BOOST_NO_STRINGSTREAM
[SVN r12018]
2001-12-12 02:14:12 +00:00
Dave Abrahams
6a41c69ad6 Fixed locale support macro definitions
[SVN r11872]
2001-12-03 14:35:11 +00:00
Jens Maurer
cdd885bc28 avoid "unused variable" warnings
[SVN r11861]
2001-12-02 19:58:06 +00:00
Dave Abrahams
63dc3c2a64 Metrowerks needs BOOST_NO_STD_LOCALE in config to be able to compile regex
regex test Jamfile updates so that some tests will actually run
warning suppression for condition.cpp

unit-test rule now accepts input files
updated metrowerks and borland to properly set up path for running tests

----------------------------------------------------------------------
Modified Files:
	boost/config/compiler/metrowerks.hpp
	libs/python/src/gen_function.py libs/regex/test/Jamfile
 Tag: thread-initial
	libs/thread/src/condition.cpp
 No tag
	tools/build/boost-base.jam tools/build/borland-tools.jam
	tools/build/metrowerks-tools.jam
----------------------------------------------------------------------


[SVN r11853]
2001-12-02 17:43:45 +00:00
Peter Dimov
ebc6c751ac Defined BOOST_NO_VOID_RETURNS in MSVC 6 mode.
[SVN r11846]
2001-12-01 13:19:05 +00:00
Beman Dawes
5435b76457 release
[SVN r11840]
2001-11-30 18:03:58 +00:00
Jens Maurer
3b5fa98ad0 print BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
[SVN r11773]
2001-11-22 22:16:11 +00:00
Jens Maurer
59dd992f5f better adjustment of compiler workarounds
[SVN r11772]
2001-11-22 22:07:47 +00:00
Jens Maurer
84c8b8180f print BOOST_NESTED_TEMPLATE
[SVN r11771]
2001-11-22 21:53:47 +00:00
Jens Maurer
906226607b adjust for version A.03.33
[SVN r11770]
2001-11-22 21:45:17 +00:00
Jens Maurer
7b623f0998 change tabs to spaces
[SVN r11738]
2001-11-19 22:13:04 +00:00
John Maddock
5390cbc736 Updated to prevent failures on Metrowerks compiler.
[SVN r11660]
2001-11-11 11:55:51 +00:00
John Maddock
279fff7821 Updated to prevent warnings when BOOST_HAS_WINTHREADS is defined.
[SVN r11648]
2001-11-10 12:14:59 +00:00
Darin Adler
96026e7152 Remove assumption that the compiler is always in multithreaded mode.
Instead, figure out when the library is in multithreaded mode, by
looking at _MWMT.


[SVN r11631]
2001-11-08 16:17:28 +00:00
Darin Adler
0a31cf05f6 Indicate the CodeWarrior is always in "multi-threaded mode".
[SVN r11629]
2001-11-08 06:21:39 +00:00
John Maddock
cdb0120c91 Added explicit qualifiers to mem_fun calls, as workaround for broken std libs that don't put code in namespace std.
[SVN r11624]
2001-11-07 12:36:55 +00:00
Jeremy Siek
817241d9c9 changed ordering to get VC++ pragma's (truncation) before <utility>
gets included (in select_stdlib_config.hpp)


[SVN r11615]
2001-11-06 16:56:22 +00:00
Toon Knapen
ec39a3ca36 removed define of BOOST_NO_INCLASS_MEMBER_INITIALIZATION
(tipped by Jens Maurer)


[SVN r11608]
2001-11-06 12:06:58 +00:00
Douglas Gregor
4f21fcf5da Removed forced usage of virtual function implementation in Boost.Function,
because it is no longer necessary.


[SVN r11606]
2001-11-06 02:26:46 +00:00
Jens Maurer
b520cf5d9f unofficial GCC 2.96 (shipped with RedHat 7.1) doesn't have <sstream>
(hopefully fixes SF bug #471205)


[SVN r11605]
2001-11-05 21:37:59 +00:00
Beman Dawes
0bbfde6d71 1.25.1 runup
[SVN r11595]
2001-11-05 19:34:38 +00:00
Jens Maurer
2131184c6e SunPro 5.3 doesn't have enough partial specialization to compile shared_ptr.
[SVN r11574]
2001-11-04 22:16:45 +00:00
Jens Maurer
0d7929b698 BOOST_HAS_LONG_LONG is intricately intertwined with library support. Avoid.
[SVN r11495]
2001-10-31 19:37:26 +00:00
Jens Maurer
e440678d4e library may lack support for "long long"
[SVN r11494]
2001-10-31 19:36:49 +00:00
John Maddock
673f4590cd Added test support for BOOST_HAS_SGI_TYPE_TRAITS, added test for -lrt in configure script.
[SVN r11488]
2001-10-31 13:06:25 +00:00
John Maddock
c02d987546 Added BOOST_HAS_SGI_TYPE_TRAITS
[SVN r11485]
2001-10-31 13:02:05 +00:00
Jens Maurer
ac6e44953b HP aCC A.03.33 appears to have a conforming std::allocator
[SVN r11481]
2001-10-30 22:35:41 +00:00
Jens Maurer
91548127fd yes, gcc has "long long"
[SVN r11480]
2001-10-30 22:34:48 +00:00
Jens Maurer
fe476f7923 gettimeofday is always available
[SVN r11479]
2001-10-30 22:33:31 +00:00
Jens Maurer
824fccf457 aCC 03.31 has been checked
[SVN r11477]
2001-10-30 22:30:53 +00:00
Jens Maurer
57683a3a42 add _HPACC_ macro
[SVN r11476]
2001-10-30 22:30:16 +00:00
Jens Maurer
31daafada8 no integral int64_t on HP aCC for now
[SVN r11467]
2001-10-29 19:45:07 +00:00
Jens Maurer
26b772c3cc no integral int64_t with EDG <= 2.38 (e.g. IRIX MIPSpro)
[SVN r11466]
2001-10-29 19:39:59 +00:00
Jens Maurer
188e522fc9 EDG has "long long" in non-strict mode
[SVN r11465]
2001-10-29 19:35:57 +00:00
Jens Maurer
c3024d2a6c check for c_plusplus macro (indicates EDG non-strict mode)
[SVN r11464]
2001-10-29 19:34:34 +00:00
Jens Maurer
ecd63c5809 fix condition for broken std::messages
[SVN r11460]
2001-10-28 14:47:49 +00:00
John Maddock
6221145c0a Added BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE support.
[SVN r11459]
2001-10-28 11:57:47 +00:00
John Maddock
951e46f0f0 Added needed BOOST_HAS_UNISTD_H define (only needed because of recent reorganisation).
[SVN r11454]
2001-10-27 11:12:54 +00:00
John Maddock
d449ccb591 Updated bsd threading config.
[SVN r11453]
2001-10-27 11:06:25 +00:00
John Maddock
26783c6679 Fixed cygwin threading config.
[SVN r11452]
2001-10-27 10:56:36 +00:00
John Maddock
4a52042c75 Fixed bad namespace name in test.
[SVN r11451]
2001-10-27 10:55:53 +00:00
John Maddock
10b5a8cc1c Updated POSIX feature detection code (moved file inclusion to individual platform configs and out of suffix.hpp)
[SVN r11448]
2001-10-26 11:58:23 +00:00
John Maddock
003fceb582 Added BOOST_MSVC docs
[SVN r11440]
2001-10-25 11:49:58 +00:00
John Maddock
8126210523 removed unneeded BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS for icl 6
[SVN r11439]
2001-10-25 11:47:17 +00:00
Jens Maurer
382bb3cc08 avoid the messages facet on SGI (with MIPSpro compiler)
[SVN r11437]
2001-10-25 05:16:02 +00:00
Jens Maurer
c2ed94bee0 add comment how to enable new-style for scoping on Intel for Win32
[SVN r11433]
2001-10-24 15:58:01 +00:00
Jens Maurer
c7ba2a0704 remove "unused variable" warnings
[SVN r11426]
2001-10-23 19:45:36 +00:00
John Maddock
8e577f1e8b set version check for old broken sgi std::messages facet.
[SVN r11421]
2001-10-23 11:12:12 +00:00
John Maddock
07d86e9ca1 Added gettimeofday support
[SVN r11414]
2001-10-21 12:01:02 +00:00
John Maddock
2b77c9bfb5 Added pthread config options
[SVN r11413]
2001-10-21 11:46:46 +00:00
John Maddock
3f58e08292 Minor config tweek
[SVN r11412]
2001-10-21 11:01:10 +00:00
John Maddock
e899c77505 Added BOOST_HAS_LONG_LONG printout
[SVN r11410]
2001-10-20 10:14:12 +00:00
John Maddock
3c9f7b61fe Fixed _XOPEN_REALTIME usage (was too liberal).
[SVN r11409]
2001-10-20 10:13:24 +00:00
John Maddock
4ca0738b27 Fixed buggy comments.
[SVN r11408]
2001-10-19 11:58:53 +00:00
John Maddock
ebc4ba8796 Updated test to check open/close interfaces.
[SVN r11407]
2001-10-19 11:38:26 +00:00
John Maddock
2069d5ad13 renamed test procedure to avoid conflict with C++ Builder
[SVN r11406]
2001-10-19 11:37:52 +00:00
John Maddock
4f01724912 Native SGI streams appear to have non-standard std::messages.
[SVN r11405]
2001-10-19 11:36:32 +00:00
John Maddock
bb18d81860 Tidied up POSIX feature tests, added support for REALTIME feature test.
[SVN r11404]
2001-10-19 11:35:41 +00:00
John Maddock
780d8dcb95 Updated BOOST_HAS_NANOSLEEP tests.
[SVN r11398]
2001-10-18 10:18:37 +00:00
John Maddock
7b544cc9c3 Updated int64 tests.
[SVN r11397]
2001-10-18 10:16:32 +00:00
John Maddock
b70903dca0 Added BOOST_HAS_LONG_LONG config option.
[SVN r11392]
2001-10-16 11:40:19 +00:00
John Maddock
5e28fcc6ab Fixed nanosleep function sig test.
[SVN r11389]
2001-10-16 11:34:30 +00:00
John Maddock
f49ba073ca Added fixes for compilers with broken using declaration support that are not using the SGI streams classes.
[SVN r11382]
2001-10-13 10:20:42 +00:00
John Maddock
a4073dbdc2 Added BOOST_HAS_GETTIMEOFDAY
[SVN r11381]
2001-10-13 10:19:42 +00:00
John Maddock
5698a3da9c Added thread lib config options
[SVN r11374]
2001-10-11 12:16:21 +00:00
John Maddock
bb8bb5fb72 removed erronious const qualifier
[SVN r11370]
2001-10-09 11:29:03 +00:00
John Maddock
8a851846ce Minor update for sun C++ 5.0
[SVN r11367]
2001-10-09 11:24:11 +00:00
John Maddock
2570b3ba7f Minor tweek for sunpro 5.3
[SVN r11353]
2001-10-08 11:30:05 +00:00
John Maddock
d8e8bfc667 Modified behaviour of BOOST_NO_CWCHAR definition
[SVN r11352]
2001-10-08 11:29:42 +00:00
John Maddock
41747deb59 Added sunpro 5.3 options
[SVN r11351]
2001-10-08 11:28:39 +00:00
John Maddock
67bc121441 Fixed use_facet usage for Sunpro 5.3
[SVN r11350]
2001-10-08 11:28:08 +00:00
John Maddock
f85f7eead2 Fixed broken tests by regenerating.
[SVN r11344]
2001-10-05 11:15:38 +00:00
Peter Dimov
30fb4ad5fa Avoid NOMINMAX redefinition
[SVN r11339]
2001-10-04 20:14:37 +00:00
John Maddock
d77429f047 Added _RWSTD_ALLOCATOR
[SVN r11308]
2001-09-30 10:28:23 +00:00
John Maddock
7cd7697591 tentative tweeks for roguewave lib on HP aCC (needs BOOST_NO_STD_ALLOCATOR)
[SVN r11307]
2001-09-30 10:26:50 +00:00
Darin Adler
b29d1ef416 Write out limits as integers, even for char types.
[SVN r11301]
2001-09-28 17:38:10 +00:00
Jens Maurer
e605c42889 SGI MIPSpro (EDG 2.38) doesn't support void returns.
[SVN r11288]
2001-09-26 21:42:38 +00:00
Beman Dawes
e70d87fe34 1.25.0 runup
[SVN r11278]
2001-09-26 13:32:18 +00:00
Peter Dimov
a6d8ec6759 Ran ./generate for BOOST_NO_FUNCTION_TEMPLATE_ORDERING and BOOST_NO_VOID_RETURNS
[SVN r11273]
2001-09-26 12:15:40 +00:00
Peter Dimov
35352afc8a Added BOOST_NO_FUNCTION_TEMPLATE_ORDERING, BOOST_NO_VOID_RETURNS
[SVN r11272]
2001-09-26 10:55:47 +00:00
Jens Maurer
08bc1653e0 Linux doesn't have a completely useful <stdint.h> in all cases
[SVN r11261]
2001-09-25 20:01:37 +00:00
Jens Maurer
c92e19f098 revert patch "Dinkumware 3.10 has <slist>"
[SVN r11260]
2001-09-25 19:31:32 +00:00
Peter Dimov
95e02f2f5e Renamed BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING, added BOOST_NO_VOID_RETURNS
[SVN r11259]
2001-09-25 19:27:30 +00:00
Peter Dimov
9ee77299d1 BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING -> BOOST_NO_FUNCTION_TEMPLATE_ORDERING
[SVN r11257]
2001-09-25 19:17:47 +00:00
Peter Dimov
8705dbd370 Removed BOOST_NO_STD_ALLOCATOR autodefinition for MSVC, fixed BOOST_HAS_THREADS autodefinition
[SVN r11256]
2001-09-25 19:09:33 +00:00
Peter Dimov
279accb168 Added test for _HAS_MEMBER_TEMPLATES_REBIND
[SVN r11255]
2001-09-25 19:04:56 +00:00
Peter Dimov
19e206e8f6 Changed allocate(1,0) to allocate(1) for Dinkumware 3.06
[SVN r11254]
2001-09-25 18:56:21 +00:00
Peter Dimov
e62e5742e0 Initial commit
[SVN r11253]
2001-09-25 18:53:33 +00:00
Peter Dimov
63674bd048 Renamed BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING to BOOST_NO_FUNCTION_TEMPLATE_ORDERING
[SVN r11252]
2001-09-25 18:48:13 +00:00
Peter Dimov
7c05d06353 Renamed foo<> to fix MSVC 7 problems
[SVN r11251]
2001-09-25 18:44:07 +00:00
John Maddock
d5be6be4d6 Modified thread setup, and fixed typo
[SVN r11248]
2001-09-25 11:46:44 +00:00
Darin Adler
bd7652dcef If <ctype.h> is known not to have functions, then don't try to use the
character-classifying operations to test the presence of the std namespace
for C library functions.


[SVN r11245]
2001-09-25 06:50:22 +00:00
Darin Adler
703da5eb9b Don't use BOOST_NO_STDC_NAMESPACE for gcc, since "ignore std mode" makes
it work well enough.


[SVN r11244]
2001-09-25 06:48:48 +00:00
Jens Maurer
4b93dfc2e5 >= 310 (delivered with KAI C++) has <slist>
[SVN r11238]
2001-09-24 20:55:44 +00:00
Jens Maurer
89bddb477b look for __linux__ as well
[SVN r11237]
2001-09-24 20:54:37 +00:00
Darin Adler
25ae369ef7 Add BOOST_NO_CTYPE_FUNCTIONS.
[SVN r11234]
2001-09-24 19:33:29 +00:00
Darin Adler
b39d9ae568 Add BOOST_NO_CTYPE_FUNCTIONS.
[SVN r11233]
2001-09-24 19:20:53 +00:00
Jens Maurer
419956836b fix check for __GLIBC_PREREQ
[SVN r11220]
2001-09-23 20:25:21 +00:00
Darin Adler
6bf5f7c4f5 Turns out that the BOOST_NO_CWCHAR for BSD and Mac OS are already covered
fine by the platform includes, so I didn't have to add this here. It was
sufficient to remove the code from gcc.hpp. Jens Maurer pointed this out.


[SVN r11211]
2001-09-22 16:37:59 +00:00
Jens Maurer
9a1b970ed3 add BOOST_NO_INTEGRAL_INT64_T
[SVN r11210]
2001-09-22 16:30:56 +00:00
Jens Maurer
2dc2b800f9 _STLPORT_VERSION also indicates STLport
if no native wide functions, assume <cwchar> and <cwtype> are effectively
unavailable


[SVN r11209]
2001-09-22 16:24:17 +00:00
Jens Maurer
c55a7a2479 _STLPORT_VERSION also indicates STLport
[SVN r11208]
2001-09-22 16:23:37 +00:00
Darin Adler
1e97d99608 BSD gcc compilers do have an intrinsic wchar_t. The problem is that they
don't have wchar_t.h and wctype.h. We were confused because of a minor
problem in the configuration tests.


[SVN r11207]
2001-09-22 15:45:54 +00:00
Jens Maurer
9c5675d040 Linux could have std::swprintf defined
[SVN r11206]
2001-09-22 15:25:35 +00:00
John Maddock
3ae703d80a Added more thread conformance macros (AIX).
[SVN r11201]
2001-09-22 12:11:46 +00:00
John Maddock
88e49f6808 Extended and added thread support macros
[SVN r11197]
2001-09-22 11:50:15 +00:00
Darin Adler
7b7eeadafa Improve test so it works even if wchar_t.h is not present.
[SVN r11191]
2001-09-22 02:54:01 +00:00
Darin Adler
502e82e998 Add to revision history.
[SVN r11190]
2001-09-22 02:53:00 +00:00
Darin Adler
4515a28307 Don't include <cwchar> if BOOST_NO_CWCHAR is defined.
[SVN r11189]
2001-09-22 02:51:51 +00:00
Darin Adler
0d43e1f720 Oops. Had version number wrong.
[SVN r11184]
2001-09-21 16:19:43 +00:00
John Maddock
fed782c163 More fixes resulting from the new config
[SVN r11182]
2001-09-21 11:35:54 +00:00
Jens Maurer
45cb855a1c no std::wstring if no wchar_t support
[SVN r11179]
2001-09-20 20:15:20 +00:00
Jens Maurer
ade04d122e no standard allocator if no member template classes
[SVN r11178]
2001-09-20 20:15:02 +00:00
Jens Maurer
89fc5a60fb no wtype.h at all
[SVN r11177]
2001-09-20 19:46:06 +00:00
Jens Maurer
72ee9a15c3 without wchar_t, we don't have std::wstring either
[SVN r11176]
2001-09-20 19:38:55 +00:00
Jens Maurer
d3c927856c port cstdint.hpp to HP-UX
[SVN r11175]
2001-09-20 19:25:35 +00:00
William E. Kempf
77a8e617bd Added BOOST_HAS_FTIME to Win32 platform config.
[SVN r11170]
2001-09-20 14:58:54 +00:00
Beman Dawes
94afb4b5bb Minor edits plus add links
[SVN r11167]
2001-09-20 14:39:01 +00:00
John Maddock
1cd8b63448 Fixed vc6 + STLport config (must not have BOOST_MSVC_ITERATOR defined)
[SVN r11162]
2001-09-20 10:34:01 +00:00
Jens Maurer
57bfa25349 use <stddef.h> to get ptrdiff_t
[SVN r11161]
2001-09-19 20:59:42 +00:00
Jens Maurer
b9e386f2e3 add Modena C++ standard library, EDG compiler front-end
[SVN r11159]
2001-09-19 20:49:01 +00:00
Jens Maurer
0d2606e15e avoid "unused variable" warning
[SVN r11158]
2001-09-19 20:31:31 +00:00
Jens Maurer
483907c887 fix warnings
[SVN r11157]
2001-09-19 20:24:40 +00:00
Jens Maurer
eb339e9f83 rename local template parameter from duplicate "T" to "Y"
[SVN r11156]
2001-09-19 20:23:53 +00:00
Jens Maurer
198554a412 add Modena C++ standard library (comes with KAI C++)
[SVN r11155]
2001-09-19 20:22:09 +00:00
Jens Maurer
45218dadbd configuration for Modena C++ standard library (comes with KAI C++)
[SVN r11154]
2001-09-19 20:19:41 +00:00
Darin Adler
ebb32ce10b Fix typos and Americanize spelling in comments.
[SVN r11150]
2001-09-19 15:05:36 +00:00
Darin Adler
edec45f956 Fix comments and formatting a bit.
[SVN r11149]
2001-09-19 15:05:12 +00:00
Darin Adler
fc2daf1bf8 Fix typos in comments.
[SVN r11148]
2001-09-19 15:04:41 +00:00
John Maddock
732dd723dd renamed sunpro.hpp solaris.hpp
[SVN r11147]
2001-09-19 12:00:18 +00:00
John Maddock
7ce333aa88 First round of config fixes
[SVN r11146]
2001-09-19 11:48:51 +00:00
Jens Maurer
3b890c53ab correct use of possible value-less define of _GLOBAL_USING
[SVN r11145]
2001-09-18 22:10:45 +00:00
John Maddock
38009aaf3b commit of split-config, including any changes required to existing libraries (mainly regex).
[SVN r11138]
2001-09-18 11:13:39 +00:00
Jens Maurer
702a1e7bc4 rework wchar_t tests and port to HP-UX
[SVN r11135]
2001-09-17 19:03:25 +00:00
Jens Maurer
d81ea4494a Intel C++ 6.0 (now in Beta) doesn't change the front-end (Kirk Klobe)
[SVN r11131]
2001-09-16 19:38:41 +00:00
Jens Maurer
251ef5af7e test that min() < max()
[SVN r11128]
2001-09-14 20:02:22 +00:00
Jens Maurer
fa024ab4da beautify comments
[SVN r11114]
2001-09-13 18:09:00 +00:00
Beman Dawes
877848f088 Update Version to 1.25.0
[SVN r11087]
2001-09-10 14:07:09 +00:00
Jens Maurer
029adcf3f2 added BOOST_NO_INTEGRAL_INT64_T for SunCC (Gennadiy E. Rozental)
[SVN r11065]
2001-09-07 18:48:03 +00:00
Jeremy Siek
8c880467e1 put the MacOS X c++ compiler (which is a derivative of g++ 2.95.2)
down as not supporting wchar_t. This is because the wchar.h header
file does not get installed :(


[SVN r11041]
2001-09-06 03:56:53 +00:00
Dave Abrahams
1ba1b836c7 update revision number for CWPro7
[SVN r10959]
2001-08-29 19:21:34 +00:00
Beman Dawes
34c0eb63bf Misc; mostly fix links to hard disk locations
[SVN r10902]
2001-08-20 13:04:43 +00:00
Dave Abrahams
4ac695b81f updated for CWPro7 compatibility
[SVN r10882]
2001-08-17 02:25:10 +00:00
Jens Maurer
313d8ce2fc added MIPS (big endian)
[SVN r10835]
2001-08-10 16:07:04 +00:00
Darin Adler
64c32bf98f Spell things consistently. Add some bits of Mac stuff to the tests.
Use std::size_t where needed.


[SVN r10800]
2001-08-07 17:22:02 +00:00
Dave Abrahams
24ad6f217b Added fix due to kensai@pacbell.net
[SVN r10708]
2001-07-27 11:36:53 +00:00
Beman Dawes
e37ec5a95e Add Comeau under Win32
[SVN r10680]
2001-07-20 21:15:54 +00:00
Beman Dawes
e3e23aa159 Add Comeau defines
[SVN r10678]
2001-07-20 20:27:41 +00:00
Beman Dawes
79f2762aa2 Add || defined(__ppc__) (Fabrice Truillot)
[SVN r10633]
2001-07-16 16:57:05 +00:00
Beman Dawes
00c899540f #include <cwchar> for WCHAR_MIN and WCHAR_MAX (Daryle Walker)
[SVN r10567]
2001-07-08 17:36:15 +00:00
289 changed files with 18929 additions and 942 deletions

1490
config.htm Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,184 +0,0 @@
// Boost config.hpp configuration test program file -----------------------//
// (C) Copyright Boost.org 2000. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for the most recent version.
#include <boost/config.hpp>
#include <iostream>
using std::cout;
using std::hex;
using std::dec;
int main()
{
// boost compiler workaround defines
# ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
cout << "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS defined\n";
# endif
# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZER
cout << "BOOST_NO_INCLASS_MEMBER_INITIALIZER defined\n";
# endif
# ifdef BOOST_NO_MEMBER_TEMPLATES
cout << "BOOST_NO_MEMBER_TEMPLATES defined\n";
# endif
# ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
cout << "BOOST_NO_MEMBER_TEMPLATE_FRIENDS defined\n";
# endif
# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
cout << "BOOST_NO_OPERATORS_IN_NAMESPACE defined\n";
# endif
# ifdef BOOST_NO_STD_ITERATOR
cout << "BOOST_NO_STD_ITERATOR defined\n";
# endif
# ifdef BOOST_NO_STD_ITERATOR_TRAITS
cout << "BOOST_NO_STD_ITERATOR_TRAITS defined\n";
# endif
# ifdef BOOST_NO_STDC_NAMESPACE
cout << "BOOST_NO_STDC_NAMESPACE defined\n";
# endif
# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
cout << "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION defined\n";
# endif
# ifdef BOOST_NO_USING_TEMPLATE
cout << "BOOST_NO_USING_TEMPLATE defined\n";
# endif
# ifdef BOOST_DECL_EXPORTS
cout << "BOOST_DECL_EXPORTS defined\n";
# endif
# ifdef BOOST_SYSTEM_HAS_STDINT_H
cout << "BOOST_SYSTEM_HAS_STDINT_H defined\n";
# endif
// compilers
# ifdef __GNUC__
cout << "__GNUC__ defined as " << __GNUC__ << "\n";
# endif
# ifdef __GNUC_MINOR__
cout << "__GNUC_MINOR__ defined as " << __GNUC_MINOR__ << "\n";
# endif
# ifdef __EDG_VERSION__
cout << "__EDG_VERSION__ defined as " << __EDG_VERSION__ << "\n";
# endif
# ifdef __ICC
cout << "__ICC defined as " << __ICC << "\n";
# endif
# ifdef __ICL
cout << "__ICL defined as " << __ICL << "\n";
# endif
# ifdef __INTEL_COMPILER
cout << "__INTEL_COMPILER defined as " << __INTEL_COMPILER << "\n";
# endif
# ifdef __USLC__
cout << "__USLC__ defined\n";
# endif
# ifdef __BORLANDC__
cout << "__BORLANDC__ defined as " << __BORLANDC__ << "\n";
# endif
# ifdef __MWERKS__
cout << "__MWERKS__ defined as " << __MWERKS__ << "\n";
# endif
# ifdef __SUNPRO_CC
cout << "__SUNPRO_CC defined as " << __SUNPRO_CC << "\n";
# endif
# ifdef __sgi
cout << "__sgi is defined\n";
# ifdef _COMPILER_VERSION
cout << "_COMPILER_VERSION defined as " << _COMPILER_VERSION << "\n";
# endif
# endif
# ifdef __DECCXX
cout << "__DECCXX defined\n";
# ifdef __DECCXX_VER
cout << "__DECCXX_VER defined as " << __DECCXX_VER << "\n";
# endif
# endif
# ifdef _MSC_VER
cout << "_MSC_VER defined as " << _MSC_VER << "\n";
# endif
# ifdef BOOST_MSVC
cout << "BOOST_MSVC defined as " << BOOST_MSVC << "\n";
# endif
# ifdef BOOST_MSVC6_MEMBER_TEMPLATES
cout << "BOOST_MSVC6_MEMBER_TEMPLATES defined\n";
# endif
# ifdef BOOST_MSVC_STD_ITERATOR
cout << "BOOST_MSVC_STD_ITERATOR defined\n";
# endif
// libraries
# ifdef __SGI_STL_PORT
cout << "__SGI_STL_PORT defined as 0x"
<< hex << __SGI_STL_PORT << dec << "\n";
# endif
# ifdef __GLIBCPP__
cout << "__GLIBCPP__ defined\n";
# endif
# ifdef _GLIBCPP_VERSION
cout << "_GLIBCPP_VERSION defined as " << _GLIBCPP_VERSION << "\n";
# endif
# ifdef _GLIBCPP_USE_LONG_LONG
cout << "_GLIBCPP_USE_LONG_LONG defined\n";
# endif
# ifdef _GLIBCPP_USE_WCHAR_T
cout << "_GLIBCPP_USE_WCHAR_T defined\n";
# endif
# ifdef __STL_NO_NAMESPACES
cout << "__STL_NO_NAMESPACES defined\n";
# endif
# ifdef __STL_USE_NAMESPACES
cout << "__STL_USE_NAMESPACES defined\n";
# endif
# ifdef __STL_IMPORT_VENDOR_CSTD
cout << "__STL_IMPORT_VENDOR_CSTD defined\n";
# endif
# ifdef _RWSTD_VER
cout << "_RWSTD_VER defined as " << _RWSTD_VER << "\n";
# endif
return 0;
}

3190
configure vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,651 +1,60 @@
// Boost config.hpp configuration header file ------------------------------//
// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// See http://www.boost.org/libs/config for most recent version.
// Boost config.hpp policy and rationale documentation has been moved to
// http://www.boost.org/libs/config
// Revision History (excluding minor changes for specific compilers)
// 29 Mar 01 BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS (Daryle Walker)
// 16 Mar 01 Added BOOST_VERSION (Jens Maurer)
// 06 Mar 01 Refactored EDG checks for Intel C++ (Dave Abrahams)
// 04 Mar 01 Factored EDG checks, added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
// for Intel C++ 5.0 (Dave Abrahams)
// 17 Feb 01 BOOST_NO_CV_SPECIALIZATIONS
// BOOST_NO_CV_VOID_SPECIALIZATIONS (John Maddock)
// 11 Feb 01 Added BOOST_STATIC_CONSTANT (Dave Abrahams)
// 20 Jan 01 BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from
// cast.hpp. Added missing BOOST_NO_STRINGSTREAM which some
// boost code seemed to depend on. (Dave Abrahams)
// 13 Jan 01 SGI MIPSpro and Compaq Tru64 Unix compiler support added
// (Jens Maurer)
// 13 Jan 01 BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP (Jens Maurer)
// 17 Nov 00 BOOST_NO_AUTO_PTR (John Maddock)
// 4 Oct 00 BOOST_NO_STD_MIN_MAX (Jeremy Siek)
// 29 Sep 00 BOOST_NO_INTEGRAL_INT64_T (Jens Maurer)
// 25 Sep 00 BOOST_NO_STD_ALLOCATOR (Jeremy Siek)
// 18 SEP 00 BOOST_NO_SLIST, BOOST_NO_HASH,
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
// BOOST_NO_LIMITS (Jeremy Siek)
// 1 Sep 00 BOOST_NO_PRIVATE_IN_AGGREGATE added. (Mark Rodgers)
// 23 Jul 00 Fixed spelling of BOOST_NO_INCLASS_MEMBER_INITIALIZATION in
// comment (Dave Abrahams).
// 10 Jul 00 BOOST_NO_POINTER_TO_MEMBER_CONST added (Mark Rodgers)
// 26 Jun 00 BOOST_NO_STD_ITERATOR, BOOST_MSVC_STD_ITERATOR,
// BOOST_NO_STD_ITERATOR_TRAITS, BOOST_NO_USING_TEMPLATE,
// added (Jeremy Siek)
// 20 Jun 00 BOOST_MSVC added (Aleksey Gurtovoy)
// 14 Jun 00 BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS (Jens M.)
// 22 Mar 00 BOOST_MSVC6_MEMBER_TEMPLATES added (Dave Abrahams)
// 18 Feb 00 BOOST_NO_INCLASS_MEMBER_INITIALIZATION added (Jens Maurer)
// 26 Jan 00 Borland compiler support added (John Maddock)
// 26 Jan 00 Sun compiler support added (Jörg Schaible)
// 30 Dec 99 BOOST_NMEMBER_TEMPLATES compatibility moved here from
// smart_ptr.hpp. (Dave Abrahams)
// 15 Nov 99 BOOST_NO_OPERATORS_IN_NAMESPACE,
// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION added (Beman Dawes)
// 11 Oct 99 BOOST_NO_STDC_NAMESPACE refined; <cstddef> supplied
// 29 Sep 99 BOOST_NO_STDC_NAMESPACE added (Ed Brey)
// 24 Sep 99 BOOST_DECL added (Ed Brey)
// 10 Aug 99 Endedness flags added, GNU CC support added
// 22 Jul 99 Initial version
//
// CAUTION: This file is intended to be completely stable -
// DO NOT MODIFY THIS FILE!
//
#ifndef BOOST_CONFIG_HPP
#define BOOST_CONFIG_HPP
#define BOOST_VERSION 102300
// BOOST_VERSION % 100 is the sub-minor version
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
// Conformance Flag Macros -------------------------------------------------//
//
// Conformance flag macros should identify the absence of C++ Standard
// conformance rather than its presence. This ensures that standard conforming
// compilers do not require a lot of configuration flag macros. It places the
// burden where it should be, on non-conforming compilers. In the future,
// hopefully, less rather than more conformance flags will have to be defined.
// BOOST_NO_CV_SPECIALIZATIONS: if template specialisations for cv-qualified types
// conflict with a specialistaion for unqualififed type.
// BOOST_NO_CV_VOID_SPECIALIZATIONS: if template specialisations for cv-void types
// conflict with a specialistaion for void.
// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP: Compiler does not implement
// argument-dependent lookup (also named Koenig lookup); see std::3.4.2
// [basic.koenig.lookup]
// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS: Template value
// parameters cannot have a dependent type, for example
// "template<class T, typename T::type value> class X { ... };"
// BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS: Can only use deduced
// template arguments when calling function template instantiations.
// BOOST_NO_INCLASS_MEMBER_INITIALIZATION: Compiler violates std::9.4.2/4.
// BOOST_NO_INT64_T: <boost/cstdint.hpp> does not support 64-bit integer
// types. (Set by <boost/cstdint.hpp> rather than <boost/config.hpp>).
// BOOST_NO_INTEGRAL_INT64_T: int64_t as defined by <boost/cstdint.hpp> is
// not an integral type.
// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS: constants such as
// numeric_limits<T>::is_signed are not available for use at compile-time.
// BOOST_NO_MEMBER_TEMPLATES: Member template functions not fully supported.
// Also see BOOST_MSVC6_MEMBER_TEMPLATES in the Compiler Control section below.
// BOOST_NO_MEMBER_TEMPLATE_FRIENDS: Member template friend syntax
// ("template<class P> friend class frd;") described in the C++ Standard,
// 14.5.3, not supported.
// BOOST_NO_OPERATORS_IN_NAMESPACE: Compiler requires inherited operator
// friend functions to be defined at namespace scope, then using'ed to boost.
// Probably GCC specific. See boost/operators.hpp for example.
// BOOST_NO_POINTER_TO_MEMBER_CONST: The compiler does not correctly handle
// pointers to const member functions, preventing use of these in overloaded
// function templates. See boost/functional.hpp for example.
// BOOST_NO_PRIVATE_IN_AGGREGATE: The compiler misreads 8.5.1, treating classes
// as non-aggregate if they contain private or protected member functions.
// BOOST_NO_STD_ITERATOR: The C++ implementation fails to provide the
// std::iterator class.
// BOOST_NO_STD_ITERATOR_TRAITS: The compiler does not provide a standard
// compliant implementation of std::iterator_traits. Note that
// the compiler may still have a non-standard implementation.
// BOOST_NO_STDC_NAMESPACE: The contents of C++ standard headers for C library
// functions (the <c...> headers) have not been placed in namespace std.
// Because the use of std::size_t is so common, a specific workaround for
// <cstddef> (and thus std::size_t) is provided in this header (see below).
// For other <c...> headers, a workaround must be provided in the boost header:
//
// #include <cstdlib> // for abs
// #ifdef BOOST_NO_STDC_NAMESPACE
// namespace std { using ::abs; }
// #endif
// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION. Class template partial
// specialization (14.5.4 [temp.class.spec]) not supported.
// BOOST_NO_USING_TEMPLATE: The compiler will not accept a using declaration
// that imports a template from the global namespace into a named namespace.
// Probably Borland specific.
// BOOST_NO_AUTO_PTR: If the compiler / library supplies non-standard or broken
// std::auto_ptr.
// BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING: The compiler does not perform
// function template ordering or its function template ordering is incorrect.
//
// template<typename T> void f(T); // #1
// template<typename T, typename U> void f(T (*)(U)); // #2
// void bar(int);
// f(&bar); // should choose #2.
// BOOST_NO_DEPENDENT_NESTED_DERIVATIONS: The compiler fails to compile
// a nested class that has a dependent base class:
// template<typename T>
// struct foo : public T {
// template<typename U>
// struct bar : public T, public U {};
// };
//
// Compiler Control or Information Macros ----------------------------------//
//
// Compilers often supply features outside of the C++ Standard which need to be
// controlled or detected. As usual, reasonable default behavior should occur
// if any of these macros are not defined.
// BOOST_DECL: Certain compilers for Microsoft operating systems require
// non-standard class and function decoration if dynamic load library linking
// is desired. BOOST_DECL supplies that decoration. Boost does not require
// use of BOOST_DECL - it is non-standard and to be avoided if practical to do
// so. Even compilers requiring it for DLL's only require it in certain cases.
//
// BOOST_DECL_EXPORTS: User defined, usually via command line or IDE,
// it causes BOOST_DECL to be defined as __declspec(dllexport).
//
// BOOST_DECL_IMPORTS: User defined, usually via command line or IDE,
// it causes BOOST_DECL to be defined as __declspec(dllimport).
//
// If neither BOOST_DECL_EXPORTS nor BOOST_DECL_IMPORTS is defined, or if
// the compiler does not require __declspec() decoration, BOOST_DECL is
// defined as a null string.
// BOOST_MSVC6_MEMBER_TEMPLATES: Microsoft Visual C++ 6.0 has enough member
// template idiosyncrasies (being polite) that BOOST_NO_MEMBER_TEMPLATES is
// defined for this compiler. BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
// compiler specific workarounds.
// BOOST_MSVC: defined as _MSC_VER for the Microsoft compiler only. In general,
// boost headers should test for a specific conformance flag macro (for
// example, BOOST_NO_MEMBER_TEMPLATE_FRIENDS) rather than a specific compiler.
// VC++ is a special case, however, since many libraries try to support it yet
// it has so many conformance issues that sometimes it is just easier to test
// for it directly. On the other hand, the obvious way to do this doesn't work,
// as many non-Microsoft compilers define _MSC_VER. Thus BOOST_MSVC.
// BOOST_MSVC_STD_ITERATOR: Microsoft's broken version of std::iterator
// is being used.
// BOOST_SYSTEM_HAS_STDINT_H: There are no 1998 C++ Standard headers <stdint.h>
// or <cstdint>, although the 1999 C Standard does include <stdint.h>.
// If <stdint.h> is present, <boost/stdint.h> can make good use of it,
// so a flag is supplied (signalling presence; thus the default is not
// present, conforming to the current C++ standard).
// BOOST_NO_SLIST: The C++ implementation does not provide the slist class.
// BOOST_NO_STRINGSTREAM: The C++ implementation does not provide the <sstream> header.
// BOOST_NO_HASH: The C++ implementation does not provide the hash_set
// or hash_map classes.
// BOOST_STD_EXTENSION_NAMESPACE: The name of the namespace in which the slist,
// hash_set and/or hash_map templates are defined in this implementation (if any).
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS: The standard library does not provide
// templated iterator constructors for its containers.
// BOOST_NO_LIMITS: The C++ implementation does not provide the <limits> header.
// BOOST_NO_INTRINSIC_WCHAR_T: The C++ implementation does not provide wchar_t,
// or it is really a synonym for another integral type. Use this symbol to
// decide whether it is appropriate to explicitly specialize a template on
// wchar_t if there is already a specialization for other integer types.
// BOOST_NO_STD_ALLOCATOR: The C++ standard library does not provide
// a standards conforming std::allocator.
// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
// the min() and max() template functions that should be in <algorithm>.
// Common compiler front-ends precede all compiler checks ------------------//
// Edison Design Group front-ends
# if defined(__EDG_VERSION__)
# if __EDG_VERSION__ <= 241
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# endif
// Compiler-specific checks -------------------------------------------------//
// Compilers are listed in alphabetic order by vendor name
// (except VC++ must be last - see below)
// Borland ------------------------------------------------------------------//
#if defined __BORLANDC__
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
// pull in standard library version:
# include <memory>
# if __BORLANDC__ <= 0x0551
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# endif
# if __BORLANDC__ <= 0x0550
// Borland C++ Builder 4 and 5:
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_USING_TEMPLATE
# if __BORLANDC__ == 0x0550
// Borland C++ Builder 5, command-line compiler 5.5:
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
// <climits> is partly broken, some macos define symbols that are really in
// namespace std, so you end up having to use illegal constructs like
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
#include <float.h>
// if we don't have a user config, then use the default location:
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
# define BOOST_USER_CONFIG <boost/config/user.hpp>
#endif
# define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
// Comeau C++ ----------------------------------------------------------------//
# elif defined __COMO__
# if __COMO_VERSION__ <= 4245
# define BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
# endif
// Compaq Tru64 Unix cxx ---------------------------------------------------
# elif defined __DECCXX
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
// GNU CC (also known as GCC and G++) --------------------------------------//
# elif defined __GNUC__
# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
// egcs 1.1 won't parse smart_ptr.hpp without this:
# define BOOST_NO_AUTO_PTR
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
# include <string> // not sure this is the right way to do this -JGS
# if defined(__BASTRING__) && !defined(__GLIBCPP__) && !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
// this should only detect the stdlibc++ that ships with gcc, and
// not any replacements that may be installed...
# define BOOST_NO_STD_ITERATOR
# define BOOST_NO_LIMITS
# endif
# if !defined(_CXXRT_STD) && !defined(__SGI_STL_OWN_IOSTREAMS)
# define BOOST_NO_STRINGSTREAM
# endif
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
# define BOOST_NO_MEMBER_TEMPLATES
# endif
# if __GNUC__ >= 3
# include <iterator>
# if defined(__GLIBCPP__)
// The new GNU C++ library has slist, hash_map, hash_set headers
// in <ext/*>, but client code assumes they're in <*> --- Jens M.
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# endif
# endif
// Greenhills C++ -----------------------------------------------------------//
#elif defined __ghs
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
// HP aCC -------------------------------------------------------------------
# elif defined __HP_aCC
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_OPERATORS_IN_NAMESPACE
// (support for HP aCC is not complete, see the regression test results)
// Intel on Linux -----------------------------------------------------------//
#elif defined __ICC
# include <iterator>
# ifdef _CPPLIB_VER
// shipped with Dinkumware 3.10, which has a different hash_map
# define BOOST_NO_HASH
# endif
// Intel on Windows --------------------------------------------------------//
# elif defined __ICL
# if __ICL <= 500
// Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
// in the frontend even in "strict" mode. (reported by Kirk Klobe)
# ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
# define BOOST_NO_INTRINSIC_WCHAR_T // tentative addition - required for VC6 compatibility? (added by JM 19 Feb 2001)
# endif
# include <iterator> // not sure this is the right way to do this -JGS
# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
// a perfectly good implementation of std::iterator is supplied
# elif defined(__SGI_STL_ITERATOR)
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
# // full dinkumware 3.06 and above
# define BOOST_NO_HASH
# define BOOST_NO_STD_ITERATOR_TRAITS
# if !_GLOBAL_USING // can be defined in yvals.h
# define BOOST_NO_STDC_NAMESPACE
# endif
# else // assume using dinkumware's STL that comes with VC++ 6.0
# define BOOST_MSVC_STD_ITERATOR
# define BOOST_NO_STD_ITERATOR_TRAITS
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
# define BOOST_NO_STD_MIN_MAX
# endif
// Kai C++ ----------------------------------------------------------------
#elif defined __KCC
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# if __KCC_VERSION <= 4001
// at least on Sun, the contents of <cwchar> is not in namespace std
# define BOOST_NO_STDC_NAMESPACE
# endif
// Metrowerks CodeWarrior -------------------------------------------------//
# elif defined __MWERKS__
# if __MWERKS__ <= 0x2401 // 6.2
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
# endif
# if __MWERKS__ <= 0x2301 // 5.3
# define BOOST_NO_POINTER_TO_MEMBER_CONST
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_HASH
# endif
# if __MWERKS__ >= 0x2400
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
# endif
# if __MWERKS__ >= 0x2300
# define BOOST_SYSTEM_HAS_STDINT_H
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
// SGI MIPSpro C++ ---------------------------------------------------------//
# elif defined __sgi
// This is a generic STLport condition and could be moved elsewhere.
# include <iterator>
# if defined(__SGI_STL_PORT) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(_STLP_MEMBER_TEMPLATE_CLASSES)
# define BOOST_NO_STD_ALLOCATOR
# endif
// Sun Workshop Compiler C++ -----------------------------------------------//
# elif defined __SUNPRO_CC
# if __SUNPRO_CC <= 0x520
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_STD_ITERATOR_TRAITS
# define BOOST_NO_STD_ALLOCATOR
// although sunpro 5.1 supports the syntax for
// inline initialization it often gets the value
// wrong, especially where the value is computed
// from other constants (J Maddock 6th May 2001)
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
// although sunpro 5.1 supports the syntax for
// partial specialization, it often seems to
// bind to the wrong specialization. Better
// to disable it until suppport becomes more stable
// (J Maddock 6th May 2001).
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
# if __SUNPRO_CC <= 0x500
# define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
// Microsoft Visual C++ (excluding Intel/EDG front end) --------------------
//
// Must remain the last #elif since some other vendors (Metrowerks, for
// example) also #define _MSC_VER
# elif defined _MSC_VER
# define BOOST_MSVC _MSC_VER
// turn off the warnings before we #include anything
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
# pragma warning( disable : 4503 ) // warning: decorated name length exceeded
# if _MSC_VER <= 1200 // 1200 == VC++ 6.0
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_INTRINSIC_WCHAR_T
// VC++ 6.0 has member templates but they have numerous problems including
// cases of silent failure, so for safety we define:
# define BOOST_NO_MEMBER_TEMPLATES
// For VC++ experts wishing to attempt workarounds, we define:
# define BOOST_MSVC6_MEMBER_TEMPLATES
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
# include <iterator> // not sure this is the right way to do this -JGS
# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
// a perfectly good implementation of std::iterator is supplied
// A conforming allocator is supplied, but the compiler cannot cope
// when using "rebind". (Douglas Gregor)
# define BOOST_NO_STD_ALLOCATOR
# elif defined(__SGI_STL_ITERATOR)
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
// full dinkumware 3.06 and above
# define BOOST_NO_HASH
# define BOOST_NO_STD_ITERATOR_TRAITS
# ifndef _GLOBAL_USING // can be defined in yvals.h
# define BOOST_NO_STDC_NAMESPACE
# endif
# define BOOST_MSVC_STD_ITERATOR
# else
# define BOOST_MSVC_STD_ITERATOR
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
# ifndef _CPPLIB_VER
// Updated Dinkum library defines this, and provides
// its own min and max definitions.
# define BOOST_NO_STD_MIN_MAX
# undef min
# undef max
# endif
# ifndef NOMINMAX
// avoid spurious NOMINMAX redefinition warning
# define NOMINMAX
# endif
# endif
# define BOOST_NO_STD_ITERATOR_TRAITS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
// Make sure at least one standard library header is included so that library
// implementation detection will work, even if no standard headers have been
// included in front of a boost header. (Ed Brey 5 Jun 00)
# include <cstddef>
// Determine if the standard library implementation is already pulling names
// into std. STLport defines the following if so. (Ed Brey 5 Jun 00)
# if !defined( __STL_IMPORT_VENDOR_CSTD ) || defined( __STL_NO_CSTD_FUNCTION_IMPORTS )
# define BOOST_NO_STDC_NAMESPACE
# endif
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
# endif // Microsoft (excluding Intel/EDG frontend)
# ifndef BOOST_DECL
# define BOOST_DECL // default for compilers not needing this decoration.
# endif
// end of compiler specific portion ----------------------------------------//
#if defined(BOOST_NO_LIMITS) || (defined(_RWSTD_VER) && defined(__BORLANDC__) && _RWSTD_VER < 0x020300) || (defined(__SGI_STL_PORT) && __SGI_STL_PORT <= 0x410 && defined(__STL_STATIC_CONST_INIT_BUG))
// STLPort 4.0 doesn't define the static constants in numeric_limits<> so that they
// can be used at compile time if the compiler bug indicated by
// __STL_STATIC_CONST_INIT_BUG is present.
// Rogue wave STL (C++ Builder) also has broken numeric_limits
// with default template defining members out of line.
// However, Compaq C++ also uses RogueWave (version 0x0203) and it's ok.
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
// include it first:
#ifdef BOOST_USER_CONFIG
# include BOOST_USER_CONFIG
#endif
#if defined(__hpux)
// HP-UX has a nice stdint.h in a different location, see boost/cstdint.hpp
# define BOOST_SYSTEM_HAS_STDINT_H
// if we don't have a compiler config set, try and find one:
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
# include <boost/config/select_compiler_config.hpp>
#endif
// if we have a compiler config, include it now:
#ifdef BOOST_COMPILER_CONFIG
# include BOOST_COMPILER_CONFIG
#endif
#ifndef BOOST_STD_EXTENSION_NAMESPACE
# define BOOST_STD_EXTENSION_NAMESPACE std
// if we don't have a std library config set, try and find one:
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
# include <boost/config/select_stdlib_config.hpp>
#endif
// if we have a std library config, include it now:
#ifdef BOOST_STDLIB_CONFIG
# include BOOST_STDLIB_CONFIG
#endif
// Check for old name "BOOST_NMEMBER_TEMPLATES" for compatibility -----------//
// Don't use BOOST_NMEMBER_TEMPLATES. It is deprecated and will be removed soon.
#if defined( BOOST_NMEMBER_TEMPLATES ) && !defined( BOOST_NO_MEMBER_TEMPLATES )
#define BOOST_NO_MEMBER_TEMPLATES
// if we don't have a platform config set, try and find one:
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
# include <boost/config/select_platform_config.hpp>
#endif
// if we have a platform config, include it now:
#ifdef BOOST_PLATFORM_CONFIG
# include BOOST_PLATFORM_CONFIG
#endif
// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
//
// Because std::size_t usage is so common, even in boost headers which do not
// otherwise use the C library, the <cstddef> workaround is included here so
// that ugly workaround code need not appear in many other boost headers.
// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
// must still be #included in the usual places so that <cstddef> inclusion
// works as expected with standard conforming compilers. The resulting
// double inclusion of <cstddef> is harmless.
# ifdef BOOST_NO_STDC_NAMESPACE
# include <cstddef>
namespace std { using ::ptrdiff_t; using ::size_t; }
// using ::wchar_t; removed since wchar_t is a C++ built-in type (Ed Brey)
# endif
#ifdef BOOST_NO_STD_MIN_MAX
namespace std {
template <class _Tp>
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
return __b < __a ? __b : __a;
}
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
return __a < __b ? __b : __a;
}
#ifdef BOOST_MSVC
inline long min(long __a, long __b) {
return __b < __a ? __b : __a;
}
inline long max(long __a, long __b) {
return __a < __b ? __b : __a;
}
#endif
}
#endif
// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
// On compilers which don't allow in-class initialization of static integral
// constant members, we must use enums as a workaround if we want the constants
// to be available at compile-time. This macro gives us a convenient way to
// declare such constants.
#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
#else
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
#endif
// get config suffix code:
#include <boost/config/suffix.hpp>
#endif // BOOST_CONFIG_HPP
@@ -655,3 +64,6 @@ namespace std {

View File

@@ -0,0 +1,119 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Borland C++ compiler setup:
// Version 5.0 and below:
# if __BORLANDC__ <= 0x0550
// Borland C++Builder 4 and 5:
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# if __BORLANDC__ == 0x0550
// Borland C++Builder 5, command-line compiler 5.5:
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
# endif
// Version 5.51 and below:
#if (__BORLANDC__ <= 0x551)
# define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
#endif
// Version 7.0 (Kylix) and below:
#if (__BORLANDC__ <= 0x570) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_USING_TEMPLATE
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# define BOOST_NO_TEMPLATE_TEMPLATES
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
//
// new bug in 5.61:
#if __BORLANDC__ >= 0x561
// this seems to be needed by the command line compiler, but not the IDE:
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif
# ifdef _WIN32
# define BOOST_NO_SWPRINTF
# elif defined(linux) || defined(__linux__) || defined(__linux)
// we should really be able to do without this
// but the wcs* functions aren't imported into std::
# define BOOST_NO_STDC_NAMESPACE
// _CPPUNWIND doesn't get automatically set for some reason:
# pragma defineonoption BOOST_CPPUNWIND -x
# endif
#endif
//
// Post 0x561 we have long long and stdint.h:
#if __BORLANDC__ >= 0x561
# define BOOST_HAS_LONG_LONG
// On non-Win32 platforms let the platform config figure this out:
# ifdef _WIN32
# define BOOST_HAS_STDINT_H
# endif
#endif
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
// defined, then we have 0x560 or greater with the Rogue Wave implementation
// which presumably has the std::DBL_MAX bug.
#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL)
// <climits> is partly broken, some macros define symbols that are really in
// namespace std, so you end up having to use illegal constructs like
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
#include <float.h>
#endif
//
// __int64:
//
#if __BORLANDC__ >= 0x530
# define BOOST_HAS_MS_INT64
#endif
//
// check for exception handling support:
//
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND)
# define BOOST_NO_EXCEPTIONS
#endif
//
// all versions have a <dirent.h>:
//
#define BOOST_HAS_DIRENT_H
//
// Disable Win32 support in ANSI mode:
//
#pragma defineonoption BOOST_DISABLE_WIN32 -A
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
//
// versions check:
// we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 5.7 (Kylix 3):
#if (__BORLANDC__ > 0x570)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -0,0 +1,65 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Comeau C++ compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#if (__COMO_VERSION__ <= 4245) || !defined(BOOST_STRICT_CONFIG)
# if defined(_MSC_VER) && _MSC_VER <= 1300
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_SWPRINTF
# if _MSC_VER > 100
// only set this in non-strict mode:
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# endif
// Void returns don't work when emulating VC 6 (Peter Dimov)
# if defined(_MSC_VER) && (_MSC_VER == 1200)
# define BOOST_NO_VOID_RETURNS
# endif
#endif // version 4245
//
// enable __int64 support in VC emulation mode
// we should also set BOOST_HAS_LONG_LONG when that is
// supported, but there is no way we can detect it:
//
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
# define BOOST_HAS_MS_INT64
# endif
//
// disable win32 support unless we are in VC emulation mode,
// (what does this do to Como on top of Borland?):
//
#if defined(_WIN32) && (_MSC_VER+0 < 1000)
# define BOOST_DISABLE_WIN32
#endif
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
//
// versions check:
// we don't know Comeau prior to version 4245:
#if __COMO_VERSION__ < 4245
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 4245:
#if (__COMO_VERSION__ > 4245)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,48 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
//
// Options common to all edg based compilers.
//
// This is included from within the individual compiler mini-configs.
#ifndef __EDG_VERSION__
# error This file requires that __EDG_VERSION__ be defined.
#endif
#if (__EDG_VERSION__ <= 238)
# define BOOST_NO_INTEGRAL_INT64_T
#endif
#if (__EDG_VERSION__ <= 240)
# define BOOST_NO_VOID_RETURNS
#endif
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
#endif
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
# define BOOST_NO_TEMPLATE_TEMPLATES
#endif
// See also kai.hpp which checks a Kai-specific symbol for EH
# if !defined(__KCC) && !defined(__EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
# endif
# if !defined(__NO_LONG_LONG)
# define BOOST_HAS_LONG_LONG
# endif
#ifdef c_plusplus
// EDG has "long long" in non-strict mode
// However, some libraries have insufficient "long long" support
// #define BOOST_HAS_LONG_LONG
#endif

View File

@@ -0,0 +1,18 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Dec Alpha True64 C++ compiler setup:
#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
#include "boost/config/compiler/common_edg.hpp"
//
// versions check:
// Nothing to do here?

View File

@@ -0,0 +1,84 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// GNU C++ compiler setup:
# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
// egcs 1.1 won't parse shared_ptr.hpp without this:
# define BOOST_NO_AUTO_PTR
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ < 95
//
// Prior to gcc 2.95 member templates only partly
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
// instead since inline member templates mostly work.
//
# define BOOST_NO_MEMBER_TEMPLATES
# if __GNUC_MINOR__ >= 9
# define BOOST_MSVC6_MEMBER_TEMPLATES
# endif
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
# if __GNUC__ < 3
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# endif
#ifndef __EXCEPTIONS
# define BOOST_NO_EXCEPTIONS
#endif
//
// Bug specific to gcc 3.1 and 3.2:
//
#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#endif
//
// Threading support: Turn this on unconditionally here (except for
// those platforms where we can know for sure). It will get turned off again
// later if no threading API is detected.
//
#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS
#endif
//
// gcc has "long long"
//
#define BOOST_HAS_LONG_LONG
//
// gcc implements the named return value optimization since version 3.1
//
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
#define BOOST_HAS_NRVO
#endif
#define BOOST_COMPILER "GNU C++ version " __VERSION__
//
// versions check:
// we don't know gcc prior to version 2.90:
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 3.3:
#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3))
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# warning "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,27 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Greenhills C++ compiler setup:
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
#include "boost/config/compiler/common_edg.hpp"
//
// versions check:
// we don't support Greenhills prior to version 0:
#if __ghs < 0
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0:
#if (__ghs > 0)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,57 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// HP aCC C++ compiler setup:
#if (__HP_aCC <= 33100)
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# if !defined(_NAMESPACE_STD)
# define BOOST_NO_STD_LOCALE
# define BOOST_NO_STRINGSTREAM
# endif
#endif
#if (__HP_aCC <= 33300)
// member templates are sufficiently broken that we disable them for now
# define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
#endif
#if (__HP_aCC <= 33900) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_SWPRINTF
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
// std lib config should set this one already:
//# define BOOST_NO_STD_ALLOCATOR
#endif
// optional features rather than defects:
#if (__HP_aCC >= 33900)
# define BOOST_HAS_LONG_LONG
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#endif
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
//
// versions check:
// we don't support HP aCC prior to version 0:
#if __HP_aCC < 33000
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0:
#if (__HP_aCC > 33900)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,90 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Intel compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#ifdef __ICL
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(__ICC)
# define BOOST_INTEL_CXX_VERSION __ICC
#endif
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_TEMPLATE_TEMPLATES
#endif
#if (BOOST_INTEL_CXX_VERSION <= 600) || !defined(BOOST_STRICT_CONFIG)
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
// Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
// in the frontend even in "strict" mode, unless you use
// -Qoption,cpp,--arg_dep_lookup. (reported by Kirk Klobe & Thomas Witt)
// Similarly, -Qoption,cpp,--new_for_init enables new-style "for" loop
// variable scoping. (reported by Thomas Witt)
// Intel C++ 6.0 (currently in Beta test) doesn't have any front-end
// changes at all. (reported by Kirk Klobe)
// That can't be right, since it supports template template
// arguments (reported by Dave Abrahams)
# ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# define BOOST_NO_SWPRINTF
# endif
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
# define BOOST_NO_VOID_RETURNS
# define BOOST_NO_INTEGRAL_INT64_T
# endif
#endif
#if _MSC_VER+0 >= 1000
# ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
# endif
# if _MSC_VER >= 1200
# define BOOST_HAS_MS_INT64
# endif
# define BOOST_NO_SWPRINTF
#elif defined(_WIN32)
# define BOOST_DISABLE_WIN32
#endif
// I checked version 6.0 build 020312Z, it implements the NRVO.
// Correct this as you find out which version of the compiler
// implemented the NRVO first. (Daniel Frey)
#if (BOOST_INTEL_CXX_VERSION >= 600)
# define BOOST_HAS_NRVO
#endif
//
// versions check:
// we don't support Intel prior to version 5.0:
#if BOOST_INTEL_CXX_VERSION < 500
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version:
#if (BOOST_INTEL_CXX_VERSION > 700)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# elif defined(_MSC_VER)
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -0,0 +1,32 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Kai C++ compiler setup:
#include "boost/config/compiler/common_edg.hpp"
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
// at least on Sun, the contents of <cwchar> is not in namespace std
# define BOOST_NO_STDC_NAMESPACE
# endif
// see also common_edg.hpp which needs a special check for __KCC
# if !defined(_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
# endif
#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
//
// last known and checked version is 4001:
#if (__KCC_VERSION > 4001)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,75 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Metrowerks C++ compiler setup:
// locale support is disabled when linking with the dynamic runtime
# ifdef _MSL_NO_LOCALE
# define BOOST_NO_STD_LOCALE
# endif
# if __MWERKS__ <= 0x2301 // 5.3
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# define BOOST_NO_POINTER_TO_MEMBER_CONST
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
# endif
# if __MWERKS__ <= 0x2401 // 6.2
//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# endif
# if(__MWERKS__ <= 0x2407) // 7.x
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
# endif
# if(__MWERKS__ <= 0x3003) // 8.x
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# endif
#if !__option(wchar_type)
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
#if !__option(exceptions)
# define BOOST_NO_EXCEPTIONS
#endif
# if __MWERKS__ == 0x3000
# define BOOST_COMPILER_VERSION 8.0
# elif __MWERKS__ == 0x3001
# define BOOST_COMPILER_VERSION 8.1
# elif __MWERKS__ == 0x3002
# define BOOST_COMPILER_VERSION 8.2
# elif __MWERKS__ == 0x3003
# define BOOST_COMPILER_VERSION 8.3
# else
# define BOOST_COMPILER_VERSION __MWERKS__
# endif
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
//
// versions check:
// we don't support Metrowerks prior to version 5.3:
#if __MWERKS__ < 0x2301
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version:
#if (__MWERKS__ > 0x3003)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,49 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// MPW C++ compilers setup:
# if defined(__SC__)
# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
# elif defined(__MRC__)
# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
# else
# error "Using MPW compiler configuration by mistake. Please update."
# endif
//
// MPW 8.90:
//
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_INTRINSIC_WCHAR_T
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_CWCHAR
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
#endif
//
// versions check:
// we don't support MPW prior to version 8.9:
#if MPW_CPLUS < 0x890
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0x890:
#if (MPW_CPLUS > 0x890)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,23 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// SGI C++ compiler setup:
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
#include "boost/config/compiler/common_edg.hpp"
//
// Threading support:
// Turn this on unconditionally here, it will get turned off again later
// if no threading API is detected.
//
#define BOOST_HAS_THREADS
//
// version check:
// probably nothing to do here?

View File

@@ -0,0 +1,71 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Sun C++ compiler setup:
# if __SUNPRO_CC <= 0x500
# define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# endif
# if (__SUNPRO_CC <= 0x520)
//
// Sunpro 5.2 and earler:
//
// although sunpro 5.2 supports the syntax for
// inline initialization it often gets the value
// wrong, especially where the value is computed
// from other constants (J Maddock 6th May 2001)
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
// Although sunpro 5.2 supports the syntax for
// partial specialization, it often seems to
// bind to the wrong specialization. Better
// to disable it until suppport becomes more stable
// (J Maddock 6th May 2001).
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
# if (__SUNPRO_CC <= 0x530) || !defined(BOOST_STRICT_CONFIG)
// SunPro 5.3 has better support for partial specialization,
// but breaks when compiling std::less<shared_ptr<T> >
// (Jens Maurer 4 Nov 2001).
// std::less specialization fixed as reported by George
// Heintzelman; partial specialization re-enabled
// (Peter Dimov 17 Jan 2002)
//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// integral constant expressions with 64 bit numbers fail
# define BOOST_NO_INTEGRAL_INT64_T
# endif
# if (__SUNPRO_CC <= 0x540) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_TEMPLATE_TEMPLATES
# endif
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
//
// versions check:
// we don't support sunpro prior to version 4:
#if __SUNPRO_CC < 0x400
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0x530:
#if (__SUNPRO_CC > 0x530)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,51 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Visual Age (IBM) C++ compiler setup:
#if __IBMCPP__ <= 501
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif
#if (__IBMCPP__ <= 502)
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#endif
#if (__IBMCPP__ <= 502) || !defined(BOOST_STRICT_CONFIG)
// Actually the compiler supports inclass member initialization but it
// requires a definition for the class member and it doesn't recognize
// it as an integral constant expression when used as a template argument.
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_INTEGRAL_INT64_T
#endif
//
// On AIX thread support seems to be indicated by _THREAD_SAFE:
//
#ifdef _THREAD_SAFE
# define BOOST_HAS_THREADS
#endif
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
//
// versions check:
// we don't support Visual age prior to version 5:
#if __IBMCPP__ < 500
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 500:
#if (__IBMCPP__ > 502)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -0,0 +1,123 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Microsoft Visual C++ compiler setup:
#define BOOST_MSVC _MSC_VER
// turn off the warnings before we #include anything
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
#if _MSC_VER <= 1200 // 1200 == VC++ 6.0
#pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_VOID_RETURNS
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# define BOOST_NO_DEDUCED_TYPENAME
// disable min/max macro defines on vc6:
//
#endif
#if (_MSC_VER <= 1300) // 1200 == VC++ 7.0
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
#endif
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_INTEGRAL_INT64_T
// VC++ 6/7 has member templates but they have numerous problems including
// cases of silent failure, so for safety we define:
# define BOOST_NO_MEMBER_TEMPLATES
// For VC++ experts wishing to attempt workarounds, we define:
# define BOOST_MSVC6_MEMBER_TEMPLATES
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_SWPRINTF
# define BOOST_NO_TEMPLATE_TEMPLATES
# if (_MSC_VER > 1200)
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# endif
#endif
#if _MSC_VER < 1310 // 1310 == VC++ 7.1
# define BOOST_NO_SWPRINTF
#endif
#if _MSC_VER <= 1310
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
//
// check for exception handling support:
#ifndef _CPPUNWIND
# define BOOST_NO_EXCEPTIONS
#endif
//
// __int64 support:
//
#if (_MSC_VER >= 1200) && defined(_MSC_EXTENSIONS)
# define BOOST_HAS_MS_INT64
#endif
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
# define BOOST_HAS_LONG_LONG
#endif
//
// disable Win32 API's if compiler extentions are
// turned off:
//
#ifndef _MSC_EXTENSIONS
# define BOOST_DISABLE_WIN32
#endif
# if _MSC_VER == 1200
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER == 1300
# define BOOST_COMPILER_VERSION 7.0
# elif _MSC_VER == 1310
# define BOOST_COMPILER_VERSION 7.1
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
//
// versions check:
// we don't support Visual C++ prior to version 6:
#if _MSC_VER < 1200
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1310:
#if (_MSC_VER > 1310)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -0,0 +1,32 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// IBM/Aix specific config options:
#define BOOST_PLATFORM "IBM Aix"
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_CLOCK_GETTIME
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
// This platform has header named <inttypes.h> which includes all
// the things needed.
#define BOOST_HAS_STDINT_H
// Threading API's:
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_PTHREAD_DELAY_NP
#define BOOST_HAS_SCHED_YIELD
//#define BOOST_HAS_PTHREAD_YIELD
// boilerplate code:
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,15 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
#define BOOST_PLATFORM "AmigaOS"
#define BOOST_DISABLE_THREADS
#define BOOST_NO_CWCHAR
#define BOOST_NO_STD_WSTRING
#define BOOST_NO_INTRINSIC_WCHAR_T

View File

@@ -0,0 +1,25 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// BeOS specific config options:
#define BOOST_PLATFORM "BeOS"
#define BOOST_NO_CWCHAR
#define BOOST_NO_CWCTYPE
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_BETHREADS
#ifndef BOOST_DISABLE_THREADS
# define BOOST_HAS_THREADS
#endif
// boilerplate code:
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,65 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// generic BSD config options:
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
#error "This platform is not BSD"
#endif
#ifdef __FreeBSD__
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
#elif defined(__NetBSD__)
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
#elif defined(__OpenBSD__)
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
#endif
//
// is this the correct version check?
// FreeBSD has <nl_types.h> but does not
// advertise the fact in <unistd.h>:
//
#if defined(__FreeBSD__) && (__FreeBSD__ >= 3)
# define BOOST_HAS_NL_TYPES_H
#endif
//
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
// and not in <unistd.h>
//
#if defined(__FreeBSD__) && (__FreeBSD__ <= 3)
# define BOOST_HAS_PTHREADS
#endif
//
// No wide character support in the BSD header files:
//
#define BOOST_NO_CWCHAR
//
// The BSD <ctype.h> has macros only, no functions:
//
#define BOOST_NO_CTYPE_FUNCTIONS
//
// thread API's not auto detected:
//
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_SIGACTION
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,39 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// cygwin specific config options:
#define BOOST_PLATFORM "Cygwin"
#define BOOST_NO_CWCTYPE
#define BOOST_NO_CWCHAR
#define BOOST_NO_SWPRINTF
#define BOOST_HAS_DIRENT_H
//
// Threading API:
// See if we have POSIX threads, if we do use them, otherwise
// revert to native Win threads.
#define BOOST_HAS_UNISTD_H
#include <unistd.h>
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_PTHREADS
# define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_SIGACTION
#else
# if !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_WINTHREADS
# endif
# define BOOST_HAS_FTIME
#endif
// boilerplate code:
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,60 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// hpux specific config options:
#define BOOST_PLATFORM "HP-UX"
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
// However, it has the following problem:
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
// (verifyable with gcc 2.95.3, assumed for HP aCC)
// #define BOOST_HAS_STDINT_H
#define BOOST_NO_SWPRINTF
#define BOOST_NO_CWCTYPE
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
// HPUX has an incomplete pthreads implementation, so it doesn't
// define _POSIX_THREADS, but it might be enough to implement
// Boost.Threads.
#if !defined(BOOST_HAS_PTHREADS) && defined(_POSIX_THREAD_ATTR_STACKADDR)
# define BOOST_HAS_PTHREADS
#endif
// the following are always available:
#ifndef BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_GETTIMEOFDAY
#endif
#ifndef BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_SCHED_YIELD
#endif
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#endif
#ifndef BOOST_HAS_NL_TYPES_H
# define BOOST_HAS_NL_TYPES_H
#endif
#ifndef BOOST_HAS_NANOSLEEP
# define BOOST_HAS_NANOSLEEP
#endif
#ifndef BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_GETTIMEOFDAY
#endif
#ifndef BOOST_HAS_DIRENT_H
# define BOOST_HAS_DIRENT_H
#endif
#ifndef BOOST_HAS_CLOCK_GETTIME
# define BOOST_HAS_CLOCK_GETTIME
#endif
#ifndef BOOST_HAS_SIGACTION
# define BOOST_HAS_SIGACTION
#endif

View File

@@ -0,0 +1,24 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// SGI Irix specific config options:
#define BOOST_PLATFORM "SGI Irix"
#define BOOST_NO_SWPRINTF
//
// these are not auto detected by POSIX feature tests:
//
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,94 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// linux specific config options:
#define BOOST_PLATFORM "linux"
// make sure we have __GLIBC_PREREQ if available at all
#include <cstdlib>
//
// <stdint.h> added to glibc 2.1.1
// We can only test for 2.1 though:
//
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
// only when using GCC.
# if defined __GNUC__
# define BOOST_HAS_STDINT_H
# endif
#endif
//
// como on linux doesn't have std:: c functions:
//
#ifdef __COMO__
# define BOOST_NO_STDC_NAMESPACE
#endif
//
// Intel on linux doesn't have swprintf in std::
//
#ifdef __ICC
# define BOOST_NO_STDC_NAMESPACE
#endif
//
// If glibc is past version 2 then we definitely have
// gettimeofday, earlier versions may or may not have it:
//
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
# define BOOST_HAS_GETTIMEOFDAY
#endif
#ifdef __USE_POSIX199309
# define BOOST_HAS_NANOSLEEP
#endif
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
// __GLIBC_PREREQ is available since 2.1.2
// swprintf is available since glibc 2.2.0
# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
# define BOOST_NO_SWPRINTF
# endif
#else
# define BOOST_NO_SWPRINTF
#endif
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#ifndef __GNUC__
//
// if the compiler is not gcc we still need to be able to parse
// the GNU system headers, some of which (mainly <stdint.h>)
// use GNU specific extensions:
//
# ifndef __extension__
# define __extension__
# endif
# ifndef __const__
# define __const__ const
# endif
# ifndef __volatile__
# define __volatile__ volatile
# endif
# ifndef __signed__
# define __signed__ signed
# endif
# ifndef __typeof__
# define __typeof__ typeof
# endif
# ifndef __inline__
# define __inline__ inline
# endif
#endif

View File

@@ -0,0 +1,66 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Mac OS specific config options:
#define BOOST_PLATFORM "Mac OS"
#if __MACH__ && !defined(_MSL_USING_MSL_C)
// Using the Mac OS X system BSD-style C library.
# define BOOST_NO_CTYPE_FUNCTIONS
# define BOOST_NO_CWCHAR
# ifndef BOOST_HAS_UNISTD_H
# define BOOST_HAS_UNISTD_H
# endif
// boilerplate code:
# ifndef TARGET_CARBON
# include <boost/config/posix_features.hpp>
# endif
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
# endif
//
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
// of these only pthreads are advertised in <unistd.h>, so set the
// other options explicitly:
//
# define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_SIGACTION
# ifndef __APPLE_CC__
// GCC strange "ignore std" mode works better if you pretend everything
// is in the std namespace, for the most part.
# define BOOST_NO_STDC_NAMESPACE
# endif
#else
// Using the MSL C library.
// We will eventually support threads in non-Carbon builds, but we do
// not support this yet.
# if TARGET_CARBON
# define BOOST_HAS_MPTASKS
// The MP task implementation of Boost Threads aims to replace MP-unsafe
// parts of the MSL, so we turn on threads unconditionally.
# define BOOST_HAS_THREADS
// The remote call manager depends on this.
# define BOOST_BIND_ENABLE_PASCAL
# endif
#endif

View File

@@ -0,0 +1,19 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// sun specific config options:
#define BOOST_PLATFORM "sun"
#define BOOST_HAS_GETTIMEOFDAY
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>

View File

@@ -0,0 +1,67 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Win32 specific config options:
#define BOOST_PLATFORM "Win32"
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
# define BOOST_NO_SWPRINTF
#endif
#ifndef BOOST_DISABLE_WIN32
//
// Win32 will normally be using native Win32 threads,
// but there is a pthread library avaliable as an option:
//
#ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_WINTHREADS
#endif
// WEK: Added
#define BOOST_HAS_FTIME
#endif
//
// disable min/max macros:
//
#ifdef min
# undef min
#endif
#ifdef max
# undef max
#endif
#ifndef NOMINMAX
# define NOMINMAX
#endif
#ifdef BOOST_MSVC
namespace std{
// Apparently, something in the Microsoft libraries requires the "long"
// overload, because it calls the min/max functions with arguments of
// slightly different type. (If this proves to be incorrect, this
// whole "BOOST_MSVC" section can be removed.)
inline long min(long __a, long __b) {
return __b < __a ? __b : __a;
}
inline long max(long __a, long __b) {
return __a < __b ? __b : __a;
}
// The "long double" overload is required, otherwise user code calling
// min/max for floating-point numbers will use the "long" overload.
// (SourceForge bug #495495)
inline long double min(long double __a, long double __b) {
return __b < __a ? __b : __a;
}
inline long double max(long double __a, long double __b) {
return __a < __b ? __b : __a;
}
}
using std::min;
using std::max;
# endif

View File

@@ -0,0 +1,85 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// All POSIX feature tests go in this file,
// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
// may be present but none-functional unless _POSIX_C_SOURCE and
// _XOPEN_SOURCE have been defined to the right value (it's up
// to the user to do this *before* including any header, although
// in most cases the compiler will do this for you).
# if defined(BOOST_HAS_UNISTD_H)
# include <unistd.h>
// XOpen has <nl_types.h>, but is this the correct version check?
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
# define BOOST_HAS_NL_TYPES_H
# endif
// POSIX version 6 requires <stdint.h>
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
# define BOOST_HAS_STDINT_H
# endif
// POSIX version 2 requires <dirent.h>
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
# define BOOST_HAS_DIRENT_H
# endif
// POSIX version 3 requires <signal.h> to have sigaction:
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
# define BOOST_HAS_SIGACTION
# endif
// POSIX defines _POSIX_THREADS > 0 for pthread support,
// however some platforms define _POSIX_THREADS without
// a value, hence the (_POSIX_THREADS+0 >= 0) check.
// Strictly speaking this may catch platforms with a
// non-functioning stub <pthreads.h>, but such occurrences should
// occur very rarely if at all.
# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
# define BOOST_HAS_PTHREADS
# endif
// BOOST_HAS_NANOSLEEP:
// This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
# define BOOST_HAS_NANOSLEEP
# endif
// BOOST_HAS_CLOCK_GETTIME:
// This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
// but at least one platform - linux - defines that flag without
// defining clock_gettime):
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
# define BOOST_HAS_CLOCK_GETTIME
# endif
// BOOST_HAS_SCHED_YIELD:
// This is predicated on _POSIX_PRIORITY_SCHEDULING or
// on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
|| (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
# define BOOST_HAS_SCHED_YIELD
# endif
// BOOST_HAS_GETTIMEOFDAY:
// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
// These are predicated on _XOPEN_VERSION, and appears to be first released
// in issue 4, version 2 (_XOPEN_VERSION > 500).
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
# define BOOST_HAS_GETTIMEOFDAY
# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# endif
# endif
# endif

View File

@@ -0,0 +1,78 @@
// Boost compiler configuration selection header file
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
#if defined __GNUC__
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
# elif defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
#elif defined __KCC
// Kai C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
#elif defined __sgi
// SGI MIPSpro C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
#elif defined __DECCXX
// Compaq Tru64 Unix cxx
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
#elif defined __ghs
// Greenhills C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
#elif defined __BORLANDC__
// Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
#elif defined(__ICL) || defined(__ICC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __MWERKS__
// Metrowerks CodeWarrior
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
#elif defined __SUNPRO_CC
// Sun Workshop Compiler C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
#elif defined __HP_aCC
// HP aCC
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
#elif defined(__MRC__) || defined(__SC__)
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
#elif defined(__IBMCPP__)
// IBM Visual Age
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined _MSC_VER
// Microsoft Visual C++
//
// Must remain the last #elif since some other vendors (Metrowerks, for
// example) also #define _MSC_VER
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
#elif defined (BOOST_ASSERT_CONFIG)
// this must come last - generate an error if we don't
// recognise the compiler:
# error "Unknown compiler - please configure and report the results to boost.org"
#endif

View File

@@ -0,0 +1,84 @@
// Boost compiler configuration selection header file
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
// Note that we define the headers to include using "header_name" not
// <header_name> in order to prevent macro expansion within the header
// name (for example "linux" is a macro on linux systems).
#if defined(linux) || defined(__linux) || defined(__linux__)
// linux:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
// BSD:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
#elif defined(sun) || defined(__sun)
// solaris:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
#elif defined(__sgi)
// SGI Irix:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
#elif defined(__hpux)
// hp unix:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
#elif defined(__CYGWIN__)
// cygwin is not win32:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
// win32:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
#elif defined(__BEOS__)
// BeOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
// MacOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
#elif defined(__IBMCPP__)
// IBM
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
#elif defined(__amigaos__)
// AmigaOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
#else
# if defined(unix) \
|| defined(__unix) \
|| defined(_XOPEN_SOURCE) \
|| defined(_POSIX_SOURCE)
// generic unix platform:
# ifndef BOOST_HAS_UNISTD_H
# define BOOST_HAS_UNISTD_H
# endif
# include <boost/config/posix_features.hpp>
# endif
# if defined (BOOST_ASSERT_CONFIG)
// this must come last - generate an error if we don't
// recognise the platform:
# error "Unknown platform - please configure and report the results to boost.org"
# endif
#endif

View File

@@ -0,0 +1,65 @@
// Boost compiler configuration selection header file
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
// we need to include a std lib header here in order to detect which
// library is in use, use <utility> as it's about the smallest
// of the std lib headers - do not rely on this header being included -
// users can short-circuit this header if they know whose std lib
// they are using.
#include <utility>
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
// STLPort library; this _must_ come first, otherwise since
// STLport typically sits on top of some other library, we
// can end up detecting that first rather than STLport:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
#elif defined(__LIBCOMO__)
// Commeau STL:
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
// Rogue Wave library:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
#elif defined(__GLIBCPP__)
// GNU libstdc++ 3
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
#elif defined(__STL_CONFIG_H)
// generic SGI STL
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
#elif defined(__MSL_CPP__)
// MSL standard lib:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
#elif defined(__IBMCPP__)
// take the default VACPP std lib
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
#elif defined(MSIPL_COMPILE_H)
// Modena C++ standard library
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
// Dinkumware Library (this has to appear after any possible replacement libraries):
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
#elif defined (BOOST_ASSERT_CONFIG)
// this must come last - generate an error if we don't
// recognise the library:
# error "Unknown standard library - please configure and report the results to boost.org"
#endif

View File

@@ -0,0 +1,89 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Dinkumware standard library config:
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
#include <utility>
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
#error This is not the Dinkumware lib!
#endif
#endif
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
// full dinkumware 3.06 and above
// fully conforming provided the compiler supports it:
# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(_STD) // can be defined in yvals.h
# define BOOST_NO_STDC_NAMESPACE
# endif
# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
# define BOOST_NO_STD_ALLOCATOR
# endif
# if defined(_MSC_VER) && (_MSC_VER < 1300)
// if this lib version is set up for vc6 then there is no std::use_facet:
# define BOOST_NO_STD_USE_FACET
# define BOOST_HAS_TWO_ARG_USE_FACET
// C lib functions aren't in namespace std either:
# define BOOST_NO_STDC_NAMESPACE
// and nor is <exception>
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# endif
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# endif
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
// and no <slist> at all
#else
# define BOOST_MSVC_STD_ITERATOR 1
# define BOOST_NO_STD_ITERATOR
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_STD_USE_FACET
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
# define BOOST_HAS_MACRO_USE_FACET
# ifndef _CPPLIB_VER
// Updated Dinkum library defines this, and provides
// its own min and max definitions.
# define BOOST_NO_STD_MIN_MAX
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# endif
#endif
#if (defined(_MSC_VER) && (_MSC_VER <= 1300)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
// if we're using a dinkum lib that's
// been configured for VC6/7 then there is
// no iterator traits (true even for icl)
# define BOOST_NO_STD_ITERATOR_TRAITS
#endif
#if defined(__ICL) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
// Intel C++ chokes over any non-trivial use of <locale>
// this may be an overly restrictive define, but regex fails without it:
# define BOOST_NO_STD_LOCALE
#endif
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
#else
# define BOOST_DINKUMWARE_STDLIB 1
#endif
#ifdef _CPPLIB_VER
# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
#else
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
#endif

View File

@@ -0,0 +1,33 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Commeau STL:
#if !defined(__LIBCOMO__)
# include <utility>
# if !defined(__LIBCOMO__)
# error "This is not the Comeau STL!"
# endif
#endif
//
// std::streambuf<wchar_t> is non-standard:
//
#if __LIBCOMO_VERSION__ <= 22
# define BOOST_NO_STD_WSTREAMBUF
#endif
//
// Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which
// has intrinsic compiler support with SGI's compilers.
// Whatever map SGI style type traits to boost equivalents:
//
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Commeau standard library" BOOST_STRINGIZE(__LIBCOMO_VERSION__)

View File

@@ -0,0 +1,25 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// config for libstdc++ v3
// not much to go in here:
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
#ifndef _GLIBCPP_USE_WCHAR_T
# define BOOST_NO_CWCHAR
# define BOOST_NO_CWCTYPE
# define BOOST_NO_STD_WSTRING
# define BOOST_NO_STD_WSTREAMBUF
#endif
#ifndef _GLIBCPP_USE_LONG_LONG
// May have been set by compiler/*.hpp, but "long long" without library
// support is useless.
# undef BOOST_HAS_LONG_LONG
#endif

View File

@@ -0,0 +1,29 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Modena C++ standard library (comes with KAI C++)
#if !defined(MSIPL_COMPILE_H)
# include <utility>
# if !defined(__MSIPL_COMPILE_H)
# error "This is not the Modena C++ library!"
# endif
#endif
#ifndef MSIPL_NL_TYPES
#define BOOST_NO_STD_MESSAGES
#endif
#ifndef MSIPL_WCHART
#define BOOST_NO_STD_WSTRING
#endif
#define BOOST_STDLIB "Modena C++ standard library"

View File

@@ -0,0 +1,50 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Metrowerks standard library:
#ifndef __MSL_CPP__
# include <utility>
# ifndef __MSL_CPP__
# error This is not the MSL standard library!
# endif
#endif
#if __MSL_CPP__ >= 0x6000 // Pro 6
# define BOOST_HAS_HASH
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
#endif
#define BOOST_HAS_SLIST
#if __MSL_CPP__ < 0x6209
# define BOOST_NO_STD_MESSAGES
#endif
// check C lib version for <stdint.h>
#include <cstddef>
#if defined(__MSL__) && (__MSL__ >= 0x5000)
# define BOOST_HAS_STDINT_H
# define BOOST_HAS_UNISTD_H
// boilerplate code:
# include <boost/config/posix_features.hpp>
#endif
#if _MWMT
# define BOOST_HAS_THREADS
#endif
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)

View File

@@ -0,0 +1,118 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Rogue Wave std lib:
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
# include <utility>
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
# error This is not the Rogue Wave standard library
# endif
#endif
//
// figure out a consistent version number:
//
#ifndef _RWSTD_VER
# define BOOST_RWSTD_VER 0x010000
#elif _RWSTD_VER < 0x010000
# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
#else
# define BOOST_RWSTD_VER _RWSTD_VER
#endif
#ifndef _RWSTD_VER
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
#else
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
#endif
//
// Prior to version 2.2.0 the primary template for std::numeric_limits
// does not have compile time constants, even though specializations of that
// template do:
//
#if BOOST_RWSTD_VER < 0x020200
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
#endif
#if BOOST_RWSTD_VER <= 0x020101
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
# endif
//
// Borland version of numeric_limits lacks __int64 specialisation:
//
#ifdef __BORLANDC__
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
#endif
//
// No std::iterator if it can't figure out default template args:
//
#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
# define BOOST_NO_STD_ITERATOR
#endif
//
// No iterator traits without partial specialization:
//
#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
# define BOOST_NO_STD_ITERATOR_TRAITS
#endif
//
// Prior to version 2.0, std::auto_ptr was buggy, and there were no
// new-style iostreams, and no conformant std::allocator:
//
#if (BOOST_RWSTD_VER < 0x020000)
# define BOOST_NO_AUTO_PTR
# define BOOST_NO_STRINGSTREAM
# define BOOST_NO_STD_ALLOCATOR
# define BOOST_NO_STD_LOCALE
#endif
//
// No template iterator constructors without member template support:
//
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
#endif
//
// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
// on HP aCC systems even though the allocator is in fact broken):
//
#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
# define BOOST_NO_STD_ALLOCATOR
#endif
//
// If we have a std::locale, we still may not have std::use_facet:
//
#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
# define BOOST_NO_STD_USE_FACET
# define BOOST_HAS_TWO_ARG_USE_FACET
#endif
//
// There's no std::distance prior to version 2, or without
// partial specialization support:
//
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
#define BOOST_NO_STD_DISTANCE
#endif
//
// Some versions of the rogue wave library don't have assignable
// OutputIterators:
//
#if BOOST_RWSTD_VER < 0x020100
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
#endif

View File

@@ -0,0 +1,107 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// generic SGI STL:
#if !defined(__STL_CONFIG_H)
# include <utility>
# if !defined(__STL_CONFIG_H)
# error "This is not the SGI STL!"
# endif
#endif
//
// No std::iterator traits without partial specialisation:
//
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
# define BOOST_NO_STD_ITERATOR_TRAITS
#endif
//
// No std::stringstream with gcc < 3
//
#if defined(__GNUC__) && (__GNUC__ < 3) && \
((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
!defined(__STL_USE_NEW_IOSTREAMS) || \
defined(__APPLE_CC__)
// Note that we only set this for GNU C++ prior to 2.95 since the
// latest patches for that release do contain a minimal <sstream>
// If you are running a 2.95 release prior to 2.95.3 then this will need
// setting, but there is no way to detect that automatically (other
// than by running the configure script).
// Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
// have <sstream>.
# define BOOST_NO_STRINGSTREAM
#endif
//
// Assume no std::locale without own iostreams (this may be an
// incorrect assumption in some cases):
//
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
# define BOOST_NO_STD_LOCALE
#endif
//
// Original native SGI streams have non-standard std::messages facet:
//
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
# define BOOST_NO_STD_LOCALE
#endif
//
// SGI's new iostreams have missing "const" in messages<>::open
//
#if defined(__sgi) && (_COMPILER_VERSION <= 730) && defined(__STL_USE_NEW_IOSTREAMS)
# define BOOST_NO_STD_MESSAGES
#endif
//
// No template iterator constructors, or std::allocator
// without member templates:
//
#if !defined(__STL_MEMBER_TEMPLATES)
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
#endif
//
// We always have SGI style hash_set, hash_map, and slist:
//
#define BOOST_HAS_HASH
#define BOOST_HAS_SLIST
//
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
//
#if (defined(__GNUC__) && (__GNUC__ < 3))
# include <string>
# if defined(__BASTRING__)
# define BOOST_NO_LIMITS
// Note: <boost/limits.hpp> will provide compile-time constants
# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_STD_WSTRING
# endif
#endif
//
// There is no standard iterator unless we have namespace support:
//
#if !defined(__STL_USE_NAMESPACES)
# define BOOST_NO_STD_ITERATOR
#endif
//
// Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which
// has intrinsic compiler support with SGI's compilers.
// Whatever map SGI style type traits to boost equivalents:
//
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "SGI standard library"

View File

@@ -0,0 +1,159 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// STLPort standard library config:
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
# include <utility>
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
# error "This is not STLPort!"
# endif
#endif
//
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
// for versions prior to 4.1(beta)
//
#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
#endif
//
// If STLport thinks that there is no partial specialisation, then there is no
// std::iterator traits:
//
#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
# define BOOST_NO_STD_ITERATOR_TRAITS
#endif
//
// No new style iostreams on GCC without STLport's iostreams enabled:
//
#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
# define BOOST_NO_STRINGSTREAM
#endif
//
// No new iostreams implies no std::locale, and no std::stringstream:
//
#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
# define BOOST_NO_STD_LOCALE
# define BOOST_NO_STRINGSTREAM
#endif
//
// If the streams are not native, and we have a "using ::x" compiler bug
// then the io stream facets are not available in namespace std::
//
#if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
# define BOOST_NO_STD_LOCALE
#endif
#if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
# define BOOST_NO_STD_LOCALE
#endif
//
// Without member template support enabled, their are no template
// iterate constructors, and no std::allocator:
//
#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
#endif
//
// however we always have at least a partial allocator:
//
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES)
# define BOOST_NO_STD_ALLOCATOR
#endif
//
// We always have SGI style hash_set, hash_map, and slist:
//
#define BOOST_HAS_HASH
#define BOOST_HAS_SLIST
//
// STLport does a good job of importing names into namespace std::,
// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
// workaround does not conflict with STLports:
//
//
// Harold Howe says:
// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
// BCB6 does cause problems. If we detect C++ Builder, then don't define
// BOOST_NO_STDC_NAMESPACE
//
#if !defined(__BORLANDC__)
//
// If STLport is using it's own namespace, and the real names are in
// the global namespace, then we duplicate STLport's using declarations
// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
// necessarily import all the names we need into namespace std::
//
# if (defined(__STL_IMPORT_VENDOR_CSTD) \
|| defined(__STL_USE_OWN_NAMESPACE) \
|| defined(_STLP_IMPORT_VENDOR_CSTD) \
|| defined(_STLP_USE_OWN_NAMESPACE)) \
&& (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# endif
#elif __BORLANDC__ < 0x560
// STLport doesn't import std::abs correctly:
#include <stdlib.h>
namespace std { using ::abs; }
// and strcmp/strcpy don't get imported either ('cos they are macros)
#include <string.h>
#ifdef strcpy
# undef strcpy
#endif
#ifdef strcmp
# undef strcmp
#endif
#ifdef _STLP_VENDOR_CSTD
namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
#endif
#endif
//
// std::use_facet may be non-standard, uses a class instead:
//
#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
# define BOOST_NO_STD_USE_FACET
# define BOOST_HAS_STLP_USE_FACET
#endif
//
// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import
// into std:: ourselves).
//
#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
# define BOOST_NO_CWCHAR
# define BOOST_NO_CWCTYPE
#endif
//
// Borland ships a version of STLport with C++ Builder 6 that lacks
// hashtables and the like:
//
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
# undef BOOST_HAS_HASH
#endif
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)

View File

@@ -0,0 +1,16 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
#if __IBMCPP__ <= 501
# define BOOST_NO_STD_ALLOCATOR
#endif
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_STDLIB "Visual Age default standard library"

View File

@@ -0,0 +1,383 @@
// Boost config.hpp configuration header file ------------------------------//
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Boost config.hpp policy and rationale documentation has been moved to
// http://www.boost.org/libs/config
//
// This file is intended to be stable, and relatively unchanging.
// It should contain boilerplate code only - no compiler specific
// code unless it is unavoidable - no changes unless unavoidable.
#ifndef BOOST_CONFIG_SUFFIX_HPP
#define BOOST_CONFIG_SUFFIX_HPP
//
// look for long long by looking for the appropriate macros in <limits.h>.
// Note that we use limits.h rather than climits for maximal portability,
// remember that since these just declare a bunch of macros, there should be
// no namespace issues from this.
//
#include <limits.h>
# if !defined(BOOST_HAS_LONG_LONG) \
&& !(defined(BOOST_MSVC) && BOOST_MSVC <=1300) && !defined(__BORLANDC__) \
&& (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
# define BOOST_HAS_LONG_LONG
#endif
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T)
# define BOOST_NO_INTEGRAL_INT64_T
#endif
// GCC 3.x will clean up all of those nasty macro definitions that
// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
// it under GCC 3.x.
#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
# undef BOOST_NO_CTYPE_FUNCTIONS
#endif
//
// Assume any extensions are in namespace std:: unless stated otherwise:
//
# ifndef BOOST_STD_EXTENSION_NAMESPACE
# define BOOST_STD_EXTENSION_NAMESPACE std
# endif
//
// If cv-qualified specializations are not allowed, then neither are cv-void ones:
//
# if defined(BOOST_NO_CV_SPECIALIZATIONS) \
&& !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# endif
//
// If there is no numeric_limits template, then it can't have any compile time
// constants either!
//
# if defined(BOOST_NO_LIMITS) \
&& !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
# endif
//
// if there is no long long then there is no specialisation
// for numeric_limits<long long> either:
//
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
#endif
//
// if there is no __int64 then there is no specialisation
// for numeric_limits<__int64> either:
//
#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
#endif
//
// if member templates are supported then so is the
// VC6 subset of member templates:
//
# if !defined(BOOST_NO_MEMBER_TEMPLATES) \
&& !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
# define BOOST_MSVC6_MEMBER_TEMPLATES
# endif
//
// Without partial specialization, can't test for partial specialisation bugs:
//
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
&& !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# endif
//
// Without partial specialization, std::iterator_traits can't work:
//
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
&& !defined(BOOST_NO_STD_ITERATOR_TRAITS)
# define BOOST_NO_STD_ITERATOR_TRAITS
# endif
//
// Without member template support, we can't have template constructors
// in the standard library either:
//
# if defined(BOOST_NO_MEMBER_TEMPLATES) \
&& !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
&& !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# endif
//
// Without member template support, we can't have a conforming
// std::allocator template either:
//
# if defined(BOOST_NO_MEMBER_TEMPLATES) \
&& !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
&& !defined(BOOST_NO_STD_ALLOCATOR)
# define BOOST_NO_STD_ALLOCATOR
# endif
//
// If we have a standard allocator, then we have a partial one as well:
//
#if !defined(BOOST_NO_STD_ALLOCATOR)
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#endif
//
// We can't have a working std::use_facet if there is no std::locale:
//
# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
# define BOOST_NO_STD_USE_FACET
# endif
//
// We can't have a std::messages facet if there is no std::locale:
//
# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
# define BOOST_NO_STD_MESSAGES
# endif
//
// We can't have a working std::wstreambuf if there is no std::locale:
//
# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
# define BOOST_NO_STD_WSTREAMBUF
# endif
//
// We can't have a <cwctype> if there is no <cwchar>:
//
# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
# define BOOST_NO_CWCTYPE
# endif
//
// We can't have a swprintf if there is no <cwchar>:
//
# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
# define BOOST_NO_SWPRINTF
# endif
//
// If Win32 support is turned off, then we must turn off
// threading support also, unless there is some other
// thread API enabled:
//
#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
&& !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
# define BOOST_DISABLE_THREADS
#endif
//
// Turn on threading support if the compiler thinks that it's in
// multithreaded mode. We put this here because there are only a
// limited number of macros that identify this (if there's any missing
// from here then add to the appropriate compiler section):
//
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
|| defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
# define BOOST_HAS_THREADS
#endif
//
// Turn threading support off if BOOST_DISABLE_THREADS is defined:
//
#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
# undef BOOST_HAS_THREADS
#endif
//
// Turn threading support off if we don't recognise the threading API:
//
#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
&& !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
&& !defined(BOOST_HAS_MPTASKS)
# undef BOOST_HAS_THREADS
#endif
//
// If the compiler claims to be C99 conformant, then it had better
// have a <stdint.h>:
//
# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
# define BOOST_HAS_STDINT_H
# endif
//
// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
// Note that this is for backwards compatibility only.
//
# ifndef BOOST_HAS_SLIST
# define BOOST_NO_SLIST
# endif
# ifndef BOOST_HAS_HASH
# define BOOST_NO_HASH
# endif
// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
// Because std::size_t usage is so common, even in boost headers which do not
// otherwise use the C library, the <cstddef> workaround is included here so
// that ugly workaround code need not appear in many other boost headers.
// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
// must still be #included in the usual places so that <cstddef> inclusion
// works as expected with standard conforming compilers. The resulting
// double inclusion of <cstddef> is harmless.
# ifdef BOOST_NO_STDC_NAMESPACE
# include <cstddef>
namespace std { using ::ptrdiff_t; using ::size_t; }
# endif
// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
# ifdef BOOST_NO_STD_MIN_MAX
namespace std {
template <class _Tp>
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
return __b < __a ? __b : __a;
}
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
return __a < __b ? __b : __a;
}
}
# endif
// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
// On compilers which don't allow in-class initialization of static integral
// constant members, we must use enums as a workaround if we want the constants
// to be available at compile-time. This macro gives us a convenient way to
// declare such constants.
# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
# else
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
# endif
// BOOST_USE_FACET workaround ----------------------------------------------//
// When the standard library does not have a conforming std::use_facet there
// are various workarounds available, but they differ from library to library.
// This macro provides a consistent way to access a locale's facets.
// Usage:
// replace
// std::use_facet<Type>(loc);
// with
// BOOST_USE_FACET(Type, loc);
// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
#if defined(BOOST_NO_STD_USE_FACET)
# ifdef BOOST_HAS_TWO_ARG_USE_FACET
# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
# elif defined(BOOST_HAS_MACRO_USE_FACET)
# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
# elif defined(BOOST_HAS_STLP_USE_FACET)
# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
# endif
#else
# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
#endif
// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
// Member templates are supported by some compilers even though they can't use
// the A::template member<U> syntax, as a workaround replace:
//
// typedef typename A::template rebind<U> binder;
//
// with:
//
// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
# define BOOST_NESTED_TEMPLATE template
#else
# define BOOST_NESTED_TEMPLATE
#endif
// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
// is defined, in which case it evaluates to return x; Use when you have a return
// statement that can never be reached.
#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_UNREACHABLE_RETURN(x) return x;
#else
# define BOOST_UNREACHABLE_RETURN(x)
#endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
//
// Some compilers don't support the use of `typename' for dependent
// types in deduced contexts, e.g.
//
// template <class T> void f(T, typename T::type);
// ^^^^^^^^
// Replace these declarations with:
//
// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
#ifndef BOOST_NO_DEDUCED_TYPENAME
# define BOOST_DEDUCED_TYPENAME typename
#else
# define BOOST_DEDUCED_TYPENAME
#endif
// ---------------------------------------------------------------------------//
//
// Helper macro BOOST_STRINGIZE:
// Converts the parameter X to a string after macro replacement
// on X has been performed.
//
#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
#define BOOST_DO_STRINGIZE(X) #X
//
// Helper macro BOOST_JOIN:
// The following piece of macro magic joins the two
// arguments together, even when one of the arguments is
// itself a macro (see 16.3.1 in C++ standard). The key
// is that macro expansion of macro arguments does not
// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
//
#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
#define BOOST_DO_JOIN2( X, Y ) X##Y
//
// Set some default values for compiler/library/platform names.
// These are for debugging config setup only:
//
# ifndef BOOST_COMPILER
# define BOOST_COMPILER "Unknown ISO C++ Compiler"
# endif
# ifndef BOOST_STDLIB
# define BOOST_STDLIB "Unknown ISO standard library"
# endif
# ifndef BOOST_PLATFORM
# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
|| defined(_POSIX_SOURCE)
# define BOOST_PLATFORM "Generic Unix"
# else
# define BOOST_PLATFORM "Unknown"
# endif
# endif
#endif

View File

@@ -0,0 +1,68 @@
// boost/config/user.hpp ---------------------------------------------------//
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// Do not check in modified versions of this file,
// This file may be customized by the end user, but not by boost.
//
// Use this file to define a site and compiler specific
// configuration policy:
//
// define this to locate a compiler config file:
// #define BOOST_COMPILER_CONFIG <myheader>
// define this to locate a stdlib config file:
// #define BOOST_STDLIB_CONFIG <myheader>
// define this to locate a platform config file:
// #define BOOST_PLATFORM_CONFIG <myheader>
// define this to disable compiler config,
// use if your compiler config has nothing to set:
// #define BOOST_NO_COMPILER_CONFIG
// define this to disable stdlib config,
// use if your stdlib config has nothing to set:
// #define BOOST_NO_STDLIB_CONFIG
// define this to disable platform config,
// use if your platform config has nothing to set:
// #define BOOST_NO_PLATFORM_CONFIG
// define this to disable all config options,
// excluding the user config. Use if your
// setup is fully ISO compliant, and has no
// useful extensions, or for autoconf generated
// setups:
// #define BOOST_NO_CONFIG
// define this to make the config "optimistic"
// about unknown compiler versions. Normally
// unknown compiler versions are assumed to have
// all the defects of the last known version, however
// setting this flag, causes the config to assume
// that unknown compiler versions are fully conformant
// with the standard:
// #define BOOST_STRICT_CONFIG
// define this to cause the config to halt compilation
// with an #error if it encounters anything unknown --
// either an unknown compiler version or an unknown
// compiler/platform/library:
// #define BOOST_ASSERT_CONFIG
// define if you want to disable threading support, even
// when available:
// #define BOOST_DISABLE_THREADS
// define when you want to disable Win32 specific features
// even when available:
// #define BOOST_DISABLE_WIN32

View File

@@ -18,14 +18,22 @@
* are almost certainly incorrect for any other platform.
*/
/* The above comment is almost certainly out of date. This file works
* on systems other than SGI MIPSpro C++ now.
*/
/*
* Revision history:
* 21 Sep 2001:
* Only include <cwchar> if BOOST_NO_CWCHAR is defined. (Darin Adler)
* 10 Aug 2001:
* Added MIPS (big endian) to the big endian family. (Jens Maurer)
* 13 Apr 2001:
* Added powerpc to the big endian family. (Jeremy Siek)
* 5 Apr 2001:
* Added sparc (big endian) processor support (John Maddock).
* Initial sub:
* Modified by Jens Maurer for gcc 2.95 on x86.
* Modified by Jens Maurer for gcc 2.95 on x86.
*/
#ifndef BOOST_SGI_CPP_LIMITS
@@ -35,9 +43,17 @@
#include <cfloat>
#include <boost/config.hpp>
#if defined(__sparc) || defined(__sparc__) || defined(__powerpc__) || defined(__hppa)
#ifndef BOOST_NO_CWCHAR
#include <cwchar> // for WCHAR_MIN and WCHAR_MAX
#endif
// The macros are not named appropriately. We don't care about integer
// bit layout, but about floating-point NaN (etc.) bit patterns.
#if defined(__sparc) || defined(__sparc__) || defined(__powerpc__) || defined(__ppc__) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER)
#define BOOST_BIG_ENDIAN
#elif !defined(__i386__)
#elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__)
#define BOOST_LITTLE_ENDIAN
#else
#error The file boost/detail/limits.hpp needs to be set up for your CPU type.
#endif
@@ -78,8 +94,16 @@ enum float_denorm_style {
static const __mem_type __mem_name = __mem_value
#endif /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */
// Base class for all specializations of numeric_limits.
// Deal with min/max for MinGW
#ifdef min
# undef min
#endif
#ifdef max
# undef max
#endif
// Base class for all specializations of numeric_limits.
template <class __number>
class _Numeric_limits_base {
public:
@@ -180,7 +204,7 @@ public:
const unsigned int _S_word[4] = { 0, 0, 0, Word };
return *reinterpret_cast<const Number*>(
reinterpret_cast<const char *>(&_S_word)+16-
(sizeof(Number) == 12 ? 10 : sizeof(Number)));
(sizeof(Number) == 12 ? 10 : sizeof(Number)));
}
};
@@ -269,24 +293,23 @@ class numeric_limits<unsigned char>
{};
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
template<>
class numeric_limits<wchar_t>
#if !defined(WCHAR_MAX) || !defined(WCHAR_MIN)
#if !defined(_WIN32) && !defined(__CYGWIN__)
template<>
class numeric_limits<wchar_t>
: public _Integer_limits<wchar_t, INT_MIN, INT_MAX>
{};
#else
template<>
class numeric_limits<wchar_t>
#if defined(_WIN32) || defined(__CYGWIN__)
: public _Integer_limits<wchar_t, 0, USHRT_MAX>
{};
#elif defined(__hppa)
// wchar_t has "unsigned int" as the underlying type
: public _Integer_limits<wchar_t, 0, UINT_MAX>
#else
// assume that wchar_t has "int" as the underlying type
: public _Integer_limits<wchar_t, INT_MIN, INT_MAX>
#endif
#else
template<>
class numeric_limits<wchar_t>
// we have WCHAR_MIN and WCHAR_MAX defined, so use it
: public _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX>
{};
#endif
{};
#endif
template<>
@@ -324,24 +347,21 @@ class numeric_limits<unsigned long>
// Some compilers have long long, but don't define the
// LONGLONG_MIN and LONGLONG_MAX macros in limits.h. This
// assumes that long long is 64 bits.
#if !defined(LONGLONG_MIN) && !defined(LONGLONG_MAX) \
&& !defined(ULONGLONG_MAX)
#if !defined(LONGLONG_MAX) && !defined(ULONGLONG_MAX)
#define ULONGLONG_MAX 0xffffffffffffffffLLU
#define LONGLONG_MAX 0x7fffffffffffffffLL
#define LONGLONG_MIN (-LONGLONG_MAX - 1)
# define ULONGLONG_MAX 0xffffffffffffffffLLU
# define LONGLONG_MAX 0x7fffffffffffffffLL
#endif
template<>
class numeric_limits<long long>
: public _Integer_limits<long long, LONGLONG_MIN, LONGLONG_MAX>
{};
#if !defined(LONGLONG_MIN)
# define LONGLONG_MIN (-LONGLONG_MAX - 1)
#endif
template<>
class numeric_limits<unsigned long long>
: public _Integer_limits<unsigned long long, 0, ULONGLONG_MAX>
{};
#if !defined(ULONGLONG_MIN)
# define ULONGLONG_MIN 0
#endif
#endif /* __GNUC__ */

View File

@@ -0,0 +1,74 @@
// Copyright David Abrahams 2002. Permission to copy, use,
// modify, sell and distribute this software is granted provided this
// copyright notice appears in all copies. This software is provided
// "as is" without express or implied warranty, and with no claim as
// to its suitability for any purpose.
#ifndef WORKAROUND_DWA2002126_HPP
# define WORKAROUND_DWA2002126_HPP
// Compiler/library version workaround macro
//
// Usage:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
// ... // workaround code here
// #endif
//
// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
// first argument must be undefined or expand to a numeric
// value. The above expands to:
//
// (BOOST_MSVC) != 0 && (BOOST_MSVC) <= 1200
//
// When used for workarounds that apply to the latest known version
// and all earlier versions of a compiler, the following convention
// should be observed:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
//
// The version number in this case corresponds to the last version in
// which the workaround was known to have been required. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
// the workaround for any version of the compiler. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
// error will be issued if the compiler version exceeds the argument
// to BOOST_TESTED_AT(). This can be used to locate workarounds which
// may be obsoleted by newer versions.
# ifndef BOOST_STRICT_CONFIG
# define BOOST_WORKAROUND(symbol, test) \
((symbol != 0) && (1 % (( (symbol test) ) + 1)))
// ^ ^ ^ ^
// The extra level of parenthesis nesting above, along with the
// BOOST_OPEN_PAREN indirection below, is required to satisfy the
// broken preprocessor in MWCW 8.3 and earlier.
//
// The basic mechanism works as follows:
// (symbol test) + 1 => if (symbol test) then 2 else 1
// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
//
// The complication with % is for cooperation with BOOST_TESTED_AT().
// When "test" is BOOST_TESTED_AT(x) and
// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
//
// symbol test => if (symbol <= x) then 1 else -1
// (symbol test) + 1 => if (symbol <= x) then 2 else 0
// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
//
# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
# define BOOST_OPEN_PAREN (
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
# else
# define BOOST_TESTED_AT(value) != 0
# endif
# else
# define BOOST_WORKAROUND(symbol, test) 0
# endif
#endif // WORKAROUND_DWA2002126_HPP

View File

@@ -6,15 +6,136 @@
//
// use this header as a workaround for missing <limits>
// See http://www.boost.org/libs/utility/limits.html for documentation.
#ifndef BOOST_LIMITS
#define BOOST_LIMITS
#include <boost/config.hpp>
#ifdef BOOST_NO_LIMITS
#include <boost/detail/limits.hpp>
# include <boost/detail/limits.hpp>
#else
#include <limits>
# include <limits>
#endif
#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
|| (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS))
// Add missing specializations for numeric_limits:
#ifdef BOOST_HAS_MS_INT64
# define BOOST_LLT __int64
#else
# define BOOST_LLT long long
#endif
namespace std
{
template<>
class numeric_limits<BOOST_LLT>
{
public:
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
#ifdef BOOST_HAS_MS_INT64
static BOOST_LLT min(){ return 0x8000000000000000i64; }
static BOOST_LLT max(){ return 0x7FFFFFFFFFFFFFFFi64; }
#elif defined(LLONG_MAX)
static BOOST_LLT min(){ return LLONG_MIN; }
static BOOST_LLT max(){ return LLONG_MAX; }
#elif defined(LONGLONG_MAX)
static BOOST_LLT min(){ return LONGLONG_MIN; }
static BOOST_LLT max(){ return LONGLONG_MAX; }
#else
static BOOST_LLT min(){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); }
static BOOST_LLT max(){ return ~min(); }
#endif
BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1);
BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000);
BOOST_STATIC_CONSTANT(bool, is_signed = true);
BOOST_STATIC_CONSTANT(bool, is_integer = true);
BOOST_STATIC_CONSTANT(bool, is_exact = true);
BOOST_STATIC_CONSTANT(int, radix = 2);
static BOOST_LLT epsilon() throw() { return 0; };
static BOOST_LLT round_error() throw() { return 0; };
BOOST_STATIC_CONSTANT(int, min_exponent = 0);
BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
BOOST_STATIC_CONSTANT(int, max_exponent = 0);
BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
BOOST_STATIC_CONSTANT(bool, has_infinity = false);
BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
BOOST_STATIC_CONSTANT(bool, has_denorm = false);
BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
static BOOST_LLT infinity() throw() { return 0; };
static BOOST_LLT quiet_NaN() throw() { return 0; };
static BOOST_LLT signaling_NaN() throw() { return 0; };
static BOOST_LLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
};
template<>
class numeric_limits<unsigned BOOST_LLT>
{
public:
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
#ifdef BOOST_HAS_MS_INT64
static unsigned BOOST_LLT min(){ return 0ui64; }
static unsigned BOOST_LLT max(){ return 0xFFFFFFFFFFFFFFFFui64; }
#elif defined(ULLONG_MAX) && defined(ULLONG_MIN)
static unsigned BOOST_LLT min(){ return ULLONG_MIN; }
static unsigned BOOST_LLT max(){ return ULLONG_MAX; }
#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN)
static unsigned BOOST_LLT min(){ return ULONGLONG_MIN; }
static unsigned BOOST_LLT max(){ return ULONGLONG_MAX; }
#else
static unsigned BOOST_LLT min(){ return 0uLL; }
static unsigned BOOST_LLT max(){ return ~0uLL; }
#endif
BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT);
BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000);
BOOST_STATIC_CONSTANT(bool, is_signed = false);
BOOST_STATIC_CONSTANT(bool, is_integer = true);
BOOST_STATIC_CONSTANT(bool, is_exact = true);
BOOST_STATIC_CONSTANT(int, radix = 2);
static unsigned BOOST_LLT epsilon() throw() { return 0; };
static unsigned BOOST_LLT round_error() throw() { return 0; };
BOOST_STATIC_CONSTANT(int, min_exponent = 0);
BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
BOOST_STATIC_CONSTANT(int, max_exponent = 0);
BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
BOOST_STATIC_CONSTANT(bool, has_infinity = false);
BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
BOOST_STATIC_CONSTANT(bool, has_denorm = false);
BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
static unsigned BOOST_LLT infinity() throw() { return 0; };
static unsigned BOOST_LLT quiet_NaN() throw() { return 0; };
static unsigned BOOST_LLT signaling_NaN() throw() { return 0; };
static unsigned BOOST_LLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
};
}
#endif
#endif

26
include/boost/version.hpp Normal file
View File

@@ -0,0 +1,26 @@
// Boost version.hpp configuration header file ------------------------------//
// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org/libs/config for documentation
#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
//
// Caution, this is the only boost header that is guarenteed
// to change with every boost release, including this header
// will cause a recompile every time a new boost version is
// released.
//
// BOOST_VERSION % 100 is the sub-minor version
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 103000
#endif

View File

@@ -1,89 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Configuration Header</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../../people/people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Configuration Header <a href="../../boost/config.hpp">boost/config.hpp</a></h1>
<p>The <a href="../../boost/config.hpp">boost/config.hpp</a> header is used to
pass configuration information to other boost files, allowing them to cope with
platform dependencies such as arithmetic byte ordering, compiler pragmas, or
compiler shortcomings. Without such configuration information, many current
compilers would not work with the Boost libraries.</p>
<p>Centralizing configuration information is this header reduces the number of
files which must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.</p>
<p>Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem. In
other words, configuration headers are a necessary evil rather than a desirable
feature. The boost config.hpp policy is designed to minimize the problems and
maximize the benefits of a configuration header.</p>
<h2>Boost config.hpp policy</h2>
<p>For Library Users:</p>
<ul>
<li>Boost library users are never required to #include boost/config.hpp, and
are discouraged from including it on their own.</li>
<li>Boost library users can request support for additional platforms be added
to config.hpp by emailing <a href="mailto:config@boost.org">config@boost.org</a>
describing their request.</li>
</ul>
<p>For Library Implementors:</p>
<ul>
<li>Boost library implementors are not required to #include boost/config.hpp,
and are not required in any way to support compilers which do not comply
with the C++ Standard (ISO/IEC 14882).</li>
<li>If a library implementor wishes to support some nonconforming compiler, or
to support some platform specific feature, #include boost/config.hpp is the
preferred way to obtain configuration information not available from the
standard headers such as &lt;climits&gt;, etc.</li>
<li>If configuration information can be deduced from standard headers such as
&lt;climits&gt;, use those standard headers rather than boost/config.hpp.</li>
<li>Boost files that use macros defined in boost/config.hpp should have
sensible, standard conforming, default behavior if the macro is not defined.
This means that the starting point for porting boost/config.hpp to a new
platform is simply to define nothing at all specific to that platform. In
the rare case where there is no sensible default behavior, an #error message
should describe the problem.</li>
<li>If a Boost library implementor wants something added to config.hpp, post a
request on the Boost mailing list. There is no guarantee such a request will
be honored; the intent is to limit the complexity of config.hpp.</li>
</ul>
<p>General:</p>
<ul>
<li>The intent is to support only compilers which appear on their way to
becoming C++ Standard compliant, and only recent releases of those compilers
at that.</li>
<li>The intent is not to disable mainstream features now well-supported by the
majority of compilers, such as namespaces, exceptions, RTTI, or templates.</li>
</ul>
<h2>Documentation</h2>
<p>See <a href="../../boost/config.hpp">boost/config.hpp</a>; it is designed to
be self documenting.</p>
<h2>Test program</h2>
<p>The <a href="config_test.cpp">config_test.cpp</a> program can be used to
verify which #defines are in effect for your compiler.</p>
<p>The <a href="limits_test.cpp">limits_test.cpp</a> program can also be helpful
in diagnosing configuration problems.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->22 May 2001<!--webbot bot="Timestamp" endspan i-checksum="15106" --></p>
</body>
</html>

9
index.html Normal file
View File

@@ -0,0 +1,9 @@
<html>
<head>
<meta http-equiv="refresh" content="0; URL=config.htm">
</head>
<body>
Automatic redirection failed, please go to
<a href="config.htm">config.htm</a>.
</body>
</html>

245
test/Jamfile Normal file
View File

@@ -0,0 +1,245 @@
#
# Regression test Jamfile for boost configuration setup.
# This file was automatically generated on Thu Feb 13 12:10:01 GMTST 2003,
# do not edit by hand...
#
subproject libs/config/test ;
# bring in the rules for testing
SEARCH on testing.jam = $(BOOST_BUILD_PATH) ;
include testing.jam ;
run config_info.cpp ;
run config_test.cpp <lib>../../test/build/boost_test_exec_monitor ;
run limits_test.cpp <lib>../../test/build/boost_test_exec_monitor ;
test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
[ run no_arg_dep_lookup_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_arg_dep_lookup_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_AUTO_PTR" :
[ run no_auto_ptr_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_auto_ptr_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
[ run no_bcb_partial_spec_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_bcb_partial_spec_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
[ run no_ctype_functions_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ctype_functions_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
[ run no_cv_spec_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_cv_spec_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
[ run no_cv_void_spec_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_cv_void_spec_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_CWCHAR" :
[ run no_cwchar_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_cwchar_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_CWCTYPE" :
[ run no_cwctype_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_cwctype_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_DEDUCED_TYPENAME" :
[ run no_ded_typename_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ded_typename_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
[ run no_dep_nested_class_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_dep_nested_class_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS" :
[ run no_dep_val_param_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_dep_val_param_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
[ run no_excep_std_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_excep_std_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_EXCEPTIONS" :
[ run no_exceptions_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_exceptions_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run no_exp_func_tem_arg_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_exp_func_tem_arg_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run no_func_tmp_order_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_func_tmp_order_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
[ run no_i64_limits_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_i64_limits_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
[ run no_inline_memb_init_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_inline_memb_init_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_INTEGRAL_INT64_T" :
[ run no_integral_int64_t_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_integral_int64_t_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
[ run no_iter_construct_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_iter_construct_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_LIMITS" :
[ run no_limits_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_limits_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
[ run no_limits_const_exp_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_limits_const_exp_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
[ run no_ll_limits_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ll_limits_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
[ run no_mem_func_spec_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_mem_func_spec_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
[ run no_mem_tem_keyword_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_mem_tem_keyword_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
[ run no_mem_templ_frnds_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_mem_templ_frnds_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATES" :
[ run no_mem_templates_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_mem_templates_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
[ run no_ops_in_namespace_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ops_in_namespace_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run no_partial_spec_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_partial_spec_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run no_priv_aggregate_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_priv_aggregate_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
[ run no_ptr_mem_const_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ptr_mem_const_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
[ run no_ret_det_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_ret_det_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STRINGSTREAM" :
[ run no_sstream_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_sstream_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_ALLOCATOR" :
[ run no_std_allocator_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_allocator_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_DISTANCE" :
[ run no_std_distance_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_distance_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_ITERATOR_TRAITS" :
[ run no_std_iter_traits_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_iter_traits_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_ITERATOR" :
[ run no_std_iterator_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_iterator_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_LOCALE" :
[ run no_std_locale_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_locale_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_MESSAGES" :
[ run no_std_messages_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_messages_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_MIN_MAX" :
[ run no_std_min_max_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_min_max_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
[ run no_std_oi_assign_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_oi_assign_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_USE_FACET" :
[ run no_std_use_facet_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_use_facet_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_WSTREAMBUF" :
[ run no_std_wstreambuf_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_wstreambuf_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STD_WSTRING" :
[ run no_std_wstring_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_std_wstring_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_STDC_NAMESPACE" :
[ run no_stdc_namespace_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_stdc_namespace_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_SWPRINTF" :
[ run no_swprintf_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_swprintf_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run no_template_template_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_template_template_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_USING_TEMPLATE" :
[ run no_using_template_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_using_template_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_VOID_RETURNS" :
[ run no_void_returns_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_void_returns_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
[ run no_wchar_t_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail no_wchar_t_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_TWO_ARG_USE_FACET" :
[ run has_2arg_use_facet_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_2arg_use_facet_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_BETHREADS" :
[ run has_bethreads_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_bethreads_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_CLOCK_GETTIME" :
[ run has_clock_gettime_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_clock_gettime_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_DIRENT_H" :
[ run has_dirent_h_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_dirent_h_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_FTIME" :
[ run has_ftime_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_ftime_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_GETTIMEOFDAY" :
[ run has_gettimeofday_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_gettimeofday_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_HASH" :
[ run has_hash_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_hash_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_LONG_LONG" :
[ run has_long_long_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_long_long_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_MACRO_USE_FACET" :
[ run has_macro_use_facet_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_macro_use_facet_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_MS_INT64" :
[ run has_ms_int64_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_ms_int64_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_NANOSLEEP" :
[ run has_nanosleep_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_nanosleep_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_NL_TYPES_H" :
[ run has_nl_types_h_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_nl_types_h_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_NRVO" :
[ run has_nrvo_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_nrvo_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" :
[ run has_part_alloc_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_part_alloc_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_PTHREAD_DELAY_NP" :
[ run has_pthread_delay_np_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_pthread_delay_np_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
[ run has_pthread_ma_st_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_pthread_ma_st_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_PTHREAD_YIELD" :
[ run has_pthread_yield_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_pthread_yield_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_PTHREADS" :
[ run has_pthreads_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_pthreads_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_SCHED_YIELD" :
[ run has_sched_yield_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_sched_yield_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_SGI_TYPE_TRAITS" :
[ run has_sgi_type_traits_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_sgi_type_traits_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_SIGACTION" :
[ run has_sigaction_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_sigaction_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_SLIST" :
[ run has_slist_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_slist_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_STDINT_H" :
[ run has_stdint_h_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_stdint_h_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_STLP_USE_FACET" :
[ run has_stlp_use_facet_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_stlp_use_facet_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_UNISTD_H" :
[ run has_unistd_h_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_unistd_h_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_MSVC6_MEMBER_TEMPLATES" :
[ run has_vc6_mem_templ_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_vc6_mem_templ_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_MSVC_STD_ITERATOR" :
[ run has_vc_iterator_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_vc_iterator_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;
test-suite "BOOST_HAS_WINTHREADS" :
[ run has_winthreads_pass.cpp <lib>../../test/build/boost_prg_exec_monitor ]
[ compile-fail has_winthreads_fail.cpp <lib>../../test/build/boost_prg_exec_monitor ] ;

View File

@@ -0,0 +1,29 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_TWO_ARG_USE_FACET
// TITLE: two argument version of use_facet
// DESCRIPTION: The standard library lacks a conforming std::use_facet,
// but has a two argument version that does the job.
// This is primarily for the Rogue Wave std lib.
#include <locale>
namespace boost_has_two_arg_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = std::use_facet(l, (std::ctype<char>*)0);
return 0;
}
}

View File

@@ -0,0 +1,31 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_BETHREADS
// TITLE: BeOS Threads
// DESCRIPTION: The platform supports BeOS style threads.
#include <OS.h>
namespace boost_has_bethreads{
int test()
{
sem_id mut = create_sem(1, "test");
if(mut > 0)
{
acquire_sem(mut);
release_sem(mut);
delete_sem(mut);
}
return 0;
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_CLOCK_GETTIME
// TITLE: clock_gettime
// DESCRIPTION: The platform supports POSIX standard API clock_gettime.
#include <time.h>
namespace boost_has_clock_gettime{
void f()
{
// this is never called, it just has to compile:
timespec tp;
int res = clock_gettime(CLOCK_REALTIME, &tp);
(void) &res;
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,27 @@
// (C) Copyright John Maddock 2002. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_DIRENT_H
// TITLE: <dirent.h>
// DESCRIPTION: The platform has an <dirent.h>.
#include <dirent.h>
namespace boost_has_dirent_h{
int test()
{
DIR* pd = opendir("foobar");
if(pd) closedir(pd);
return 0;
}
}

31
test/boost_has_ftime.ipp Normal file
View File

@@ -0,0 +1,31 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_FTIME
// TITLE: GetSystemTimeAsFileTime
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
#include <windows.h>
namespace boost_has_ftime{
void f()
{
// this is never called, it just has to compile:
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_GETTIMEOFDAY
// TITLE: gettimeofday
// DESCRIPTION: The platform supports POSIX standard API gettimeofday.
#include <sys/time.h>
namespace boost_has_gettimeofday{
void f()
{
// this is never called, it just has to compile:
timeval tp;
int res = gettimeofday(&tp, 0);
(void) &res;
}
int test()
{
return 0;
}
}

44
test/boost_has_hash.ipp Normal file
View File

@@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_HASH
// TITLE: <hashset> and <hashmap>
// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
// or hash_map classes.
#include <hash_set>
#include <hash_map>
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std
#endif
namespace boost_has_hash{
template <class Key, class Eq, class Hash, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
{
}
template <class Key, class T, class Eq, class Hash, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
{
}
int test()
{
BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
foo(hs);
BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
foo(hm);
return 0;
}
}

View File

@@ -0,0 +1,28 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_LONG_LONG
// TITLE: long long
// DESCRIPTION: The platform supports long long.
#include <cstdlib>
namespace boost_has_long_long{
int test()
{
long long lli = 0LL;
unsigned long long ulli = 0uLL;
(void)lli;
(void)ulli;
return 0;
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_MACRO_USE_FACET
// TITLE: macro version of use_facet: _USE
// DESCRIPTION: The standard library lacks a conforming std::use_facet,
// but has a macro _USE(loc, Type) that does the job.
// This is primarily for the Dinkumware std lib.
#include <locale>
#ifndef _USE
#error "macro _USE not defined"
#endif
namespace boost_has_macro_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = std::_USE(l, std::ctype<char>);
return 0;
}
}

View File

@@ -0,0 +1,29 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_MS_INT64
// TITLE: __int64
// DESCRIPTION: The platform supports Microsoft style __int64.
#include <cstdlib>
namespace boost_has_ms_int64{
int test()
{
__int64 lli = 0i64;
unsigned __int64 ulli = 0ui64;
(void)lli;
(void)ulli;
return 0;
}
}

View File

@@ -0,0 +1,33 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_NANOSLEEP
// TITLE: nanosleep
// DESCRIPTION: The platform supports POSIX API nanosleep.
#include <time.h>
namespace boost_has_nanosleep{
void f()
{
// this is never called, it just has to compile:
timespec ts = {0, 0};
timespec rm;
int res = nanosleep(&ts, &rm);
(void) &res;
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,26 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_NL_TYPES_H
// TITLE: <nl_types.h>
// DESCRIPTION: The platform has an <nl_types.h>.
#include <nl_types.h>
namespace boost_has_nl_types_h{
int test()
{
nl_catd cat = catopen("foo", 0);
if(cat >= 0) catclose(cat);
return 0;
}
}

52
test/boost_has_nrvo.ipp Normal file
View File

@@ -0,0 +1,52 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_NRVO
// TITLE: Named return value optimisation.
// DESCRIPTION: Named return value optimisation.
namespace boost_has_nrvo
{
class test_class
{
public:
test_class() {}
test_class(const test_class &other)
{
++copy_count;
}
static int copy_count;
};
int test_class::copy_count;
test_class f()
{
test_class nrv;
return nrv;
}
int test()
{
test_class::copy_count=0;
f();
return test_class::copy_count;
}
} // namespace boost_has_nrvo

View File

@@ -0,0 +1,59 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_PARTIAL_STD_ALLOCATOR
// TITLE: limited std::allocator support
// DESCRIPTION: The std lib has at least some kind of stanfard allocator
// with allocate/deallocate members and probably not much more.
#include <memory>
namespace boost_has_partial_std_allocator{
//
// test everything except rebind template members:
//
template <class T>
int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
typedef typename alloc1_t::size_type size_type;
typedef typename alloc1_t::difference_type difference_type;
typedef typename alloc1_t::pointer pointer;
typedef typename alloc1_t::const_pointer const_pointer;
typedef typename alloc1_t::reference reference;
typedef typename alloc1_t::const_reference const_reference;
typedef typename alloc1_t::value_type value_type;
alloc1_t a1;
pointer p = a1.allocate(1);
const_pointer cp = p;
a1.construct(p,i);
size_type s = a1.max_size();
(void)s;
reference r = *p;
const_reference cr = *cp;
if(p != a1.address(r)) return -1;
if(cp != a1.address(cr)) return -1;
a1.destroy(p);
a1.deallocate(p,1);
return 0;
}
int test()
{
return test_allocator(0);
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_PTHREAD_DELAY_NP
// TITLE: pthread_delay_np
// DESCRIPTION: The platform supports non-standard pthread_delay_np API.
#include <pthread.h>
#include <time.h>
namespace boost_has_pthread_delay_np{
void f()
{
// this is never called, it just has to compile:
timespec ts;
int res = pthread_delay_np(&ts);
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,34 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
// TITLE: pthread_mutexattr_settype
// DESCRIPTION: The platform supports POSIX API pthread_mutexattr_settype.
#include <pthread.h>
namespace boost_has_pthread_mutexattr_settype{
void f()
{
// this is never called, it just has to compile:
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
int type = 0;
pthread_mutexattr_settype(&attr, type);
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,30 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_PTHREAD_YIELD
// TITLE: pthread_yield
// DESCRIPTION: The platform supports non standard API pthread_yield.
#include <pthread.h>
namespace boost_has_pthread_yield{
void f()
{
// this is never called, it just has to compile:
int res = pthread_yield();
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_PTHREADS
// TITLE: POSIX Threads
// DESCRIPTION: The platform supports POSIX style threads.
#include <pthread.h>
namespace boost_has_pthreads{
int test()
{
pthread_mutex_t mut;
int result = pthread_mutex_init(&mut, 0);
if(0 == result)
{
pthread_mutex_lock(&mut);
pthread_mutex_unlock(&mut);
pthread_mutex_destroy(&mut);
}
return 0;
}
}

View File

@@ -0,0 +1,31 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_SCHED_YIELD
// TITLE: sched_yield
// DESCRIPTION: The platform supports POSIX standard API sched_yield.
#include <pthread.h>
namespace boost_has_sched_yield{
void f()
{
// this is never called, it just has to compile:
int res = sched_yield();
(void) &res;
}
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,37 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_SGI_TYPE_TRAITS
// TITLE: SGI style <type_traits.h>
// DESCRIPTION: The standard library has it's own type_traits implementation.
#include <type_traits.h>
namespace boost_has_sgi_type_traits{
struct foo_type{};
int test()
{
::__true_type t;
::__false_type f;
typedef ::__type_traits<int>::has_trivial_destructor td;
typedef ::__type_traits<double>::has_trivial_assignment_operator ta;
typedef ::__type_traits<float>::has_trivial_copy_constructor tc;
typedef ::__type_traits<char>::has_trivial_default_constructor tdc;
typedef ::__type_traits<foo_type>::is_POD_type isp;
(void) &t; // avoid "unused variable" warnings
(void) &f;
return 0;
}
}

View File

@@ -0,0 +1,33 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_SIGACTION
// TITLE: sigaction
// DESCRIPTION: The platform supports POSIX standard API sigaction.
#include <signal.h>
namespace boost_has_sigaction{
void f()
{
// this is never called, it just has to compile:
struct sigaction* sa1;
struct sigaction* sa2;
int res = sigaction(0, sa1, sa2);
(void) &res;
}
int test()
{
return 0;
}
}

36
test/boost_has_slist.ipp Normal file
View File

@@ -0,0 +1,36 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_SLIST
// TITLE: <slist>
// DESCRIPTION: The C++ implementation provides the (SGI) slist class.
#include <slist>
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std
#endif
namespace boost_has_slist{
template <class T, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc>& )
{
}
int test()
{
BOOST_STD_EXTENSION_NAMESPACE::slist<int> l;
foo(l);
return 0;
}
}

View File

@@ -0,0 +1,36 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_STDINT_H
// TITLE: stdint.h
// DESCRIPTION: There are no 1998 C++ Standard headers <stdint.h>
// or <cstdint>, although the 1999 C Standard does
// include <stdint.h>.
// If <stdint.h> is present, <boost/stdint.h> can make
// good use of it, so a flag is supplied (signalling
// presence; thus the default is not present, conforming
// to the current C++ standard).
#include <stdint.h>
namespace boost_has_stdint_h{
int test()
{
int8_t i = 0;
int_fast8_t j = 0;
int_least8_t k = 0;
(void)i;
(void)j;
(void)k;
return 0;
}
}

View File

@@ -0,0 +1,28 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_STLP_USE_FACET
// TITLE: STLport version of use_facet
// DESCRIPTION: The standard library lacks a conforming std::use_facet,
// but has a workaound class-version that does the job.
// This is primarily for the STLport std lib.
#include <locale>
namespace boost_has_stlp_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = *std::_Use_facet<std::ctype<char> >(l);
return 0;
}
}

View File

@@ -0,0 +1,23 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_UNISTD_H
// TITLE: <unistd.h>
// DESCRIPTION: The Platform provides <unistd.h>.
#include <unistd.h>
namespace boost_has_unistd_h{
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,55 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_MSVC6_MEMBER_TEMPLATES
// TITLE: microsoft member templates
// DESCRIPTION: Microsoft Visual C++ 6.0 has enough member
// template idiosyncrasies (being polite) that
// BOOST_NO_MEMBER_TEMPLATES is defined for this compiler.
// BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
// compiler specific workarounds.
#ifndef BOOST_NESTED_TEMPLATE
#define BOOST_NESTED_TEMPLATE template
#endif
namespace boost_msvc6_member_templates{
template <class T>
struct foo
{
template <class U>
struct nested
{
typedef foo<U> other;
};
template <class U>
void mfoo(const U&)
{
}
};
template <class T>
void vc6_mem_test(T i)
{
foo<double> f1;
typedef foo<T> ifoo;
f1.mfoo(i);
typedef typename ifoo::BOOST_NESTED_TEMPLATE nested<double> bound_t;
typedef typename bound_t::other other;
other o;
(void)o;
}
int test()
{
int i = 0;
vc6_mem_test(i);
return 0;
}
}

View File

@@ -0,0 +1,37 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_MSVC_STD_ITERATOR
// TITLE: microsoft's version of std::iterator
// DESCRIPTION: Microsoft's broken version of std::iterator
// is being used.
#include <iterator>
namespace boost_msvc_std_iterator{
int test()
{
typedef std::iterator<
std::random_access_iterator_tag,
int
> iterator_type_2;
typedef std::reverse_iterator<const char*, const char> r_it;
iterator_type_2::value_type v2 = 0;
iterator_type_2::iterator_category cat2;
//
// suppress some warnings:
//
(void)v2;
(void)cat2;
return 0;
}
}

View File

@@ -0,0 +1,31 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_HAS_WINTHREADS
// TITLE: MS Windows threads
// DESCRIPTION: The platform supports MS Windows style threads.
#include <windows.h>
namespace boost_has_winthreads{
int test()
{
HANDLE h = CreateMutex(0, 0, 0);
if(h != NULL)
{
WaitForSingleObject(h, INFINITE);
ReleaseMutex(h);
CloseHandle(h);
}
return 0;
}
}

View File

@@ -0,0 +1,34 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
// TITLE: Koenig lookup
// DESCRIPTION: Compiler does not implement
// argument-dependent lookup (also named Koenig lookup);
// see std::3.4.2 [basic.koenig.lookup]
namespace boost_no_argument_dependent_lookup{
namespace foobar{
struct test{};
void call_test(const test&)
{}
}
int test()
{
foobar::test t;
call_test(t);
return 0;
}
}

View File

@@ -0,0 +1,50 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_AUTO_PTR
// TITLE: std::auto_ptr
// DESCRIPTION: If the compiler / library supplies non-standard or broken
// std::auto_ptr.
#include <memory>
namespace boost_no_auto_ptr{
template <class T>
class my_ptr
{
T* p;
public:
my_ptr(std::auto_ptr<T>& r)
{
p = r.release();
}
my_ptr& operator=(std::auto_ptr<T>& r)
{
delete p;
p = r.release();
return *this;
}
~my_ptr()
{
delete p;
}
};
int test()
{
std::auto_ptr<int> ap1(new int);
my_ptr<int> mp(ap1);
std::auto_ptr<int> ap2(new int);
mp = ap2;
return 0;
}
}

View File

@@ -0,0 +1,52 @@
// (C) Copyright Terje Slettebø 2002. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
// TITLE: Full partial specialization support.
// DESCRIPTION: Borland C++ Builder has some rather specific partial
// specialisation bugs which this code tests for.
#include <vector>
namespace boost_bcb_partial_specialization_bug{
template<class T1,class T2>
class Test
{
};
template<class T1,class T2>
class Test<std::vector<T1>,T2>
{
};
template<class T>
class Test<std::vector<int>,T>
{
};
template <class T>
struct is_const{};
template <class T>
struct is_const<T const>{};
int test()
{
Test<std::vector<int>,double> v;
is_const<const int> ci;
(void)v; // warning suppression
(void)ci;
return 0;
}
}

View File

@@ -0,0 +1,41 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_CTYPE_FUNCTIONS
// TITLE: functions in <ctype.h>
// DESCRIPTION: The Platform does not provide functions for the character-
// classifying operations in <ctype.h>. Some platforms provide
// macros and don't provide functions. Under C++ it's an error
// to provide the macros at all, but that's a separate issue.
#include <ctype.h>
namespace boost_no_ctype_functions {
extern "C" {
typedef int (* character_classify_function)(int);
}
void pass_function(character_classify_function)
{
}
int test()
{
pass_function(isalpha);
pass_function(isalnum);
pass_function(iscntrl);
pass_function(isdigit);
pass_function(isgraph);
pass_function(islower);
pass_function(isprint);
pass_function(ispunct);
pass_function(isspace);
pass_function(isupper);
pass_function(isxdigit);
return 0;
}
}

44
test/boost_no_cv_spec.ipp Normal file
View File

@@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_CV_SPECIALIZATIONS
// TITLE: template specialisations of cv-qualified types
// DESCRIPTION: If template specialisations for cv-qualified types
// conflict with a specialisation for a cv-unqualififed type.
namespace boost_no_cv_specializations{
template <class T>
struct is_int
{
};
template <>
struct is_int<int>
{};
template <>
struct is_int<const int>
{};
template <>
struct is_int<volatile int>
{};
template <>
struct is_int<const volatile int>
{};
int test()
{
return 0;
}
}

View File

@@ -0,0 +1,42 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_CV_VOID_SPECIALIZATIONS
// TITLE: template specialisations of cv-qualified void
// DESCRIPTION: If template specialisations for cv-void types
// conflict with a specialisation for void.
namespace boost_no_cv_void_specializations{
template <class T>
struct is_void
{
};
template <>
struct is_void<void>
{};
template <>
struct is_void<const void>
{};
template <>
struct is_void<volatile void>
{};
template <>
struct is_void<const volatile void>
{};
int test()
{
return 0;
}
}

30
test/boost_no_cwchar.ipp Normal file
View File

@@ -0,0 +1,30 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_CWCHAR
// TITLE: <wchar.h> and <cwchar>
// DESCRIPTION: The Platform does not provide <wchar.h> and <cwchar>.
#include <cwchar>
#include <wchar.h>
namespace boost_no_cwchar{
int test()
{
wchar_t c1[2] = { 0 };
wchar_t c2[2] = { 0 };
if(wcscmp(c1,c2) || wcslen(c1)) return -1;
wcscpy(c1,c2);
wcsxfrm(c1,c2,0);
return 0;
}
}

44
test/boost_no_cwctype.ipp Normal file
View File

@@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_CWCTYPE
// TITLE: <wctype.h> and <cwctype>
// DESCRIPTION: The Platform does not provide <wctype.h> and <cwctype>.
//
// Note that some platforms put these prototypes in the wrong headers,
// we have to include pretty well all the string headers on the chance that
// one of them will contain what we want!
//
#include <cwctype>
#include <wctype.h>
#include <cwchar>
#include <wchar.h>
#include <cctype>
#include <ctype.h>
namespace boost_no_cwctype{
int test()
{
if(!(iswalpha(L'a') &&
iswcntrl(L'\r') &&
iswdigit(L'2') &&
iswlower(L'a') &&
iswpunct(L',') &&
iswspace(L' ') &&
iswupper(L'A') &&
iswxdigit(L'A')
)) return -1;
if(L'a' != towlower(L'A')) return -1;
return 0;
}
}

View File

@@ -0,0 +1,38 @@
// (C) Copyright John Maddock and David Abrahams 2002. Permission to
// copy, use, modify, sell and distribute this software is granted
// provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty,
// and with no claim as to its suitability for any purpose.
// MACRO: BOOST_DEDUCED_TYPENAME
// TITLE: deduced typenames
// DESCRIPTION: Some compilers can't use the typename keyword in deduced contexts.
#ifndef BOOST_DEDUCED_TYPENAME
#define BOOST_DEDUCED_TYPENAME typename
#endif
namespace boost_deduced_typename{
template <class T>
int f(T const volatile*, BOOST_DEDUCED_TYPENAME T::type* = 0)
{
return 0;
}
struct X { typedef int type; };
int test()
{
return f((X*)0);
}
}

View File

@@ -0,0 +1,55 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
// TITLE: dependent nested template classes
// DESCRIPTION: The compiler fails to compile
// a nested class that has a dependent base class:
// template<typename T>
// struct foo : {
// template<typename U>
// struct bar : public U {};
// };
#ifndef BOOST_NESTED_TEMPLATE
#define BOOST_NESTED_TEMPLATE template
#endif
namespace boost_no_dependent_nested_derivations{
struct UDT1{};
struct UDT2{};
template<typename T>
struct foo
{
template<typename U>
struct bar : public foo<U>
{};
};
template <class T>
void foo_test(T)
{
typedef foo<T> foo_type;
typedef typename foo_type::BOOST_NESTED_TEMPLATE bar<UDT2> bar_type;
foo<T> ft;
bar_type bt;
(void) &bt;
(void) &ft;
}
int test()
{
foo_test(UDT1());
return 0;
}
}

View File

@@ -0,0 +1,34 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
// TITLE: dependent non-type template parameters
// DESCRIPTION: Template value parameters cannot have a dependent
// type, for example:
// template<class T, typename T::type value>
// class X { ... };
namespace boost_no_dependent_types_in_template_value_parameters{
template <class T, typename T::type value = 0>
class X
{};
template <class T>
struct typifier
{
typedef T type;
};
int test()
{
X<typifier<int> > x;
(void) &x; // avoid "unused variable" warning
return 0;
}
}

View File

@@ -0,0 +1,32 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_EXCEPTION_STD_NAMESPACE
// TITLE: <exception> is in namespace std
// DESCRIPTION: Some std libs don't put the contents of
// <exception> in namespace std.
#include <exception>
namespace boost_no_exception_std_namespace{
int t(int i)
{
if(i)
std::terminate();
return 0;
}
int test()
{
return t(0);
}
}

View File

@@ -0,0 +1,40 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_EXCEPTIONS
// TITLE: exception handling support
// DESCRIPTION: The compiler in its current translation mode supports
// exception handling.
namespace boost_no_exceptions{
void throw_it(int i)
{
throw i;
}
int test()
{
try
{
throw_it(2);
}
catch(int i)
{
return (i == 2) ? 0 : -1;
}
catch(...)
{
return -1;
}
return -1;
}
}

View File

@@ -0,0 +1,35 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
// TITLE: non-deduced function template parameters
// DESCRIPTION: Can only use deduced template arguments when
// calling function template instantiations.
#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200)
#error "This is known to be buggy under VC6"
#endif
namespace boost_no_explicit_function_template_arguments{
template <int i>
bool foo_17041(int j)
{
return (i == j);
}
int test()
{
if(0 == foo_17041<8>(8)) return -1;
if(0 == foo_17041<4>(4)) return -1;
if(0 == foo_17041<5>(5)) return -1;
return 0;
}
}

View File

@@ -0,0 +1,46 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_FUNCTION_TEMPLATE_ORDERING
// TITLE: no function template ordering
// DESCRIPTION: The compiler does not perform
// function template ordering or its function
// template ordering is incorrect.
//
// template<typename T> void f(T); // #1
// template<typename T, typename U> void f(T (*)(U)); // #2
// void bar(int);
// f(&bar); // should choose #2.
namespace boost_no_function_template_ordering{
template<typename T>
bool f(T)
{
return false;
}
template<typename T, typename U>
bool f(T (*)(U))
{
return true;
}
void bar(int)
{
}
int test()
{
int i = 0;
return f(i) || !f(&bar);
}
}

View File

@@ -0,0 +1,26 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_MS_INT64_NUMERIC_LIMITS
// TITLE: std::numeric_limits<__int64>
// DESCRIPTION: The C++ implementation does not provide the a specialisation
// for std::numeric_limits<__int64>.
#include <limits>
namespace boost_no_ms_int64_numeric_limits{
int test()
{
if(0 == std::numeric_limits<__int64>::is_specialized) return -1;
if(0 == std::numeric_limits<unsigned __int64>::is_specialized) return -1;
return 0;
}
}

View File

@@ -0,0 +1,52 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_INCLASS_MEMBER_INITIALIZATION
// TITLE: inline member constant initialisation
// DESCRIPTION: Compiler violates std::9.4.2/4.
namespace boost_no_inclass_member_initialization{
struct UDT{};
template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
struct ice_or_helper
{
static const bool value = true;
};
template <>
struct ice_or_helper<false, false, false, false, false, false, false>
{
static const bool value = false;
};
template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
struct ice_or
{
static const bool value = ice_or_helper<b1, b2, b3, b4, b5, b6, b7>::value;
};
template <class T>
struct is_int
{
static const bool value = false;
};
template <>
struct is_int<int>
{
static const bool value = true;
};
int test()
{
typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1];
return 0;
}
}

View File

@@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_INTEGRAL_INT64_T
// TITLE: long long and integral constant expressions
// DESCRIPTION: The platform supports long long in integral constant expressions.
#include <cstdlib>
namespace boost_no_integral_int64_t{
#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
enum{ mask = 1uLL << 50 };
template <unsigned long long m>
struct llt
{
enum{ value = m };
};
#else
static const unsigned long long mask = 1uLL << 50;
template <unsigned long long m>
struct llt
{
static const unsigned long long value = m;
};
#endif
int test()
{
llt<mask> m;
(void)m;
return 0;
}
}

View File

@@ -0,0 +1,35 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
// TITLE: template iterator-constructors
// DESCRIPTION: The standard library does not provide
// templated iterator constructors for its containers.
#include <vector>
#include <deque>
#include <list>
namespace boost_no_templated_iterator_constructors{
int test()
{
std::vector<int> v1;
std::deque<int> d1;
std::list<char> l1;
//
// now try constructors:
std::vector<long> v2(d1.begin(), d1.end());
std::deque<long> d2(v1.begin(), v1.end());
std::list<long> l2(d1.begin(), d1.end());
return 0;
}
}

31
test/boost_no_limits.ipp Normal file
View File

@@ -0,0 +1,31 @@
// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// MACRO: BOOST_NO_LIMITS
// TITLE: <limits>
// DESCRIPTION: The C++ implementation does not provide the <limits> header.
#include <limits>
namespace boost_no_limits{
int test()
{
if(0 == std::numeric_limits<int>::is_specialized) return -1;
if(0 == std::numeric_limits<long>::is_specialized) return -1;
if(0 == std::numeric_limits<char>::is_specialized) return -1;
if(0 == std::numeric_limits<unsigned char>::is_specialized) return -1;
if(0 == std::numeric_limits<signed char>::is_specialized) return -1;
if(0 == std::numeric_limits<float>::is_specialized) return -1;
if(0 == std::numeric_limits<double>::is_specialized) return -1;
if(0 == std::numeric_limits<long double>::is_specialized) return -1;
return 0;
}
}

Some files were not shown because too many files have changed in this diff Show More