Compare commits

...

857 Commits

Author SHA1 Message Date
jzmaddock
74bcf32eca Merge branch 'develop' 2015-12-08 18:55:19 +00:00
jzmaddock
05d55111e4 Apply patch for clang from https://svn.boost.org/trac/boost/ticket/11833 2015-12-08 08:58:29 +00:00
jzmaddock
94a3bf4f12 Update to set BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE on MacOS. 2015-10-29 11:48:13 +00:00
jzmaddock
19f66e8992 VC7.1 requires BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS 2015-10-22 10:17:24 +01:00
jzmaddock
478ab51c8a Merge branch 'develop' 2015-10-15 10:45:05 +01:00
jzmaddock
ca7967820b Remove dependency to Boost.Test. 2015-10-08 10:39:09 +01:00
jzmaddock
26c91920e2 Merge pull request #79 from akumta/patch-2
Update for C++ version 5.14
2015-10-04 17:22:42 +01:00
jzmaddock
cdc5750155 Merge pull request #80 from mauve/winrt-no-ansi-apis
Do not use Windows ANSI APIs when targetting WinRT
2015-10-04 17:21:15 +01:00
Mikael Olenfalk
ad3141cebd universal-windows: Dont use Windows ANSI APIs when compiling for winrt 2015-10-04 14:23:48 +02:00
akumta
85288108c0 Update for C++ version 5.14 2015-10-01 11:26:08 -07:00
jzmaddock
d0dbbc3d56 Merge branch 'master' of https://github.com/mauve/config into develop 2015-09-24 18:15:53 +01:00
Mikael Olenfalk
7d67f4171f Make cstdint.hpp work on QNX 6.6 2015-09-18 12:01:35 +02:00
jzmaddock
a2616b4f3f Merge branch 'develop' of https://github.com/boostorg/config into develop 2015-09-16 18:28:04 +01:00
jzmaddock
a17884f425 Add support for __unreachable_return on clang and GCC.
See https://svn.boost.org/trac/boost/ticket/11661.
2015-09-16 18:27:48 +01:00
jzmaddock
f23f3a4bb7 Merge pull request #75 from morinmorin/fix/guard_attribute_name
Guard attribute names with double underscores
2015-09-07 17:32:06 +01:00
Beman Dawes
3ff780f2a9 Merge pull request #76 from danieljames/start-1.60.0
Version bump
2015-09-05 20:12:47 -04:00
Daniel James
c99044f492 Version bump 2015-09-05 21:34:42 +01:00
morinmorin
2656ae42d4 Guard attribute names with double underscores. 2015-09-03 19:02:48 +09:00
jzmaddock
e14893a9fc Merge pull request #74 from morinmorin/fix/remove_detection_code
Remove the detection code for 'unused' attribute on Clang
2015-09-03 10:54:05 +01:00
morinmorin
cdcb3fc1aa Remove the detection code for 'unused' attribute on Clang. 2015-09-03 18:32:02 +09:00
jzmaddock
2ee108b81f Merge pull request #71 from alkino/develop
Use __has_attribute instead of gcc version in clang
2015-09-01 17:52:37 +01:00
jzmaddock
458869dd03 Merge pull request #72 from NuxiNL/cloudabi
Add basic platform bits for Nuxi CloudABI.
2015-09-01 17:13:01 +01:00
jzmaddock
ca01235304 Add missing files. 2015-08-30 10:09:44 +01:00
Ed Schouten
0070534348 Add basic platform bits for Nuxi CloudABI.
Nuxi CloudABI is a POSIX-like runtime environment purely built on the
principle of capability-based security[1]. It allows you to run
arbitrary untrusted binaries directly on top of a UNIX kernel without
compromising system integrity.

This change adds a basic platform configuration that defines a small set
of options that allow it to build most of the Boost sources. The next
step is to send out small fixes to individual libraries that don't build
yet.

[1] Nuxi CloudABI: https://github.com/NuxiNL/cloudlibc
2015-08-27 16:23:21 +02:00
Nicolas Cornu
034817c492 Use __has_attribute instead of gcc version in clang 2015-08-27 14:09:55 +02:00
jzmaddock
d05131f7e2 Merge branch 'develop' of https://github.com/boostorg/config into develop 2015-08-18 18:09:35 +01:00
jzmaddock
7b9e5f8d6b std::shared_ptr is only partly usable on Oracle, disable for now. 2015-08-18 18:09:15 +01:00
jzmaddock
5cc1746cab Merge pull request #70 from MarcelRaad/patch-3
Update for MSVC14's _HAS_AUTO_PTR_ETC
2015-08-18 12:17:46 +01:00
jzmaddock
b794a7162b Add float128_type typedef dimilar to int128_type. 2015-08-13 17:52:48 +01:00
jzmaddock
15fa6fd8b9 Add BOOST_HAS_FLOAT128 for compilers that support __float128 as a distinct type. 2015-08-13 17:13:32 +01:00
jzmaddock
a8f96e4b6e Intel should not set GCC and MSVC specific macros. 2015-08-12 19:47:56 +01:00
Marcel Raad
776bc8ac10 Update for MSVC14's _HAS_AUTO_PTR_ETC
If _HAS_AUTO_PTR_ETC is defined to 0, MSVC14's standard library implements C++17's N4190, thus removing std::auto_ptr.
2015-08-11 10:05:33 +02:00
jzmaddock
854a785483 Add missing #include. 2015-08-04 12:44:49 +01:00
jzmaddock
a66898d292 Disable <codecvt> for VC14 as it fails at link time when using the facets. 2015-07-27 09:23:25 +01:00
jzmaddock
d5839ad09b Enable <shared_mutex> support for VC14. 2015-07-25 13:23:33 +01:00
jzmaddock
dfef189197 Fix test case for <shared_mutex>.
Both clang/libc++ and MSVC-14 support <shared_mutex>, but neither set the SD6 macros so, don't bother testing them.
Definitely don't test for the presence of std::shared_mutex as that's a C++17 feature.
2015-07-25 13:23:04 +01:00
jzmaddock
dd26419a25 Add link to VC14 bug report. 2015-07-23 18:16:39 +01:00
jzmaddock
79950d0293 Remove unneeded comment. 2015-07-23 16:59:31 +01:00
jzmaddock
6b767b0e09 VC14 still has the value-initialization bug. 2015-07-23 09:53:39 +01:00
jzmaddock
e472f46438 Change intel.hpp to use the same config as the compiler it's emulating.
At least for Intel 15 and later.
2015-07-22 18:00:39 +01:00
jzmaddock
5bf05c9fbb Reinstate BOOST_NO_CXX11_CONSTEXPR for VC14 - support isn't quite there yet. 2015-07-22 17:59:45 +01:00
Beman
160de8b513 Remove BOOST_NO_CXX11_CONSTEXPR for VC++ 2015 RTM. See https://msdn.microsoft.com/en-us/library/hh567368.aspx#corelanguagetable and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx 2015-07-21 10:53:56 -04:00
jzmaddock
0bbfcc22f4 Merge pull request #68 from MarcelRaad/patch-4
Update for the VS14 RTM standard library
2015-07-21 11:50:10 +01:00
jzmaddock
4c08407c86 Merge pull request #67 from MarcelRaad/patch-3
Update for VS 2015 RTM
2015-07-21 11:49:23 +01:00
Marcel Raad
5dff05e8d9 Fix compiler version number in comment 2015-07-21 00:21:12 +02:00
Marcel Raad
16f491d48d Update for the VS14 RTM standard library
As mentioned by Stephan T. Lavavej here:
http://lists.boost.org/Archives/boost/2014/11/217698.php
BOOST_NO_CXX11_ADDRESSOF shouldn't be necessary anymore for MSVC 14 RTM. The unit test passes.
2015-07-20 19:58:59 +02:00
Marcel Raad
26258e676d Update for VS 2015 RTM
Now that the final version has been released, I don't think the warning spam for every compiler update is necessary anymore. Boost builds successfully with the RTM version (except for Locale, which doesn't build at all currently).
2015-07-20 19:54:41 +02:00
jzmaddock
15d56c9cff Fix detection of libstdc++ 4.7.x. 2015-07-07 19:22:38 +01:00
jzmaddock
5ccb1b6c5f Modify Jamfile to configure external library support better. 2015-07-07 17:27:04 +01:00
jzmaddock
5a9c919ef6 IBM compiler is not GCC. 2015-07-07 17:17:34 +01:00
jzmaddock
ecb017fd33 Rebuild docs for shared_mutex support macro. 2015-07-07 11:19:07 +01:00
jzmaddock
54e8de973f Merge branch 'shared_mutex' of https://github.com/eldiener/config into develop 2015-07-07 11:15:11 +01:00
Edward Diener
2f24d9811f Added logic when header file found to check for C++14 __cplusplus kevel. 2015-06-30 23:42:05 -04:00
Edward Diener
da03881bfb Removed BOOST_NO_CXX14_HDR_SHARED_MUTEX logic in compilers. 2015-06-30 23:41:03 -04:00
Edward Diener
ce9a0f17c8 Remove direct test for clang version as clang doc says that SD-6 supported fron clang 3.4 and up. 2015-06-28 13:06:27 -04:00
Edward Diener
7e6d65e361 Use SD-6 if it exists 2015-06-27 21:26:00 -04:00
Edward Diener
584a711c7a Removed comment. 2015-06-27 21:25:36 -04:00
Edward Diener
3ca81f1095 Addition of BOOST_NO_CXX14_HDR_SHARED_MUTEX tests 2015-06-27 21:08:56 -04:00
Edward Diener
b351a9a1ed Updated example checking SD-6 macro 2015-06-27 21:07:50 -04:00
Edward Diener
4f80398754 Updated using SD-6 2015-06-27 21:06:57 -04:00
jzmaddock
32ea03d6fb Merge pull request #65 from MarcelRaad/patch-3
Add another constexpr test
2015-06-27 12:56:40 +01:00
Marcel Raad
cd72cbe273 Add another constexpr test
MSVC 14 RC doesn't call the constexpr conversion operator in some cases.
It complains:
boost_no_constexpr.ipp(72): error C2051: case expression not constant
2015-06-27 13:08:29 +02:00
jzmaddock
046b9d95e0 Tentative fix for IMB clang compiler failures.
Remove __int128 support - not supported by this compiler.
Make sure correct compiler config is selected.
2015-06-23 18:44:03 +01:00
Edward Diener
ae443e33fa Updated for shared_mutex header 2015-06-09 22:43:10 -04:00
Edward Diener
3fa00f8adb Support for C++14 shared_mutex header 2015-06-09 08:32:28 -04:00
jzmaddock
d14f46f77b Merge branch 'xlcpp-toolset-config' of https://github.com/camorton2/config into develop 2015-06-03 19:08:11 +01:00
Catherine Morton
e0e1deca08 add xlcpp toolset to selection options 2015-06-02 14:55:14 -04:00
Catherine Morton
b283567200 adding toolset for xlcpp 2015-06-02 12:45:43 -04:00
jzmaddock
fa954b8b61 Change link rule to exe rule.
To prevent cyclic dependencies in status/Jamfile.v2.
2015-05-11 09:03:30 +01:00
Rene Rivera
89fd23ad0a Merge pull request #62 from boostorg/develop
Account for module names not incidentally encoding paths.
2015-05-07 12:11:52 -05:00
Rene Rivera
f125f5829a Account for module names not incidentaly encoding paths as they are now truly just key names. 2015-05-06 23:38:51 -05:00
jzmaddock
0ca0adc3b3 Merge branch 'develop' 2015-05-05 13:19:37 +01:00
Marcel Raad
4ec6a18686 Add more constexpr tests
MSVC 14 RC currently passes the constexpr tests, but fails to compile Boost if BOOST_NO_CXX11_CONSTEXPR is not defined. Added three tests that clang can compile in C++11 mode, but MSVC cannot.
2015-05-05 11:46:28 +02:00
Beman
a0f7b67145 Add missing BOOST_NO_CXX11_NUMERIC_LIMITS macro reference doc entry 2015-05-04 09:37:42 -04:00
jzmaddock
ad22b77738 Merge pull request #60 from Beman/develop
Update version check for VisualStudio 2015 RC.
2015-05-03 15:35:02 +01:00
Beman
fa0e91cf21 Update version check for VisualStudio 2015 RC. 2015-05-02 18:06:24 -04:00
jzmaddock
03673b1d20 Merge pull request #59 from danieljames/start-1.59.0
Version bump for 1.59.0
2015-04-27 08:27:08 +01:00
Daniel James
55ea43b454 Version bump. 2015-04-26 22:57:44 +01:00
jzmaddock
d7e258faf5 Update Jamfile to check for -latomic
The config_test tests all require linking against -latomic
when GCC provides it in order to test for <atomic>.
Seems to be a new gcc-5.1.0 requirement.
2015-04-24 18:10:30 +01:00
jzmaddock
a2ad620450 Fix inconsistencies in name of boost_no_cxx14_digit_separator(s). 2015-04-24 17:46:29 +01:00
jzmaddock
88167ee705 Tentative fix for GCC 5.1 C++11 feature updates. 2015-04-24 17:10:13 +01:00
Ananth Jasty
8787f6b071 Changes required for aarch64 support in boost::config. 2015-04-22 19:02:49 +01:00
jzmaddock
f1639e00ce Merge pull request #53 from MarcelRaad/patch-1
Update for MSVC 14 CTP 6
2015-04-21 12:07:00 +01:00
Marcel Raad
5169ec9d57 Update for MSVC 14 CTP 6
- C++ 14 digit separators were implemented in CTP5:
https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#vcplus
- the value initialization bugs have been fixed:
http://www.boost.org/development/tests/develop/developer/output/teeks99-08f-win2012R2-64on64-boost-bin-v2-libs-utility-test-value_init_workaround_test-test-msvc-14-0-dbg-adrs-mdl-64-thrd-mlt.html
2015-04-21 11:32:10 +02:00
jzmaddock
8a811db6e0 Merge pull request #50 from jessicah/develop
Haiku: remove invalid feature definitions
2015-04-09 08:49:19 +01:00
Jessica Hamilton
d5694b49e2 Haiku: remove invalid feature definitions
- Fixes the functional/hash library
- Fixes problems with the thread library
2015-04-09 09:36:42 +12:00
jzmaddock
d44dbf69a4 Merge branch 'develop' 2015-03-24 19:27:48 +01:00
jzmaddock
579bc09dab Merge pull request #49 from jhunold/arch
Lift architecture detection
2015-03-08 17:35:48 +00:00
jzmaddock
871df563bb Merge branch 'develop' 2015-02-25 16:57:48 +00:00
Edward Diener
337cf92b49 Merge pull request #48 from jhunold/whitespace
Remove trailing whitespace to avoid gcc warning
2015-02-25 09:09:19 -05:00
Jürgen Hunold
abaaea2f29 Remove trailing whitespace to avoid gcc warning
Full warning:
".../boost/cstdint.hpp:504:77: warning: backslash and newline separated by space
         (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \ "
2015-02-25 12:31:07 +01:00
jzmaddock
1c48f8e6f2 Merge branch 'develop' 2015-02-24 09:21:25 +00:00
jzmaddock
fada9f5ee2 Apply patch from https://svn.boost.org/trac/boost/ticket/6694 2015-02-23 13:14:28 +00:00
jzmaddock
975a488549 Fix for https://svn.boost.org/trac/boost/ticket/10955 2015-02-23 13:07:00 +00:00
jzmaddock
c573e85173 Apply patch from https://svn.boost.org/trac/boost/ticket/6796 2015-02-23 12:32:26 +00:00
jzmaddock
5366f899e9 Fix intptr_t def on solaris. 2015-02-22 18:26:56 +00:00
jzmaddock
b03afe92be Fix for Solaris 12.4 compiler in C++03 mode. 2015-02-22 13:16:37 +00:00
jzmaddock
d5e99748aa Update for Solaris Studio 12.4. 2015-02-21 17:30:56 +00:00
Jürgen Hunold
5cd585bfa2 Lift architecture detection 2015-02-20 18:18:09 +01:00
Ryan Pavlik
6f5c1113af Update version.hpp
Fix typo in comment, and also clean up capitalization and overall meaning.

(My header file doesn't change every time there's a new boost release, but it would if I upgraded.)
2015-02-17 12:06:48 -06:00
jzmaddock
52518f3946 Merge branch 'develop' 2015-02-14 12:53:13 +00:00
jzmaddock
9c653f5e57 Merge branch 'feature/haiku-support' of https://github.com/jessicah/config into develop 2015-02-05 18:06:24 +00:00
Beman
06aa40a5d1 Remove requirement that BOOST_MSVC_ENABLE_2014_JUN_CTP be defined to get the correct BOOST_NO_CXX11_* macros for VC++ 14.0 (aka 2015). 2014-11-18 15:21:34 -05:00
Jessica Hamilton
44028a148c haiku: remove spurious GLIBC define 2014-11-16 21:56:05 +13:00
Jessica Hamilton
1b6d6d9aa1 haiku: fix copyright 2014-11-16 21:43:03 +13:00
Jessica Hamilton
6038d5fd7e haiku: add platform support 2014-11-16 13:28:57 +13:00
Beman
f7091f4784 Merge branch 'develop' of github.com:boostorg/config into develop 2014-11-14 10:31:12 -05:00
Marcel Raad
c329a34407 Update vor MSVC14 Preview
According to the release notes, the following new language features are supported:
- char16_t, char32_t, and unicode literals
- binary literals
- generic lambdas

All Boost libraries build successfully, all config tests pass, and all projects I compiled worked correctly.

Reference:
http://www.visualstudio.com/news/vs2015-preview-vs#C++
2014-11-13 16:40:55 +01:00
Daniel James
122a60c77f Version bump 2014-11-04 19:49:49 -07:00
Noel Belcourt
7118c0d2a7 Merge pull request #44 from danieljames/develop
Version bump
2014-11-04 19:45:35 -07:00
Daniel James
85fea8fe0a Version bump 2014-11-05 00:42:39 +00:00
Edward Diener
a04ee99c15 Merge pull request #43 from Lastique/patch-1
Fix 'unknown pragma' warnings with MSVC 9
2014-11-01 03:44:33 -04:00
Andrey Semashev
b8bfae2e75 Fix 'unknown pragma' warnings with MSVC 9
#pragma detect_mismatch is only supported since MSVC 10.
2014-10-29 23:41:06 +03:00
morinmorin
719392271a Merge branch 'bugfix/unnecessary_has_extension' into develop 2014-10-26 21:52:14 +09:00
jzmaddock
1e4124d6cd Merge branch 'develop' 2014-10-26 13:36:42 +01:00
morinmorin
70096c5d80 Remove __has_extension checks for features that are not available as extensions.
For those features, `__has_extension` checks are equivalent to `__has_feature` checks and thus they are unnecessary.
2014-10-26 21:06:49 +09:00
morinmorin
22be8fffcf Merge branch 'bugfix/guard_feature_names' into develop 2014-10-26 18:51:58 +09:00
morinmorin
5050ae481f Use feature names with double underscores to avoid macro interference. 2014-10-26 18:42:35 +09:00
morinmorin
4df98ad40a Merge branch 'bugfix/clang_extension_warning' into develop 2014-10-26 12:28:11 +09:00
morinmorin
db66a9f051 Remove __has_extension macros for features that emit warnings.
Variable templates can be used in C++03/11 and initialized lambda captures can be used in C++11 as language extensions, but they trigger "extension" warnings. Disallow these extensions to prevent the warning.
2014-10-26 11:16:53 +09:00
jzmaddock
224d70f02a Fix clang version checks. 2014-10-22 17:58:22 +01:00
jzmaddock
42cc344212 Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-10-21 12:47:47 +01:00
jzmaddock
dcbb032aa3 Rename BOOST_NO_CXX14_DIGIT_SEPARATOR to BOOST_NO_CXX14_DIGIT_SEPARATORS.
Fix name of BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES in docs.
2014-10-21 12:39:17 +01:00
jzmaddock
42446e02d2 Merge pull request #42 from Flast/bugfix/cxx14/clang34-constexpr
Define BOOST_NO_CXX14_CONSTEXPR unless clang > 3.4.
2014-10-20 18:50:10 +01:00
Kohei Takahashi
78e67031e3 Define BOOST_NO_CXX14_CONSTEXPR unless clang > 3.4.
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-10-21 01:04:06 +09:00
jzmaddock
ec1f5273be Presence of pthread_yield is dependent on __USE_GNU. 2014-10-20 12:53:40 +01:00
jzmaddock
52882f7327 Enable C++14 return type deduction for vc14. 2014-10-20 11:37:19 +01:00
jzmaddock
d9026f1d45 Update for MSVC-14 CTP14.
Fix <type_traits> tests to check for the correct names!
2014-10-19 17:05:01 +01:00
jzmaddock
c8ff40531c Merge branch 'develop' 2014-10-16 11:51:55 +01:00
jzmaddock
35360b6c07 Merge pull request #41 from Flast/bugfix/clang/has_include
Fix error on __has_include with older clang (< 3.1)
2014-10-14 08:54:04 +01:00
Kohei Takahashi
2a51a64b84 Fix error on __has_include with older clang (< 3.1)
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-10-14 12:46:21 +09:00
jzmaddock
eaa5c714c8 Change generate.cpp to alphabetize it's results to reduce churn in the results.
Regenerate the generated files.
2014-10-13 13:12:59 +01:00
jzmaddock
e725ad9776 Fix C++14 macro docs. Regen docs. 2014-10-12 17:01:03 +01:00
jzmaddock
dd6e9405b8 Merge branch 'cxx14' into develop 2014-10-12 16:54:35 +01:00
jzmaddock
75f4069bad Improve GCC C++14 feature detection. 2014-10-12 15:39:25 +01:00
jzmaddock
f9bfac1297 Fix broken <atomic> with clang, tentatively fix clang number separator option. 2014-10-12 13:20:11 +01:00
jzmaddock
5e78d55d0e Fix spelling of one C++14 macro, improve C++14 auto-detection. 2014-10-12 11:46:15 +01:00
jzmaddock
b811dd40ae Add C++14 support based on https://github.com/boostorg/config/pull/39 2014-10-12 10:01:22 +01:00
jzmaddock
35faf7816c Doc regen. 2014-10-11 13:12:06 +01:00
jzmaddock
003d33725e Add helper macro - BOOST_ATTRIBUTE_UNUSED - to suppress unused type/variable warnings. 2014-10-11 13:10:25 +01:00
jzmaddock
5838168061 Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-10-10 17:23:28 +01:00
jzmaddock
441311c950 Disable __int128 support when the compiler is really CUDA.
See https://svn.boost.org/trac/boost/ticket/10418.
2014-10-10 17:22:24 +01:00
jzmaddock
f43ed77973 Rework Intel config to make it both more accurate in C++11 mode (hopefully!) and easier to maintain. 2014-10-09 19:21:42 +01:00
jzmaddock
a8868e82e0 Enable <thread> for gcc-4.8 and later.
Disable thread support headers depending on values of internal libstdc++ macros.
2014-10-08 18:58:15 +01:00
jzmaddock
32237deddc Reorganize clang config to avoid macro redefinitions and fix GCC-4.8, 4.9, and 5.0 detection. 2014-10-08 13:37:18 +01:00
jzmaddock
b36566fe04 Reorganise library version detection, adds tentative fix for clang with libstdc++. See issues 10600 and 7473 2014-10-05 13:41:42 +01:00
jzmaddock
de968af32a Fix typo, see https://svn.boost.org/trac/boost/ticket/10590 2014-10-04 13:31:09 +01:00
jzmaddock
196a4baae0 Fix typo, see https://svn.boost.org/trac/boost/ticket/10590 2014-10-04 08:32:52 +01:00
jzmaddock
71fa89f5e1 Disable log1p and expm1 support in mingw - they often crash for reasons yet to be determined. 2014-10-02 19:00:41 +01:00
jzmaddock
d978d31117 Only include <utility> when we absolutely have to as it's not so lightweight in C++11. See https://github.com/boostorg/config/pull/40 2014-10-02 18:52:03 +01:00
jzmaddock
d3c1db5436 Apply patch from https://svn.boost.org/trac/boost/ticket/5315.
Allows auto-linking code to synch up with Boost.Build with the --buildid option.
2014-10-02 18:22:19 +01:00
jzmaddock
04acb85f7a Update existing VC14 support with patches from https://svn.boost.org/trac/boost/ticket/10489 2014-10-02 17:46:49 +01:00
jzmaddock
16a4fc7f6a In preparation for GCC-5 and/or the deprecation of __GXX_EXPERIMENTAL_CXX0X__ refactor GCC configuration. 2014-09-24 19:27:40 +01:00
jzmaddock
85dba1d5ee Merge branch 'develop' 2014-09-24 18:07:43 +01:00
jzmaddock
8b174c0617 Update for Intel 15.0 2014-09-23 17:02:30 +01:00
jzmaddock
b32c1340b7 Update for Intel-15. 2014-09-22 11:31:41 +01:00
jzmaddock
94d0eaf177 Disable C++11 headers in non-C++11 mode. 2014-09-14 18:27:19 +01:00
Beman
d73e56cdea Merge branch 'develop' of github.com:boostorg/config into develop 2014-09-03 11:16:21 -04:00
Edward Diener
7a7a7077b6 Merge pull request #38 from aminiussi/cudaintel
Only define BOOST_COMPILER if not already done
2014-09-01 17:15:04 -04:00
Alain Miniussi
951e2b00dc Only define BOOST_COMPILE if not already done (as it is already the case for g++ and ms).
Usfull when called through nvcc.
fixes #10420
2014-09-01 15:41:23 +02:00
jzmaddock
2690cb8b39 Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS for Intel. 2014-08-25 19:00:50 +01:00
jzmaddock
1066b2a582 Alphabetize C++11 macros. 2014-08-25 18:54:01 +01:00
jzmaddock
4dc7c66c4d Add new macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS 2014-08-25 18:37:18 +01:00
jzmaddock
eec8085549 Fix BOOST_NO_CXX11_VARIADIC_TEMPLATES definition - the feature was introduced in GCC 4.4. 2014-08-23 09:38:02 +01:00
jzmaddock
053f0e420a Disable __int128 support on CUDA + Intel C++.
Fixes https://svn.boost.org/trac/boost/ticket/10369
2014-08-22 19:09:02 +01:00
jzmaddock
2662b12166 Disable <atomic> for Intel C++ as it can't yet parse the file. 2014-08-22 18:50:05 +01:00
jzmaddock
82457fadb7 Add test case for BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS under new name compared to original pull request (also less churn in the generated files). 2014-08-22 18:35:16 +01:00
jzmaddock
04c139e40f Revert "Added a test for BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS."
This reverts commit 85dde189ac.
2014-08-22 18:32:10 +01:00
jzmaddock
e659a7e487 Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-08-22 17:40:52 +01:00
jzmaddock
6b2d9b249e Merge pull request #36 from apolukhin/typo_fix
Fix a typo, while it is not too late
2014-08-22 17:35:06 +01:00
Andrey Semashev
05604f00d0 Merge pull request #1 from apolukhin/intel_fix
Define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS for Intel Compiler.
2014-08-22 19:13:21 +04:00
Antony Polukhin
2abc483055 Define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS even if BOOST_NO_CXX11_DEFAULTED_FUNCTIONS are not defined 2014-08-22 19:01:53 +04:00
Antony Polukhin
6a0c4aeb34 Fix a typo, while it is not too late 2014-08-22 18:44:16 +04:00
Andrey Semashev
0df91c0665 Enabled non-public defaulted functions for gcc 4.4 as it passed the test. 2014-08-21 16:45:18 +04:00
Andrey Semashev
85dde189ac Added a test for BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS. 2014-08-21 16:42:50 +04:00
Andrey Semashev
9a1f46fbbc Documented BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS. 2014-08-21 15:41:30 +04:00
Andrey Semashev
be328aa19b Make BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS defined when BOOST_NO_CXX11_DEFAULTED_FUNCTIONS is defined.
Lack of non-public defaulted functions is implied by the lack of any defaulted functions, so define the defect macro.
2014-08-21 15:20:30 +04:00
jzmaddock
ef0fbe981a Full final keyword is present from vc11 not vc10, see http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.110%29.aspx 2014-08-20 18:25:02 +01:00
jzmaddock
2d297754ad Set BOOST_NO_CXX11_FINAL for all obsolete compilers, or for those we can't test locally.
Improve tests for BOOST_NO_CXX11_FINAL.
2014-08-19 18:34:09 +01:00
jzmaddock
a49bdd43c0 Merge branch 'final' of https://github.com/K-ballo/config into develop 2014-08-19 18:01:25 +01:00
jzmaddock
81acb3f788 Change detection logic for optional feature BOOST_HAS_PRAGMA_DETECT_MISSMATCH to match the way we've done these in the past. 2014-08-19 17:58:48 +01:00
jzmaddock
3138b2b747 We don't need to check for Apple if we've already tested that this is in MSVC emulation mode. 2014-08-19 17:57:56 +01:00
jzmaddock
c2f8e6adf6 Merge pull request #28 from apolukhin/develop
Added BOOST_HAS_PRAGMA_DETECT_MISSMATCH macro
2014-08-19 17:53:53 +01:00
Antony Polukhin
2c0d0ed559 Define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS for Intel 2014-08-18 21:01:37 +04:00
jzmaddock
ad3d4cf5af Merge pull request #33 from danieljames/metadata
Create metadata file.
2014-08-18 17:36:34 +01:00
Antony Polukhin
6ea485e9f1 Fix BOOST_HAS_PRAGMA_DETECT_MISSMATCH detection for Clang 2014-08-18 20:35:42 +04:00
Daniel James
c71a4c7980 Add metadata file. 2014-08-18 14:57:59 +01:00
K-ballo
f0136c5911 Added macro BOOST_NO_CXX11_FINAL 2014-08-16 12:24:06 -03:00
jzmaddock
54d53f307f Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-08-15 18:17:54 +01:00
jzmaddock
ab45a2c7e6 This is from: https://github.com/boostorg/config/pull/31/files
See also:  https://svn.boost.org/trac/boost/ticket/8647
2014-08-15 18:17:38 +01:00
jzmaddock
e0a53a3a84 Merge pull request #30 from MarcelRaad/patch-2
Update for MSVC 14 CTP2
2014-08-15 18:11:21 +01:00
jzmaddock
9a872e7a88 Merge pull request #29 from MarcelRaad/patch-1
Fix user-defined literal tests for MSVC
2014-08-15 18:10:44 +01:00
Marcel Raad
f94465534b Update for MSVC 14 CTP2
- update the last tested version to suppress the "unknown compiler version" warning spam
- fix a comment still mentioning version 18 instead of 19
- with CTP2, MSVC 14 is now officially 2014, which is now reflected in the comment as with the other versions
2014-08-12 10:34:28 +02:00
Marcel Raad
884b53b563 Fix user-defined literal tests for MSVC
The test currently tests not only the compiler's support for user-defined literals, but also its constexpr support, which is only partly implemented in MSVC 14. This change removes the constexpr's that MSVC doesn't like so that the tests pass on MSVC 14 CTP2.
2014-08-12 10:25:04 +02:00
Antony Polukhin
3087b80a77 Added BOOST_HAS_PRAGMA_DETECT_MISSMATCH macro 2014-08-11 15:11:38 +04:00
Daniel James
34e1c7416b Update version. 2014-08-07 18:12:54 +01:00
Beman
5fb0343fa8 Initial commit 2014-07-09 21:18:31 -04:00
jzmaddock
d43db8b388 regenerate docs. 2014-06-12 13:32:18 +01:00
jzmaddock
7eb1b741b1 Merge branch 'build-time-checks' into develop 2014-06-12 13:31:16 +01:00
jzmaddock
51da22f6ff Revert "Revert "Add new build-time configuration feature.""
This reverts commit 4cf1376ec2.

Update tests to not use the run rule, but run the programs by other means instead.
2014-06-12 13:30:04 +01:00
jzmaddock
4cf1376ec2 Revert "Add new build-time configuration feature."
This reverts commit dad7bc5b30.

Conflicts:
	checks/config.jam
2014-06-12 09:11:05 +01:00
jzmaddock
6c89538f2e Merge pull request #26 from boostorg/pull-request/intel-rtti-detection
Add RTTI detection to intel.hpp
2014-06-10 19:18:58 +01:00
jzmaddock
8e4d98da1e Merge pull request #25 from boostorg/pull-request/config-test-pthread-rt-flags
Add additional linkflags for no-rtti, no-except runs of config_test.
2014-06-10 19:18:28 +01:00
jzmaddock
28832f792f Improve lambda test case some more. 2014-06-10 19:09:28 +01:00
jzmaddock
c5d40ff6da Merge branch 'pull-request/config-test-gcc-fixes' into develop 2014-06-10 18:38:14 +01:00
jzmaddock
02dd6bf9b3 merge 2014-06-10 18:37:24 +01:00
Peter Dimov
50487a6d85 Add RTTI detection to intel.hpp. 2014-06-10 20:33:04 +03:00
jzmaddock
2638e71dc4 Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-06-10 18:22:34 +01:00
jzmaddock
f0c99f7b7f Suppress more GCC warnings.
Fix GCC compile failure in lambda test case.
2014-06-10 18:22:10 +01:00
Peter Dimov
7948d33e78 Add additional linkflags for no-rtti, no-except runs of config_test. 2014-06-09 01:23:50 +03:00
Peter Dimov
051fbf2cc7 Various g++/clang config_test fixes. 2014-06-09 01:00:56 +03:00
jzmaddock
97618dc66a Merge pull request #23 from boostorg/pull-request/config-info-rtti-macros
Add a few more g++ and Intel predefined macros to config_info.
2014-06-08 09:41:22 +01:00
jzmaddock
1a72dfeffe Merge pull request #22 from boostorg/pull-request/test-no-rtti
Run config_test and config_info with no RTTI and no exceptions.
2014-06-08 09:40:21 +01:00
Peter Dimov
db9540d98d Add a few more g++ and Intel predefined macros to config_info. 2014-06-08 04:25:59 +03:00
Peter Dimov
6fdfceaefa Run config_test and config_info with no RTTI and no exceptions. 2014-06-08 03:25:16 +03:00
jzmaddock
d6ad9e200e Merge pull request #21 from MarcelRaad/patch-1
Add support for VC++ 14
2014-06-06 19:22:47 +01:00
Marcel Raad
2bbe588a3f Add BOOST_MSVC_ENABLE_2014_JUN_CTP marco
Disables new features supplied by VC++ 14 CTP1 by default
2014-06-06 09:53:14 +02:00
Marcel Raad
cea06346a2 Add support for VC++ 14
All the config tests pass, with the exception of the user-defined literal test, which passes only if "static constexpr" is substituted with "static BOOST_CONSTEXPR_OR_CONST" and "constexpr" is substituted with "BOOST_CONSTEXPR".

See
http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx
and
http://blogs.msdn.com/b/somasegar/archive/2014/05/28/first-preview-of-visual-studio-quot-14-quot-available-now.aspx
2014-06-05 21:47:53 +02:00
jzmaddock
dad7bc5b30 Add new build-time configuration feature. 2014-06-05 18:55:12 +01:00
Richard Dale
4c372d8807 Merge branch 'cray-updates' 2014-06-02 10:06:28 -05:00
Richard Dale
23cf56a53f Add BOOST_NO_CX11_REF_QUALIFIERS 2014-06-02 06:58:37 -05:00
jzmaddock
9eb1e6aefe Merge pull request #20 from glenfe/develop
Move cstdint into Boost.Config (develop)
2014-06-01 18:01:40 +01:00
jzmaddock
5493717a9f Merge pull request #19 from glenfe/master
Move cstdint into Boost.Config
2014-06-01 18:00:59 +01:00
Glen Fernandes
a335429d5c Merge branch 'master' into develop 2014-06-01 09:22:34 -07:00
Glen Fernandes
e008ddb971 Fix clang error and some warnings 2014-06-01 09:22:27 -07:00
Glen Fernandes
ce67ff8eb6 Merge branch 'master' into develop 2014-06-01 02:54:05 -07:00
Glen Fernandes
498b17520a Move cstdint docs to this module 2014-06-01 02:53:15 -07:00
Glen Fernandes
98194c6309 Move cstdint tests to this module 2014-06-01 00:29:04 -07:00
Glen Fernandes
d98fbdc66b Merge branch 'master' into develop 2014-05-31 21:57:38 -07:00
Glen Fernandes
acd12c5578 Merge branch 'develop' 2014-05-31 21:57:23 -07:00
John Maddock
2bab1f37ff Patch for recent versions of glibc which always assume int64_t support. Fixes #8731.
[SVN r84950]
2014-05-31 21:57:03 -07:00
Andrey Semashev
e17e4fe621 Extracted intptr_t and uintptr_t types to cstdint.hpp. Refs #7823.
[SVN r84805]
2014-05-31 21:57:03 -07:00
John Maddock
cb470782cf Change logic so that int32_t etc is an int rather than a long where possible.
[SVN r65299]
2014-05-31 21:57:03 -07:00
John Maddock
059715dda1 Add VMS support. Fixes #4474.
[SVN r64750]
2014-05-31 21:57:03 -07:00
John Maddock
373e516ff5 Change code to check individually for the INT#_C macros before defining them - this correctly handles cases where they are partially defined by other other headers (for example ICU). Also declare this a gcc system header - seems to be the only way to really suppress the warnings - fixes #3889.
[SVN r59430]
2014-05-31 21:57:03 -07:00
John Maddock
89481ebd34 Commit alternative warning suppression code.
[SVN r59264]
2014-05-31 21:57:03 -07:00
Daniel James
2a14f482e6 Disable warnings when defining INT#_C macros for gcc.
[SVN r58948]
2014-05-31 21:57:03 -07:00
John Maddock
080cd5d4cb Update cstdint.hpp to always define the INT#_C macros. Try again with Codegear workaround.
[SVN r58292]
2014-05-31 21:57:03 -07:00
John Maddock
d6ada0eb0c Fix for Comeau compiler - does not define __GLIBC_HAVE_LONG_LONG which in turn causes GLIBC's stdint.h to misbehave. Fixes #3548.
[SVN r57858]
2014-05-31 21:57:03 -07:00
John Maddock
e50fa7d4ee Fixes #3180.
[SVN r57845]
2014-05-31 21:57:03 -07:00
John Maddock
e68c78a3c4 Fixes #2654.
[SVN r50572]
2014-05-31 21:57:03 -07:00
John Maddock
628cb70df7 Apparently we forgot to include <limits.h>
[SVN r32397]
2014-05-31 21:57:03 -07:00
Rene Rivera
a8b414ef67 Merge from RC_1_33_0.
[SVN r31703]
2014-05-31 21:57:03 -07:00
Beman Dawes
5eb02cba79 Replace buggy Cygwin INTMAX_C and UINTMAX_C macros
[SVN r29276]
2014-05-31 21:57:03 -07:00
Markus Schöpflin
2f3debf876 Better support for Tru64.
[SVN r25689]
2014-05-31 21:57:03 -07:00
John Maddock
0b75c06eee Added new types boost::long_long_type and boost::ulong_long_type in boost/config.hpp and applied these types in place of "long long" throughout. As a result, almost all of boost now compiles cleanly with -ansi -pedantic with gcc. Changes tested with gcc 3.3, 2.95, VC7.1 and Intel 8.
[SVN r24899]
2014-05-31 21:57:03 -07:00
John Maddock
920a41ee54 Removed Boost.org copyrights and replaced with originating authors copyright instead.
[SVN r24372]
2014-05-31 21:57:02 -07:00
John Maddock
a8616a783b Patches for cstdint support:
cygwin and mingw now use native stdint headers.
default header now compiles in -pedantic -ansi mode with gcc.

[SVN r21728]
2014-05-31 21:57:02 -07:00
Beman Dawes
efdf53a42c include <boost/limits.hpp> instead of <limits.h>, fixing a date-time issue on Comeau
[SVN r18499]
2014-05-31 21:57:02 -07:00
John Maddock
f178656381 Added Cray X1 support
[SVN r17022]
2014-05-31 21:57:02 -07:00
John Maddock
6204b62acd Added Cray support
[SVN r16989]
2014-05-31 21:57:02 -07:00
Beman Dawes
66e3988921 add or update See www.boost.org comments
[SVN r16708]
2014-05-31 21:57:02 -07:00
John Maddock
0e7f67a96d Merged changes from RC_1_29_0 branch
[SVN r15958]
2014-05-31 21:57:02 -07:00
Beman Dawes
5bfc97ec8d BOOST_HAS_MS_INT64 rather than specific compilers
[SVN r14668]
2014-05-31 21:57:02 -07:00
Beman Dawes
345c127227 Check for BOOST_HAS_MS_INT64 instead of specific compilers
[SVN r14664]
2014-05-31 21:57:02 -07:00
Douglas Gregor
24ea68b00e cstdint.hpp: - Handle FreeBSD's <inttypes.h>
[SVN r12601]
2014-05-31 21:57:02 -07:00
Darin Adler
e0350ea5a9 Remove non-ASCII character that crept in.
[SVN r11570]
2014-05-31 21:57:02 -07:00
Jens Maurer
0c9ae76f94 only use "long long" if there's a stdlib overload
[SVN r11516]
2014-05-31 21:57:02 -07:00
Jens Maurer
f136c7a620 use BOOST_HAS_LONG_LONG
[SVN r11493]
2014-05-31 21:57:02 -07:00
Jens Maurer
1b1273d98c port cstdint.hpp to HP-UX
[SVN r11175]
2014-05-31 21:57:02 -07:00
John Maddock
dbd1afb2ef commit of split-config, including any changes required to existing libraries (mainly regex).
[SVN r11138]
2014-05-31 21:57:02 -07:00
Beman Dawes
67694454c0 Add LL suffix to line 150 for long longs at suggestion of Toon Knapen
[SVN r10854]
2014-05-31 21:57:02 -07:00
Jens Maurer
0722b90137 fix the "gcc 3.0 and long long" fix to check for the appropriate symbol
[SVN r10107]
2014-05-31 21:57:01 -07:00
Jens Maurer
de5d29fa8e Don't use "long long" with gcc 3.0's shipped library, because it does not define operator<<(ostream&, long long) overloads.
[SVN r10095]
2014-05-31 21:57:01 -07:00
John Maddock
7a0711230b Preprocessor fix for VC6 + STLPort 4.1b6
[SVN r10087]
2014-05-31 21:57:01 -07:00
Jens Maurer
a431ef5b54 HP-UX needs special attention because ULONG_LONG_MAX is not fully usable
[SVN r10080]
2014-05-31 21:57:01 -07:00
Jens Maurer
59eda005d1 int64_t may not be defined on HP-UX when using gcc
[SVN r10067]
2014-05-31 21:57:01 -07:00
Jens Maurer
3c532ab1cd add HP-UX workaround
[SVN r10051]
2014-05-31 21:57:01 -07:00
Jens Maurer
5867dcf011 check for ULONGLONG_MAX as well
[SVN r9793]
2014-05-31 21:57:01 -07:00
Jeremy Siek
c77099ac7b removed backslashes in macros
[SVN r9097]
2014-05-31 21:57:01 -07:00
John Maddock
8dea5a2fcf cstdint: cygwin fixes for long long support
[SVN r8754]
2014-05-31 21:57:01 -07:00
Jens Maurer
fabcdfc385 for int32_t and intmax_t, prefer "long" over "int" if both are 32bit
[SVN r8743]
2014-05-31 21:57:01 -07:00
Dave Abrahams
f9e8a68af2 Fixes so that long long is recognized for GCC.
[SVN r8706]
2014-05-31 21:57:01 -07:00
Jens Maurer
07dfe3f70d restricted Windows/gcc exclusion of int64_t to Cygwin, because MingW seems to work
[SVN r8641]
2014-05-31 21:57:01 -07:00
Jens Maurer
d33a702806 Folded stdint.h into cstdint.hpp to avoid ISO C99 incompatibilities
[SVN r8174]
2014-05-31 21:57:01 -07:00
John Maddock
a98eefc1e1 addition of INTXX_C support to integer library
[SVN r7792]
2014-05-31 21:57:01 -07:00
Jens Maurer
bb2e640ae1 fix reversed BOOST_NO_INT64_T logic
[SVN r7780]
2014-05-31 21:57:01 -07:00
Beman Dawes
4d8c6207ba 64-bit integer improvements from John Maddock
[SVN r7776]
2014-05-31 21:57:01 -07:00
Beman Dawes
ae7bad9e9a This commit was generated by cvs2svn to compensate for changes in r4, which included commits to RCS files with non-trunk default branches.
[SVN r7621]
2014-05-31 21:57:01 -07:00
Andrey Semashev
7aab77e042 Merged recent changes from trunk.
[SVN r85088]
2014-05-31 21:56:49 -07:00
John Maddock
58e595c560 Fix logic in cstdint to prefer smaller integers when possible. Improve PP-logic in integer-traits. Suppress some compiler warnings.
[SVN r65721]
2014-05-31 21:56:49 -07:00
John Maddock
a2e4d5c776 Merge fixes from Trunk.
[SVN r62832]
2014-05-31 21:56:49 -07:00
John Maddock
3ec979d6ce Update cstdint.hpp to always define the INT#_C macros. Try again with Codegear workaround.
[SVN r58292]
2014-05-31 21:56:49 -07:00
John Maddock
6ea9267941 Fix for Comeau compiler - does not define __GLIBC_HAVE_LONG_LONG which in turn causes GLIBC's stdint.h to misbehave. Fixes #3548.
[SVN r57858]
2014-05-31 21:56:49 -07:00
John Maddock
900d7d65ee Fixes #3180.
[SVN r57845]
2014-05-31 21:56:49 -07:00
John Maddock
36712e5063 Fixes #2654.
[SVN r50572]
2014-05-31 21:56:49 -07:00
John Maddock
6c81172a0e Apparently we forgot to include <limits.h>
[SVN r32397]
2014-05-31 21:56:49 -07:00
Rene Rivera
6e0823298a Merge from RC_1_33_0.
[SVN r31703]
2014-05-31 21:56:49 -07:00
Beman Dawes
c9041c7dd4 Replace buggy Cygwin INTMAX_C and UINTMAX_C macros
[SVN r29276]
2014-05-31 21:56:49 -07:00
Markus Schöpflin
866cd7fbb8 Better support for Tru64.
[SVN r25689]
2014-05-31 21:56:49 -07:00
John Maddock
67b7f4c37f Added new types boost::long_long_type and boost::ulong_long_type in boost/config.hpp and applied these types in place of "long long" throughout. As a result, almost all of boost now compiles cleanly with -ansi -pedantic with gcc. Changes tested with gcc 3.3, 2.95, VC7.1 and Intel 8.
[SVN r24899]
2014-05-31 21:56:49 -07:00
John Maddock
2e9c31c942 Removed Boost.org copyrights and replaced with originating authors copyright instead.
[SVN r24372]
2014-05-31 21:56:48 -07:00
John Maddock
c4f36aa425 Patches for cstdint support:
cygwin and mingw now use native stdint headers.
default header now compiles in -pedantic -ansi mode with gcc.

[SVN r21728]
2014-05-31 21:56:48 -07:00
Beman Dawes
77419b2d62 include <boost/limits.hpp> instead of <limits.h>, fixing a date-time issue on Comeau
[SVN r18499]
2014-05-31 21:56:48 -07:00
John Maddock
677edcd343 Added Cray X1 support
[SVN r17022]
2014-05-31 21:56:48 -07:00
John Maddock
7819651167 Added Cray support
[SVN r16989]
2014-05-31 21:56:48 -07:00
Beman Dawes
7b7a7ebd34 add or update See www.boost.org comments
[SVN r16708]
2014-05-31 21:56:48 -07:00
John Maddock
62a8b9f858 Merged changes from RC_1_29_0 branch
[SVN r15958]
2014-05-31 21:56:48 -07:00
Beman Dawes
eca14f6383 BOOST_HAS_MS_INT64 rather than specific compilers
[SVN r14668]
2014-05-31 21:56:48 -07:00
Beman Dawes
e5b943aaca Check for BOOST_HAS_MS_INT64 instead of specific compilers
[SVN r14664]
2014-05-31 21:56:48 -07:00
Douglas Gregor
24c34d47f1 cstdint.hpp: - Handle FreeBSD's <inttypes.h>
[SVN r12601]
2014-05-31 21:56:48 -07:00
Darin Adler
4ffe04359e Remove non-ASCII character that crept in.
[SVN r11570]
2014-05-31 21:56:48 -07:00
Jens Maurer
8c89e17c4f only use "long long" if there's a stdlib overload
[SVN r11516]
2014-05-31 21:56:48 -07:00
Jens Maurer
56f83da122 use BOOST_HAS_LONG_LONG
[SVN r11493]
2014-05-31 21:56:48 -07:00
Jens Maurer
a3b5a3129e port cstdint.hpp to HP-UX
[SVN r11175]
2014-05-31 21:56:48 -07:00
John Maddock
0ca5fbb950 commit of split-config, including any changes required to existing libraries (mainly regex).
[SVN r11138]
2014-05-31 21:56:48 -07:00
Beman Dawes
07f056e30b Add LL suffix to line 150 for long longs at suggestion of Toon Knapen
[SVN r10854]
2014-05-31 21:56:48 -07:00
Jens Maurer
6bc60a5b88 fix the "gcc 3.0 and long long" fix to check for the appropriate symbol
[SVN r10107]
2014-05-31 21:56:47 -07:00
Jens Maurer
7fded5db01 Don't use "long long" with gcc 3.0's shipped library, because it does not define operator<<(ostream&, long long) overloads.
[SVN r10095]
2014-05-31 21:56:47 -07:00
John Maddock
0712c3fb73 Preprocessor fix for VC6 + STLPort 4.1b6
[SVN r10087]
2014-05-31 21:56:47 -07:00
Jens Maurer
0afb64c810 HP-UX needs special attention because ULONG_LONG_MAX is not fully usable
[SVN r10080]
2014-05-31 21:56:47 -07:00
Jens Maurer
c5e74ef6b4 int64_t may not be defined on HP-UX when using gcc
[SVN r10067]
2014-05-31 21:56:47 -07:00
Jens Maurer
6eadf18b0c add HP-UX workaround
[SVN r10051]
2014-05-31 21:56:47 -07:00
Jens Maurer
48f3621ddc check for ULONGLONG_MAX as well
[SVN r9793]
2014-05-31 21:56:47 -07:00
Jeremy Siek
1b2df6436c removed backslashes in macros
[SVN r9097]
2014-05-31 21:56:47 -07:00
John Maddock
b1415e1864 cstdint: cygwin fixes for long long support
[SVN r8754]
2014-05-31 21:56:47 -07:00
Jens Maurer
d7e348c88c for int32_t and intmax_t, prefer "long" over "int" if both are 32bit
[SVN r8743]
2014-05-31 21:56:47 -07:00
Dave Abrahams
ee950b6b3c Fixes so that long long is recognized for GCC.
[SVN r8706]
2014-05-31 21:56:47 -07:00
Jens Maurer
de769d81f0 restricted Windows/gcc exclusion of int64_t to Cygwin, because MingW seems to work
[SVN r8641]
2014-05-31 21:56:47 -07:00
Jens Maurer
3ac70e7726 Folded stdint.h into cstdint.hpp to avoid ISO C99 incompatibilities
[SVN r8174]
2014-05-31 21:56:47 -07:00
John Maddock
a35e65284b addition of INTXX_C support to integer library
[SVN r7792]
2014-05-31 21:56:47 -07:00
Jens Maurer
e8936c8049 fix reversed BOOST_NO_INT64_T logic
[SVN r7780]
2014-05-31 21:56:47 -07:00
Beman Dawes
183e2f2db1 64-bit integer improvements from John Maddock
[SVN r7776]
2014-05-31 21:56:47 -07:00
Beman Dawes
68272cf96a This commit was generated by cvs2svn to compensate for changes in r4, which included commits to RCS files with non-trunk default branches.
[SVN r7621]
2014-05-31 21:56:46 -07:00
Glen Fernandes
5f3d94e4d2 Merge branch 'master' into develop 2014-05-31 21:44:10 -07:00
jzmaddock
ca17e7fe8a Regenerate docs. 2014-05-31 12:10:51 +01:00
jzmaddock
4c29ce672b Merge pull request #18 from Lastique/develop
Added BOOST_NORETURN macro to mark functions that do not return normally...
2014-05-31 12:07:59 +01:00
Andrey Semashev
e9c3612560 Added BOOST_NORETURN macro to mark functions that do not return normally.
The implementation is based on boost/exception/detail/attribute_noreturn.hpp.
2014-05-31 14:50:59 +04:00
jzmaddock
32b125612c Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-05-28 18:46:17 +01:00
jzmaddock
d52482247c Fix <regex> test case. 2014-05-28 18:45:37 +01:00
jzmaddock
658e372ef6 Add BOOST_NO_CXX11_REF_QUALIFIERS to more (mostly obsolete) compilers. 2014-05-28 18:45:07 +01:00
jzmaddock
809f64b63a Merge branch 'master' of https://github.com/akrzemi1/config into develop 2014-05-28 18:01:08 +01:00
Andrzej Krzemienski
d205efbb1b Added macro BOOST_NO_CXX11_REF_QUALIFIERS 2014-05-28 17:33:28 +02:00
Richard Dale
06445cd39c Merge branch 'update-cray-config' 2014-05-27 07:52:36 -05:00
Richard Dale
7035bef2c7 Merge branch 'develop' of github.com:boostorg/config into develop 2014-05-21 07:25:09 -05:00
Richard Dale
72dff45159 Add constants for memory models used by gnu "__ATOMIC..." intrinsics. These
should be supplied by the compiler, but until they are we will define them
here.

Once they are defined in the compiler we will need to start sorting out
compiler versions in cray.hpp
2014-05-20 15:38:03 -05:00
Noel Belcourt
917a870b63 Merge pull request #15 from MSOpenTech/winrt
Fixing failing test case boost_no_cxx11_hdr_regex.
2014-05-13 19:18:49 -06:00
Steve Gates
86b46bb01e Fixing failing test case boost_no_cxx11_hdr_regex. 2014-05-13 14:18:38 -07:00
Noel Belcourt
160fa0ec40 Merge pull request #14 from glenfe/develop
BOOST_NO_CXX11_ALLOCATOR should be defined with libc++ in C++03 mode
2014-05-08 20:06:51 -06:00
Glen Fernandes
ac11ae9890 Add test case for BOOST_NO_CXX11_ALLOCATOR 2014-05-08 11:53:50 -07:00
Glen Fernandes
c89ac48295 BOOST_NO_CXX11_ALLOCATOR should be defined with libc++ in C++03 mode 2014-05-08 11:13:43 -07:00
jzmaddock
0b75ce0405 Update comments to reflect https://svn.boost.org/trac/boost/ticket/9595 2014-04-24 11:32:11 +01:00
jzmaddock
8a5dfefeb6 Merge branch 'develop' 2014-04-10 10:42:40 +01:00
jzmaddock
654762003e Header <regex> is finally working (probably) in gcc-4.9.
Add better tests for it as well.
2014-03-25 17:12:46 +00:00
jzmaddock
855d4ae40f Merge pull request #12 from Lastique/patch-1
Mark <regex> unusable for all libstdc++ versions
2014-03-22 16:55:11 +00:00
Andrey Semashev
0b8b87a632 Mark <regex> unusable for all libstdc++ versions
The <regex> header is present but the regex implementation is incomplete and fails with regex_error exceptions in runtime for many valid patterns. So define BOOST_NO_CXX11_HDR_REGEX for it unconditionally.

See: http://thread.gmane.org/gmane.comp.lib.boost.devel/250010
2014-03-22 19:38:49 +03:00
jzmaddock
05f286dde4 Merge branch 'develop' 2014-03-13 17:09:18 +00:00
jzmaddock
80ffbcb8c3 Merge pull request #10 from danieljames/develop
Update version.hpp for Boost 1.56.
2014-03-06 09:12:39 +00:00
Daniel James
c58ee35f24 Setup 1.56 (from Marshall) 2014-03-05 22:11:03 +00:00
jzmaddock
3dd3a9c46c Add dependency tracking info. 2014-02-20 11:44:56 +00:00
jzmaddock
aad8233b4b Add dependency information to headers. 2014-02-20 11:42:18 +00:00
jzmaddock
6671ba8b24 Create merge point for master->develop 2014-02-13 10:54:47 +00:00
jzmaddock
3284d4eb3e Merge pull request #9 from glenfe/develop
Dinkumware's BOOST_NO_CXX11_STD_ALIGN at < 610
2014-02-13 09:27:54 +00:00
Glen Fernandes
e853f2714c Dinkumware's BOOST_NO_CXX11_STD_ALIGN at < 610
Dinkumware 540 has std::align but it is a non-conforming implementation.
2014-02-12 18:05:29 -08:00
Peter Dimov
2547ba8d8c Update macro_reference.qbk 2014-02-11 18:28:58 +02:00
Peter Dimov
d9d19688a1 Add test files as well 2014-02-11 18:25:38 +02:00
Peter Dimov
9c117007ba Add BOOST_NO_CXX11_ADDRESSOF, BOOST_NO_CXX11_STD_ALIGN 2014-02-11 18:20:31 +02:00
Daniel James
820909bc48 Revert "Delete file that should have been removed by previous merge."
This reverts commit f7a37d1d2e.
It was the wrong file, the correct files was deleted in
aa82a32942.
2014-02-10 20:28:56 +00:00
jzmaddock
aa82a32942 Remove dead file. 2014-02-10 19:14:13 +00:00
jzmaddock
f7a37d1d2e Delete file that should have been removed by previous merge. 2014-02-10 19:08:23 +00:00
jzmaddock
d196de8eb0 Merge branch 'develop' 2014-02-08 16:51:25 +00:00
jzmaddock
8660f77552 Tentative fix for Clang build configuration issue. 2014-02-07 13:08:03 +00:00
jzmaddock
0f47923626 Merge branch 'develop' 2014-02-06 19:15:59 +00:00
jzmaddock
08392fd952 Update test for C++11 std::allocator to check that member rebind is a template alias. Update config headers to match. 2014-02-06 13:29:59 +00:00
Noel Belcourt
9ea9842ace Merge pull request #5 from Belcourt/develop
Add check that BOOST_HAS_LONG_LONG is supported on Darwin
2014-02-05 10:32:07 -07:00
K. Noel Belcourt
f27ef7207a Add check that BOOST_HAS_LONG_LONG is supported on Darwin
before enabling the macro.  Apple helpfully supplies this
macro (__DARWIN_NO_LONG_LONG) if long long type is supported.
This to handle case where compiling with -pedantic causes
compiler errors because it enforces ISO compliance
(c++98 in this case).
2014-02-04 17:32:06 -07:00
jzmaddock
e9ebccdb74 Merge branch 'develop' of https://github.com/boostorg/config into develop 2014-01-26 12:04:07 +00:00
jzmaddock
902102ee69 Add error message when attempting to use a deprecated compiler. 2014-01-26 10:16:19 +00:00
jzmaddock
9647c8ddb4 Revert "Config: Remove obsolete MSVC version check"
This reverts commit 9334a55617.
2014-01-26 10:04:44 +00:00
jzmaddock
60684bfc2e Revert "Remove obsolete MSVC check from pragma guard"
This reverts commit 54353a7d89.
2014-01-26 10:04:22 +00:00
jzmaddock
4979026137 Revert "Require compiler support for partial template specialization."
This reverts commit c26a532032.
2014-01-26 10:04:00 +00:00
jzmaddock
fbbb46a5f3 Revert "Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
This reverts commit 0e563f0db8.
2014-01-26 10:03:40 +00:00
Edward Diener
800d3d5416 Add specific 'const' for member function declared as a 'constexpr' in order to conform to C++14. 2014-01-14 22:17:54 -05:00
Edward Diener
86ca46f142 Workaround for older versions of clang. 2013-12-16 08:08:53 -05:00
Edward Diener
c75b0e9d8b Merge branch 'develop' of https://github.com/boostorg/config into develop 2013-12-14 15:06:55 -05:00
Edward Diener
0762a554c6 Corrected spelling change in comment 2013-12-14 15:06:08 -05:00
jzmaddock
743fa7e129 Fix two more typos. 2013-12-13 19:39:42 +00:00
jzmaddock
958c9f8a51 Add some const qualifiers in the hopes it will fix clang C++14 mode failures. 2013-12-13 19:13:48 +00:00
jzmaddock
1c3cec7a15 Fix buggy test cases.
VC++ has <atomic> in recent versions.
2013-12-13 18:51:32 +00:00
jzmaddock
62b1bb07d2 Apply patch from https://svn.boost.org/trac/boost/ticket/9410 2013-12-13 13:47:50 +00:00
jzmaddock
b0ed886eaa Fix for nvcc, see https://svn.boost.org/trac/boost/ticket/9392 2013-12-13 13:27:51 +00:00
jzmaddock
650c926c48 Reorganize WinCE config based on https://svn.boost.org/trac/boost/ticket/9095. 2013-12-13 09:54:35 +00:00
jzmaddock
50c736c9ab GCC-4.7x at least on Mingw does not have a conforming <atomic> header - at least not that you can link to. 2013-12-13 09:53:06 +00:00
jzmaddock
c9c7c832c1 Merge branch 'develop' of https://github.com/boostorg/config into develop 2013-12-12 19:32:22 +00:00
jzmaddock
30f4ab53e5 Fix typo in macro name - should be BOOST_NO_ATOMIC_SMART_PTR.
Add BOOST_NO_CXX11_HRD_ATOMIC.
Regenerate docs.
See https://svn.boost.org/trac/boost/ticket/8929.
2013-12-12 19:32:06 +00:00
Edward Diener
49fc1e99ef Merge branch 'develop' of https://github.com/boostorg/config into develop 2013-12-11 18:54:56 -05:00
Edward Diener
ceafb39c24 For VC++ and clang-cl if _HAS_EXCEPTIONS is 0, then the <exception> header must be manually included before the <typeinfo> header to avoid compiler errors. 2013-12-11 18:53:21 -05:00
jzmaddock
ba89303d51 Merge branch 'develop' of https://github.com/boostorg/config into develop 2013-12-10 18:22:25 +00:00
jzmaddock
9a1d43cbfc Apply patch from 62c63fc58f 2013-12-10 18:21:37 +00:00
jzmaddock
5668e9060b Merge pull request #1 from rsdale/develop
Suppress auto declarations for current Cray C++
2013-12-10 09:17:02 -08:00
jzmaddock
c4e0b79c9d Fix typo from https://github.com/boostorg/config/pull/2 2013-12-08 12:53:57 +00:00
U-Acer-Laptop\john
1ad0f79233 Create first merge point for Git 2013-12-07 18:25:37 +00:00
Richard Dale
105b70ae25 Suppress auto declarations for current Cray C++ 2013-12-06 12:24:34 -06:00
Edward Diener
deedcb848f Clang using VC++ RTL currently does not support char16_t or char32_t
[SVN r86675]
2013-11-13 12:23:33 +00:00
Tim Blechmann
1a1d2f17eb config: clang - detect support for int128
[SVN r86497]
2013-10-28 10:06:20 +00:00
Beman Dawes
19d3287bf6 Merge from trunk, thus enabling support for VC++ 2013.
[SVN r86432]
2013-10-25 21:57:04 +00:00
Beman Dawes
67f6b934f1 A complier bug related to overloading was causing boost signals2 and libraries that depend on signals2 to fail, so BOOST_NO_CXX11_VARIADIC_TEMPLATES was defined for VC++ 2013 as a sledge-hammer workaround. Now that the exact cause of the problem is known, BOOST_NO_CXX11_VARIADIC_TEMPLATES has been moved to the correct (i.e. pre-2013 RC) location. A specific workaround in signals2 will be applied separately.
[SVN r86408]
2013-10-23 20:04:30 +00:00
John Maddock
da1b36cedc Refs #9279.
[SVN r86394]
2013-10-22 17:32:53 +00:00
Stephen Kelly
0e563f0db8 Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
These evaded scripting.

[SVN r86249]
2013-10-11 23:22:36 +00:00
Stephen Kelly
c26a532032 Require compiler support for partial template specialization.
Remove support for the mac programmers workshop entirely. Bump
the sunpro requirement to version 5.4. Version 5.3 seems to have
had some bugs with BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION, so
bump above that in the abundance of caution.

This allows the removal of lots of workaround code:

 src/boost-trunk{master}$ ../kf5/remove_def.py BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 src/boost-trunk{master}$ git diff --shortstat
 192 files changed, 4798 deletions(-)

[SVN r86241]
2013-10-11 23:10:09 +00:00
Stephen Kelly
54353a7d89 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Stephen Kelly
9334a55617 Config: Remove obsolete MSVC version check
[SVN r85902]
2013-09-25 13:51:27 +00:00
Beman Dawes
7ea00f059e Variadic templates are supposed to be supported by VC++ 2013 but VC++ 2013 RC variadic support is causing boost regression test failures for signals2 and several of its dependencies, so continue to define BOOST_NO_CXX11_VARIADIC_TEMPLATES. Also, use _MSC_FULL_VER < 180020827 as more conservative to distinguish the RC release from earlier releases.
[SVN r85802]
2013-09-20 14:39:56 +00:00
John Maddock
0a34d7b07e Merge all Boost.Config changes from Trunk.
[SVN r85725]
2013-09-17 16:55:51 +00:00
Beman Dawes
153f0c9fb3 Update Microsoft compiler and Dinkumware library support up for the 2013 RC release. Remove support for the November 2012 CTP. Anyone using that release or the June 2013 Preview release for Boost development should upgrade to the 2013 RC release. See http://msdn.microsoft.com/en-us/library/vstudio/hh409293%28v=vs.120%29.aspx for details.
[SVN r85722]
2013-09-17 12:24:36 +00:00
Daniel James
806db13db7 Merge removing support for old compilers.
[SVN r85715]
2013-09-16 22:25:12 +00:00
John Maddock
c81d5731c3 Fix Intel 14 config in non-c++11 mode
[SVN r85620]
2013-09-09 16:16:31 +00:00
John Maddock
d0cbc105e2 Update for intel-14.0
[SVN r85606]
2013-09-08 16:10:04 +00:00
Andrey Semashev
12fccda6e6 Merged recent changes from trunk.
[SVN r85605]
2013-09-08 13:57:39 +00:00
John Maddock
143464f5be Fix spelling of macro names (patch from #9071).
Regenerate docs.
Fixes #9071.

[SVN r85602]
2013-09-08 08:53:01 +00:00
Andrey Semashev
47aa363f9f Added #pragma once in case if it speeds up compilation.
[SVN r85546]
2013-09-01 19:07:06 +00:00
John Maddock
f207dd034b Fix for C++11 mode.
[SVN r85355]
2013-08-15 11:21:20 +00:00
Daniel James
19dc5405d6 Restore BOOST_COMPILER_VERSION for old Visual C++.
They don't hurt, and might be useful to someone.

[SVN r85276]
2013-08-10 12:43:26 +00:00
Daniel James
07dc9f9e9e Fix syntax error in gcc config.
[SVN r85275]
2013-08-10 12:43:07 +00:00
Daniel James
330ac02c14 Remove BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENT
This makes boost::config independent of boost::core in the
modularized repos.

(from Stephen Kelly)

Daniel James: The original patch included changes for several libraries.
I'll deal with them later, they shouldn't break since the changes were to
remove code that won't be activated any more.

[SVN r85274]
2013-08-10 12:42:47 +00:00
Daniel James
ffee60eade Require a compiler which does not need BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
This was defined independent of the compiler version. It is not known
if this is a true limitation of the digital mars compiler in all
versions, or a bug in this header.

(from Stephen Kelly)

Daniel James: I checked the latest version of digital mars. It mostly supports
explicit function template arguments, apart when a function is overloaded for
type and value template arguments, which causes the config test to fail.  So in
most cases the macro isn't needed.

[SVN r85273]
2013-08-10 12:42:22 +00:00
Daniel James
637cd1e6db Bump minimum compiler requirements.
This requirements bump will allow increasing modularization of
the boost libraries. This change is still extremely conservative. To
allow proper modularization, the version requirements should be
increased much more.

(from Stephen Kelly)

[SVN r85272]
2013-08-10 12:41:58 +00:00
John Maddock
06441f70b8 Ooops, previous commit broke Intel on Win32.
[SVN r85254]
2013-08-09 16:12:38 +00:00
John Maddock
0bad5603bd Update for Intel-13.1
[SVN r85252]
2013-08-09 12:26:39 +00:00
John Maddock
8b864b2362 Update for Intel 13.1 July 2013 release.
[SVN r85249]
2013-08-09 08:15:45 +00:00
John Maddock
0f32bdc0e0 Apply patch from #8647.
Fixes #8647.

[SVN r85154]
2013-07-24 17:19:05 +00:00
John Maddock
6f11f6b53f Define BOOST_HAS_STDINT_H for PGI on Linux.
Fixes #6724.

[SVN r85138]
2013-07-23 17:40:15 +00:00
John Maddock
5d792c13e7 Apply patches from #8753.
Fixes #8753.

[SVN r85137]
2013-07-23 17:32:10 +00:00
John Maddock
c42fbefc03 Use underscores in attribute names.
Fixes #8849.

[SVN r85136]
2013-07-23 17:26:41 +00:00
Andrey Semashev
abe73ce723 Merged recent changes from trunk.
[SVN r85088]
2013-07-20 17:17:10 +00:00
Marshall Clow
36502dd372 Updating version to 1.55
[SVN r85043]
2013-07-15 13:39:39 +00:00
John Maddock
1e272f1fa1 Use updated macro names for C++11 detection.
Fixes #8747.

[SVN r84927]
2013-07-01 17:19:17 +00:00
Marshall Clow
9d25f012ab Bump version to 1.55
[SVN r84924]
2013-07-01 17:05:47 +00:00
Andrey Semashev
f0b6a525e0 To be on the safe side, disabled trailing function result types on Windows, since MSVC does not support it and Intel compiler by default disables features not supported by MSVC.
[SVN r84882]
2013-06-22 13:57:54 +00:00
Andrey Semashev
66790b7714 Corrected BOOST_NO_CXX11_TRAILING_RESULT_TYPES macro name.
[SVN r84874]
2013-06-22 12:31:58 +00:00
Andrey Semashev
23579c60d2 Added BOOST_NO_CXX11_INLINE_NAMESPACES and BOOST_NO_CXX11_TRAILING_RESULT_TYPES macros. Also corrected some tests that were using outdated testcase namespaces.
[SVN r84873]
2013-06-22 12:23:09 +00:00
Andrey Semashev
411399ec60 Added BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS, BOOST_DEFAULTED_FUNCTION and BOOST_DELETED_FUNCTION macros for portable declaration of defaulted and deleted functions.
[SVN r84798]
2013-06-15 17:34:04 +00:00
Andrey Semashev
75d100a4ac Added BOOST_HAS_PRAGMA_ONCE for compilers that support it. The macro was already defined for DMC, but not for other compilers and was not documented.
[SVN r84796]
2013-06-15 16:40:46 +00:00
Andrey Semashev
1c3d02c469 Added BOOST_NO_CXX11_ALIGNAS, BOOST_ALIGNMENT and BOOST_NO_ALIGNMENT macros.
[SVN r84794]
2013-06-15 13:48:07 +00:00
Andrey Semashev
c4960dfdb8 Added printing BOOST_NOINLINE.
[SVN r84680]
2013-06-07 20:08:28 +00:00
Andrey Semashev
f419d4ffd5 Added BOOST_NOINLINE, BOOST_LIKELY and BOOST_UNLIKELY macros.
[SVN r84679]
2013-06-07 20:05:18 +00:00
John Maddock
1bc3e46574 Merge config from Trunk - previous merge was incomplete.
[SVN r84505]
2013-05-26 11:19:10 +00:00
John Maddock
d8973bac08 Merge config doc and test updates.
[SVN r84462]
2013-05-24 17:07:06 +00:00
John Maddock
5925c5a12e Merge fix for Intel on Win32.
[SVN r84382]
2013-05-20 08:14:59 +00:00
Michel Morin
8e79155e47 Add a comment about __GNUC__ macro in clang
[SVN r84310]
2013-05-16 23:36:30 +00:00
John Maddock
721150455a Fix for Intel-14 Beta on Win32.
[SVN r84279]
2013-05-14 10:54:43 +00:00
Michel Morin
bfcd758518 Use an attribute name with double underscores to avoid macro interference.
[SVN r84245]
2013-05-12 13:53:14 +00:00
John Maddock
9cfe4710d7 Add new macro BOOST_NO_CXX11_USER_DEFINED_LITERALS.
Regenerate tests and docs.

[SVN r84074]
2013-04-28 18:11:43 +00:00
John Maddock
583ed60886 Apply patch from #8494.
Refs #8494.

[SVN r84053]
2013-04-26 10:36:15 +00:00
John Maddock
bffa0772d8 Apply patch from #8408.
Fixes #8408.

[SVN r83958]
2013-04-18 17:50:17 +00:00
John Maddock
1f5100001f Apply patch from #8401.
Fixes #8401.

[SVN r83957]
2013-04-18 16:14:28 +00:00
John Maddock
40f3f33d19 Add libc++ version detection.
[SVN r83925]
2013-04-16 12:01:18 +00:00
Michel Morin
a61cda699e gcc 4.8.1 and 4.9.0 support N3276 decltype feature
[SVN r83625]
2013-03-29 03:22:28 +00:00
John Maddock
dc806c09b2 Merge config changes from Trunk.
[SVN r83497]
2013-03-19 18:36:02 +00:00
John Maddock
3ce54f0e8b Remove support for no numeric_limits: the old header was not Boost licence compatible, and is almost certainly no longer used by anyone anyway.
[SVN r83411]
2013-03-12 09:24:08 +00:00
John Maddock
12910d6cb6 Fix spelling mistake.
[SVN r83357]
2013-03-08 11:41:04 +00:00
John Maddock
fb518941cc Apply patch from #8185.
Fixes #8185.

[SVN r83274]
2013-03-03 12:57:20 +00:00
John Maddock
d4c041fbcc Merge changes from Trunk.
Fixes #6013.
Fixes #7151.
Fixes #7359.
Fixes #7389.
Fixes #7452.
Fixes #7528.
Fixes #7703.
Fixes #7841.
Fixes #7898.
Fixes #7938.
Fixes #8048.

[SVN r83139]
2013-02-24 19:07:59 +00:00
John Maddock
afa86fb99d Apply patch from 7938.
Refs #7938.

[SVN r83137]
2013-02-24 16:53:49 +00:00
John Maddock
082f493831 Add comment on change.
Refs #8048.

[SVN r83014]
2013-02-19 17:49:35 +00:00
John Maddock
28333566ee Fix __Int128 support on CUDA.
Exclude BOOST_GCC from getting defined on CUDA.
Refs #8048.
Refs #7841.

[SVN r83012]
2013-02-19 17:11:36 +00:00
John Maddock
806733e22c Apply patch from 7938.
Refs #7938.

[SVN r83010]
2013-02-19 16:42:49 +00:00
John Maddock
16c1d684c0 Apply patch from 7452.
Refs #7452.

[SVN r83009]
2013-02-19 16:33:14 +00:00
John Maddock
02602b9139 Add new macro BOOST_GCC as per #7841.
Refs #7841.

[SVN r83008]
2013-02-19 16:26:06 +00:00
John Maddock
f6a50c0ed9 Apply patch from 7898.
REfs #7898.

[SVN r83006]
2013-02-19 16:12:27 +00:00
John Maddock
e1f956a762 Fix for __STDC_LIMIT_MACROS already defined.
Refs #7389.

[SVN r82998]
2013-02-19 13:15:41 +00:00
John Maddock
97b4d85e75 Move Intel up the selection list so it's not mistaken for clang.
Refs #7359.

[SVN r82997]
2013-02-19 13:13:12 +00:00
Marshall Clow
d6a0e39484 Bump the version for 1.54
[SVN r82817]
2013-02-11 14:39:37 +00:00
Marshall Clow
a9f844c192 Change version to 1.54.0
[SVN r82735]
2013-02-04 18:15:12 +00:00
K. Noel Belcourt
2b85686b48 Enable support for version 12.1.
[SVN r82710]
2013-02-04 05:19:41 +00:00
Beman Dawes
55fa3a8e88 Add BOOST_MSVC_ENABLE_2012_NOV_CTP macro to allow users to explicitly enable use of VC++ November 2012 Community Technology Preview. C++11 features supplied by this CTP are not enabled by default since they represent unsupported alpha-level code that should not be used for production work.
[SVN r82514]
2013-01-17 02:18:31 +00:00
Beman Dawes
50a562867e Add BOOST_NOEXCEPT_OR_NOTHROW
[SVN r82331]
2013-01-03 14:55:24 +00:00
Marshall Clow
c8e0bbdd8a Deprecate config macros BOOST_HAS_STATIC_ASSERT, BOOST_HAS_VARIADIC_TMPL, BOOST_HAS_RVALUE_REFS, BOOST_HAS_CHAR_16_T and BOOST_HAS_CHAR_32_T; Update inspect tool and regenerate docs
[SVN r82237]
2012-12-28 17:11:59 +00:00
Marshall Clow
a0272a7c68 Minor text rearrangement; no functionality change
[SVN r82101]
2012-12-19 17:42:39 +00:00
Marshall Clow
72f0f5bd7d Deprecate config macros BOOST_HAS_STATIC_ASSERT, BOOST_HAS_VARIADIC_TMPL, BOOST_HAS_RVALUE_REFS, BOOST_HAS_CHAR_16_T and BOOST_HAS_CHAR_32_T
[SVN r82098]
2012-12-19 15:28:24 +00:00
Marshall Clow
689a8247e0 Updated the Docs for BOOST_HAS_RVALUE_REFS (thanks Peter!), minor tweaks to suffix.hpp
[SVN r81878]
2012-12-12 16:58:26 +00:00
John Maddock
6e9c372d91 Suppress a lot of GCC warnings.
[SVN r81830]
2012-12-10 18:39:11 +00:00
John Maddock
c87231f411 Merge config updates from Trunk.
[SVN r81827]
2012-12-10 17:26:30 +00:00
Marshall Clow
13f7c64272 Update Dinkumware config with info for VC 2012; Refs #7695
[SVN r81613]
2012-11-28 15:56:45 +00:00
Marshall Clow
807f342f2d A few of the C++11 configuration tests had tests for features that didn't make it into the C++11 standard; remove those tests
[SVN r81612]
2012-11-28 15:00:01 +00:00
Marshall Clow
513a54edea removed tests for deprecated macro BOOST_NO_STD_UNORDERED from Boost.Config
[SVN r81596]
2012-11-27 20:51:48 +00:00
Marshall Clow
f1d572cf03 Changed version to 1.53
[SVN r81305]
2012-11-12 14:24:38 +00:00
Marshall Clow
c75a778214 Bump version # to 1.53.0
[SVN r81204]
2012-11-05 16:56:00 +00:00
Michel Morin
d53238e902 Adding BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT; fixes #7559
[SVN r81068]
2012-10-26 16:23:45 +00:00
John Maddock
31b0edb997 Add docs for BOOST_HAS_INT128.
Regenerate docs.

[SVN r81065]
2012-10-25 12:31:45 +00:00
John Maddock
bdfa0e0600 Add initial support for __int128 to Config and TypeTraits
[SVN r81064]
2012-10-25 12:21:19 +00:00
Michel Morin
3fd02775bb Adding BOOST_SYMBOL_VISIBLE macro; refs #7559
[SVN r81052]
2012-10-24 00:24:06 +00:00
Eric Niebler
fdf239f069 latest config updates for gcc-4.4 and msvc-11.0
[SVN r80711]
2012-09-26 18:46:08 +00:00
Michel Morin
1e12433f93 Revert [80453]. N3276 decltype support on VC++11 is not complete.
[SVN r80690]
2012-09-24 13:42:27 +00:00
Eric Niebler
ec9c529210 gcc-4.4 doesn't correctly implement sfinae-for-expressions
[SVN r80674]
2012-09-23 18:16:38 +00:00
Michel Morin
4d142c758c Fix typo in docs and regenerate; fixes #7351
[SVN r80480]
2012-09-10 15:23:41 +00:00
Michel Morin
30b8968ff8 VC++ 11 (aka 2012) has N3276 decltype support
[SVN r80453]
2012-09-08 16:28:34 +00:00
Daniel James
eca2375d5f Merge 1.52 initialization
[SVN r80285]
2012-08-28 17:35:48 +00:00
Marshall Clow
145a453580 Bump version number to 1.52
[SVN r80271]
2012-08-28 01:07:55 +00:00
Marshall Clow
38b6fbc1e7 Noted that VS2012 has TR1 unordered map and set; thanks to NuSkooler for testing
[SVN r80143]
2012-08-22 18:21:29 +00:00
Marshall Clow
ed2aaa3651 Added checking for deprecated macros in the inspect tool
[SVN r79723]
2012-07-24 17:27:03 +00:00
Marshall Clow
bc0114f7c8 Merge rework of C++11 config macros to release
[SVN r79537]
2012-07-15 15:59:05 +00:00
Marshall Clow
9740187eec fix (another) bad namespace that I introduced into config tests; affects only C++11 tests
[SVN r79509]
2012-07-14 18:04:36 +00:00
Marshall Clow
4f11d6f2af fix bad namespace that I introduced into config tests; affects only C++11 tests
[SVN r79508]
2012-07-14 18:02:03 +00:00
John Maddock
1b1589b54d Merge changes from trunk:
Fix PDF install rule so that it's explicit and automatically invokes a PDF build when specified on the command line.
So "bjam pdfinstall" will now build and install the PDF to the current directory.
This works around some problems that the previous versions had if the user did not have an FO processor installed (basically Daniel James was unable to build the HTML docs for the distribution if the pdfinstall rule was implicit).


[SVN r79500]
2012-07-14 16:05:50 +00:00
John Maddock
49aa704b3e Fix PDF install rule so that it's explicit and automatically invokes a PDF build when specified on the command line.
So "bjam pdfinstall" will now build and install the PDF to the current directory.
This works around some problems that the previous versions had if the user did not have an FO processor installed (basically Daniel James was unable to build the HTML docs for the distribution if the pdfinstall rule was implicit).

[SVN r79492]
2012-07-14 11:21:03 +00:00
John Maddock
ecdb77c48a Don't test inequality of NaN's unless IEE compliance is claimed.
[SVN r79471]
2012-07-13 16:13:26 +00:00
Paul A. Bristow
318629fbae Update to BOOST_NO_CXX11_NUMERIC_LIMITS in macro reference
[SVN r79456]
2012-07-12 16:03:51 +00:00
Marshall Clow
c4b13231ba Deprecated BOOST_NO_NUMERIC_LIMITS_LOWEST; use BOOST_NO_CXX11_NUMERIC_LIMITS instead
[SVN r79452]
2012-07-12 13:57:00 +00:00
Beman Dawes
043059d96b Add BOOST_NO_CXX11_RANGE_BASED_FOR macro. Fix a bunch of .ipp files with incomplete _cxx11 name changes.
[SVN r79404]
2012-07-10 19:10:08 +00:00
Marshall Clow
c77cda2ea4 Minor update for suffix.hpp; reordering some decls
[SVN r79401]
2012-07-10 14:04:42 +00:00
Marshall Clow
20b319483f Rename a bunch of C++11 configuration macros to include 'CXX11' in the name; preserve old macro names for compatibility, but mark them as deprecated. No functionality change intended
[SVN r79400]
2012-07-10 13:57:24 +00:00
John Maddock
44e8ed4c2f Apply patch from #6900.
Fixes #6900.

[SVN r79377]
2012-07-09 11:18:46 +00:00
John Maddock
36db37a70a Remove duplicate macro doc.
Regenerate docs.
Fixes #7071.

[SVN r79376]
2012-07-09 11:15:03 +00:00
John Maddock
dc5535edbd Apply patch from #7056.
Fixes #7056.

[SVN r79375]
2012-07-09 11:11:53 +00:00
John Maddock
2058930b04 Apply patch from #6537.
Fixes #6537.

[SVN r79374]
2012-07-09 11:08:07 +00:00
Daniel James
38fbec8fc6 Merge 1.51 initialisation to release.
[SVN r79236]
2012-07-02 21:35:04 +00:00
Daniel James
d9a9dbbaae Initialize 1.51
[SVN r79234]
2012-07-02 21:23:36 +00:00
John Maddock
816c3e22ec Merge patches from Trunk.
[SVN r78692]
2012-05-27 17:48:27 +00:00
Marshall Clow
e0d8861745 Revert changes inadvertently made in last commit
[SVN r78688]
2012-05-27 15:27:25 +00:00
Marshall Clow
9b4dd29693 Cleaned up things that the inspect tool found in Boost.Algorithm. No functionality change
[SVN r78687]
2012-05-27 15:24:09 +00:00
K. Noel Belcourt
c84a7b363f Re-enable pthread yield for PGI.
[SVN r78640]
2012-05-26 18:31:05 +00:00
Michel Morin
e8f9424ec5 Fix clang's config:
* `typeid` is useless when `-fno-rtti` is turned on.
* Protect `BOOST_NO_RTTI` and `BOOST_NO_TYPEID` from redefinition, as done for `BOOST_NO_EXCEPTIONS`.

[SVN r78510]
2012-05-19 12:20:31 +00:00
John Maddock
9d2a5f4d44 Merged changes from Trunk: mostly the addition of new macros.
[SVN r78478]
2012-05-15 11:57:21 +00:00
John Maddock
efbd9a2552 VC11 still doesn't support value initialization correctly.
[SVN r78468]
2012-05-14 11:46:38 +00:00
John Maddock
eb15b40323 Make C++11 smart ptrs a GCC-4.4 feature.
[SVN r78263]
2012-04-30 11:14:44 +00:00
John Maddock
8a0c28bb29 Fix some C++11 config options.
[SVN r78217]
2012-04-27 11:32:39 +00:00
John Maddock
ca0b295449 Fix up GCC-4.7.0 config options.
Change boost_no_cxx11_allocator.ipp to only test for allocator related features.

[SVN r78194]
2012-04-25 17:18:23 +00:00
John Maddock
95068b4510 Add four new config macros:
BOOST_NO_CXX11_ALLOCATOR
BOOST_NO_CXX11_ATOMIC_SMART_PTR
BOOST_NO_CXX11_HDR_FUNCTIONAL
BOOST_NO_CXX11_SMART_PTR

[SVN r78132]
2012-04-22 10:57:10 +00:00
Michel Morin
5e8f4347fd Use a newly added querying macro for BOOST_NO_DECLTYPE_N3276 on clang.
[SVN r77934]
2012-04-12 13:10:47 +00:00
Michel Morin
9e23fbc66f Clang now has a querying macro for BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS. Use this querying macro and remove version checks.
[SVN r77752]
2012-04-04 14:20:14 +00:00
Michel Morin
6074729601 Appease clang for BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS.
The use of a version check to determine the feature support is not recommended in clang. But we do the version check, since clang does not have a querying macro for this feature. This is an unfortunate workaround. We need to observe carefully the effect of the version check on vendor versions of clang (other than the LLVM project's clang).

[SVN r77649]
2012-03-30 17:47:34 +00:00
Michel Morin
33437e724e Avoid redefinition of BOOST_NO_EXCEPTIONS; fixes #6740
[SVN r77643]
2012-03-30 12:51:49 +00:00
Vicente J. Botet Escriba
f52f0273a9 Config: Try to fix 6354: PGI: Compiler threading support is not turned on
[SVN r77487]
2012-03-22 21:31:50 +00:00
Lorenzo Caminiti
1d157f3544 Boost.Config does not define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS for MSVC because MSVC supports local classes as template parameters.
[SVN r77486]
2012-03-22 21:08:25 +00:00
Lorenzo Caminiti
d0ae31f7f9 Split Utility/IdentityType and Functional/OverloadedFunction tests into smaller tests.
Updated docs for ScopeExit, LocalFunction, Utility/IdentityType, and Functional/OverloadedFunction.

[SVN r77484]
2012-03-22 20:54:20 +00:00
Lorenzo Caminiti
85751c6911 Added BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS macro to Boost.Config, updated tests and docs.
(Plus I had to run dos2unix on auto generated config_info.cpp because of "inconsistent line ending" SVN error...)

[SVN r77457]
2012-03-21 17:32:36 +00:00
Daniel James
157c39e544 Merge 1.50 initialization to release.
[SVN r77374]
2012-03-18 16:17:54 +00:00
Daniel James
d2514efeca Initialize 1.50
[SVN r77373]
2012-03-18 15:52:58 +00:00
Michel Morin
cb74c3b9e9 Minor documentation fix
[SVN r77311]
2012-03-12 00:31:50 +00:00
Michel Morin
4dfddca1e5 Fix typos in docs
[SVN r77295]
2012-03-10 18:06:04 +00:00
Michel Morin
8036af59ab Remove unused table header element in docs
[SVN r77287]
2012-03-10 06:04:51 +00:00
Marshall Clow
0ccfe4244e Deprecated BOOST_NO_STD_UNORDERED; use BOOST_NO_CXX11_HDR_UNORDERED_SET instead
[SVN r77274]
2012-03-08 18:52:35 +00:00
Marshall Clow
662b7ff800 Updated the Quickbook to show macro changes; regenerated the HTML docs
[SVN r77264]
2012-03-08 15:42:11 +00:00
John Maddock
9150db8f0f Apply Michel Morin's decltype patch.
[SVN r77256]
2012-03-07 09:28:11 +00:00
John Maddock
c402b154c9 Add missing include.
Fixes #6658.

[SVN r77255]
2012-03-07 09:22:45 +00:00
Marshall Clow
12fcc9cde1 Fix typo in namespace; thanks to Michel Morin for the catch
[SVN r77254]
2012-03-07 04:52:57 +00:00
Marshall Clow
900126573f Rename all the no_0x tests to no_cxx11 to match the options that they are testing. No functionality change intended
[SVN r77195]
2012-03-04 03:10:54 +00:00
Marshall Clow
66d9f7dc00 Deprecate all the 'BOOST_NO_OX_*' macros in favor of 'BOOST_NO_CXX11_*' versions. Update tests. Old macros remain for compatibility (for the nonce)
[SVN r77194]
2012-03-04 03:00:49 +00:00
Marshall Clow
139bd2213b Deprecate BOOST_NO_INITIALIZER_LISTS; use BOOST_NO_0X_HDR_INITIALIZER_LIST instead
[SVN r77157]
2012-03-03 00:34:17 +00:00
John Maddock
8e51b05e1f Set BOOST_HAS_LONG_LONG for Clang in case it doesn't get auto-detected later.
Fixes #6636.

[SVN r77147]
2012-03-01 11:34:44 +00:00
John Maddock
5f9b522ede Apply version check patch.
Fixes #6429.

[SVN r76774]
2012-01-29 12:56:58 +00:00
John Maddock
e1657372eb Fix for thread detection with gcc-4.7 (beta) on Win32.
[SVN r76757]
2012-01-28 18:38:49 +00:00
John Maddock
8009780247 Fix _MSC_VER version checks are current form doesn't work for MIPS cross compiler.
Fixes #6429.

[SVN r76595]
2012-01-20 18:18:04 +00:00
John Maddock
98bba8b5f2 Enable thread support unconditionally on Win32 - it's not clear that this is the right thing to do, but it does seem to be needed for gcc-4.7 on Mingw and Cygwin.
Fixes #6165.

[SVN r76594]
2012-01-20 17:36:27 +00:00
K. Noel Belcourt
5b96a1a80e Fix PGI threading.
[SVN r76502]
2012-01-14 23:31:06 +00:00
K. Noel Belcourt
a5086b75d7 Fixes for PGI threading and ublas.
[SVN r76468]
2012-01-13 20:47:36 +00:00
K. Noel Belcourt
b7ff4bb2aa Various sundry PGI fixes to get Boost.config working.
[SVN r76464]
2012-01-13 19:16:02 +00:00
John Maddock
6f18ead6db Merge config changes from Trunk.
[SVN r76339]
2012-01-07 17:29:04 +00:00
John Maddock
4c382635a1 Fix Intel-12.1 failures on Win32.
[SVN r76317]
2012-01-05 10:10:24 +00:00
K. Noel Belcourt
5d04c0e793 Remove bogus comment, __PGIC__ is defined in recent PGI compilers.
[SVN r76313]
2012-01-04 23:43:32 +00:00
K. Noel Belcourt
7be7a49cef Fix typo in pgi compiler version.
[SVN r76312]
2012-01-04 23:42:11 +00:00
John Maddock
e8ee9a7843 Fix how _HAS_TR1_IMPORTS is tested.
Fixes #6023.

[SVN r76134]
2011-12-24 16:35:34 +00:00
John Maddock
06520772ae Fix threading detection in GCC-4.7 experimental.
Fixes #6165.

[SVN r76133]
2011-12-24 16:19:41 +00:00
John Maddock
3b7ff73e9d Merge config changes from Trunk.
[SVN r76122]
2011-12-23 17:17:31 +00:00
Beman Dawes
8828d82d4d char16_t and char32_t tests: removed dependencies on Unicode literals, add test for implementations that are typedefs and so not really conforming. Unicode literal test: now check for all three forms of Unicode literals - u8, u, and U.
[SVN r75694]
2011-11-27 16:19:55 +00:00
Beman Dawes
7f68d14175 Update intel.hpp for 12.1.
[SVN r75693]
2011-11-27 16:14:47 +00:00
Daniel James
7bd78dda03 Merge 1.49 initialisation.
[SVN r75673]
2011-11-26 18:53:17 +00:00
Daniel James
b1b219f0c1 Start 1.49
[SVN r75672]
2011-11-26 18:51:10 +00:00
John Maddock
2301e858aa Apply Michel Morin's Clang patch.
[SVN r75214]
2011-11-01 18:17:54 +00:00
Beman Dawes
b899a529a5 Clear compiler warnings
[SVN r75185]
2011-10-31 11:21:10 +00:00
John Maddock
5ae1de8cec Apply BOOST_FORCE_INLINE patch.
Regenerate docs.

[SVN r74917]
2011-10-11 17:24:22 +00:00
Beman Dawes
2c19eb21d6 Add BOOST_NOEXCEPT and allies. Apply to Boost.Timer. Correct several Boost.timer boo boos detected while testing BOOST_NOEXCEPT.
[SVN r74895]
2011-10-10 14:48:39 +00:00
John Maddock
17dcf6492b Apply preliminary VC11 support.
Fixes #5923.

[SVN r74888]
2011-10-10 11:28:36 +00:00
John Maddock
306a33a922 Fix Boost.Config for Intel-12.1.
[SVN r74639]
2011-10-02 08:33:11 +00:00
John Maddock
40cd11baa9 Tentative fox for C++0x detection in Intel 12.1 and later.
Refs #5941.
Refs #5878.

[SVN r74573]
2011-09-26 11:11:54 +00:00
John Maddock
1dabccc96a Add tentative Cray compiler support.
[SVN r74388]
2011-09-15 17:10:58 +00:00
John Maddock
ad7edb7b3a Fix typo in message.
Fixes #5770.

[SVN r73955]
2011-08-20 16:08:10 +00:00
John Maddock
ffece3e93c Add Cray compiler options.
[SVN r73331]
2011-07-24 16:09:20 +00:00
John Maddock
2b7da15387 Document BOOST_HAS_GETSYSTEMTIMEASFILETIME, add test case, and change test for BOOST_HAS_FTIME.
Refs #2881.

[SVN r73058]
2011-07-13 18:03:52 +00:00
Beman Dawes
a9a6cecaa3 Update for 1.48.0
[SVN r73014]
2011-07-12 13:35:42 +00:00
John Maddock
d7e03fe7a0 RValue references don't really work correctly with Intel's compiler - disable support for them for now as enabling it breaks the Filesystem and Exception libraries.
Fixes #5671.
See Intel support issue #636018.

[SVN r72953]
2011-07-07 10:37:15 +00:00
Eric Niebler
1c37e1a994 add BOOST_NO_DECLTYPE_N3276 config macro
[SVN r72327]
2011-06-01 14:51:03 +00:00
Daniel James
c897810096 Fix typo in config documentation. Fixes #5581
[SVN r72281]
2011-05-30 14:40:05 +00:00
John Maddock
c68266c486 Apply fix for Dinkumware on GHS. Refs #5571.
[SVN r72214]
2011-05-27 16:00:44 +00:00
John Maddock
07e1c7cda5 Add needed missing files.
[SVN r72043]
2011-05-19 09:32:31 +00:00
John Maddock
37b4152dc5 Add new config macro: BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX.
Fixes #4867.

[SVN r71840]
2011-05-09 11:36:39 +00:00
John Maddock
c5a77c1521 Apply BOOST_NO_NOEXCEPT patch from Takaya Saito.
[SVN r71737]
2011-05-05 11:55:46 +00:00
Marshall Clow
81e3542d70 Renamed BOOST_NO_THREADEX -> BOOST_HAS_THREADEX and BOOST_NO_GETSYSTEMTIMEASFILETIME --> BOOST_HAS_GETSYSTEMTIMEASFILETIME - Refs #1988
[SVN r71533]
2011-04-27 15:51:07 +00:00
John Maddock
4c07c44225 Revert unnecessary changes.
[SVN r71036]
2011-04-06 17:21:44 +00:00
John Maddock
371171ef97 Add BOOST_PREVENT_MACRO_SUBSTITUTION and regenerate docs.
Fixes #5349.

[SVN r71029]
2011-04-06 10:52:22 +00:00
John Maddock
86102c32ef More C-mode patches.
[SVN r70996]
2011-04-05 08:24:09 +00:00
John Maddock
56d410f014 Make Boost.Config C language compatible.
[SVN r70953]
2011-04-03 17:55:30 +00:00
John Maddock
730e354c65 Remove redundant (and potentially confusing) macro defs).
[SVN r70923]
2011-04-03 08:55:50 +00:00
John Maddock
2dfa0e4dd2 Update gcc-4.6.0 config and tests to match.
[SVN r70754]
2011-03-30 18:24:18 +00:00
John Maddock
7448397653 Change test to include fenv.h directly, otherwise Boost.Config test depends upon Boost.Config which is not a good idea.
[SVN r70568]
2011-03-26 11:56:55 +00:00
Daniel James
7f7fe4095d Release: Fix BOOST_LIB_VERSION.
[SVN r70559]
2011-03-26 10:22:08 +00:00
Daniel James
f69f4f250a Release: prepare for 1.47.0.
[SVN r70302]
2011-03-21 09:02:05 +00:00
John Maddock
89924b0478 Disable fenv.h for Intel < 12.0 as it doesn't actually work!
[SVN r70223]
2011-03-20 13:17:48 +00:00
John Maddock
cb41a836d1 Rogue Wave / Apache std lib doesn't have a complete type_traits header.
[SVN r70222]
2011-03-20 12:21:19 +00:00
John Maddock
8a0e258984 Fix up type_traits intrinsic support when using the Intel compiler.
Suppress quite a few Intel-12.0 warnings.

[SVN r70221]
2011-03-20 12:18:59 +00:00
John Maddock
101aaca178 Don't take the address of extern "C" functions: some compilers (PGI for example) don't allow mixing pointers to extern "C" and pointers to extern "C++". Actually call the functions instead and make sure they all work as advertised.
[SVN r70202]
2011-03-19 17:57:16 +00:00
John Maddock
cea6510410 <future> is incomplete for libc++ as well.
[SVN r70180]
2011-03-19 12:41:45 +00:00
John Maddock
beaef16287 Enable decltype for VC-10.
[SVN r70058]
2011-03-17 13:13:49 +00:00
John Maddock
9a80704462 Tweak libstdc++ and libc++ config's to cope with the new tests.
[SVN r70055]
2011-03-17 11:43:20 +00:00
John Maddock
050da29d47 Don't enable GCC C++0x features in non-C++0x mode.
Update tests to actually fail unless we're in C++0x mode.
Fixes #5320.
Fixes #5319.

[SVN r70019]
2011-03-16 18:45:07 +00:00
John Maddock
2edb55f8ad Fix up Intel's configuration to match the new tests.
[SVN r70002]
2011-03-15 17:29:59 +00:00
John Maddock
03877f5805 Remove std::concept test macros since these are no longer part of the std.
Update GCC C++0x support.
Improve the tests for C++0x support.
Regenerate the docs.
Update generation program to Boost.Filesystem v3.


[SVN r70001]
2011-03-15 13:17:46 +00:00
John Maddock
795abaa3e3 MPTasks support has been absent from Boost for some time, remove it from here.
[SVN r69817]
2011-03-10 11:09:55 +00:00
John Maddock
0fcc6c06df Change to test C++0x features only.
[SVN r69721]
2011-03-08 18:14:41 +00:00
John Maddock
31642cc433 Regenerate with up to date autoconf - otherwise exhibits spurious failures.
[SVN r69709]
2011-03-08 17:21:50 +00:00
Daniel James
4f8c319871 Prep for 1.46.1
[SVN r69447]
2011-03-01 22:17:39 +00:00
John Maddock
f6a6f20736 Tentative fix for Apache 5.0.0 std lib.
[SVN r69399]
2011-02-28 18:13:22 +00:00
John Maddock
dcfc12f91e Fix typo.
Fixes #5205.

[SVN r69203]
2011-02-23 09:54:02 +00:00
Christopher Jefferson
cdfbdb2a72 libc++ declares a templated abs, which conflicts with the redefinition in math_info.cpp
[SVN r68927]
2011-02-15 20:41:56 +00:00
Christopher Jefferson
eeb7991cba libc++ has non-standard message_base
[SVN r68860]
2011-02-14 10:29:12 +00:00
Christopher Jefferson
8445752e75 Improve the libc++ configuration
[SVN r68819]
2011-02-12 23:05:03 +00:00
Christopher Jefferson
0b1c0b33b3 Add basic support for the libc++ standard library
[SVN r68785]
2011-02-11 20:37:03 +00:00
Douglas Gregor
66b9affdd8 Update Clang configuration to reflect improved C++0x support in Clang.
[SVN r68659]
2011-02-05 20:39:52 +00:00
John Maddock
2ea9ef4841 Change nvcc config to use underlying compiler config.
Fixes #4431.

[SVN r68566]
2011-01-30 12:47:47 +00:00
Steven Watanabe
ed7120adb8 Restore [66804], [66833], and [66834]. (fenv fixes.) I mistakenly reverted them in [68201] because [66804] was mislabeled.
[SVN r68554]
2011-01-30 06:24:30 +00:00
John Maddock
69e5377957 Fix up Intel C++0x features.
Fixes #5112.

[SVN r68472]
2011-01-27 11:47:11 +00:00
John Maddock
952b57fa7d Add preliminary C++0x support.
Refs #5112.

[SVN r68420]
2011-01-24 18:28:53 +00:00
John Maddock
804e7170e1 Oops... use the correct pathscale version macro.
[SVN r68418]
2011-01-24 18:06:12 +00:00
John Maddock
a7148f1932 Restrict new pathscale config to 4.x versions.
[SVN r68376]
2011-01-23 10:18:44 +00:00
John Maddock
e391ef7ce0 Patch IBM compiler support to latest version.
Fixes #5091.

[SVN r68286]
2011-01-19 13:20:45 +00:00
Steven Watanabe
a1865a712d Revert addition of BOOST_NIX, etc and everything tied to it. ([66696], [66783], [66804], [66833], and [66834])
[SVN r68201]
2011-01-17 04:51:54 +00:00
Steven Watanabe
b12a7589b9 Revert [67111] (addition of boost/detail/iomanip.hpp) and all the commits that depend on it. ([68137], [68140], [68141], [68154], and [68165]).
[SVN r68168]
2011-01-15 08:11:51 +00:00
Bryce Adelstein-Lelbach
c32a3915db Make <boost/detail/iomanip.hpp> include <iomanip> and put the <iomanip> functions
in the boost::detail namespace if not on clang- or intel-linux.



[SVN r68165]
2011-01-15 02:23:46 +00:00
Bryce Adelstein-Lelbach
90760b4c2f More pathscale stuff.
[SVN r68143]
2011-01-14 03:01:26 +00:00
Bryce Adelstein-Lelbach
580f4e72f7 Replacing the use of <iomanip> with <boost/detail/iomanip.hpp> across Boost.
On Linux, GNU's libstdc++, which is the default stdlib for icc and clang,
cannot parse the <iomanip> header in version 4.5+ (which thankfully neither
compiler advises the use of yet), as it's original C++98-friendly
implementation has been replaced with a gnu++0x implementation.
<boost/detail/iomanip.hpp> is a portable implementation of <iomanip>, providing
boost::detail::setfill, boost::detail::setbase, boost::detail::setw,
boost::detail::setprecision, boost::detail::setiosflags and
boost::detail::resetiosflags. 



[SVN r68140]
2011-01-14 02:35:58 +00:00
John Maddock
547d713ef7 Remove old dead code.
[SVN r68097]
2011-01-13 13:43:08 +00:00
Bryce Adelstein-Lelbach
fb93903c02 Re-added Qi numeric literals as they no longer break Qi auto-magic.
[SVN r67902]
2011-01-10 03:04:31 +00:00
Bryce Adelstein-Lelbach
bbb4a34504 Support for PathScale EKOPath Compiler Suite, version 4.0.0.
[SVN r67707]
2011-01-06 02:38:20 +00:00
Daniel James
7535b8d150 1.45.0 prep
[SVN r66992]
2010-12-03 23:36:56 +00:00
John Maddock
4423219649 Don't undef BOOST_AUTO_LINK_NOMANGLE.
Refs #4902.

[SVN r66906]
2010-11-30 18:01:55 +00:00
Bryce Adelstein-Lelbach
20653705ab Forget a ')'.
[SVN r66834]
2010-11-29 01:06:33 +00:00
Bryce Adelstein-Lelbach
195a8e3004 Fix unistd.h include guards.
[SVN r66833]
2010-11-29 00:22:13 +00:00
John Maddock
a81a14cd75 Fix for variadic macro support.
[SVN r66824]
2010-11-28 17:02:32 +00:00
Bryce Adelstein-Lelbach
4f7a0d3814 Added *nix identification macros to Boost.Config; BOOST_NIX, BOOST_GENETIC_NIX,
BOOST_TRADEMARK_NIX and BOOST_FUNCTIONAL_NIX.



[SVN r66804]
2010-11-27 21:43:52 +00:00
John Maddock
9a9ef3a20b Revert last patch - it conflicts with existing definition.
[SVN r66783]
2010-11-27 09:29:11 +00:00
Bryce Adelstein-Lelbach
dba9cf164a Should fix issue with fenv.h detection on Darwin.
[SVN r66762]
2010-11-26 04:43:56 +00:00
John Maddock
fe294afd78 Apply Vincente Botet's patches for BOOST_CONSTEXPR.
[SVN r66746]
2010-11-25 10:39:02 +00:00
Bryce Adelstein-Lelbach
0fedb0bd92 Added *nix identification macros to Boost.Config; BOOST_NIX, BOOST_GENETIC_NIX,
BOOST_TRADEMARK_NIX and BOOST_FUNCTIONAL_NIX.



[SVN r66696]
2010-11-23 06:33:35 +00:00
Bryce Adelstein-Lelbach
edab200d72 Added BOOST_HAS_FENV_H detection to Boost.Config (if this macro is defined, then
the standard library/platform provide a POSIX compliant implementation of fenv.h).



[SVN r66693]
2010-11-23 03:34:05 +00:00
John Maddock
1aa27f2bc1 Normalise BOOST_NO_VARIADIC_TEMPLATES and BOOST_HAS_VARIADIC_TEMPL usage.
[SVN r66654]
2010-11-21 09:36:53 +00:00
John Maddock
1e03292d1e Update last checked GCC version to 4.6, and add new C++0x features supported.
[SVN r66585]
2010-11-15 09:26:29 +00:00
John Maddock
4f9f6b89e7 Add some more macros to diagnostic list
[SVN r66492]
2010-11-11 16:35:00 +00:00
John Maddock
1121b83e3a MingW32 has a few functions we weren't flagging up before.
[SVN r66469]
2010-11-09 11:59:47 +00:00
John Maddock
7ebb1ca9b5 Tidy up VC10 config and enable new VC10 feature (numeric_limits::lowest()).
[SVN r66455]
2010-11-08 17:01:44 +00:00
John Maddock
543cbd8760 Add missing files.
[SVN r65621]
2010-09-27 08:42:15 +00:00
John Maddock
0e321900b2 Add Vincete Botet's patches for new BOOST_NO_NUMERIC_LIMITS_LOWEST macro.
Disabled BOOST_HAS_NL_TYPES macro for cygwin - it lies about being XSI conforming :-(

[SVN r65594]
2010-09-26 09:30:38 +00:00
John Maddock
c02ec6995d Fix for cygwin symbol visibility - sometimes _WIN32 may be defined even on cygwin.
Fixes #4670.

[SVN r65530]
2010-09-22 08:24:07 +00:00
John Maddock
dca79a5e17 Update test case to make it a touch more strict.
[SVN r65517]
2010-09-21 17:09:57 +00:00
John Maddock
9edaeb4998 Suppress GCC warnings from this header when compiled with -pedantic and certain GCC-4.x versions (probably 4.5.0 specific).
[SVN r65146]
2010-08-31 12:19:53 +00:00
John Maddock
290d765e3f Fix typo in auto-linking code.
Fixes #4563.

[SVN r64885]
2010-08-18 12:26:29 +00:00
Daniel James
06e164db69 Prepare for 1.45
[SVN r64862]
2010-08-17 17:54:49 +00:00
John Maddock
55cdba0324 Remove double define of BOOST_NO_VARIADIC_MACROS
[SVN r64860]
2010-08-17 14:07:45 +00:00
John Maddock
1a1ed6f02a Apply patches for BOOST_NO_VARIADIC_MACROS supplied by Edward Diener.
[SVN r64858]
2010-08-17 10:19:29 +00:00
John Maddock
c3d5e03a89 Add file missing in previous commit.
[SVN r64760]
2010-08-12 15:29:06 +00:00
John Maddock
283b3fca54 Add VMS support.
Fixes #4474.

[SVN r64750]
2010-08-12 12:36:42 +00:00
John Maddock
28b8d54fcd Suppress gcc warnings.
Fixes #4508.

[SVN r64749]
2010-08-12 12:27:35 +00:00
Niels Dekker
906168561a Removed temporary option to skip ptr-to-member initializations, BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER.
[SVN r63583]
2010-07-04 10:19:10 +00:00
Daniel James
4dc7205bd6 Rebuild config documentation.
[SVN r63504]
2010-07-01 22:11:07 +00:00
John Maddock
e65ec6d169 Patch for macro redefinitions.
Fixes #4385.

[SVN r63439]
2010-06-29 16:02:13 +00:00
Niels Dekker
345c804440 Assumption that Apple build 5659 of GNU 4.2.1 patched all value-initialization compiler bugs appears wrong, according to minion-clang-boost-bin-v2-libs-config-test-config_test-test-darwin-4-2-1-debug.html. Reverted [63249], see #4080.
[SVN r63379]
2010-06-27 11:14:54 +00:00
Niels Dekker
e5ab506c4c Removed BOOST_NO_COMPLETE_VALUE_INITIALIZATION from Apple build of GCC (trunk), based on test results and feedback from Chris Jefferson. see #4080.
[SVN r63249]
2010-06-22 21:49:44 +00:00
Daniel James
fc0159a81b Update various libraries' documentation build.
Mostly to use the images and css files under doc/src instead of
doc/html, usually be deleting the settings in order to use the defaults.
Also add 'boost.root' to some builds in order to fix links which rely on
it.

[SVN r63146]
2010-06-20 18:00:48 +00:00
Douglas Gregor
9a30ee0146 Clang passes all value-initialization tests now
[SVN r62950]
2010-06-14 21:18:57 +00:00
Beman Dawes
8a4e26e378 Remove macros better handled by config/stdlib/libstdcp3
[SVN r62800]
2010-06-11 14:16:38 +00:00
John Maddock
3f189bf191 Add BOOST_NO_0X_HDR_TYPEINDEX.
[SVN r62793]
2010-06-11 11:21:42 +00:00
John Maddock
f3cefbd8a3 Disable all C++0x features in GCC-XML for now.
Fixes #4324.

[SVN r62666]
2010-06-09 15:45:50 +00:00
John Maddock
5f838e66a5 typeindex is not yet supported.
[SVN r62507]
2010-06-07 11:56:57 +00:00
John Maddock
160db0eaa6 Add missing files from last commit.
[SVN r62427]
2010-06-04 15:51:51 +00:00
John Maddock
4d398922b4 Add new config macro for <typeindex>. Update config accordingly.
Fixes #4274.

[SVN r62425]
2010-06-04 12:37:44 +00:00
John Maddock
1f0f1c2dcf Update link_test to check that separate file template instantiation and export works as expected.
[SVN r62332]
2010-05-30 17:31:09 +00:00
John Maddock
915cd05f0e Change regex to make use of new Boost.Config macros.
[SVN r62331]
2010-05-30 17:24:45 +00:00
John Maddock
2b40995d16 Try and make BOOST_NO_EXTERN_TEMPLATES clearer.
[SVN r62257]
2010-05-27 08:49:52 +00:00
John Maddock
5425bedbb4 Add symbol visibility support to Intel and Sun compilers.
[SVN r62199]
2010-05-25 14:38:34 +00:00
Niels Dekker
40a0eeeef0 Removed temporary code, skipping value-initialization of pointer-to-member objects for Intel <= 11.1.
[SVN r62161]
2010-05-22 22:48:13 +00:00
Niels Dekker
ab638ef45d Added some more comment to [62159]
[SVN r62160]
2010-05-22 22:37:11 +00:00
Niels Dekker
5b72dbb856 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Intel C++ <= 11.1 (trunk), see #4080.
[SVN r62159]
2010-05-22 22:27:27 +00:00
Beman Dawes
956b95a48f Rebuild docs after changeset 62140
[SVN r62141]
2010-05-22 12:54:57 +00:00
Beman Dawes
d4a9554db0 Major upgrade to Boost.Config symbol visibility macros for shared libraries, based on patches from Jürgen Hunold with mods by Beman Dawes. Upgrade Boost.System to use the new visibility macros. Fixes #3697 and provides foundation for fixing 2114, 2309, etc.
[SVN r62140]
2010-05-22 12:12:00 +00:00
Niels Dekker
56da3bb7ea Temporarily skipped value-initialization of all ptr-to-member objects for Intel <= 11.1, as another try to avoid the internal error, Intel support issue 589832.
[SVN r62126]
2010-05-21 18:03:58 +00:00
Niels Dekker
ff36d0b7c5 Temporarily skipped value-initialization of m_ptr_to_member, as well as m_ptr_to_member_array for Intel <= 11.1, still trying to avoid the internal error, Intel support issue 589832.
[SVN r62114]
2010-05-20 15:56:59 +00:00
Niels Dekker
fce2db3875 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to VC++ 10.0 (trunk), see #4080.
[SVN r62094]
2010-05-19 09:54:06 +00:00
Douglas Gregor
f19e192f68 Add a BOOST_CLANG macro to indicate when Clang is used.
[SVN r62089]
2010-05-18 17:55:32 +00:00
John Maddock
a134372b3e Enhance test case for <tuple>.
Update VC10's configuration with more C++0x features enabled.

[SVN r62085]
2010-05-18 16:27:11 +00:00
John Maddock
bbf9896006 Codegear C++ has static_assert.
Fixes #4221.

[SVN r62083]
2010-05-18 12:05:43 +00:00
John Maddock
481fb45917 Add support for <cstdint> in VC10.
Fixes #4182.

[SVN r62082]
2010-05-18 12:02:23 +00:00
Niels Dekker
623579d64c Oops, fixed #define BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER_ARRAY (error detected by Sandia-intel-11.0-64)
[SVN r62077]
2010-05-18 07:32:01 +00:00
Niels Dekker
62b3bc6d77 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION only to MSVC < 10, in order to check how MSVC 10 is doing.
[SVN r62069]
2010-05-17 16:24:58 +00:00
Niels Dekker
85b12318f5 Temporarily skipped value-initialization of m_ptr_to_member_array for Intel <= 11.1, to avoid an internal error reported by John Maddock, Intel support issue 589832.
[SVN r62067]
2010-05-17 15:36:04 +00:00
Douglas Gregor
b8b5426bc3 Clang now supports the NRVO
[SVN r62004]
2010-05-15 18:47:13 +00:00
Niels Dekker
1061e15f3e Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to clang (trunk), see #4080.
[SVN r61971]
2010-05-14 21:51:14 +00:00
Niels Dekker
1311f5d3bf Added value-initialization checks for pointer-to-member.
[SVN r61942]
2010-05-13 12:11:58 +00:00
Niels Dekker
95b42f805d Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V11.1 (trunk), see #4080.
[SVN r61933]
2010-05-12 18:23:33 +00:00
Niels Dekker
dcd49febca Removed printing of "__IBMCPP__". It printed 1110, so I'm pretty sure the IBM regression machine currently runs XL V11.1.
[SVN r61932]
2010-05-12 18:23:07 +00:00
John Maddock
e2f6dc9127 Tentative fix for BOOST_NO_EXTERN_TEMPLATE: previous test case was invalid.
[SVN r61930]
2010-05-12 12:34:45 +00:00
Beman Dawes
1995aad2de 1.44.0 prep
[SVN r61878]
2010-05-09 14:40:14 +00:00
Niels Dekker
f41b288087 Temporarily printed __IBMCPP__. Maybe I typed in the wrong version number at [61848], because there are still value initialization failures at http://www.boost.org/development/tests/trunk/developer/output/IBM_Canada_Ltd-boost-bin-v2-libs-config-test-config_test-test-vacpp-debug.html
[SVN r61873]
2010-05-09 08:11:36 +00:00
Niels Dekker
80569d1e82 Added value-initialization tests for user_defined_copy_constructor_holder_and_int, a type similar to struct B at https://connect.microsoft.com/VisualStudio/feedback/details/499606
[SVN r61853]
2010-05-08 14:17:54 +00:00
Niels Dekker
888fd57252 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V11.0.1 (trunk), see #4080.
[SVN r61848]
2010-05-07 20:05:46 +00:00
Niels Dekker
9b529bbc11 Renamed some identifiers in value-initialization test, the word "subobject" appears more appropriate than "member".
[SVN r61847]
2010-05-07 19:48:38 +00:00
John Maddock
7c0cb1b744 Add long standing debug-mode python support.
Add support for --layout=tagged.
Fixes #4041.

[SVN r61805]
2010-05-06 09:54:13 +00:00
John Maddock
f433ffab10 Fixes #4152.
[SVN r61804]
2010-05-06 09:35:55 +00:00
Niels Dekker
b36825755a Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Microsoft Visual C++ (trunk), see #4080.
[SVN r61799]
2010-05-05 20:46:41 +00:00
John Maddock
94713abf79 Fixes #4178.
[SVN r61792]
2010-05-05 18:01:42 +00:00
John Maddock
84e49b5e52 Only define BOOST_NO_EXCEPTIONS if not already defined - fixes #4059.
[SVN r61791]
2010-05-05 17:55:15 +00:00
John Maddock
ff22ac28c7 Fix inspection script issues.
[SVN r61790]
2010-05-05 17:43:05 +00:00
Niels Dekker
5e1d3de510 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Sun <= 5.10 (trunk), see #4080
[SVN r61744]
2010-05-03 17:43:56 +00:00
Niels Dekker
fb86556f48 Redid adding BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V10.1.0 (trunk), as [61516]. The addition of heap objects to boost_no_complete_value_initialization::test() [61552] did not cause any extra failures. See #4080.
[SVN r61725]
2010-05-01 22:28:24 +00:00
Niels Dekker
234c863553 Increased last known CodeGear version as discussed with John Maddock.
[SVN r61722]
2010-05-01 11:06:57 +00:00
Niels Dekker
a947601d79 Fixed URL to value-initialization bug report.
[SVN r61721]
2010-05-01 08:55:01 +00:00
Douglas Gregor
02792885e1 Clang has a version macro now. Use it.
[SVN r61693]
2010-04-30 03:00:31 +00:00
Niels Dekker
21c71acd6c Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to CodeGear (trunk), see #4080.
[SVN r61691]
2010-04-29 22:32:44 +00:00
Niels Dekker
c1ae43050e Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Borland (trunk), see #4080
[SVN r61652]
2010-04-28 17:54:03 +00:00
Niels Dekker
25678a5700 Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to GCC < 4.4 (trunk), see #4080.
[SVN r61642]
2010-04-28 08:50:23 +00:00
Douglas Gregor
69917116b8 Compiler configuration logic for Clang.
[SVN r61626]
2010-04-27 19:45:08 +00:00
Niels Dekker
b54ad840b1 Added more documentation to boost_no_complete_value_initialization test.
[SVN r61625]
2010-04-27 19:09:04 +00:00
Douglas Gregor
51a1ad1c2b Correct the name of the BOOST_NO_EXPLICIT_CONVERSION_OPERATORS macro in the documentation
[SVN r61624]
2010-04-27 19:06:22 +00:00
Niels Dekker
1f380a1a88 Hopefully fixed config_test/darwin-4.0.1 error, "heap_object_wrapper(const &) is private" (second try). Also hopefully fixed warnings from IBM XL V10.1, saying "The temporary is not constructed, but the copy constructor must be accessible". Added more bool tests.
[SVN r61608]
2010-04-27 09:20:42 +00:00
Niels Dekker
ae573fa3cc Hopefully fixed config_test/darwin-4.0.1 error, "heap_object_wrapper(const &) is private". Added bool to pod_struct.
[SVN r61572]
2010-04-26 10:24:28 +00:00
Niels Dekker
f162205691 Postponed BOOST_NO_COMPLETE_VALUE_INITIALIZATION definition, in order to check value-initialization of heap objects, which I just added to boost_no_complete_value_initialization::test() [61552]
[SVN r61554]
2010-04-25 09:48:49 +00:00
Niels Dekker
fed1f22c6d Added value-initialization tests for heap objects, added private_int_holder class, did some cosmetics, added link to https://connect.microsoft.com/VisualStudio/feedback/details/484295
[SVN r61552]
2010-04-25 09:38:48 +00:00
Niels Dekker
5230022c0e Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V10.1.0 (trunk), see #4080.
[SVN r61516]
2010-04-23 22:01:56 +00:00
Jeremiah Willcock
99e762c031 Fixed tab issue
[SVN r61469]
2010-04-21 17:34:54 +00:00
Niels Dekker
890f65d372 Fixed GCC warning in value_initializer(): "m_3d_char_array will be initialized after m_unsigned_char".
[SVN r61455]
2010-04-21 10:24:54 +00:00
John Maddock
4464cf9f47 Update some of the C++0x tests so they don't catch "fake" implementations.
Update config for VC10 accordingly.
Normalise use of BOOST_HAS_RVALUE_REFS - fixes #4112.

[SVN r61453]
2010-04-21 08:49:21 +00:00
Niels Dekker
0c1feee19f Extended value-initialization test by adding function pointers, member function pointers, bit-fiends and long double. Thanks to the HCC C gebruikersgroep!
[SVN r61436]
2010-04-20 18:31:35 +00:00
John Maddock
668b3fccae Fixes #4115: sometimes VC++ doesn't put typeinfo in namespace std.
[SVN r61434]
2010-04-20 17:48:16 +00:00
John Maddock
e2e2e4a6fb Tweak VC10 configuration settings.
Update BOOST_NO_DECLTYPE test with VC10 bug case.

[SVN r61432]
2010-04-20 17:26:06 +00:00
Niels Dekker
18af1c798d Avoided IBM/XL warning about omitted keyword "private" for base class "int_struct". Added note about IBM/XL V10.1 regression failure.
[SVN r61332]
2010-04-17 08:38:01 +00:00
Niels Dekker
70f95b9245 Added value-initialization tests for 2D and 3D arrays. Mentioned newly submitted Borland/CodeGear bug report, http://qc.embarcadero.com/wc/qcmain.aspx?d=83851
[SVN r61301]
2010-04-15 17:12:14 +00:00
Niels Dekker
4dc213e6e2 Added value-initialization test for temporary objects.
[SVN r61272]
2010-04-14 09:35:51 +00:00
Niels Dekker
7254f02010 Replaced IS_VALUE_INITIALIZED by FAILED_TO_VALUE_INITIALIZE, to increase code readability.
[SVN r61270]
2010-04-14 08:08:11 +00:00
Niels Dekker
b9ead6a415 Fixed boost_no_complete_value_initialization::test() return value. Removed useless #include. Added more comment and more newlines.
[SVN r61229]
2010-04-12 19:03:20 +00:00
Niels Dekker
3e7eb180ed Restyled output of value-initialization test.
[SVN r61210]
2010-04-11 21:01:41 +00:00
Niels Dekker
2e99752a98 Added check of an lvalue value_initializer object on the stack.
[SVN r61209]
2010-04-11 20:33:49 +00:00
Niels Dekker
5bc1a8e9fb Added link to a new value-initialization compiler bug report: http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
[SVN r61203]
2010-04-11 15:27:32 +00:00
Niels Dekker
580762f388 Added more links to value-initialization bug reports: https://connect.microsoft.com/VisualStudio/feedback/details/100744 and http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
[SVN r61197]
2010-04-11 13:01:28 +00:00
Niels Dekker
b124875c50 Added value-initialization test to try to reproduce http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111
[SVN r61196]
2010-04-11 12:33:56 +00:00
Niels Dekker
bb8216ed39 Added value-initialization tests to possibly reproduce http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916.
[SVN r61195]
2010-04-11 10:00:44 +00:00
Niels Dekker
d35bde21e8 Fixed silly bug of mine in value_initializer(), detected by darwin-4.0.1/g++ warning, "value computed is not used"
[SVN r61193]
2010-04-11 07:42:00 +00:00
Niels Dekker
43f24c36f7 Added value-initialization tests for int_struct_holder; made tests more uniform by having an is_value_initialized(arg) function for each type.
[SVN r61188]
2010-04-10 22:27:55 +00:00
Niels Dekker
0ecdbd11d5 Added value-initialization tests for POD structs that just have an int data member.
[SVN r61177]
2010-04-10 12:26:00 +00:00
Niels Dekker
8cfb7c01d1 Added value-initialization tests for POD unions.
[SVN r61176]
2010-04-10 11:29:18 +00:00
Niels Dekker
7318513e8e Added more value-initialization tests. Added more comment. Printed revision number. Avoided CodeGear 2010 warning W8070, "Function should return a value".
[SVN r61175]
2010-04-10 10:28:40 +00:00
Niels Dekker
c9829c3a02 Added value-initialization test for m_int_array, tested individual array elements separately, printed number of failures.
[SVN r61164]
2010-04-09 17:37:52 +00:00
John Maddock
39807d1b97 Committed Neils Dekker's new macro docs.
[SVN r61154]
2010-04-09 12:35:20 +00:00
John Maddock
20a6d47804 Committed Neils Dekker's new macro tests.
[SVN r61153]
2010-04-09 12:17:57 +00:00
David Dean
f781c30712 make abi/borland_prefix and borland.jam defaults match
[SVN r61007]
2010-04-02 18:35:00 +00:00
Steven Watanabe
325f2a121c Add definition of BOOST_MSVC_FULL_VER_WORKAROUND_GUARD. Fixes #4012
[SVN r60624]
2010-03-15 21:14:55 +00:00
John Maddock
d657b0116e Add Symbian platform config.
Fixes #3759.

[SVN r60125]
2010-03-03 17:22:48 +00:00
John Maddock
396307d8f5 Apply patches for nvidia C++ compiler.
Fixes #3919.

[SVN r60076]
2010-03-02 17:18:32 +00:00
John Maddock
65bc9ac1a1 Fixes #3956.
[SVN r60075]
2010-03-02 17:10:01 +00:00
Daniel James
6daf564807 Update link from config docs to tracker to trac instead.
[SVN r59712]
2010-02-16 22:34:29 +00:00
Beman Dawes
cbe407e189 1.43.0 prep
[SVN r59687]
2010-02-15 02:55:31 +00:00
John Maddock
134eac75ac Add BOOST_WORKAROUND docs.
Fixes #3782.

[SVN r59514]
2010-02-05 18:12:35 +00:00
K. Noel Belcourt
b54dc0fca5 Changes to support pgi-10.x.
John suggested running configure --enable-test but
even after making suggested changes, it still doesn't
seem to pick up that BOOST_HAS_PTHREADS has been defined.

Also, not sure how to undefine these macros as they seem
to be set after I explicitly undefine them.

the following macros need to be defined
BOOST_HAS_PTHREADS
the following macros need to be undef'ed
BOOST_NO_STDC_NAMESPACE BOOST_NO_EXCEPTION_STD_NAMESPACE BOOST_DEDUCED_TYPENAME



[SVN r59505]
2010-02-05 05:51:15 +00:00
John Maddock
2c1d61fbd7 Change integer code to still work when BOOST_HAS_MS_INT64 is defined but BOOST_HAS_LONG_LONG is not.
Update VC++ config to define BOOST_HAS_LONG_LONG for MSVC-8 in ANSI mode.
Fixes #3657.

[SVN r59468]
2010-02-04 11:15:54 +00:00
Beman Dawes
3f50fc1231 Clarify determining if macro tests pass
[SVN r59206]
2010-01-21 21:08:22 +00:00
Beman Dawes
ca7bd18565 Sync 4.5 C++0x macros with current 4.5 snapshot
[SVN r59201]
2010-01-21 19:57:48 +00:00
John Maddock
19a43a6de4 Set last known checked version.
[SVN r58377]
2009-12-14 12:34:47 +00:00
John Maddock
1e287543f2 Another Codegear config fix.
[SVN r58316]
2009-12-12 10:00:03 +00:00
John Maddock
62ed60c780 Still trying to get the Codegear tests to pass...
[SVN r58264]
2009-12-10 09:42:01 +00:00
John Maddock
dac1a5bf21 More Codegear 2010 changes.
[SVN r58213]
2009-12-07 12:01:24 +00:00
John Maddock
9600237dca Start to fix up codegear 2010 support... this could take a while.
[SVN r58155]
2009-12-05 13:22:45 +00:00
John Maddock
6056bfabcb Update test for BOOST_NO_INTEGRAL_INT64_T.
Set define for Borland/Codegear compilers.

[SVN r58055]
2009-11-30 13:47:41 +00:00
Beman Dawes
389cd2ba69 1.42.0 prep
[SVN r57969]
2009-11-27 14:00:31 +00:00
John Maddock
2dc1512b9b Fix preprocessor logic for long long support.
Fixes #3657.
Fixes #3568.

[SVN r57843]
2009-11-22 16:38:05 +00:00
Troy D. Straszheim
69bf6c4ad6 rm cmake from trunk. I'm not entirely sure this is necessary to satisfy the inspect script, but I'm not taking any chances, and it is easy to put back
[SVN r56942]
2009-10-17 02:07:38 +00:00
Beman Dawes
f05b7f57d5 config: define BOOST_NO_UNICODE_LITERALS for all gcc versions - their C++0x web page was wrong; there is no support yet. Also correct test code.
[SVN r56716]
2009-10-11 17:19:53 +00:00
John Maddock
44945314ec Try and fix Open64 Boost.Config failures: Open64 is not really gcc!
[SVN r56295]
2009-09-18 10:43:57 +00:00
John Maddock
808dc4fec6 Add Open64 detection macros.
[SVN r56294]
2009-09-18 10:43:09 +00:00
Beman Dawes
e1bfdd03e4 Fix #3429 cut-and-paste snafu
[SVN r56133]
2009-09-10 11:14:23 +00:00
John Maddock
b013e0cb2c Try and fix Sun-GCC failure by linking to -lrt.
[SVN r55998]
2009-09-03 16:30:59 +00:00
John Maddock
80947fe560 Update Intel version check.
[SVN r55959]
2009-09-01 17:16:13 +00:00
Beman Dawes
40979e6651 Set release number to 1.41.0
[SVN r55842]
2009-08-28 18:20:44 +00:00
John Maddock
e40b9c07c0 Fixes #3181.
[SVN r55431]
2009-08-06 09:22:02 +00:00
John Maddock
d7c99eb56a Added docs for BOOST_MSVC_FULL_VER.
[SVN r55430]
2009-08-06 09:18:01 +00:00
John Maddock
e201687ac4 Fixes #2935.
Add new config macro BOOST_MSVC_FULL_VER, and updated type_traits to make use of it.

[SVN r55429]
2009-08-06 09:13:09 +00:00
Beman Dawes
17114cb4a3 Add BOOST_NO_SFINAE_EXPR and BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS (Mathias Gaunard)
[SVN r55361]
2009-08-02 14:00:59 +00:00
Troy D. Straszheim
bc468c0c2a Copyrights on CMakeLists.txt to keep them from clogging up the inspect
reports.  This is essentially the same commit as r55095 on the release
branch.



[SVN r55159]
2009-07-26 00:49:56 +00:00
Beman Dawes
714548f437 gcc 4.4.1 fixed scoped enum bug so don't define BOOST_NO_SCOPED_ENUMS (François Barel)
[SVN r55145]
2009-07-24 15:46:01 +00:00
John Maddock
a04de07542 Fix last known version number.
[SVN r54705]
2009-07-06 08:35:54 +00:00
John Maddock
2a9759c96b Fixes #3214.
[SVN r54300]
2009-06-24 12:16:31 +00:00
David Dean
ab378931aa borland/codegear configuration patch to set BOOST_SP_NO_SP_CONVERTIBLE
[SVN r53797]
2009-06-11 22:03:07 +00:00
David Dean
bb695e41e1 updating codegear.hpp with defines for newest compiler
[SVN r53775]
2009-06-09 15:55:05 +00:00
David Dean
6bb6198486 updating borland.hpp with defines for newest compiler
[SVN r53760]
2009-06-08 20:31:39 +00:00
Daniel James
21ad7ad74d Fix typo.
[SVN r53526]
2009-06-01 06:52:36 +00:00
Daniel James
8894fa22f3 Define BOOST_NO_INITIALIZER_LISTS if library support isn't available.
[SVN r53524]
2009-06-01 06:50:25 +00:00
Beman Dawes
d46a6d5ec8 set up config for VC++ 2010 beta 1
[SVN r53155]
2009-05-21 15:16:39 +00:00
Jeremiah Willcock
b03d5829b5 Fixed most tab and min/max issues from trunk inspection report
[SVN r53141]
2009-05-20 19:19:00 +00:00
Beman Dawes
6695277f1a Aways define BOOST_NO_SCOPED_ENUMS until GCC Bugzilla Bug 38064 gets fixed.
[SVN r53108]
2009-05-19 13:34:04 +00:00
John Maddock
e1d9c0281a Fixes #3047.
[SVN r53107]
2009-05-19 11:39:24 +00:00
Beman Dawes
f814c8fef1 Refine glibc++ feature tests based on feedback from Jonathan Wakely
[SVN r53057]
2009-05-16 18:41:33 +00:00
Beman Dawes
8c5aee782e Add C++0x feature detection and header detection macros
[SVN r53031]
2009-05-15 17:08:26 +00:00
Beman Dawes
82f0426fa5 Add support for GCC 4.4.0's C++0x features
[SVN r52903]
2009-05-11 14:11:27 +00:00
Beman Dawes
83dfbd9ec5 Prep for 1.40.0
[SVN r52887]
2009-05-11 00:59:37 +00:00
Beman Dawes
57de4bc62a Add __GXX_EXPERIMENTAL_CXX0X__
[SVN r52725]
2009-05-02 12:25:14 +00:00
Daniel James
8bbfd9629a Remove unused copy of boostbook.css
[SVN r52667]
2009-04-29 21:19:40 +00:00
John Maddock
5d7d4d94f5 Added support for vxworks.hpp.
Fixes #2959.

[SVN r52504]
2009-04-20 11:27:04 +00:00
Daniel James
8c1bad1aff Fix variadic template detection for mainline gcc. Fixes #2943
[SVN r52381]
2009-04-14 09:03:13 +00:00
John Maddock
b130802a6e Change test so we don't get namespace clashes with the real Boost code, updated all/Jamfile.v2 so it actually works now!
[SVN r52354]
2009-04-12 15:59:12 +00:00
John Maddock
340a8a3e65 Try and set the right linker options on BSD and Sun platforms.
[SVN r52353]
2009-04-12 15:49:08 +00:00
Daniel James
f43833227a Also don't need to check for _GLIBCXX_CSTDDEF.
[SVN r52323]
2009-04-11 08:26:20 +00:00
Daniel James
90d2e831a3 Don't need to include utility now that select_stdlib has been fixed.
[SVN r52320]
2009-04-11 07:53:59 +00:00
David Deakins
ac97540c23 As of STLport 5.2, unordered_set and unordered_map have been moved from the std:: namespace to the std::tr1:: namespace
[SVN r52269]
2009-04-08 21:08:00 +00:00
David Deakins
3ae6668b44 After including <cstddef> to check for usage of STLport, if STLport is not detected, then include <utility> to detect other std libs. This avoids the issue that some std libs do not include all of their C++-related macros when just <cstddef> is included. Related to issue #2924.
[SVN r52262]
2009-04-08 16:38:38 +00:00
Daniel James
1271821c44 Include <utility> for some versions of gcc's library.
Sometimes gcc's <cstddef> doesn't define the C++ macros, so check for it
and include <utility> in that case. Also remove a workaround from
container_fwd.hpp

Fixes #2924.

[SVN r52246]
2009-04-08 10:56:22 +00:00
David Deakins
833e50fe8f Have config/select_stdlib_config.hpp and config/stdlib/stlport.hpp use <cstddef> instead of <utility> to determine which standard library is in use. For std lib implementations that rely on Boost components like TypeTraits, Bind, Function, or SmartPtr, this helps to avoid circular header dependency issues, since <cstddef> is much less likely to pull in Boost libraries than <utility>.
In get_pointer.hpp, switched to using <boost/config/no_tr1/memory.hpp> instead of using <memory> directly.  As above, this helps avoid circular header dependency issues in Boost-supplemented std libs (specifically it avoids issues when <memory> pulls in pieces of Boost.SmartPtr).

These two changes were made in response to testing done with STLport 5.2.1 using the _STLP_USE_BOOST_SUPPORT option.

[SVN r52104]
2009-04-01 14:42:11 +00:00
Andrey Semashev
383a8b2094 Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS (take two). The C++0x features were disabled for MSVC 2010 as it is too far from release now. The macros are also defined for Borland and Codegear as these features are not announced in the release notes.
[SVN r51990]
2009-03-26 18:19:33 +00:00
Andrey Semashev
c5410e83d0 Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS (take two). The C++0x features were disabled for MSVC 2010 as it is too far from release now. The macros are also defined for Borland and Codegear as these features are not announced in the release notes.
[SVN r51880]
2009-03-21 12:39:47 +00:00
Beman Dawes
9830ab865b Revert 51733 - it broke the regression testing system
[SVN r51794]
2009-03-16 15:49:17 +00:00
Andrey Semashev
e8678c03e4 Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS.
[SVN r51733]
2009-03-12 14:48:49 +00:00
John Maddock
903786bc48 Two more Borland defects added.
[SVN r51619]
2009-03-05 09:51:29 +00:00
John Maddock
1945035983 Added EVC++ 9 and 10 as recognised compilers.
[SVN r51553]
2009-03-03 10:06:46 +00:00
John Maddock
be4e73bece Try and reconcile new C++0x macros with the old ones.
[SVN r51513]
2009-03-01 17:09:15 +00:00
Beman Dawes
642f99f28d config: fix both BOOST_HAS_LONG_LONG and BOOST_NO_LONG_LONG getting defined at the same time for some compilers
[SVN r51503]
2009-03-01 14:14:09 +00:00
Beman Dawes
dade549b8b config: add cpp0x files not added after merge
[SVN r51471]
2009-02-27 13:23:06 +00:00
Beman Dawes
4d457cdf17 config: revert unintentional delete
[SVN r51470]
2009-02-27 13:15:19 +00:00
Beman Dawes
6d726df91c Merge branches/cpp0x into trunk, enabling a bunch of BOOST_NO_* macros for C++0x early adopter feature tests
[SVN r51444]
2009-02-25 18:04:27 +00:00
John Maddock
9191bfe38b Add PDF generation options to fix external links to point to the web site.
Added a few more Boostbook based libs that were missed first time around.
Fixed PDF naming issues.

[SVN r51284]
2009-02-17 10:05:58 +00:00
Beman Dawes
6e576ea56b Update version number to 1.38.0
[SVN r51179]
2009-02-10 13:59:38 +00:00
John Maddock
c87dcc8481 Fix up PDF generation options.
[SVN r50910]
2009-01-30 18:20:49 +00:00
John Maddock
00b6864bd2 Try and fix *BSD linking errors.
[SVN r50760]
2009-01-25 10:39:29 +00:00
John Maddock
e12af45eb2 Intel's emulation of gcc's two phase name lookup is buggy, this is Intel issue 532807, tracking number DPD200111849.
[SVN r50739]
2009-01-23 09:56:49 +00:00
John Maddock
5bd10f3a39 Try and fix linux regressions
[SVN r50687]
2009-01-20 17:22:47 +00:00
John Maddock
010ceb0da2 Fixes #2653.
[SVN r50574]
2009-01-14 10:36:14 +00:00
John Maddock
8fd1d95cc7 Fixes #2624.
[SVN r50423]
2009-01-01 10:30:51 +00:00
John Maddock
167b63bd33 Added BOOST_NO_STD_UNORDERED config macro.
[SVN r50362]
2008-12-22 09:45:31 +00:00
Daniel James
d0b83d60af Define BOOST_NO_INITIALIZER_LISTS for codegear.
[SVN r50157]
2008-12-06 13:48:38 +00:00
Daniel James
ad90956a3a Add support for initializer lists to config and the unordered containers.
[SVN r50118]
2008-12-04 21:30:19 +00:00
John Maddock
cb59854bd7 Suppressed a couple more -Wundef warnings.
[SVN r50062]
2008-12-02 10:06:10 +00:00
John Maddock
f6afca0da2 Fix typos in docs and regenerate.
[SVN r49850]
2008-11-20 16:55:12 +00:00
John Maddock
31395bd98f Added __CODEGEARC__ warning suppression.
[SVN r49822]
2008-11-18 08:51:43 +00:00
Michael A. Jackson
99052817e2 Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
K. Noel Belcourt
e4d4157b5a Both Sun and Pgi on Linux correctly put typeinfo into the std
namespace, but function_base keys off the
BOOST_NO_EXCEPTION_STD_NAMESPACE macro instead of the
BOOST_NO_STD_TYPEINFO macro.  The attached patch changes
function_base to use the typeinfo macro.  Because eVC 4.2 doesn't
put typeinfo into the std namespace, I need to define
BOOST_NO_STD_TYPEINFO only for this eVC version.



[SVN r49571]
2008-11-03 18:37:49 +00:00
Beman Dawes
53c6fb4a1f Prep for 1.38.0
[SVN r49556]
2008-11-03 15:18:21 +00:00
Michael A. Jackson
fd3f4544ce Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
John Maddock
0f0eef5efa Fixes #2445.
Update to recognise VC10.

[SVN r49488]
2008-10-29 17:11:50 +00:00
John Maddock
ac26a726e7 Fix PDF build issue, and regenerated docs.
[SVN r49461]
2008-10-27 16:17:02 +00:00
John Maddock
f4ff5f8806 Fix Inspection report issues.
[SVN r49281]
2008-10-11 15:40:44 +00:00
John Maddock
4cb054bf64 Enable long long support.
[SVN r49168]
2008-10-07 17:13:33 +00:00
John Maddock
5e3ea46864 Change msvc ABI to match the default on Win64.
[SVN r49078]
2008-10-01 11:23:31 +00:00
Daniel James
add25bf571 Revert BOOST_NO_INITIALIZER_LISTS test case, I meant to add it to a branch.
[SVN r48938]
2008-09-24 10:29:46 +00:00
Daniel James
e6e97911b1 The test case for BOOST_NO_INITIALIZER_LISTS, I'll run generate tomorrow.
[SVN r48934]
2008-09-23 23:22:56 +00:00
John Maddock
ca56a76dda Oops, regenerate and add missing files.
[SVN r48909]
2008-09-20 08:58:10 +00:00
K. Noel Belcourt
72b387e5c4 Add support for builing with intel compilers on Itanium
(define BOOST_NO_TWO_PHASE_NAME_LOOKUP macro).



[SVN r48897]
2008-09-19 16:37:43 +00:00
John Maddock
3a810dea60 Regenerate docs.
[SVN r48894]
2008-09-19 12:01:54 +00:00
John Maddock
525c53434b Fixes #2327.
Additional Codegear support macros and configuration.

[SVN r48893]
2008-09-19 12:00:14 +00:00
John Maddock
5194a3bad7 Fixes #2328.
[SVN r48795]
2008-09-16 11:13:16 +00:00
John Maddock
c05026a644 Added patches from issue #2327 but without the new config macros or test changes yet.
[SVN r48794]
2008-09-16 11:04:52 +00:00
K. Noel Belcourt
3b7f078746 Patch pgi so it is open-coded to work for any PGI
compiler version 7 or greater.



[SVN r48380]
2008-08-25 16:31:24 +00:00
John Maddock
4783cd575f Added gcc auto-detection of no typeid/rtti.
Added normalisation code for no rtti.

[SVN r48373]
2008-08-25 11:29:55 +00:00
John Maddock
5f1c6a0d73 Add BOOST_NO_RTTI as per feature request #2241.
[SVN r48372]
2008-08-25 10:06:15 +00:00
Gennaro Prota
9ca5a34369 in boost/config/suffix.hpp: changed copyright notices to the generally preferred form; fixed license reference; added trailing slashes to a couple of URLs; fixed a typo ("analagous"); slightly reformatted my own code and comments (normally we wouldn't have touched this file for non-essential issues, but since it has already been modified, recently...)
[SVN r48290]
2008-08-22 11:03:54 +00:00
Daniel James
7deb7200bc Fix the link to the limits documentation.
[SVN r48266]
2008-08-20 19:32:23 +00:00
Jürgen Hunold
1884e62119 Fix: Added check for already defined BOOST_NO_HASH and BOOST_NO_SLIST
[SVN r48254]
2008-08-20 11:51:44 +00:00
Beman Dawes
81d37eb28b Begin 1.37.0
[SVN r48196]
2008-08-18 15:23:57 +00:00
John Maddock
e7ac7ebd7b Added <cmath> support to the TR1 library.
Added Borland and Sun workaround headers to the TR1 lib.
Added a "no tr1" version of cmath to Boost.Config and made use of it throughout Boost.Math.

[SVN r48054]
2008-08-10 09:12:02 +00:00
John Maddock
2c40b2fa4d Shortened file names so we don't exceed the Windows path limit.
[SVN r48011]
2008-08-07 09:17:52 +00:00
John Maddock
59ff24b625 Fixes #2084.
[SVN r47853]
2008-07-28 15:23:24 +00:00
Daryle Walker
8aed5ffeaa Encapsulated the mutually exclusive 'long long' and '__int64' type families into a single interface
[SVN r47754]
2008-07-24 11:43:02 +00:00
K. Noel Belcourt
73bce85012 Update to support pgi-7.2, now that I've started
testing with it.



[SVN r47512]
2008-07-17 19:19:27 +00:00
345 changed files with 15727 additions and 4162 deletions

611
checks/Jamfile.v2 Normal file
View File

@@ -0,0 +1,611 @@
#
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Thu Aug 13 16:32:12 2015
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
import modules ;
import path ;
actions simple_run_action
{
$(>) > $(<)
}
rule run-simple ( sources + : args * : input-files * : requirements * : target-name )
{
obj $(target-name)_obj : $(sources) : $(requirements) ;
explicit $(target-name)_obj ;
exe $(target-name)_exe : $(target-name)_obj : $(requirements) ;
explicit $(target-name)_exe ;
#testing.capture-output $(target-name)_output : $(target-name) : $(requirements) <name>$(target-name) ;
make $(target-name).output : $(target-name)_exe : @simple_run_action ;
explicit $(target-name).output ;
}
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TWO_ARG_USE_FACET : two_arg_use_facet ;
alias two_arg_use_facet : two_arg_use_facet.output ;
explicit two_arg_use_facet ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_BETHREADS : bethreads ;
alias bethreads : bethreads.output ;
explicit bethreads ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_CLOCK_GETTIME : clock_gettime ;
alias clock_gettime : clock_gettime.output ;
explicit clock_gettime ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_DIRENT_H : dirent_h ;
alias dirent_h : dirent_h.output ;
explicit dirent_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_EXPM1 : expm1 ;
alias expm1 : expm1.output ;
explicit expm1 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FLOAT128 : float128 ;
alias float128 : float128.output ;
explicit float128 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FTIME : ftime ;
alias ftime : ftime.output ;
explicit ftime ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME : getsystemtimeasfiletime ;
alias getsystemtimeasfiletime : getsystemtimeasfiletime.output ;
explicit getsystemtimeasfiletime ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_GETTIMEOFDAY : gettimeofday ;
alias gettimeofday : gettimeofday.output ;
explicit gettimeofday ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_HASH : hash ;
alias hash : hash.output ;
explicit hash ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_INT128 : int128 ;
alias int128 : int128.output ;
explicit int128 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_LOG1P : log1p ;
alias log1p : log1p.output ;
explicit log1p ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_LONG_LONG : long_long ;
alias long_long : long_long.output ;
explicit long_long ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_MACRO_USE_FACET : macro_use_facet ;
alias macro_use_facet : macro_use_facet.output ;
explicit macro_use_facet ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_MS_INT64 : ms_int64 ;
alias ms_int64 : ms_int64.output ;
explicit ms_int64 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NANOSLEEP : nanosleep ;
alias nanosleep : nanosleep.output ;
explicit nanosleep ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NL_TYPES_H : nl_types_h ;
alias nl_types_h : nl_types_h.output ;
explicit nl_types_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NRVO : nrvo ;
alias nrvo : nrvo.output ;
explicit nrvo ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR : partial_std_allocator ;
alias partial_std_allocator : partial_std_allocator.output ;
explicit partial_std_allocator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_DELAY_NP : pthread_delay_np ;
alias pthread_delay_np : pthread_delay_np.output ;
explicit pthread_delay_np ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE : pthread_mutexattr_settype ;
alias pthread_mutexattr_settype : pthread_mutexattr_settype.output ;
explicit pthread_mutexattr_settype ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_YIELD : pthread_yield ;
alias pthread_yield : pthread_yield.output ;
explicit pthread_yield ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREADS : pthreads ;
alias pthreads : pthreads.output ;
explicit pthreads ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_RVALUE_REFS : rvalue_refs ;
alias rvalue_refs : rvalue_refs.output ;
explicit rvalue_refs ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SCHED_YIELD : sched_yield ;
alias sched_yield : sched_yield.output ;
explicit sched_yield ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SGI_TYPE_TRAITS : sgi_type_traits ;
alias sgi_type_traits : sgi_type_traits.output ;
explicit sgi_type_traits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SIGACTION : sigaction ;
alias sigaction : sigaction.output ;
explicit sigaction ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SLIST : slist ;
alias slist : slist.output ;
explicit slist ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STATIC_ASSERT : static_assert ;
alias static_assert : static_assert.output ;
explicit static_assert ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STDINT_H : stdint_h ;
alias stdint_h : stdint_h.output ;
explicit stdint_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STLP_USE_FACET : stlp_use_facet ;
alias stlp_use_facet : stlp_use_facet.output ;
explicit stlp_use_facet ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_ARRAY : tr1_array ;
alias tr1_array : tr1_array.output ;
explicit tr1_array ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_BIND : tr1_bind ;
alias tr1_bind : tr1_bind.output ;
explicit tr1_bind ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS : tr1_complex_overloads ;
alias tr1_complex_overloads : tr1_complex_overloads.output ;
explicit tr1_complex_overloads ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG : tr1_complex_inverse_trig ;
alias tr1_complex_inverse_trig : tr1_complex_inverse_trig.output ;
explicit tr1_complex_inverse_trig ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_FUNCTION : tr1_function ;
alias tr1_function : tr1_function.output ;
explicit tr1_function ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_HASH : tr1_hash ;
alias tr1_hash : tr1_hash.output ;
explicit tr1_hash ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_MEM_FN : tr1_mem_fn ;
alias tr1_mem_fn : tr1_mem_fn.output ;
explicit tr1_mem_fn ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_RANDOM : tr1_random ;
alias tr1_random : tr1_random.output ;
explicit tr1_random ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER : tr1_reference_wrapper ;
alias tr1_reference_wrapper : tr1_reference_wrapper.output ;
explicit tr1_reference_wrapper ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_REGEX : tr1_regex ;
alias tr1_regex : tr1_regex.output ;
explicit tr1_regex ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_RESULT_OF : tr1_result_of ;
alias tr1_result_of : tr1_result_of.output ;
explicit tr1_result_of ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_SHARED_PTR : tr1_shared_ptr ;
alias tr1_shared_ptr : tr1_shared_ptr.output ;
explicit tr1_shared_ptr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_TUPLE : tr1_tuple ;
alias tr1_tuple : tr1_tuple.output ;
explicit tr1_tuple ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_TYPE_TRAITS : tr1_type_traits ;
alias tr1_type_traits : tr1_type_traits.output ;
explicit tr1_type_traits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UNORDERED_MAP : tr1_unordered_map ;
alias tr1_unordered_map : tr1_unordered_map.output ;
explicit tr1_unordered_map ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UNORDERED_SET : tr1_unordered_set ;
alias tr1_unordered_set : tr1_unordered_set.output ;
explicit tr1_unordered_set ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UTILITY : tr1_utility ;
alias tr1_utility : tr1_utility.output ;
explicit tr1_utility ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_UNISTD_H : unistd_h ;
alias unistd_h : unistd_h.output ;
explicit unistd_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_VARIADIC_TMPL : variadic_tmpl ;
alias variadic_tmpl : variadic_tmpl.output ;
explicit variadic_tmpl ;
run-simple test_case.cpp : : : <define>TEST_BOOST_MSVC6_MEMBER_TEMPLATES : boost_msvc6_member_templates ;
alias boost_msvc6_member_templates : boost_msvc6_member_templates.output ;
explicit boost_msvc6_member_templates ;
run-simple test_case.cpp : : : <define>TEST_BOOST_MSVC_STD_ITERATOR : boost_msvc_std_iterator ;
alias boost_msvc_std_iterator : boost_msvc_std_iterator.output ;
explicit boost_msvc_std_iterator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_WINTHREADS : winthreads ;
alias winthreads : winthreads.output ;
explicit winthreads ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ADL_BARRIER : adl_barrier ;
alias adl_barrier : adl_barrier.output ;
explicit adl_barrier ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP : argument_dependent_lookup ;
alias argument_dependent_lookup : argument_dependent_lookup.output ;
explicit argument_dependent_lookup ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS : array_type_specializations ;
alias array_type_specializations : array_type_specializations.output ;
explicit array_type_specializations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS : cxx11_auto_declarations ;
alias cxx11_auto_declarations : cxx11_auto_declarations.output ;
explicit cxx11_auto_declarations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS : cxx11_auto_multideclarations ;
alias cxx11_auto_multideclarations : cxx11_auto_multideclarations.output ;
explicit cxx11_auto_multideclarations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_AUTO_PTR : auto_ptr ;
alias auto_ptr : auto_ptr.output ;
explicit auto_ptr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG : boost_bcb_partial_specialization_bug ;
alias boost_bcb_partial_specialization_bug : boost_bcb_partial_specialization_bug.output ;
explicit boost_bcb_partial_specialization_bug ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CHAR16_T : cxx11_char16_t ;
alias cxx11_char16_t : cxx11_char16_t.output ;
explicit cxx11_char16_t ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CHAR32_T : cxx11_char32_t ;
alias cxx11_char32_t : cxx11_char32_t.output ;
explicit cxx11_char32_t ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION : complete_value_initialization ;
alias complete_value_initialization : complete_value_initialization.output ;
explicit complete_value_initialization ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CONSTEXPR : cxx11_constexpr ;
alias cxx11_constexpr : cxx11_constexpr.output ;
explicit cxx11_constexpr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CTYPE_FUNCTIONS : ctype_functions ;
alias ctype_functions : ctype_functions.output ;
explicit ctype_functions ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CV_SPECIALIZATIONS : cv_specializations ;
alias cv_specializations : cv_specializations.output ;
explicit cv_specializations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS : cv_void_specializations ;
alias cv_void_specializations : cv_void_specializations.output ;
explicit cv_void_specializations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CWCHAR : cwchar ;
alias cwchar : cwchar.output ;
explicit cwchar ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CWCTYPE : cwctype ;
alias cwctype : cwctype.output ;
explicit cwctype ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ADDRESSOF : cxx11_addressof ;
alias cxx11_addressof : cxx11_addressof.output ;
explicit cxx11_addressof ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ALIGNAS : cxx11_alignas ;
alias cxx11_alignas : cxx11_alignas.output ;
explicit cxx11_alignas ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ALLOCATOR : cxx11_allocator ;
alias cxx11_allocator : cxx11_allocator.output ;
explicit cxx11_allocator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR : cxx11_atomic_smart_ptr ;
alias cxx11_atomic_smart_ptr : cxx11_atomic_smart_ptr.output ;
explicit cxx11_atomic_smart_ptr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FINAL : cxx11_final ;
alias cxx11_final : cxx11_final.output ;
explicit cxx11_final ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_ARRAY : cxx11_hdr_array ;
alias cxx11_hdr_array : cxx11_hdr_array.output ;
explicit cxx11_hdr_array ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_ATOMIC : cxx11_hdr_atomic ;
alias cxx11_hdr_atomic : cxx11_hdr_atomic.output ;
explicit cxx11_hdr_atomic ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CHRONO : cxx11_hdr_chrono ;
alias cxx11_hdr_chrono : cxx11_hdr_chrono.output ;
explicit cxx11_hdr_chrono ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CODECVT : cxx11_hdr_codecvt ;
alias cxx11_hdr_codecvt : cxx11_hdr_codecvt.output ;
explicit cxx11_hdr_codecvt ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE : cxx11_hdr_condition_variable ;
alias cxx11_hdr_condition_variable : cxx11_hdr_condition_variable.output ;
explicit cxx11_hdr_condition_variable ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST : cxx11_hdr_forward_list ;
alias cxx11_hdr_forward_list : cxx11_hdr_forward_list.output ;
explicit cxx11_hdr_forward_list ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FUTURE : cxx11_hdr_future ;
alias cxx11_hdr_future : cxx11_hdr_future.output ;
explicit cxx11_hdr_future ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST : cxx11_hdr_initializer_list ;
alias cxx11_hdr_initializer_list : cxx11_hdr_initializer_list.output ;
explicit cxx11_hdr_initializer_list ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_MUTEX : cxx11_hdr_mutex ;
alias cxx11_hdr_mutex : cxx11_hdr_mutex.output ;
explicit cxx11_hdr_mutex ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_RANDOM : cxx11_hdr_random ;
alias cxx11_hdr_random : cxx11_hdr_random.output ;
explicit cxx11_hdr_random ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_RATIO : cxx11_hdr_ratio ;
alias cxx11_hdr_ratio : cxx11_hdr_ratio.output ;
explicit cxx11_hdr_ratio ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_REGEX : cxx11_hdr_regex ;
alias cxx11_hdr_regex : cxx11_hdr_regex.output ;
explicit cxx11_hdr_regex ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR : cxx11_hdr_system_error ;
alias cxx11_hdr_system_error : cxx11_hdr_system_error.output ;
explicit cxx11_hdr_system_error ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_THREAD : cxx11_hdr_thread ;
alias cxx11_hdr_thread : cxx11_hdr_thread.output ;
explicit cxx11_hdr_thread ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TUPLE : cxx11_hdr_tuple ;
alias cxx11_hdr_tuple : cxx11_hdr_tuple.output ;
explicit cxx11_hdr_tuple ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS : cxx11_hdr_type_traits ;
alias cxx11_hdr_type_traits : cxx11_hdr_type_traits.output ;
explicit cxx11_hdr_type_traits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TYPEINDEX : cxx11_hdr_typeindex ;
alias cxx11_hdr_typeindex : cxx11_hdr_typeindex.output ;
explicit cxx11_hdr_typeindex ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP : cxx11_hdr_unordered_map ;
alias cxx11_hdr_unordered_map : cxx11_hdr_unordered_map.output ;
explicit cxx11_hdr_unordered_map ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET : cxx11_hdr_unordered_set ;
alias cxx11_hdr_unordered_set : cxx11_hdr_unordered_set.output ;
explicit cxx11_hdr_unordered_set ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_INLINE_NAMESPACES : cxx11_inline_namespaces ;
alias cxx11_inline_namespaces : cxx11_inline_namespaces.output ;
explicit cxx11_inline_namespaces ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS : cxx11_non_public_defaulted_functions ;
alias cxx11_non_public_defaulted_functions : cxx11_non_public_defaulted_functions.output ;
explicit cxx11_non_public_defaulted_functions ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NUMERIC_LIMITS : cxx11_numeric_limits ;
alias cxx11_numeric_limits : cxx11_numeric_limits.output ;
explicit cxx11_numeric_limits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_REF_QUALIFIERS : cxx11_ref_qualifiers ;
alias cxx11_ref_qualifiers : cxx11_ref_qualifiers.output ;
explicit cxx11_ref_qualifiers ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_SMART_PTR : cxx11_smart_ptr ;
alias cxx11_smart_ptr : cxx11_smart_ptr.output ;
explicit cxx11_smart_ptr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_STD_ALIGN : cxx11_std_align ;
alias cxx11_std_align : cxx11_std_align.output ;
explicit cxx11_std_align ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES : cxx11_trailing_result_types ;
alias cxx11_trailing_result_types : cxx11_trailing_result_types.output ;
explicit cxx11_trailing_result_types ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS : cxx11_user_defined_literals ;
alias cxx11_user_defined_literals : cxx11_user_defined_literals.output ;
explicit cxx11_user_defined_literals ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_BINARY_LITERALS : cxx14_binary_literals ;
alias cxx14_binary_literals : cxx14_binary_literals.output ;
explicit cxx14_binary_literals ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_CONSTEXPR : cxx14_constexpr ;
alias cxx14_constexpr : cxx14_constexpr.output ;
explicit cxx14_constexpr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14_decltype_auto ;
alias cxx14_decltype_auto : cxx14_decltype_auto.output ;
explicit cxx14_decltype_auto ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS : cxx14_digit_separators ;
alias cxx14_digit_separators : cxx14_digit_separators.output ;
explicit cxx14_digit_separators ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ;
alias cxx14_generic_lambdas : cxx14_generic_lambdas.output ;
explicit cxx14_generic_lambdas ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX : cxx14_hdr_shared_mutex ;
alias cxx14_hdr_shared_mutex : cxx14_hdr_shared_mutex.output ;
explicit cxx14_hdr_shared_mutex ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES : cxx14_initialized_lambda_captures ;
alias cxx14_initialized_lambda_captures : cxx14_initialized_lambda_captures.output ;
explicit cxx14_initialized_lambda_captures ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI : cxx14_aggregate_nsdmi ;
alias cxx14_aggregate_nsdmi : cxx14_aggregate_nsdmi.output ;
explicit cxx14_aggregate_nsdmi ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION : cxx14_return_type_deduction ;
alias cxx14_return_type_deduction : cxx14_return_type_deduction.output ;
explicit cxx14_return_type_deduction ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES : cxx14_variable_templates ;
alias cxx14_variable_templates : cxx14_variable_templates.output ;
explicit cxx14_variable_templates ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL : cxx11_hdr_functional ;
alias cxx11_hdr_functional : cxx11_hdr_functional.output ;
explicit cxx11_hdr_functional ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DECLTYPE : cxx11_decltype ;
alias cxx11_decltype : cxx11_decltype.output ;
explicit cxx11_decltype ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DECLTYPE_N3276 : cxx11_decltype_n3276 ;
alias cxx11_decltype_n3276 : cxx11_decltype_n3276.output ;
explicit cxx11_decltype_n3276 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_DEDUCED_TYPENAME : boost_deduced_typename ;
alias boost_deduced_typename : boost_deduced_typename.output ;
explicit boost_deduced_typename ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS : cxx11_defaulted_functions ;
alias cxx11_defaulted_functions : cxx11_defaulted_functions.output ;
explicit cxx11_defaulted_functions ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS : cxx11_deleted_functions ;
alias cxx11_deleted_functions : cxx11_deleted_functions.output ;
explicit cxx11_deleted_functions ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS : dependent_nested_derivations ;
alias dependent_nested_derivations : dependent_nested_derivations.output ;
explicit dependent_nested_derivations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS : dependent_types_in_template_value_parameters ;
alias dependent_types_in_template_value_parameters : dependent_types_in_template_value_parameters.output ;
explicit dependent_types_in_template_value_parameters ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE : exception_std_namespace ;
alias exception_std_namespace : exception_std_namespace.output ;
explicit exception_std_namespace ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXCEPTIONS : exceptions ;
alias exceptions : exceptions.output ;
explicit exceptions ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS : explicit_function_template_arguments ;
alias explicit_function_template_arguments : explicit_function_template_arguments.output ;
explicit explicit_function_template_arguments ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS : cxx11_explicit_conversion_operators ;
alias cxx11_explicit_conversion_operators : cxx11_explicit_conversion_operators.output ;
explicit cxx11_explicit_conversion_operators ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE : cxx11_extern_template ;
alias cxx11_extern_template : cxx11_extern_template.output ;
explicit cxx11_extern_template ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FENV_H : fenv_h ;
alias fenv_h : fenv_h.output ;
explicit fenv_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS : cxx11_fixed_length_variadic_template_expansion_packs ;
alias cxx11_fixed_length_variadic_template_expansion_packs : cxx11_fixed_length_variadic_template_expansion_packs.output ;
explicit cxx11_fixed_length_variadic_template_expansion_packs ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING : function_template_ordering ;
alias function_template_ordering : function_template_ordering.output ;
explicit function_template_ordering ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS : cxx11_function_template_default_args ;
alias cxx11_function_template_default_args : cxx11_function_template_default_args.output ;
explicit cxx11_function_template_default_args ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS : function_type_specializations ;
alias function_type_specializations : function_type_specializations.output ;
explicit function_type_specializations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS : ms_int64_numeric_limits ;
alias ms_int64_numeric_limits : ms_int64_numeric_limits.output ;
explicit ms_int64_numeric_limits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION : inclass_member_initialization ;
alias inclass_member_initialization : inclass_member_initialization.output ;
explicit inclass_member_initialization ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INTEGRAL_INT64_T : integral_int64_t ;
alias integral_int64_t : integral_int64_t.output ;
explicit integral_int64_t ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IOSFWD : iosfwd ;
alias iosfwd : iosfwd.output ;
explicit iosfwd ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IOSTREAM : iostream ;
alias iostream : iostream.output ;
explicit iostream ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IS_ABSTRACT : is_abstract ;
alias is_abstract : is_abstract.output ;
explicit is_abstract ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS : templated_iterator_constructors ;
alias templated_iterator_constructors : templated_iterator_constructors.output ;
explicit templated_iterator_constructors ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_LAMBDAS : cxx11_lambdas ;
alias cxx11_lambdas : cxx11_lambdas.output ;
explicit cxx11_lambdas ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LIMITS : limits ;
alias limits : limits.output ;
explicit limits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS : limits_compile_time_constants ;
alias limits_compile_time_constants : limits_compile_time_constants.output ;
explicit limits_compile_time_constants ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS : long_long_numeric_limits ;
alias long_long_numeric_limits : long_long_numeric_limits.output ;
explicit long_long_numeric_limits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LONG_LONG : long_long ;
alias long_long : long_long.output ;
explicit long_long ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS : member_function_specializations ;
alias member_function_specializations : member_function_specializations.output ;
explicit member_function_specializations ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD : member_template_keyword ;
alias member_template_keyword : member_template_keyword.output ;
explicit member_template_keyword ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS : pointer_to_member_template_parameters ;
alias pointer_to_member_template_parameters : pointer_to_member_template_parameters.output ;
explicit pointer_to_member_template_parameters ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS : member_template_friends ;
alias member_template_friends : member_template_friends.output ;
explicit member_template_friends ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATES : member_templates ;
alias member_templates : member_templates.output ;
explicit member_templates ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_NESTED_FRIENDSHIP : nested_friendship ;
alias nested_friendship : nested_friendship.output ;
explicit nested_friendship ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NOEXCEPT : cxx11_noexcept ;
alias cxx11_noexcept : cxx11_noexcept.output ;
explicit cxx11_noexcept ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NULLPTR : cxx11_nullptr ;
alias cxx11_nullptr : cxx11_nullptr.output ;
explicit cxx11_nullptr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_OPERATORS_IN_NAMESPACE : operators_in_namespace ;
alias operators_in_namespace : operators_in_namespace.output ;
explicit operators_in_namespace ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS : partial_specialization_implicit_default_args ;
alias partial_specialization_implicit_default_args : partial_specialization_implicit_default_args.output ;
explicit partial_specialization_implicit_default_args ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION : template_partial_specialization ;
alias template_partial_specialization : template_partial_specialization.output ;
explicit template_partial_specialization ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_PRIVATE_IN_AGGREGATE : private_in_aggregate ;
alias private_in_aggregate : private_in_aggregate.output ;
explicit private_in_aggregate ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_CONST : pointer_to_member_const ;
alias pointer_to_member_const : pointer_to_member_const.output ;
explicit pointer_to_member_const ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RANGE_BASED_FOR : cxx11_range_based_for ;
alias cxx11_range_based_for : cxx11_range_based_for.output ;
explicit cxx11_range_based_for ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RAW_LITERALS : cxx11_raw_literals ;
alias cxx11_raw_literals : cxx11_raw_literals.output ;
explicit cxx11_raw_literals ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION : unreachable_return_detection ;
alias unreachable_return_detection : unreachable_return_detection.output ;
explicit unreachable_return_detection ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_RTTI : rtti ;
alias rtti : rtti.output ;
explicit rtti ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RVALUE_REFERENCES : cxx11_rvalue_references ;
alias cxx11_rvalue_references : cxx11_rvalue_references.output ;
explicit cxx11_rvalue_references ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_SCOPED_ENUMS : cxx11_scoped_enums ;
alias cxx11_scoped_enums : cxx11_scoped_enums.output ;
explicit cxx11_scoped_enums ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SFINAE : sfinae ;
alias sfinae : sfinae.output ;
explicit sfinae ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SFINAE_EXPR : sfinae_expr ;
alias sfinae_expr : sfinae_expr.output ;
explicit sfinae_expr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STRINGSTREAM : stringstream ;
alias stringstream : stringstream.output ;
explicit stringstream ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_STATIC_ASSERT : cxx11_static_assert ;
alias cxx11_static_assert : cxx11_static_assert.output ;
explicit cxx11_static_assert ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ALLOCATOR : std_allocator ;
alias std_allocator : std_allocator.output ;
explicit std_allocator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_DISTANCE : std_distance ;
alias std_distance : std_distance.output ;
explicit std_distance ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ITERATOR_TRAITS : std_iterator_traits ;
alias std_iterator_traits : std_iterator_traits.output ;
explicit std_iterator_traits ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ITERATOR : std_iterator ;
alias std_iterator : std_iterator.output ;
explicit std_iterator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_LOCALE : std_locale ;
alias std_locale : std_locale.output ;
explicit std_locale ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_MESSAGES : std_messages ;
alias std_messages : std_messages.output ;
explicit std_messages ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_MIN_MAX : std_min_max ;
alias std_min_max : std_min_max.output ;
explicit std_min_max ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN : std_output_iterator_assign ;
alias std_output_iterator_assign : std_output_iterator_assign.output ;
explicit std_output_iterator_assign ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_TYPEINFO : std_typeinfo ;
alias std_typeinfo : std_typeinfo.output ;
explicit std_typeinfo ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_USE_FACET : std_use_facet ;
alias std_use_facet : std_use_facet.output ;
explicit std_use_facet ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_WSTREAMBUF : std_wstreambuf ;
alias std_wstreambuf : std_wstreambuf.output ;
explicit std_wstreambuf ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_WSTRING : std_wstring ;
alias std_wstring : std_wstring.output ;
explicit std_wstring ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STDC_NAMESPACE : stdc_namespace ;
alias stdc_namespace : stdc_namespace.output ;
explicit stdc_namespace ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SWPRINTF : swprintf ;
alias swprintf : swprintf.output ;
explicit swprintf ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS : cxx11_local_class_template_parameters ;
alias cxx11_local_class_template_parameters : cxx11_local_class_template_parameters.output ;
explicit cxx11_local_class_template_parameters ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES : cxx11_template_aliases ;
alias cxx11_template_aliases : cxx11_template_aliases.output ;
explicit cxx11_template_aliases ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATED_IOSTREAMS : templated_iostreams ;
alias templated_iostreams : templated_iostreams.output ;
explicit templated_iostreams ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATE_TEMPLATES : template_templates ;
alias template_templates : template_templates.output ;
explicit template_templates ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP : two_phase_name_lookup ;
alias two_phase_name_lookup : two_phase_name_lookup.output ;
explicit two_phase_name_lookup ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TYPEID : typeid ;
alias typeid : typeid.output ;
explicit typeid ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR : typename_with_ctor ;
alias typename_with_ctor : typename_with_ctor.output ;
explicit typename_with_ctor ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS : cxx11_unicode_literals ;
alias cxx11_unicode_literals : cxx11_unicode_literals.output ;
explicit cxx11_unicode_literals ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX : cxx11_unified_initialization_syntax ;
alias cxx11_unified_initialization_syntax : cxx11_unified_initialization_syntax.output ;
explicit cxx11_unified_initialization_syntax ;
run-simple test_case.cpp : : : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL : boost_function_scope_using_declaration_breaks_adl ;
alias boost_function_scope_using_declaration_breaks_adl : boost_function_scope_using_declaration_breaks_adl.output ;
explicit boost_function_scope_using_declaration_breaks_adl ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE : using_declaration_overloads_from_typename_base ;
alias using_declaration_overloads_from_typename_base : using_declaration_overloads_from_typename_base.output ;
explicit using_declaration_overloads_from_typename_base ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_USING_TEMPLATE : using_template ;
alias using_template : using_template.output ;
explicit using_template ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_VARIADIC_MACROS : cxx11_variadic_macros ;
alias cxx11_variadic_macros : cxx11_variadic_macros.output ;
explicit cxx11_variadic_macros ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES : cxx11_variadic_templates ;
alias cxx11_variadic_templates : cxx11_variadic_templates.output ;
explicit cxx11_variadic_templates ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_VOID_RETURNS : void_returns ;
alias void_returns : void_returns.output ;
explicit void_returns ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INTRINSIC_WCHAR_T : intrinsic_wchar_t ;
alias intrinsic_wchar_t : intrinsic_wchar_t.output ;
explicit intrinsic_wchar_t ;

View File

@@ -0,0 +1,9 @@
// 32.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
int test[sizeof(void*) == 4? 1 : -1];

View File

@@ -0,0 +1,9 @@
// 64.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
int test[sizeof(void*) == 8? 1 : -1];

View File

@@ -0,0 +1,23 @@
# Jamfile.jam
#
# Copyright 2012 Steven Watanabe
#
# Distributed under the Boost Software License Version 1.0. (See
# accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
project /boost/architecture
: requirements
-<conditional>@boostcpp.deduce-address-model
-<conditional>@boostcpp.deduce-architecture
;
obj 32 : 32.cpp ;
obj 64 : 64.cpp ;
obj arm : arm.cpp ;
obj combined : combined.cpp ;
obj mips1 : mips1.cpp ;
obj power : power.cpp ;
obj sparc : sparc.cpp ;
obj x86 : x86.cpp ;

View File

@@ -0,0 +1,15 @@
// arm.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !defined(__arm__) && !defined(__thumb__) && \
!defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \
!defined(_ARM) && !defined(_M_ARM) && \
!defined(__aarch64__)
#error "Not ARM"
#endif

View File

@@ -0,0 +1,21 @@
// combined.cpp
//
// Copyright (c) 2012 Steven Watanabe
// 2014 Oliver Kowalke
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !defined(i386) && !defined(__i386__) && !defined(__i386) \
&& !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \
&& !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \
&& !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \
&& !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \
&& !defined(__x86_64) && !defined(_M_X64) \
&& !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \
&& !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \
&& !defined(__POWERPC__) && !defined(__PPCGECKO__) \
&& !defined(__PPCBROADWAY) && !defined(_XENON)
#error "Not combined"
#endif

View File

@@ -0,0 +1,11 @@
// mips1.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !((defined(__mips) && __mips == 1) || defined(_MIPS_ISA_MIPS1) || defined(_R3000))
#error "Not MIPS1"
#endif

View File

@@ -0,0 +1,14 @@
// power.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \
&& !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \
&& !defined(__POWERPC__) && !defined(__PPCGECKO__) \
&& !defined(__PPCBROADWAY) && !defined(_XENON)
#error "Not PPC"
#endif

View File

@@ -0,0 +1,11 @@
// power.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !defined(__sparc__) && !defined(__sparc)
#error "Not SPARC"
#endif

View File

@@ -0,0 +1,16 @@
// x86.cpp
//
// Copyright (c) 2012 Steven Watanabe
//
// Distributed under the Boost Software License Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if !defined(i386) && !defined(__i386__) && !defined(__i386) \
&& !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \
&& !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \
&& !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \
&& !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \
&& !defined(__x86_64) && !defined(_M_X64)
#error "Not x86"
#endif

21
checks/config.jam Normal file
View File

@@ -0,0 +1,21 @@
# Copyright John Maddock.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
import modules ;
rule requires ( names + )
{
local config-binding = [ modules.binding $(__name__) ] ;
local result ;
for name in $(names)
{
local msg = "Boost.Config Feature Check: " ;
msg += $(name) ;
result += [ check-target-builds $(config-binding:D)//$(name) $(msg:J=) : : <build>no ] ;
}
return $(result) ;
}

793
checks/test_case.cpp Normal file
View File

@@ -0,0 +1,793 @@
// This file was automatically generated on Thu Aug 13 16:32:12 2015
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
// Revision $Id$
//
#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET
# include "../test/boost_has_2arg_use_facet.ipp"
namespace test = boost_has_two_arg_use_facet;
#endif
#ifdef TEST_BOOST_HAS_BETHREADS
# include "../test/boost_has_bethreads.ipp"
namespace test = boost_has_bethreads;
#endif
#ifdef TEST_BOOST_HAS_CLOCK_GETTIME
# include "../test/boost_has_clock_gettime.ipp"
namespace test = boost_has_clock_gettime;
#endif
#ifdef TEST_BOOST_HAS_DIRENT_H
# include "../test/boost_has_dirent_h.ipp"
namespace test = boost_has_dirent_h;
#endif
#ifdef TEST_BOOST_HAS_EXPM1
# include "../test/boost_has_expm1.ipp"
namespace test = boost_has_expm1;
#endif
#ifdef TEST_BOOST_HAS_FLOAT128
# include "../test/boost_has_float128.ipp"
namespace test = boost_has_float128;
#endif
#ifdef TEST_BOOST_HAS_FTIME
# include "../test/boost_has_ftime.ipp"
namespace test = boost_has_ftime;
#endif
#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME
# include "../test/boost_has_getsystemtimeasfiletime.ipp"
namespace test = boost_has_getsystemtimeasfiletime;
#endif
#ifdef TEST_BOOST_HAS_GETTIMEOFDAY
# include "../test/boost_has_gettimeofday.ipp"
namespace test = boost_has_gettimeofday;
#endif
#ifdef TEST_BOOST_HAS_HASH
# include "../test/boost_has_hash.ipp"
namespace test = boost_has_hash;
#endif
#ifdef TEST_BOOST_HAS_INT128
# include "../test/boost_has_int128.ipp"
namespace test = boost_has_int128;
#endif
#ifdef TEST_BOOST_HAS_LOG1P
# include "../test/boost_has_log1p.ipp"
namespace test = boost_has_log1p;
#endif
#ifdef TEST_BOOST_HAS_LONG_LONG
# include "../test/boost_has_long_long.ipp"
namespace test = boost_has_long_long;
#endif
#ifdef TEST_BOOST_HAS_MACRO_USE_FACET
# include "../test/boost_has_macro_use_facet.ipp"
namespace test = boost_has_macro_use_facet;
#endif
#ifdef TEST_BOOST_HAS_MS_INT64
# include "../test/boost_has_ms_int64.ipp"
namespace test = boost_has_ms_int64;
#endif
#ifdef TEST_BOOST_HAS_NANOSLEEP
# include "../test/boost_has_nanosleep.ipp"
namespace test = boost_has_nanosleep;
#endif
#ifdef TEST_BOOST_HAS_NL_TYPES_H
# include "../test/boost_has_nl_types_h.ipp"
namespace test = boost_has_nl_types_h;
#endif
#ifdef TEST_BOOST_HAS_NRVO
# include "../test/boost_has_nrvo.ipp"
namespace test = boost_has_nrvo;
#endif
#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR
# include "../test/boost_has_part_alloc.ipp"
namespace test = boost_has_partial_std_allocator;
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP
# include "../test/boost_has_pthread_delay_np.ipp"
namespace test = boost_has_pthread_delay_np;
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# include "../test/boost_has_pthread_ma_st.ipp"
namespace test = boost_has_pthread_mutexattr_settype;
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_YIELD
# include "../test/boost_has_pthread_yield.ipp"
namespace test = boost_has_pthread_yield;
#endif
#ifdef TEST_BOOST_HAS_PTHREADS
# include "../test/boost_has_pthreads.ipp"
namespace test = boost_has_pthreads;
#endif
#ifdef TEST_BOOST_HAS_RVALUE_REFS
# include "../test/boost_has_rvalue_refs.ipp"
namespace test = boost_has_rvalue_refs;
#endif
#ifdef TEST_BOOST_HAS_SCHED_YIELD
# include "../test/boost_has_sched_yield.ipp"
namespace test = boost_has_sched_yield;
#endif
#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS
# include "../test/boost_has_sgi_type_traits.ipp"
namespace test = boost_has_sgi_type_traits;
#endif
#ifdef TEST_BOOST_HAS_SIGACTION
# include "../test/boost_has_sigaction.ipp"
namespace test = boost_has_sigaction;
#endif
#ifdef TEST_BOOST_HAS_SLIST
# include "../test/boost_has_slist.ipp"
namespace test = boost_has_slist;
#endif
#ifdef TEST_BOOST_HAS_STATIC_ASSERT
# include "../test/boost_has_static_assert.ipp"
namespace test = boost_has_static_assert;
#endif
#ifdef TEST_BOOST_HAS_STDINT_H
# include "../test/boost_has_stdint_h.ipp"
namespace test = boost_has_stdint_h;
#endif
#ifdef TEST_BOOST_HAS_STLP_USE_FACET
# include "../test/boost_has_stlp_use_facet.ipp"
namespace test = boost_has_stlp_use_facet;
#endif
#ifdef TEST_BOOST_HAS_TR1_ARRAY
# include "../test/boost_has_tr1_array.ipp"
namespace test = boost_has_tr1_array;
#endif
#ifdef TEST_BOOST_HAS_TR1_BIND
# include "../test/boost_has_tr1_bind.ipp"
namespace test = boost_has_tr1_bind;
#endif
#ifdef TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS
# include "../test/boost_has_tr1_complex_over.ipp"
namespace test = boost_has_tr1_complex_overloads;
#endif
#ifdef TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
# include "../test/boost_has_tr1_complex_trig.ipp"
namespace test = boost_has_tr1_complex_inverse_trig;
#endif
#ifdef TEST_BOOST_HAS_TR1_FUNCTION
# include "../test/boost_has_tr1_function.ipp"
namespace test = boost_has_tr1_function;
#endif
#ifdef TEST_BOOST_HAS_TR1_HASH
# include "../test/boost_has_tr1_hash.ipp"
namespace test = boost_has_tr1_hash;
#endif
#ifdef TEST_BOOST_HAS_TR1_MEM_FN
# include "../test/boost_has_tr1_mem_fn.ipp"
namespace test = boost_has_tr1_mem_fn;
#endif
#ifdef TEST_BOOST_HAS_TR1_RANDOM
# include "../test/boost_has_tr1_random.ipp"
namespace test = boost_has_tr1_random;
#endif
#ifdef TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER
# include "../test/boost_has_tr1_ref_wrap.ipp"
namespace test = boost_has_tr1_reference_wrapper;
#endif
#ifdef TEST_BOOST_HAS_TR1_REGEX
# include "../test/boost_has_tr1_regex.ipp"
namespace test = boost_has_tr1_regex;
#endif
#ifdef TEST_BOOST_HAS_TR1_RESULT_OF
# include "../test/boost_has_tr1_result_of.ipp"
namespace test = boost_has_tr1_result_of;
#endif
#ifdef TEST_BOOST_HAS_TR1_SHARED_PTR
# include "../test/boost_has_tr1_shared_ptr.ipp"
namespace test = boost_has_tr1_shared_ptr;
#endif
#ifdef TEST_BOOST_HAS_TR1_TUPLE
# include "../test/boost_has_tr1_tuple.ipp"
namespace test = boost_has_tr1_tuple;
#endif
#ifdef TEST_BOOST_HAS_TR1_TYPE_TRAITS
# include "../test/boost_has_tr1_type_traits.ipp"
namespace test = boost_has_tr1_type_traits;
#endif
#ifdef TEST_BOOST_HAS_TR1_UNORDERED_MAP
# include "../test/boost_has_tr1_unordered_map.ipp"
namespace test = boost_has_tr1_unordered_map;
#endif
#ifdef TEST_BOOST_HAS_TR1_UNORDERED_SET
# include "../test/boost_has_tr1_unordered_set.ipp"
namespace test = boost_has_tr1_unordered_set;
#endif
#ifdef TEST_BOOST_HAS_TR1_UTILITY
# include "../test/boost_has_tr1_utility.ipp"
namespace test = boost_has_tr1_utility;
#endif
#ifdef TEST_BOOST_HAS_UNISTD_H
# include "../test/boost_has_unistd_h.ipp"
namespace test = boost_has_unistd_h;
#endif
#ifdef TEST_BOOST_HAS_VARIADIC_TMPL
# include "../test/boost_has_variadic_tmpl.ipp"
namespace test = boost_has_variadic_tmpl;
#endif
#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES
# include "../test/boost_has_vc6_mem_templ.ipp"
namespace test = boost_msvc6_member_templates;
#endif
#ifdef TEST_BOOST_MSVC_STD_ITERATOR
# include "../test/boost_has_vc_iterator.ipp"
namespace test = boost_msvc_std_iterator;
#endif
#ifdef TEST_BOOST_HAS_WINTHREADS
# include "../test/boost_has_winthreads.ipp"
namespace test = boost_has_winthreads;
#endif
#ifdef TEST_BOOST_NO_ADL_BARRIER
# include "../test/boost_no_adl_barrier.ipp"
namespace test = boost_no_adl_barrier;
#endif
#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# include "../test/boost_no_arg_dep_lookup.ipp"
namespace test = boost_no_argument_dependent_lookup;
#endif
#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# include "../test/boost_no_array_type_spec.ipp"
namespace test = boost_no_array_type_specializations;
#endif
#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS
# include "../test/boost_no_auto_declarations.ipp"
namespace test = boost_no_cxx11_auto_declarations;
#endif
#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# include "../test/boost_no_auto_multidecl.ipp"
namespace test = boost_no_cxx11_auto_multideclarations;
#endif
#ifdef TEST_BOOST_NO_AUTO_PTR
# include "../test/boost_no_auto_ptr.ipp"
namespace test = boost_no_auto_ptr;
#endif
#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# include "../test/boost_no_bcb_partial_spec.ipp"
namespace test = boost_bcb_partial_specialization_bug;
#endif
#ifdef TEST_BOOST_NO_CXX11_CHAR16_T
# include "../test/boost_no_char16_t.ipp"
namespace test = boost_no_cxx11_char16_t;
#endif
#ifdef TEST_BOOST_NO_CXX11_CHAR32_T
# include "../test/boost_no_char32_t.ipp"
namespace test = boost_no_cxx11_char32_t;
#endif
#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# include "../test/boost_no_com_value_init.ipp"
namespace test = boost_no_complete_value_initialization;
#endif
#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR
# include "../test/boost_no_constexpr.ipp"
namespace test = boost_no_cxx11_constexpr;
#endif
#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS
# include "../test/boost_no_ctype_functions.ipp"
namespace test = boost_no_ctype_functions;
#endif
#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS
# include "../test/boost_no_cv_spec.ipp"
namespace test = boost_no_cv_specializations;
#endif
#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS
# include "../test/boost_no_cv_void_spec.ipp"
namespace test = boost_no_cv_void_specializations;
#endif
#ifdef TEST_BOOST_NO_CWCHAR
# include "../test/boost_no_cwchar.ipp"
namespace test = boost_no_cwchar;
#endif
#ifdef TEST_BOOST_NO_CWCTYPE
# include "../test/boost_no_cwctype.ipp"
namespace test = boost_no_cwctype;
#endif
#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF
# include "../test/boost_no_cxx11_addressof.ipp"
namespace test = boost_no_cxx11_addressof;
#endif
#ifdef TEST_BOOST_NO_CXX11_ALIGNAS
# include "../test/boost_no_cxx11_alignas.ipp"
namespace test = boost_no_cxx11_alignas;
#endif
#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR
# include "../test/boost_no_cxx11_allocator.ipp"
namespace test = boost_no_cxx11_allocator;
#endif
#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR
# include "../test/boost_no_cxx11_atomic_sp.ipp"
namespace test = boost_no_cxx11_atomic_smart_ptr;
#endif
#ifdef TEST_BOOST_NO_CXX11_FINAL
# include "../test/boost_no_cxx11_final.ipp"
namespace test = boost_no_cxx11_final;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY
# include "../test/boost_no_cxx11_hdr_array.ipp"
namespace test = boost_no_cxx11_hdr_array;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC
# include "../test/boost_no_cxx11_hdr_atomic.ipp"
namespace test = boost_no_cxx11_hdr_atomic;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO
# include "../test/boost_no_cxx11_hdr_chrono.ipp"
namespace test = boost_no_cxx11_hdr_chrono;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT
# include "../test/boost_no_cxx11_hdr_codecvt.ipp"
namespace test = boost_no_cxx11_hdr_codecvt;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# include "../test/boost_no_cxx11_hdr_condition_variable.ipp"
namespace test = boost_no_cxx11_hdr_condition_variable;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST
# include "../test/boost_no_cxx11_hdr_forward_list.ipp"
namespace test = boost_no_cxx11_hdr_forward_list;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE
# include "../test/boost_no_cxx11_hdr_future.ipp"
namespace test = boost_no_cxx11_hdr_future;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# include "../test/boost_no_cxx11_hdr_initializer_list.ipp"
namespace test = boost_no_cxx11_hdr_initializer_list;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX
# include "../test/boost_no_cxx11_hdr_mutex.ipp"
namespace test = boost_no_cxx11_hdr_mutex;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM
# include "../test/boost_no_cxx11_hdr_random.ipp"
namespace test = boost_no_cxx11_hdr_random;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO
# include "../test/boost_no_cxx11_hdr_ratio.ipp"
namespace test = boost_no_cxx11_hdr_ratio;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX
# include "../test/boost_no_cxx11_hdr_regex.ipp"
namespace test = boost_no_cxx11_hdr_regex;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# include "../test/boost_no_cxx11_hdr_system_error.ipp"
namespace test = boost_no_cxx11_hdr_system_error;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD
# include "../test/boost_no_cxx11_hdr_thread.ipp"
namespace test = boost_no_cxx11_hdr_thread;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE
# include "../test/boost_no_cxx11_hdr_tuple.ipp"
namespace test = boost_no_cxx11_hdr_tuple;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS
# include "../test/boost_no_cxx11_hdr_type_traits.ipp"
namespace test = boost_no_cxx11_hdr_type_traits;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX
# include "../test/boost_no_cxx11_hdr_typeindex.ipp"
namespace test = boost_no_cxx11_hdr_typeindex;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP
# include "../test/boost_no_cxx11_hdr_unordered_map.ipp"
namespace test = boost_no_cxx11_hdr_unordered_map;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET
# include "../test/boost_no_cxx11_hdr_unordered_set.ipp"
namespace test = boost_no_cxx11_hdr_unordered_set;
#endif
#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES
# include "../test/boost_no_cxx11_inline_namespaces.ipp"
namespace test = boost_no_cxx11_inline_namespaces;
#endif
#ifdef TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
# include "../test/boost_no_cxx11_non_pub_def_fun.ipp"
namespace test = boost_no_cxx11_non_public_defaulted_functions;
#endif
#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS
# include "../test/boost_no_cxx11_numeric_limits.ipp"
namespace test = boost_no_cxx11_numeric_limits;
#endif
#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS
# include "../test/boost_no_cxx11_ref_qualifiers.ipp"
namespace test = boost_no_cxx11_ref_qualifiers;
#endif
#ifdef TEST_BOOST_NO_CXX11_SMART_PTR
# include "../test/boost_no_cxx11_smart_ptr.ipp"
namespace test = boost_no_cxx11_smart_ptr;
#endif
#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN
# include "../test/boost_no_cxx11_std_align.ipp"
namespace test = boost_no_cxx11_std_align;
#endif
#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# include "../test/boost_no_cxx11_trailing_result_types.ipp"
namespace test = boost_no_cxx11_trailing_result_types;
#endif
#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS
# include "../test/boost_no_cxx11_user_lit.ipp"
namespace test = boost_no_cxx11_user_defined_literals;
#endif
#ifdef TEST_BOOST_NO_CXX14_BINARY_LITERALS
# include "../test/boost_no_cxx14_binary_literals.ipp"
namespace test = boost_no_cxx14_binary_literals;
#endif
#ifdef TEST_BOOST_NO_CXX14_CONSTEXPR
# include "../test/boost_no_cxx14_constexpr.ipp"
namespace test = boost_no_cxx14_constexpr;
#endif
#ifdef TEST_BOOST_NO_CXX14_DECLTYPE_AUTO
# include "../test/boost_no_cxx14_decltype_auto.ipp"
namespace test = boost_no_cxx14_decltype_auto;
#endif
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
# include "../test/boost_no_cxx14_digit_separator.ipp"
namespace test = boost_no_cxx14_digit_separators;
#endif
#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
# include "../test/boost_no_cxx14_generic_lambda.ipp"
namespace test = boost_no_cxx14_generic_lambdas;
#endif
#ifdef TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX
# include "../test/boost_no_cxx14_hdr_shared_mutex.ipp"
namespace test = boost_no_cxx14_hdr_shared_mutex;
#endif
#ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# include "../test/boost_no_cxx14_lambda_capture.ipp"
namespace test = boost_no_cxx14_initialized_lambda_captures;
#endif
#ifdef TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI
# include "../test/boost_no_cxx14_member_init.ipp"
namespace test = boost_no_cxx14_aggregate_nsdmi;
#endif
#ifdef TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# include "../test/boost_no_cxx14_return_type_ded.ipp"
namespace test = boost_no_cxx14_return_type_deduction;
#endif
#ifdef TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES
# include "../test/boost_no_cxx14_var_templ.ipp"
namespace test = boost_no_cxx14_variable_templates;
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL
# include "../test/boost_no_cxx_hdr_functional.ipp"
namespace test = boost_no_cxx11_hdr_functional;
#endif
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE
# include "../test/boost_no_decltype.ipp"
namespace test = boost_no_cxx11_decltype;
#endif
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276
# include "../test/boost_no_decltype_n3276.ipp"
namespace test = boost_no_cxx11_decltype_n3276;
#endif
#ifdef TEST_BOOST_DEDUCED_TYPENAME
# include "../test/boost_no_ded_typename.ipp"
namespace test = boost_deduced_typename;
#endif
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# include "../test/boost_no_defaulted_functions.ipp"
namespace test = boost_no_cxx11_defaulted_functions;
#endif
#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS
# include "../test/boost_no_deleted_functions.ipp"
namespace test = boost_no_cxx11_deleted_functions;
#endif
#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# include "../test/boost_no_dep_nested_class.ipp"
namespace test = boost_no_dependent_nested_derivations;
#endif
#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# include "../test/boost_no_dep_val_param.ipp"
namespace test = boost_no_dependent_types_in_template_value_parameters;
#endif
#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE
# include "../test/boost_no_excep_std.ipp"
namespace test = boost_no_exception_std_namespace;
#endif
#ifdef TEST_BOOST_NO_EXCEPTIONS
# include "../test/boost_no_exceptions.ipp"
namespace test = boost_no_exceptions;
#endif
#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# include "../test/boost_no_exp_func_tem_arg.ipp"
namespace test = boost_no_explicit_function_template_arguments;
#endif
#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# include "../test/boost_no_explicit_cvt_ops.ipp"
namespace test = boost_no_cxx11_explicit_conversion_operators;
#endif
#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE
# include "../test/boost_no_extern_template.ipp"
namespace test = boost_no_cxx11_extern_template;
#endif
#ifdef TEST_BOOST_NO_FENV_H
# include "../test/boost_no_fenv_h.ipp"
namespace test = boost_no_fenv_h;
#endif
#ifdef TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
# include "../test/boost_no_fixed_len_variadic_templates.ipp"
namespace test = boost_no_cxx11_fixed_length_variadic_template_expansion_packs;
#endif
#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# include "../test/boost_no_func_tmp_order.ipp"
namespace test = boost_no_function_template_ordering;
#endif
#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# include "../test/boost_no_function_template_default_args.ipp"
namespace test = boost_no_cxx11_function_template_default_args;
#endif
#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
# include "../test/boost_no_function_type_spec.ipp"
namespace test = boost_no_function_type_specializations;
#endif
#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS
# include "../test/boost_no_i64_limits.ipp"
namespace test = boost_no_ms_int64_numeric_limits;
#endif
#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# include "../test/boost_no_inline_memb_init.ipp"
namespace test = boost_no_inclass_member_initialization;
#endif
#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T
# include "../test/boost_no_integral_int64_t.ipp"
namespace test = boost_no_integral_int64_t;
#endif
#ifdef TEST_BOOST_NO_IOSFWD
# include "../test/boost_no_iosfwd.ipp"
namespace test = boost_no_iosfwd;
#endif
#ifdef TEST_BOOST_NO_IOSTREAM
# include "../test/boost_no_iostream.ipp"
namespace test = boost_no_iostream;
#endif
#ifdef TEST_BOOST_NO_IS_ABSTRACT
# include "../test/boost_no_is_abstract.ipp"
namespace test = boost_no_is_abstract;
#endif
#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# include "../test/boost_no_iter_construct.ipp"
namespace test = boost_no_templated_iterator_constructors;
#endif
#ifdef TEST_BOOST_NO_CXX11_LAMBDAS
# include "../test/boost_no_lambdas.ipp"
namespace test = boost_no_cxx11_lambdas;
#endif
#ifdef TEST_BOOST_NO_LIMITS
# include "../test/boost_no_limits.ipp"
namespace test = boost_no_limits;
#endif
#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# include "../test/boost_no_limits_const_exp.ipp"
namespace test = boost_no_limits_compile_time_constants;
#endif
#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS
# include "../test/boost_no_ll_limits.ipp"
namespace test = boost_no_long_long_numeric_limits;
#endif
#ifdef TEST_BOOST_NO_LONG_LONG
# include "../test/boost_no_long_long.ipp"
namespace test = boost_no_long_long;
#endif
#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# include "../test/boost_no_mem_func_spec.ipp"
namespace test = boost_no_member_function_specializations;
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD
# include "../test/boost_no_mem_tem_keyword.ipp"
namespace test = boost_no_member_template_keyword;
#endif
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# include "../test/boost_no_mem_tem_pnts.ipp"
namespace test = boost_no_pointer_to_member_template_parameters;
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# include "../test/boost_no_mem_templ_frnds.ipp"
namespace test = boost_no_member_template_friends;
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES
# include "../test/boost_no_mem_templates.ipp"
namespace test = boost_no_member_templates;
#endif
#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP
# include "../test/boost_no_nested_friendship.ipp"
namespace test = boost_no_nested_friendship;
#endif
#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT
# include "../test/boost_no_noexcept.ipp"
namespace test = boost_no_cxx11_noexcept;
#endif
#ifdef TEST_BOOST_NO_CXX11_NULLPTR
# include "../test/boost_no_nullptr.ipp"
namespace test = boost_no_cxx11_nullptr;
#endif
#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE
# include "../test/boost_no_ops_in_namespace.ipp"
namespace test = boost_no_operators_in_namespace;
#endif
#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
# include "../test/boost_no_part_spec_def_args.ipp"
namespace test = boost_no_partial_specialization_implicit_default_args;
#endif
#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# include "../test/boost_no_partial_spec.ipp"
namespace test = boost_no_template_partial_specialization;
#endif
#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE
# include "../test/boost_no_priv_aggregate.ipp"
namespace test = boost_no_private_in_aggregate;
#endif
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST
# include "../test/boost_no_ptr_mem_const.ipp"
namespace test = boost_no_pointer_to_member_const;
#endif
#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR
# include "../test/boost_no_range_based_for.ipp"
namespace test = boost_no_cxx11_range_based_for;
#endif
#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS
# include "../test/boost_no_raw_literals.ipp"
namespace test = boost_no_cxx11_raw_literals;
#endif
#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION
# include "../test/boost_no_ret_det.ipp"
namespace test = boost_no_unreachable_return_detection;
#endif
#ifdef TEST_BOOST_NO_RTTI
# include "../test/boost_no_rtti.ipp"
namespace test = boost_no_rtti;
#endif
#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES
# include "../test/boost_no_rvalue_references.ipp"
namespace test = boost_no_cxx11_rvalue_references;
#endif
#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS
# include "../test/boost_no_scoped_enums.ipp"
namespace test = boost_no_cxx11_scoped_enums;
#endif
#ifdef TEST_BOOST_NO_SFINAE
# include "../test/boost_no_sfinae.ipp"
namespace test = boost_no_sfinae;
#endif
#ifdef TEST_BOOST_NO_SFINAE_EXPR
# include "../test/boost_no_sfinae_expr.ipp"
namespace test = boost_no_sfinae_expr;
#endif
#ifdef TEST_BOOST_NO_STRINGSTREAM
# include "../test/boost_no_sstream.ipp"
namespace test = boost_no_stringstream;
#endif
#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT
# include "../test/boost_no_static_assert.ipp"
namespace test = boost_no_cxx11_static_assert;
#endif
#ifdef TEST_BOOST_NO_STD_ALLOCATOR
# include "../test/boost_no_std_allocator.ipp"
namespace test = boost_no_std_allocator;
#endif
#ifdef TEST_BOOST_NO_STD_DISTANCE
# include "../test/boost_no_std_distance.ipp"
namespace test = boost_no_std_distance;
#endif
#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS
# include "../test/boost_no_std_iter_traits.ipp"
namespace test = boost_no_std_iterator_traits;
#endif
#ifdef TEST_BOOST_NO_STD_ITERATOR
# include "../test/boost_no_std_iterator.ipp"
namespace test = boost_no_std_iterator;
#endif
#ifdef TEST_BOOST_NO_STD_LOCALE
# include "../test/boost_no_std_locale.ipp"
namespace test = boost_no_std_locale;
#endif
#ifdef TEST_BOOST_NO_STD_MESSAGES
# include "../test/boost_no_std_messages.ipp"
namespace test = boost_no_std_messages;
#endif
#ifdef TEST_BOOST_NO_STD_MIN_MAX
# include "../test/boost_no_std_min_max.ipp"
namespace test = boost_no_std_min_max;
#endif
#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
# include "../test/boost_no_std_oi_assign.ipp"
namespace test = boost_no_std_output_iterator_assign;
#endif
#ifdef TEST_BOOST_NO_STD_TYPEINFO
# include "../test/boost_no_std_typeinfo.ipp"
namespace test = boost_no_std_typeinfo;
#endif
#ifdef TEST_BOOST_NO_STD_USE_FACET
# include "../test/boost_no_std_use_facet.ipp"
namespace test = boost_no_std_use_facet;
#endif
#ifdef TEST_BOOST_NO_STD_WSTREAMBUF
# include "../test/boost_no_std_wstreambuf.ipp"
namespace test = boost_no_std_wstreambuf;
#endif
#ifdef TEST_BOOST_NO_STD_WSTRING
# include "../test/boost_no_std_wstring.ipp"
namespace test = boost_no_std_wstring;
#endif
#ifdef TEST_BOOST_NO_STDC_NAMESPACE
# include "../test/boost_no_stdc_namespace.ipp"
namespace test = boost_no_stdc_namespace;
#endif
#ifdef TEST_BOOST_NO_SWPRINTF
# include "../test/boost_no_swprintf.ipp"
namespace test = boost_no_swprintf;
#endif
#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# include "../test/boost_no_tem_local_classes.ipp"
namespace test = boost_no_cxx11_local_class_template_parameters;
#endif
#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES
# include "../test/boost_no_template_aliases.ipp"
namespace test = boost_no_cxx11_template_aliases;
#endif
#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS
# include "../test/boost_no_template_streams.ipp"
namespace test = boost_no_templated_iostreams;
#endif
#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES
# include "../test/boost_no_template_template.ipp"
namespace test = boost_no_template_templates;
#endif
#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP
# include "../test/boost_no_two_phase_lookup.ipp"
namespace test = boost_no_two_phase_name_lookup;
#endif
#ifdef TEST_BOOST_NO_TYPEID
# include "../test/boost_no_typeid.ipp"
namespace test = boost_no_typeid;
#endif
#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR
# include "../test/boost_no_typename_with_ctor.ipp"
namespace test = boost_no_typename_with_ctor;
#endif
#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS
# include "../test/boost_no_unicode_literals.ipp"
namespace test = boost_no_cxx11_unicode_literals;
#endif
#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# include "../test/boost_no_unified_init.ipp"
namespace test = boost_no_cxx11_unified_initialization_syntax;
#endif
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# include "../test/boost_no_using_breaks_adl.ipp"
namespace test = boost_function_scope_using_declaration_breaks_adl;
#endif
#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# include "../test/boost_no_using_decl_overld.ipp"
namespace test = boost_no_using_declaration_overloads_from_typename_base;
#endif
#ifdef TEST_BOOST_NO_USING_TEMPLATE
# include "../test/boost_no_using_template.ipp"
namespace test = boost_no_using_template;
#endif
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS
# include "../test/boost_no_variadic_macros.ipp"
namespace test = boost_no_cxx11_variadic_macros;
#endif
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES
# include "../test/boost_no_variadic_templates.ipp"
namespace test = boost_no_cxx11_variadic_templates;
#endif
#ifdef TEST_BOOST_NO_VOID_RETURNS
# include "../test/boost_no_void_returns.ipp"
namespace test = boost_no_void_returns;
#endif
#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T
# include "../test/boost_no_wchar_t.ipp"
namespace test = boost_no_intrinsic_wchar_t;
#endif
int main( int, char *[] )
{
return test::test();
}

View File

@@ -56,6 +56,7 @@ boostbook standalone
;
install pdf-install : standalone : <location>. <install-type>PDF ;
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ;
explicit pdfinstall ;

65
doc/build_time.qbk Normal file
View File

@@ -0,0 +1,65 @@
[section:build_config Build Time Configuration]
There are times when you want to control whether a build target gets built or not, based
on what features the compiler supports. For example, suppose you have a test file
"test_constexpr_128.cpp" which requires three key features in order to build:
* The `constexpr` keyword as detected by BOOST_NO_CXX11_CONSTEXPR.
* User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
* The `__int128` data type, as detected by BOOST_HAS_INT128.
Clearly we know that if these features are not supported by the compiler, then
there's simply no point in even trying to build the test program. The main advantages being:
* Faster compile times - build configuration uses lightweight tests the results of which are also cached.
* Less noise in build output - there's no reason to be faced with pages of template
instantiation backtrace if we know the file can never compile anyway.
* Less noise in the online test results - the test will show up as blank, rather than as a fail
in the online test matrix.
* A better experience for end users building all of Boost, if those libraries which can not be built
for the current target compiler are simply skipped, rather than generating pages of error output.
Returning to our example, the test case is probably executed in it's Jamfile via the "run" rule:
run test_constexpr_128.cpp ;
We now need to make this target conditional on the necessary features.
We can do that by first importing the necessary rule at the start of the Jamfile:
import path-to-config-lib/checks/config : requires ;
Assuming that the test case is in the usual directory:
libs/yourlib/test
then the import rule will actually be:
import ../../config/checks/config : requires ;
Then add a "requires" rule invocation to the requirements section of the target:
run test_constexpr_128.cpp
: : : #requirements:
[ requires cxx11_constexpr cxx11_user_defined_literals int128 ] ;
Notice that multiple arguments can be added to the requires rule, and that these are
always the same as the Boost.Config macro name, but in lower case and with the ['boost_no_]
or ['boost_has_] prefix removed.
When building the above example, you will see at the start of the build process the results
of the configuration, for example GCC in C++11 mode gives:
- Boost.Config Feature Check: int128 : yes
- Boost.Config Feature Check: cxx11_constexpr : yes
- Boost.Config Feature Check: cxx11_user_defined_literals : yes
That's all there is to this handy feature, should at any time you be unsure of the feature-test
names you can pass to the "requires" rule, then search for the Boost.Config macro of interest in
libs/config/checks/Jamfiles.v2, and the name of the feature check will follow it.
And finally, this feature is built around the Boost.Build built in rule ['check-target-builds]
which can be used to perform more generalized build-time feature testing. The checks in this
library are provided as a convenient shorthand without the need for you to write the test cases yourself.
[endsect]

View File

@@ -50,6 +50,8 @@ Distributed under the Boost Software License, Version 1.0.
[include configuring_boost.qbk]
[include macro_reference.qbk]
[include build_time.qbk]
[include cstdint.qbk]
[include guidelines.qbk]
[include rationale.qbk]
[include acknowledgements.qbk]

View File

@@ -111,7 +111,7 @@ There are two ways you can use this header:
the default user.hpp provided by boost. This option allows only one
configure-generated setup; boost developers should avoid this option,
as it incurs the danger of accidentally committing a configure-modified
__BOOST_CONFIG_USER_HEADER__ to the cvs repository (something you will not
__BOOST_CONFIG_USER_HEADER__ to the svn repository (something you will not
be thanked for!).
* [*Option 2:] give the header a more memorable name, and place it somewhere
@@ -237,7 +237,7 @@ than static libraries on Microsoft Windows (this macro is used to turn on
to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Threads for example), in these cases this macro has no effect.
(Boost.Thread for example), in these cases this macro has no effect.
]]
[[`BOOST_`['WHATEVER]`_DYN_LINK`][
Forces library "whatever" to be linked as a dll rather than a static library
@@ -248,7 +248,7 @@ to turn on `__declspec(dllimport)` modifiers, so that the compiler knows
which symbols to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Threads for example), in these cases this macro is unsupported.
(Boost.Thread for example), in these cases this macro is unsupported.
]]
[[`BOOST_ALL_NO_LIB`][
Tells the config system not to automatically select which libraries to link
@@ -271,6 +271,12 @@ feature off.
Causes the auto-linking code to output diagnostic messages indicating the
name of the library that is selected for linking.
]]
[[`BOOST_LIB_BUILDID`][
If you built Boost using the `--buildid` option then set this macro to the same value
as you passed to bjam. For example if you built using `bjam address-model=64 --buildid=amd64`
then compile your code with `-DBOOST_LIB_BUILDID=amd64` to ensure the correct libraries
are selected at link time.
]]
[[`BOOST_LIB_TOOLSET`][
Overrides the name of the toolset part of the name of library being linked
to; note if defined this must be defined to a quoted string literal, for
@@ -307,7 +313,7 @@ boost macro being set implies that another must be set also.
The following usage examples represent just a few of the possibilities:
[section Example 1, creating our own frozen configuration]
[section Example 1: creating our own frozen configuration]
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0. Lets
suppose also that we don't intend to update our compiler or standard library
@@ -346,8 +352,8 @@ configuration macros setting. In a case like this, you can define
`BOOST_NO_COMPILER_CONFIG` either on the command line, or in __BOOST_CONFIG_USER_HEADER__,
and miss out the compiler configuration header altogether (actually you miss out
two headers, one which works out what the compiler is, and one that configures
boost for it). This has two consequences: the first is that less code has to be c
ompiled, and the second that you have removed a dependency on two boost headers.
boost for it). This has two consequences: the first is that less code has to be
compiled, and the second that you have removed a dependency on two boost headers.
[endsect]
@@ -372,7 +378,7 @@ under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
[[`config_info.cpp`][
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided by this
program useful in setting up the boost configuration files. If you report that
program is useful in setting up the boost configuration files. If you report that
boost is incorrectly configured for your compiler/library/platform then please
include the output from this program when reporting the changes required.
]]

139
doc/cstdint.qbk Normal file
View File

@@ -0,0 +1,139 @@
[section:cstdint Standard Integer Types]
[section Overview]
The header [^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]] provides the typedef's useful
for writing portable code that requires certain integer widths. All typedef's are in namespace boost.
The specifications for these types are based on the ISO/IEC 9899:1999 C Language standard header <stdint.h>.
The 64-bit types required by the C standard are ['not required] in the boost header,
and may not be supplied for all platforms/compilers, because [^long long] is not [yet] included in the C++ standard.
See [@../../test/cstdint_test.cpp cstdint_test.cpp] for a test program.
[endsect]
[section:rationale Rationale]
The organization of the Boost.Integer headers and classes is designed to take advantage of <stdint.h> types from the
1999 C standard without causing undefined behavior in terms of the 1998 C++ standard.
The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace [^boost]
without placing any names in namespace [^std]. The intension is to complement rather than compete
with the C++ Standard Library. Should some future C++ standard include <stdint.h> and <cstdint>,
then <boost/cstdint.hpp> will continue to function, but will become redundant and may be safely deprecated.
Because these are boost headers, their names conform to boost header naming conventions rather than
C++ Standard Library header naming conventions.
[endsect]
[section:ce ['Caveat emptor]]
As an implementation artifact, certain C <limits.h> macro names may possibly be
visible to users of <boost/cstdint.hpp>. Don't use these macros; they are not part of
any Boost-specified interface. Use [^boost::integer_traits<>] or [^std::numeric_limits<>] instead.
As another implementation artifact, certain C <stdint.h> typedef names may possibly be visible
in the global namespace to users of <boost/cstdint.hpp>. Don't use these names, they are not part of
any Boost-specified interface. Use the respective names in namespace [^boost] instead.
[endsect]
[section Exact-width integer types]
The typedef [^int#_t], with # replaced by the width, designates a signed integer type of exactly # bits;
for example [^int8_t] denotes an 8-bit signed integer type. Similarly, the typedef [^uint#_t] designates an unsigned
integer type of exactly # bits.
These types are optional. However, if a platform supports integer types with widths of
8, 16, 32, 64, or any combination thereof, then <boost/cstdint.hpp> does provide the
corresponding typedefs.
The absence of int64_t and uint64_t is indicated by the macro `BOOST_NO_INT64_T`.
[endsect]
[section Minimum-width integer types]
The typedef [^int_least#_t], with # replaced by the width, designates a signed integer type with a width
of at least # bits, such that no signed integer type with lesser size has at least the specified width.
Thus, [^int_least32_t] denotes the smallest signed integer type with a width of at least 32 bits.
Similarly, the typedef name [^uint_least#_t] designates an unsigned integer type with a width of at least # bits,
such that no unsigned integer type with lesser size has at least the specified width.
The following minimum-width integer types are provided for all platforms:
* [^int_least8_t]
* [^int_least16_t]
* [^int_least32_t]
* [^uint_least8_t]
* [^uint_least16_t]
* [^uint_least32_t]
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
* [^int_least64_t]
* [^uint_least64_t]
All other minimum-width integer types are optional.
[endsect]
[section Fastest minimum-width integer types]
The typedef [^int_fast#_t], with # replaced by the width, designates the fastest signed integer type
with a width of at least # bits. Similarly, the typedef name [^uint_fast#_t] designates the fastest
unsigned integer type with a width of at least # bits.
There is no guarantee that these types are fastest for all purposes. In any case, however, they satisfy
the signedness and width requirements.
The following fastest minimum-width integer types are provided for all platforms:
* [^int_fast8_t]
* [^int_fast16_t]
* [^int_fast32_t]
* [^uint_fast8_t]
* [^uint_fast16_t]
* [^uint_fast32_t]
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
* [^int_fast64_t]
* [^uint_fast64_t]
All other fastest minimum-width integer types are optional.
[endsect]
[section Greatest-width integer types]
The typedef [^intmax_t ]designates a signed integer type capable of representing any value of any signed integer type.
The typedef [^uintmax_t] designates an unsigned integer type capable of representing any value of any unsigned integer type.
These types are provided for all platforms.
[endsect]
[section Integer Constant Macros]
The following macros are always defined after inclusion of this header, these allow
integer constants of at least the specified width to be declared:
INT8_C, UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T is not defined.
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the implementation.
For example:
#include <boost/cstdint.hpp>
// Here the constant 0x1FFFFFFFF has the correct suffix applied:
static const boost::uint64_t c = INT64_C(0x1FFFFFFFF);
[endsect]
[endsect]

View File

@@ -62,7 +62,7 @@ majority of compilers, such as namespaces, exceptions, RTTI, or templates.
[section:warnings Disabling Compiler Warnings]
The header `<boost/config/warning_disable.hpp>` can be used to disable
certain compiler warings that are hard or impossible to otherwise remove.
certain compiler warnings that are hard or impossible to otherwise remove.
Note that:

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,144 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Build Time Configuration</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<link rel="next" href="cstdint.html" title="Standard Integer Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.build_config"></a><a class="link" href="build_config.html" title="Build Time Configuration">Build Time Configuration</a>
</h2></div></div></div>
<p>
There are times when you want to control whether a build target gets built
or not, based on what features the compiler supports. For example, suppose
you have a test file "test_constexpr_128.cpp" which requires three
key features in order to build:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
The <code class="computeroutput"><span class="keyword">constexpr</span></code> keyword as detected
by BOOST_NO_CXX11_CONSTEXPR.
</li>
<li class="listitem">
User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
</li>
<li class="listitem">
The <code class="computeroutput"><span class="identifier">__int128</span></code> data type,
as detected by BOOST_HAS_INT128.
</li>
</ul></div>
<p>
Clearly we know that if these features are not supported by the compiler, then
there's simply no point in even trying to build the test program. The main
advantages being:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Faster compile times - build configuration uses lightweight tests the results
of which are also cached.
</li>
<li class="listitem">
Less noise in build output - there's no reason to be faced with pages of
template instantiation backtrace if we know the file can never compile
anyway.
</li>
<li class="listitem">
Less noise in the online test results - the test will show up as blank,
rather than as a fail in the online test matrix.
</li>
<li class="listitem">
A better experience for end users building all of Boost, if those libraries
which can not be built for the current target compiler are simply skipped,
rather than generating pages of error output.
</li>
</ul></div>
<p>
Returning to our example, the test case is probably executed in it's Jamfile
via the "run" rule:
</p>
<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">;</span>
</pre>
<p>
We now need to make this target conditional on the necessary features. We can
do that by first importing the necessary rule at the start of the Jamfile:
</p>
<pre class="programlisting"><span class="identifier">import</span> <span class="identifier">path</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="identifier">config</span><span class="special">-</span><span class="identifier">lib</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
</pre>
<p>
Assuming that the test case is in the usual directory:
</p>
<pre class="programlisting"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">yourlib</span><span class="special">/</span><span class="identifier">test</span>
</pre>
<p>
then the import rule will actually be:
</p>
<pre class="programlisting"><span class="identifier">import</span> <span class="special">../../</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
</pre>
<p>
Then add a "requires" rule invocation to the requirements section
of the target:
</p>
<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span>
<span class="special">:</span> <span class="special">:</span> <span class="special">:</span> <span class="special">#</span><span class="identifier">requirements</span><span class="special">:</span>
<span class="special">[</span> <span class="identifier">requires</span> <span class="identifier">cxx11_constexpr</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="identifier">int128</span> <span class="special">]</span> <span class="special">;</span>
</pre>
<p>
Notice that multiple arguments can be added to the requires rule, and that
these are always the same as the Boost.Config macro name, but in lower case
and with the <span class="emphasis"><em>boost_no_</em></span> or <span class="emphasis"><em>boost_has_</em></span>
prefix removed.
</p>
<p>
When building the above example, you will see at the start of the build process
the results of the configuration, for example GCC in C++11 mode gives:
</p>
<pre class="programlisting"><span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">int128</span> <span class="special">:</span> <span class="identifier">yes</span>
<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_constexpr</span> <span class="special">:</span> <span class="identifier">yes</span>
<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="special">:</span> <span class="identifier">yes</span>
</pre>
<p>
That's all there is to this handy feature, should at any time you be unsure
of the feature-test names you can pass to the "requires" rule, then
search for the Boost.Config macro of interest in libs/config/checks/Jamfiles.v2,
and the name of the feature check will follow it.
</p>
<p>
And finally, this feature is built around the Boost.Build built in rule <span class="emphasis"><em>check-target-builds</em></span>
which can be used to perform more generalized build-time feature testing. The
checks in this library are provided as a convenient shorthand without the need
for you to write the test cases yourself.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,289 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Standard Integer Types</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="build_config.html" title="Build Time Configuration">
<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types">Standard Integer Types</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
minimum-width integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.overview"></a><a class="link" href="cstdint.html#boost_config.cstdint.overview" title="Overview">Overview</a>
</h3></div></div></div>
<p>
The header <code class="literal"><a href="../../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a></code>
provides the typedef's useful for writing portable code that requires certain
integer widths. All typedef's are in namespace boost.
</p>
<p>
The specifications for these types are based on the ISO/IEC 9899:1999 C Language
standard header &lt;stdint.h&gt;. The 64-bit types required by the C standard
are <span class="emphasis"><em>not required</em></span> in the boost header, and may not be
supplied for all platforms/compilers, because <code class="literal">long long</code>
is not [yet] included in the C++ standard.
</p>
<p>
See <a href="../../../test/cstdint_test.cpp" target="_top">cstdint_test.cpp</a> for
a test program.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_config.cstdint.rationale" title="Rationale">Rationale</a>
</h3></div></div></div>
<p>
The organization of the Boost.Integer headers and classes is designed to
take advantage of &lt;stdint.h&gt; types from the 1999 C standard without
causing undefined behavior in terms of the 1998 C++ standard. The header
&lt;boost/cstdint.hpp&gt; makes the standard integer types safely available
in namespace <code class="literal">boost</code> without placing any names in namespace
<code class="literal">std</code>. The intension is to complement rather than compete
with the C++ Standard Library. Should some future C++ standard include &lt;stdint.h&gt;
and &lt;cstdint&gt;, then &lt;boost/cstdint.hpp&gt; will continue to function,
but will become redundant and may be safely deprecated.
</p>
<p>
Because these are boost headers, their names conform to boost header naming
conventions rather than C++ Standard Library header naming conventions.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.ce"></a><a class="link" href="cstdint.html#boost_config.cstdint.ce" title="Caveat emptor"><span class="emphasis"><em>Caveat emptor</em></span></a>
</h3></div></div></div>
<p>
As an implementation artifact, certain C &lt;limits.h&gt; macro names may
possibly be visible to users of &lt;boost/cstdint.hpp&gt;. Don't use these
macros; they are not part of any Boost-specified interface. Use <code class="literal">boost::integer_traits&lt;&gt;</code>
or <code class="literal">std::numeric_limits&lt;&gt;</code> instead.
</p>
<p>
As another implementation artifact, certain C &lt;stdint.h&gt; typedef names
may possibly be visible in the global namespace to users of &lt;boost/cstdint.hpp&gt;.
Don't use these names, they are not part of any Boost-specified interface.
Use the respective names in namespace <code class="literal">boost</code> instead.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int#_t</code>, with # replaced by the width, designates
a signed integer type of exactly # bits; for example <code class="literal">int8_t</code>
denotes an 8-bit signed integer type. Similarly, the typedef <code class="literal">uint#_t</code>
designates an unsigned integer type of exactly # bits.
</p>
<p>
These types are optional. However, if a platform supports integer types with
widths of 8, 16, 32, 64, or any combination thereof, then &lt;boost/cstdint.hpp&gt;
does provide the corresponding typedefs.
</p>
<p>
The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int_least#_t</code>, with # replaced by the width,
designates a signed integer type with a width of at least # bits, such that
no signed integer type with lesser size has at least the specified width.
Thus, <code class="literal">int_least32_t</code> denotes the smallest signed integer
type with a width of at least 32 bits. Similarly, the typedef name <code class="literal">uint_least#_t</code>
designates an unsigned integer type with a width of at least # bits, such
that no unsigned integer type with lesser size has at least the specified
width.
</p>
<p>
The following minimum-width integer types are provided for all platforms:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_least8_t</code>
</li>
<li class="listitem">
<code class="literal">int_least16_t</code>
</li>
<li class="listitem">
<code class="literal">int_least32_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least8_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least16_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least32_t</code>
</li>
</ul></div>
<p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_least64_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least64_t</code>
</li>
</ul></div>
<p>
All other minimum-width integer types are optional.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest
minimum-width integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int_fast#_t</code>, with # replaced by the width,
designates the fastest signed integer type with a width of at least # bits.
Similarly, the typedef name <code class="literal">uint_fast#_t</code> designates the
fastest unsigned integer type with a width of at least # bits.
</p>
<p>
There is no guarantee that these types are fastest for all purposes. In any
case, however, they satisfy the signedness and width requirements.
</p>
<p>
The following fastest minimum-width integer types are provided for all platforms:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_fast8_t</code>
</li>
<li class="listitem">
<code class="literal">int_fast16_t</code>
</li>
<li class="listitem">
<code class="literal">int_fast32_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast8_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast16_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast32_t</code>
</li>
</ul></div>
<p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_fast64_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast64_t</code>
</li>
</ul></div>
<p>
All other fastest minimum-width integer types are optional.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">intmax_t </code>designates a signed integer type
capable of representing any value of any signed integer type.
</p>
<p>
The typedef <code class="literal">uintmax_t</code> designates an unsigned integer type
capable of representing any value of any unsigned integer type.
</p>
<p>
These types are provided for all platforms.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_config.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer
Constant Macros</a>
</h3></div></div></div>
<p>
The following macros are always defined after inclusion of this header, these
allow integer constants of at least the specified width to be declared: INT8_C,
UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
</p>
<p>
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T
is not defined.
</p>
<p>
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the
implementation.
</p>
<p>
For example:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="comment">// Here the constant 0x1FFFFFFFF has the correct suffix applied:</span>
<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">INT64_C</span><span class="special">(</span><span class="number">0</span><span class="identifier">x1FFFFFFFF</span><span class="special">);</span>
</pre>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<link rel="prev" href="cstdint.html" title="Standard Integer Types">
<link rel="next" href="rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -61,7 +61,7 @@
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
@@ -110,13 +110,13 @@
</h3></div></div></div>
<p>
The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
can be used to disable certain compiler warings that are hard or impossible
can be used to disable certain compiler warnings that are hard or impossible
to otherwise remove.
</p>
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
by another Boost header</em></span></strong></span>, it should only ever be
@@ -233,7 +233,7 @@
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
@@ -266,7 +266,7 @@
<p>
Then you should:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Define the defect macro in those config headers that require it.
</li>
@@ -371,7 +371,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Config</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="index.html" title="Boost.Config">
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
</head>
@@ -29,7 +29,7 @@
<div><p class="copyright">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock</p></div>
<div><div class="legalnotice">
<a name="id910601"></a><p>
<a name="config.legal"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@@ -58,21 +58,46 @@
</dl></dd>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
that describe defects</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
that describe possible C++0x features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
that describe C++0x features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
that describe possible C++ future features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
that allow use of C++11 features with C++03 compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported">Macros
that describe C++14 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers">Macros
that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
Informational Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_deprecated_macros">Boost
Deprecated Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/build_config.html">Build Time Configuration</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html">Standard Integer Types</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
integer types</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
integer types</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
minimum-width integer types</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
integer types</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
Boost Authors</a></span></dt>
<dd><dl>
@@ -275,7 +300,7 @@
<span class="keyword">export</span> <span class="identifier">CXXFLAGS</span><span class="special">=</span><span class="string">"-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"</span>
<span class="keyword">export</span> <span class="identifier">LDFLAGS</span><span class="special">=</span><span class="string">"-DAportable"</span>
<span class="keyword">export</span> <span class="identifier">LIBS</span><span class="special">=</span><span class="string">"-lpthread"</span>
<span class="keyword">export</span> <span class="identifier">LIBS</span><span class="special">=</span><span class="string">"-lpthread"</span>
<span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span>
</pre>
<p>
@@ -288,13 +313,13 @@
(located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
There are two ways you can use this header:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
provided by boost. This option allows only one configure-generated setup;
boost developers should avoid this option, as it incurs the danger of
accidentally committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
to the cvs repository (something you will not be thanked for!).
to the svn repository (something you will not be thanked for!).
</li>
<li class="listitem">
<span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
@@ -583,7 +608,7 @@
knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may
only be dynamically linked (Boost.Threads for example), in these
only be dynamically linked (Boost.Thread for example), in these
cases this macro has no effect.
</p>
</td>
@@ -605,7 +630,7 @@
knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may
only be dynamically linked (Boost.Threads for example), in these
only be dynamically linked (Boost.Thread for example), in these
cases this macro is unsupported.
</p>
</td>
@@ -659,6 +684,22 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_BUILDID</span></code>
</p>
</td>
<td>
<p>
If you built Boost using the <code class="computeroutput"><span class="special">--</span><span class="identifier">buildid</span></code> option then set this
macro to the same value as you passed to bjam. For example if you
built using <code class="computeroutput"><span class="identifier">bjam</span> <span class="identifier">address</span><span class="special">-</span><span class="identifier">model</span><span class="special">=</span><span class="number">64</span> <span class="special">--</span><span class="identifier">buildid</span><span class="special">=</span><span class="identifier">amd64</span></code> then compile your code
with <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_LIB_BUILDID</span><span class="special">=</span><span class="identifier">amd64</span></code>
to ensure the correct libraries are selected at link time.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
@@ -682,7 +723,7 @@
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
1, creating our own frozen configuration</a></span></dt>
1: creating our own frozen configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
2: skipping files that you don't need</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration">Example
@@ -721,8 +762,8 @@
</p>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example
1, creating our own frozen configuration</a>
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1: creating our own frozen configuration">Example
1: creating our own frozen configuration</a>
</h4></div></div></div>
<p>
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0.
@@ -766,7 +807,7 @@
and miss out the compiler configuration header altogether (actually you
miss out two headers, one which works out what the compiler is, and one
that configures boost for it). This has two consequences: the first is
that less code has to be c ompiled, and the second that you have removed
that less code has to be compiled, and the second that you have removed
a dependency on two boost headers.
</p>
</div>
@@ -822,10 +863,10 @@
<p>
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided
by this program useful in setting up the boost configuration files.
If you report that boost is incorrectly configured for your compiler/library/platform
then please include the output from this program when reporting
the changes required.
by this program is useful in setting up the boost configuration
files. If you report that boost is incorrectly configured for your
compiler/library/platform then please include the output from this
program when reporting the changes required.
</p>
</td>
</tr>
@@ -947,7 +988,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: July 13, 2011 at 18:00:55 GMT</small></p></td>
<td align="left"><p><small>Last revised: August 13, 2015 at 16:11:58 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -16,11 +16,11 @@
[#config_defects]
[section Macros that describe defects]
[section Macros that describe C++03 defects]
The following macros all describe features that are required by the C++ standard,
The following macros all describe features that are required by the C++03 standard,
if one of the following macros is defined, then it represents a defect in the
compiler's conformance with the standard.
compiler's conformance with the 2003 standard.
[table
@@ -28,7 +28,7 @@ compiler's conformance with the standard.
[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][
The compiler exibits certain partial specialisation bug - probably Borland
The compiler exhibits certain partial specialisation bug - probably Borland
C++ Builder specific.
]]
[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][
@@ -105,10 +105,6 @@ indeed doing so may be impossible in some cases. Those libraries that do
honor this will typically abort if a critical error occurs - you have been
warned!
]]
[[`BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS`][Compiler][
Can only use deduced template arguments when calling function template
instantiations.
]]
[[`BOOST_NO_FUNCTION_TEMPLATE_ORDERING`][Compiler][
The compiler does not perform function template ordering or its function
template ordering is incorrect.
@@ -149,8 +145,13 @@ The C++ implementation does not provide the `<limits>` header. Never check for
this symbol in library code; always include `<boost/limits.hpp>`, which
guarantees to provide `std::numeric_limits`.
]]
[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][Standard library][
Static function `numeric_limits<T>::lowest()` is not available for use.
[[`BOOST_NO_CXX11_NUMERIC_LIMITS`][Standard library][
C++11 additions to `std::numeric_limits` are not available for use.
`static function numeric_limits<T>::lowest()` the lowest finite value representable by the numeric type.
`static int const max_digits10` the number of decimal digits that are required to make sure that two distinct values of the type have distinct decimal representations.
`template<> class numeric_limits<char16_t>;`, see also `BOOST_NO_CXX11_CHAR16_T`,
`template<> class numeric_limits<char32_t>;` see also `BOOST_NO_CXX11_CHAR32_T`.
Replaces BOOST_NO_NUMERIC_LIMITS_LOWEST.
]]
[[`BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS`][Standard library][
Constants such as `numeric_limits<T>::is_signed` are not available for use
@@ -347,6 +348,9 @@ The platform has the POSIX header `<dirent.h>`.
[[`BOOST_HAS_EXPM1`][Platform][
The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
]]
[[`BOOST_HAS_FLOAT128`][Compiler][
The compiler has `__float128` as a native type which is distinct
from all the regular C++ floating point types.]]
[[`BOOST_HAS_FTIME`][Platform][
The platform has the Win32 API type FTIME.
]]
@@ -363,6 +367,9 @@ the names of the header needed to access hash_set and hash_map;
`BOOST_STD_EXTENSION_NAMESPACE` will provide the namespace in which the two
class templates reside.
]]
[[`BOOST_HAS_INT128`][Compiler][
The compiler has `__int128` and `unsigned __int128` as native types which are distinct
from all the regular C++ integer types.]]
[[`BOOST_HAS_LOG1P`][Platform][
The platform has the functions `log1p`, `log1pf` and `log1pl` in `<math.h>`.
]]
@@ -389,6 +396,19 @@ See [@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
The standard library has a partially conforming `std::allocator` class, but
without any of the member templates.
]]
[[`BOOST_HAS_PRAGMA_ONCE`][Compiler][
The compiler recognizes the `#pragma once` directive which tells that the
containing header should be included only once while preprocessing the
current translation unit. The pragma may improve compile times of large projects
with some compilers.
]]
[[`BOOST_HAS_PRAGMA_DETECT_MISMATCH`][Compiler][
The compiler recognizes the `#pragma detect_mismatch("name", "value")` directive which tells that the
link stage should be terminated with error if values for provided `"name"` missmatch.
This pragma may be a help in preventing ODR violations and ensuring that different modules
are compiled with same flags.
]]
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
The platform has the POSIX API `pthread_delay_np`.
]]
@@ -421,7 +441,9 @@ The standard library lacks a conforming `std::use_facet`, but has a workaround
class-version that does the job. This is primarily for the STLport std lib.
]]
[[`BOOST_HAS_TR1_ARRAY`][Standard library][
The library has a TR1 conforming version of `<array>`.
The library has a TR1 conforming version of `<array>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_ARRAY.
]]
[[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
The library has a version of `<complex>` that supports passing scalars to the
@@ -432,46 +454,74 @@ The library has a version of `<complex>` that includes the new inverse trig
functions from TR1.
]]
[[`BOOST_HAS_TR1_REFERENCE_WRAPPER`][Standard library][
The library has TR1 conforming reference wrappers in `<functional>`.
The library has TR1 conforming reference wrappers in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_RESULT_OF`][Standard library][
The library has a TR1 conforming result_of template in `<functional>`.
The library has a TR1 conforming result_of template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_MEM_FN`][Standard library][
The library has a TR1 conforming mem_fn function template in `<functional>`.
The library has a TR1 conforming mem_fn function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_BIND`][Standard library][
The library has a TR1 conforming bind function template in `<functional>`.
The library has a TR1 conforming bind function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_FUNCTION`][Standard library][
The library has a TR1 conforming function class template in `<functional>`.
The library has a TR1 conforming function class template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_HASH`][Standard library][
The library has a TR1 conforming hash function template in `<functional>`.
The library has a TR1 conforming hash function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_SHARED_PTR`][Standard library][
The library has a TR1 conforming `shared_ptr` class template in `<memory>`.
The library has a TR1 conforming `shared_ptr` class template in `<memory>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_SMART_PTR.
]]
[[`BOOST_HAS_TR1_RANDOM`][Standard library][
The library has a TR1 conforming version of `<random>`.
The library has a TR1 conforming version of `<random>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_RANDOM.
]]
[[`BOOST_HAS_TR1_REGEX`][Standard library][
The library has a TR1 conforming version of `<regex>`.
The library has a TR1 conforming version of `<regex>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_REGEX.
]]
[[`BOOST_HAS_TR1_TUPLE`][Standard library][
The library has a TR1 conforming version of `<tuple>`.
The library has a TR1 conforming version of `<tuple>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_TYPE_TRAITS`][Standard library][
The library has a TR1 conforming version of `<type_traits>`.
The library has a TR1 conforming version of `<type_traits>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
]]
[[`BOOST_HAS_TR1_UTILITY`][Standard library][
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`).
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`). This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_UNORDERED_MAP`][Standard library][
The library has a TR1 conforming version of `<unordered_map>`.
The library has a TR1 conforming version of `<unordered_map>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
]]
[[`BOOST_HAS_TR1_UNORDERED_SET`][Standard library][
The library has a TR1 conforming version of `<unordered_set>`.
The library has a TR1 conforming version of `<unordered_set>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
]]
[[`BOOST_HAS_TR1`][Standard library][
Implies all the other `BOOST_HAS_TR1_*` macros should be set.
@@ -514,11 +564,10 @@ standard).
[endsect]
[section Macros that describe possible C++0x features]
[section Macros that describe possible C++ future features]
The following macros describe features that are likely to be included in the
upcoming ISO C++ standard, C++0x, but have not yet been approved for inclusion
in the language.
The following macros describe features that may be included in some future
ISO C++ standard, but have not yet been approved for inclusion in the language.
[table
@@ -531,112 +580,344 @@ The compiler supports concepts.
[endsect]
[section Macros that describe C++0x features not supported]
[section Macros that describe C++11 features not supported]
The following macros describe features in the upcoming ISO C++ standard, C++0x,
The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,
that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
[[`BOOST_NO_0X_HDR_ARRAY`][The standard library does not provide header <array>.]]
[[`BOOST_NO_0X_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
[[`BOOST_NO_0X_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
[[`BOOST_NO_0X_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
[[`BOOST_NO_0X_HDR_FUTURE`][The standard library does not provide header <future>.]]
[[`BOOST_NO_0X_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
[[`BOOST_NO_0X_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
[[`BOOST_NO_0X_HDR_RANDOM`][The standard library does not provide header <random>.]]
[[`BOOST_NO_0X_HDR_RATIO`][The standard library does not provide header <ratio>.]]
[[`BOOST_NO_0X_HDR_REGEX`][The standard library does not provide header <regex>.]]
[[`BOOST_NO_0X_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
[[`BOOST_NO_0X_HDR_THREAD`][The standard library does not provide header <thread>.]]
[[`BOOST_NO_0X_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
[[`BOOST_NO_0X_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
[[`BOOST_NO_0X_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
[[`BOOST_NO_0X_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
[[`BOOST_NO_0X_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
[[`BOOST_NO_AUTO_DECLARATIONS`][The compiler does not support
[[`BOOST_NO_CXX11_ADDRESSOF`][The standard library header <memory> has no working std::addressof.]]
[[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]]
[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
[[`BOOST_NO_CXX11_ATOMIC_SMART_PTR`][The standard library <memory> does not support atomic smart pointer operations.]]
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
]]
[[`BOOST_NO_AUTO_MULTIDECLARATIONS`][The compiler does not support
]]
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
]]
[[`BOOST_NO_CHAR16_T`][The compiler does not support
]]
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
]]
[[`BOOST_NO_CHAR32_T`][The compiler does not support
]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CONSTEXPR`][The compiler does not support
]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
]]
[[`BOOST_NO_DECLTYPE`][The compiler does not support
]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
]]
[[`BOOST_NO_DECLTYPE_N3276`][The compiler does not support the extension to
]]
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
accepted in Madrid, March 2011.
]]
[[`BOOST_NO_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
[[`BOOST_NO_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
explicit conversion operators (`explicit operator T()`).
]]
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
explicit conversion operators (`explicit operator T()`).
]]
[[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
[[`BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
[[`BOOST_NO_CXX11_FINAL`][The compiler does not support the C++ class-virt-specifier final.
]]
[[`BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS`][The compiler does not support
expanding a variadic template parameter pack into a template containing one or more
fixed arguments]]
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates.
]]
[[`BOOST_NO_INITIALIZER_LISTS`][
The C++ compiler does not support C++0x initializer lists.
[[`BOOST_NO_CXX11_HDR_ATOMIC`][The standard library does not provide header <atomic>.]]
[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
[[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
[[`BOOST_NO_CXX11_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
[[`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
[[`BOOST_NO_CXX11_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
[[`BOOST_NO_CXX11_HDR_FUNCTIONAL`][The standard library does not provide a C++11 compatible version of <functional>.]]
[[`BOOST_NO_CXX11_HDR_FUTURE`][The standard library does not provide header <future>.]]
[[`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
[[`BOOST_NO_CXX11_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
[[`BOOST_NO_CXX11_HDR_RANDOM`][The standard library does not provide header <random>.]]
[[`BOOST_NO_CXX11_HDR_RATIO`][The standard library does not provide header <ratio>.]]
[[`BOOST_NO_CXX11_HDR_REGEX`][The standard library does not provide header <regex>.]]
[[`BOOST_NO_CXX11_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
[[`BOOST_NO_CXX11_HDR_THREAD`][The standard library does not provide header <thread>.]]
[[`BOOST_NO_CXX11_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
[[`BOOST_NO_CXX11_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
]]
[[`BOOST_NO_LAMBDAS`][The compiler does not support Lambdas.
]]
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
]]
[[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`.
]]
[[`BOOST_NO_NULLPTR`][The compiler does not support `nullptr`.
]]
[[`BOOST_NO_RAW_LITERALS`][The compiler does not support
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
pass local classes as template parameters (this macro intentionally does not
control passing of unnamed types as template parameters, see also
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
]]
[[`BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions in access control sections other than `public`. Public defaulted
functions may still be supported, as indicated by `BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`. Some
compilers implementing an early draft of the C++11 standard (in particular, incorporating
[@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906 DR906]) are susceptible to this problem.
]]
[[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`.
]]
[[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`.
]]
[[`BOOST_NO_CXX11_NUMERIC_LIMITS`][The standard library `<limits>` header does
not support the C++11 version of `numeric_limits`.
]]
[[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support
range-based for statements.
]]
[[`BOOST_NO_CXX11_RAW_LITERALS`][The compiler does not support
raw string literals.
]]
[[`BOOST_NO_RVALUE_REFERENCES`][The compiler does not support
]]
[[`BOOST_NO_CXX11_REF_QUALIFIERS`][The compiler does not support
ref-qualifiers on member functions as described in
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm N2439].
]]
[[`BOOST_NO_CXX11_RVALUE_REFERENCES`][The compiler does not support
r-value references.
]]
[[`BOOST_NO_SCOPED_ENUMS`][The compiler does not support
]]
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
scoped enumerations (`enum class`).
]]
[[`BOOST_NO_STATIC_ASSERT`][The compiler does not support
]]
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
[[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support
`static_assert`.
]]
[[`BOOST_NO_STD_UNORDERD`][The standard library does not support
]]
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
[[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support
<unordered_map> and <unordered_set>.
]]
[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_UNICODE_LITERALS`][The compiler does not support
]]
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type
specification syntax (e.g. `auto foo(T) -> T;`).]]
[[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support
Unicode (`u8`, `u`, `U`) literals.
]]
[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
]]
[[`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
]]
[[`BOOST_NO_VARIADIC_TEMPLATES`][The compiler does not support
variadic templates.
[[`BOOST_NO_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals.
]]
[[`BOOST_NO_VARIADIC_MACROS`][The compiler does not support
variadic macros.
[[`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][The compiler does not support
variadic templates.
]]
[[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support
variadic macros.
]]
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
]]
]
[endsect]
[#config_11_for_03]
[section Macros that allow use of C++11 features with C++03 compilers]
The following macros allow use of C++11 features even with compilers that do not yet
provide compliant C++11 support.
[table
[[Macro ][ Description ]]
[[`BOOST_ALIGNMENT(X)`, `BOOST_NO_ALIGNMENT`][
Some compilers don't support the `alignas` keyword but provide other means to specify alignment
(usually, through compiler-specific attributes). The macro `BOOST_ALIGNMENT(X)` will expand to the `alignas(X)`
keyword if the compiler supports it or to some compiler-specific attribute to achieve the specified alignment.
If no such compiler-specific attribute is known then `BOOST_ALIGNMENT(X)` will expand to nothing and
`BOOST_NO_ALIGNMENT` will be defined. Unlike native `alignas`, `X` must always be a compile-time integer constant.
The macro can be used to specify alignment of types and data:
``
struct BOOST_ALIGNMENT(16) my_data
{
char c[16];
};
BOOST_ALIGNMENT(8) int arr[32];
``
]]
[[`BOOST_CONSTEXPR`][
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
elsewhere. For example, when defining a constexpr function or constructor replace:
``
constexpr tuple();
``
with:
``
BOOST_CONSTEXPR tuple();
``
]]
[[`BOOST_CONSTEXPR_OR_CONST`][
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
elsewhere. For example, when defining const expr variables replace:
``
static constexpr UIntType xor_mask = a;
``
with:
``
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
``
]]
[[`BOOST_STATIC_CONSTEXPR`][
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`. For example, when defining const expr variables replace:
``
static constexpr UIntType xor_mask = a;
``
with:
``
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
``
]]
[[`BOOST_DEFAULTED_FUNCTION(fun, body)`][
This macro is intended to be used within a class definition in order to declare a default implementation of function `fun`.
For the compilers that do not support C++11 defaulted functions the macro will expand into an inline function definition
with the `body` implementation. For example:
``
struct my_struct
{
BOOST_DEFAULTED_FUNCTION(my_struct(), {})
};
``
is equivalent to:
``
struct my_struct
{
my_struct() = default;
};
``
or:
``
struct my_struct
{
my_struct() {}
};
``
]]
[[`BOOST_DELETED_FUNCTION(fun)`][
This macro is intended to be used within a class definition in order to declare a deleted function `fun`.
For the compilers that do not support C++11 deleted functions the macro will expand into a private function
declaration with no definition. Since the macro may change the access mode, it is recommended to use this macro
at the end of the class definition. For example:
``
struct noncopyable
{
BOOST_DELETED_FUNCTION(noncopyable(noncopyable const&))
BOOST_DELETED_FUNCTION(noncopyable& operator= (noncopyable const&))
};
``
is equivalent to:
``
struct noncopyable
{
noncopyable(noncopyable const&) = delete;
noncopyable& operator= (noncopyable const&) = delete;
};
``
or:
``
struct noncopyable
{
private:
noncopyable(noncopyable const&);
noncopyable& operator= (noncopyable const&);
};
``
]]
[[
``
BOOST_NOEXCEPT
BOOST_NOEXCEPT_OR_NOTHROW
BOOST_NOEXCEPT_IF(Predicate)
BOOST_NOEXCEPT_EXPR(Expression)
``
][
If `BOOST_NO_CXX11_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
[:
``
#define BOOST_NOEXCEPT
#define BOOST_NOEXCEPT_OR_NOTHROW throw()
#define BOOST_NOEXCEPT_IF(Predicate)
#define BOOST_NOEXCEPT_EXPR(Expression) false
``
]
If `BOOST_NO_CXX11_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
[:
``
#define BOOST_NOEXCEPT noexcept
#define BOOST_NOEXCEPT_OR_NOTHROW noexcept
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
``
]
]]
[[`BOOST_MSVC_ENABLE_2012_NOV_CTP`][
For Microsoft Visual C++ 2012, enable the C++11 features supplied by the
November 2012 Community Technology Preview. These features are not automatically
enabled because the CTP is non-supported alpha code that is not recommended
for production use. This macro must be defined before including any Boost headers,
and must be defined for all translation units in the program, including Boost library builds.
This macro will no longer have any effect once an official Microsoft
release supports the CTP features.
]]
]
[endsect]
[section Macros that describe C++14 features not supported]
The following macros describe features in the 2014 ISO C++ standard, formerly known as C++0y,
that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
[[`BOOST_NO_CXX14_AGGREGATE_NSDMI`][The compiler does not support member initializer for aggregates as in the following example:
[:
``
struct Foo
{
int x, y = 42;
};
Foo foo = { 0 };
``
]
]]
[[`BOOST_NO_CXX14_BINARY_LITERALS`][The compiler does not binary literals (e.g. `0b1010`).]]
[[`BOOST_NO_CXX14_CONSTEXPR`][The compiler does not support relaxed `constexpr`.]]
[[`BOOST_NO_CXX14_DECLTYPE_AUTO`][The compiler does not support `decltype(auto)`.]]
[[`BOOST_NO_CXX14_DIGIT_SEPARATORS`][The compiler does not support digit separators (e.g. `1'000'000`).]]
[[`BOOST_NO_CXX14_GENERIC_LAMBDAS`][The compiler does not support generic lambda (e.g. `[](auto v){ }`).]]
[[`BOOST_NO_CXX14_HDR_SHARED_MUTEX`][The standard library does not provide header <shared_mutex>.]]
[[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]]
[[`BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION`][The compiler does not support return type deduction for normal functions (e.g. `auto f() { return val; }`).]]
[[`BOOST_NO_CXX14_VARIABLE_TEMPLATES`][The compiler does not support variable template (e.g. `template <class T> T kibi = T(1024);`).]]
]
[endsect]
[#config_14_for_11]
[section Macros that allow use of C++14 features with C++11 or earlier compilers]
The following macros allow use of C++14 features even with compilers that do not yet
provide compliant C++14 support.
[table
[[Macro ][ Description ]]
[[`BOOST_CXX14_CONSTEXPR`][This macro works similar to BOOST_CONSTEXPR, but expands to `constexpr` only if the C++14 "relaxed" `constexpr` is available.]]
]
[endsect]
@@ -736,6 +1017,41 @@ struct foo{
Normally evaluates to nothing, but evaluates to return x; if the compiler
requires a return, even when it can never be reached.
]]
[[`BOOST_FALLTHROUGH`][
The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
between switch labels:
``
switch (x) {
case 40:
case 41:
if (truth_is_out_there) {
++x;
BOOST_FALLTHROUGH; // Use instead of/along with annotations in
// comments.
} else {
return x;
}
case 42:
...
``
As shown in the example above, the BOOST_FALLTHROUGH macro should be
followed by a semicolon. It is designed to mimic control-flow statements
like 'break;', so it can be placed in most places where 'break;' can, but
only if there are no statements on the execution path between it and the
next switch label.
When compiled with Clang >3.2 in C++11 mode, the BOOST_FALLTHROUGH macro is
expanded to `[[clang::fallthrough]]` attribute, which is analysed when
performing switch labels fall-through diagnostic ('-Wimplicit-fallthrough').
See clang [@http://clang.llvm.org/docs/LanguageExtensions.html#clang__fallthrough
documentation on language extensions for details.]
When used with unsupported compilers, the BOOST_FALLTHROUGH macro has no
effect on diagnostics.
In either case this macro has no effect on runtime behavior and performance
of code.
]]
[[`BOOST_EXPLICIT_TEMPLATE_TYPE(t)`
`BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`
`BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)`
@@ -784,7 +1100,7 @@ must be used when the macro invocation appears after a normal parameter
declaration or after the invocation of another macro of this same group.
]]
[[`BOOST_USE_FACET(Type, loc)`][
When the standard library does not have a comforming `std::use_facet` there
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. For example,
replace:
@@ -820,38 +1136,76 @@ the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
used to create a mangled name in combination with a predefined macro such a
\_\_LINE__.
]]
[[`BOOST_CONSTEXPR`][
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
elsewhere. For example, when defining a constexpr function or constructor replace:
[[`BOOST_FORCEINLINE`][
This macro can be used in place of the `inline` keyword to instruct the compiler
that the function should always be inlined.
Overuse of this macro can lead to significant bloat, while good use can increase
performance in certain cases, such as computation-intensive code built through
generative programming techniques.
Usage example:
``
constexpr tuple();
template<class T>
BOOST_FORCEINLINE T& f(T& t)
{
return t;
}
``
with:
Note that use of this macro can lead to cryptic error messages with some compilers.
Consider defining it to `inline` before including the Boost.Config header in order to be
able to debug errors more easily.
]]
[[`BOOST_NOINLINE`][
This macro can be used in place of the `inline` keyword to instruct the compiler
that the function should never be inlined. One should typically use this macro
to mark functions that are unlikely to be called, such as error handling routines.
Usage example:
``
BOOST_CONSTEXPR tuple();
BOOST_NOINLINE void handle_error(const char* descr)
{
// ...
}
``
]]
[[`BOOST_CONSTEXPR_OR_CONST`][
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
elsewhere. For example, when defining const expr variables replace:
[[`BOOST_NORETURN`][
This macro can be used before the function declaration or definition to instruct the compiler
that the function does not return normally (i.e. with a `return` statement or by leaving
the function scope, if the function return type is `void`). The macro can be used to mark
functions that always throw exceptions or terminate the application. Compilers that support
this markup may use this information to specifically organize the code surrounding calls to
this function and suppress warnings about missing `return` statements in the functions
enclosing such calls.
Usage example:
``
static constexpr UIntType xor_mask = a;
BOOST_NORETURN void on_error_occurred(const char* descr)
{
throw std::runtime_error(descr);
}
``
with:
If the compiler does not support this markup, `BOOST_NORETURN` is defined empty and an
additional macro `BOOST_NO_NORETURN` is defined.
]]
[[`BOOST_LIKELY(X)`
`BOOST_UNLIKELY(X)`][
These macros communicate to the compiler that the conditional expression `X` is likely
or unlikely to yield a positive result. The expression should result in a boolean value.
The result of the macro is an integer or boolean value equivalent to the result of `X`.
The macros are intended to be used in branching statements. The additional hint they provide
can be used by the compiler to arrange the compiled code of the branches more effectively.
Usage example:
``
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
``
]]
[[`BOOST_STATIC_CONSTEXPR`][
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
``
static constexpr UIntType xor_mask = a;
``
with:
``
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
if (BOOST_UNLIKELY(ptr == NULL))
handle_error("ptr is NULL");
``
]]
[[`BOOST_ATTRIBUTE_UNUSED`][Expands to `__attribute__((unused))` when this is available -
can be used to disable compiler warnings relating to unused types or variables.]]
]
[endsect]
@@ -889,6 +1243,11 @@ Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only h
the macro has the form VVMMPPPPP where VV is the major version number, MM is the minor version number, and
PPPPP is the compiler build number.
]]
[[`BOOST_GCC`][`<boost/config.hpp>`][
Defined if the compiler is really GCC, as opposed to one
of the many other compilers that also define `__GNUC__`. Has the value:
`__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__`.
]]
[[`BOOST_INTEL`][`<boost/config.hpp>`][
Defined if the compiler is an Intel compiler, takes the same value as the
compiler version macro.
@@ -923,6 +1282,75 @@ the configuration.
[endsect]
[#deprecated_macros]
[section Boost Deprecated Macros]
The following have been deprecated; please use the replacements instead.
They will be removed in a future version of boost.
[table
[[Deprecated Macro][Replacement][When deprecated][When removed]]
[[`BOOST_NO_0X_HDR_ARRAY`][`BOOST_NO_CXX11_HDR_ARRAY`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_CHRONO`][`BOOST_NO_CXX11_HDR_CHRONO`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_CODECVT`][`BOOST_NO_CXX11_HDR_CODECVT`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_FORWARD_LIST`][`BOOST_NO_CXX11_HDR_FORWARD_LIST`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_FUTURE`][`BOOST_NO_CXX11_HDR_FUTURE`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_INITIALIZER_LIST`][`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][Boost 1.50][]]
[[`BOOST_NO_INITIALIZER_LISTS`][`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_MUTEX`][`BOOST_NO_CXX11_HDR_MUTEX`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_RANDOM`][`BOOST_NO_CXX11_HDR_RANDOM`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_RATIO`][`BOOST_NO_CXX11_HDR_RATIO`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_REGEX`][`BOOST_NO_CXX11_HDR_REGEX`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_SYSTEM_ERROR`][`BOOST_NO_CXX11_HDR_SYSTEM_ERROR`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_THREAD`][`BOOST_NO_CXX11_HDR_THREAD`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_TUPLE`][`BOOST_NO_CXX11_HDR_TUPLE`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_TYPE_TRAITS`][`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_TYPEINDEX`][`BOOST_NO_CXX11_HDR_TYPEINDEX`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_UNORDERED_SET`][`BOOST_NO_CXX11_HDR_UNORDERED_SET`][Boost 1.50][]]
[[`BOOST_NO_0X_HDR_UNORDERED_MAP`][`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][Boost 1.50][]]
[[`BOOST_NO_STD_UNORDERED`][`BOOST_NO_CXX11_HDR_UNORDERED_SET`][Boost 1.50][]]
[[][][][]]
[[`BOOST_NO_AUTO_DECLARATIONS`][`BOOST_NO_CXX11_AUTO_DECLARATIONS`][Boost 1.51][]]
[[`BOOST_NO_AUTO_MULTIDECLARATIONS`][`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][Boost 1.51][]]
[[`BOOST_NO_CHAR16_T`][`BOOST_NO_CXX11_CHAR16_T`][Boost 1.51][]]
[[`BOOST_NO_CHAR32_T`][`BOOST_NO_CXX11_CHAR32_T`][Boost 1.51][]]
[[`BOOST_NO_TEMPLATE_ALIASES`][`BOOST_NO_CXX11_TEMPLATE_ALIASES`][Boost 1.51][]]
[[`BOOST_NO_CONSTEXPR`][`BOOST_NO_CXX11_CONSTEXPR`][Boost 1.51][]]
[[`BOOST_NO_DECLTYPE`][`BOOST_NO_CXX11_DECLTYPE`][Boost 1.51][]]
[[`BOOST_NO_DECLTYPE_N3276`][`BOOST_NO_CXX11_DECLTYPE_N3276`][Boost 1.51][]]
[[`BOOST_NO_DEFAULTED_FUNCTIONS`][`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][Boost 1.51][]]
[[`BOOST_NO_DELETED_FUNCTIONS`][`BOOST_NO_CXX11_DELETED_FUNCTIONS`][Boost 1.51][]]
[[`BOOST_NO_EXPLICIT_CONVERSION_OPERATORS`][`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][Boost 1.51][]]
[[`BOOST_NO_EXTERN_TEMPLATE`][`BOOST_NO_CXX11_EXTERN_TEMPLATE`][Boost 1.51][]]
[[`BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS`][`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][Boost 1.51][]]
[[`BOOST_NO_LAMBDAS`][`BOOST_NO_CXX11_LAMBDAS`][Boost 1.51][]]
[[`BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS`][`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][Boost 1.51][]]
[[`BOOST_NO_NOEXCEPT`][`BOOST_NO_CXX11_NOEXCEPT`][Boost 1.51][]]
[[`BOOST_NO_NULLPTR`][`BOOST_NO_CXX11_NULLPTR`][Boost 1.51][]]
[[`BOOST_NO_RAW_LITERALS`][`BOOST_NO_CXX11_RAW_LITERALS`][Boost 1.51][]]
[[`BOOST_NO_RVALUE_REFERENCES`][`BOOST_NO_CXX11_RVALUE_REFERENCES`][Boost 1.51][]]
[[`BOOST_NO_SCOPED_ENUMS`][`BOOST_NO_CXX11_SCOPED_ENUMS`][Boost 1.51][]]
[[`BOOST_NO_STATIC_ASSERT`][`BOOST_NO_CXX11_STATIC_ASSERT`][Boost 1.51][]]
[[`BOOST_NO_STD_UNORDERED`][`BOOST_NO_CXX11_STD_UNORDERED`][Boost 1.51][]]
[[`BOOST_NO_UNICODE_LITERALS`][`BOOST_NO_CXX11_UNICODE_LITERALS`][Boost 1.51][]]
[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][Boost 1.51][]]
[[`BOOST_NO_VARIADIC_TEMPLATES`][`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][Boost 1.51][]]
[[`BOOST_NO_VARIADIC_MACROS`][`BOOST_NO_CXX11_VARIADIC_MACROS`][Boost 1.51][]]
[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][`BOOST_NO_CXX11_NUMERIC_LIMITS`][Boost 1.51][]]
[[][][][]]
[[`BOOST_HAS_STATIC_ASSERT`][`BOOST_NO_CXX11_STATIC_ASSERT` (negated)][Boost 1.53][]]
[[`BOOST_HAS_VARIADIC_TMPL`][`BOOST_NO_CXX11_VARIADIC_TEMPLATES` (negated)][Boost 1.53][]]
[[`BOOST_HAS_RVALUE_REFS`][`BOOST_NO_CXX11_RVALUE_REFERENCES` (negated)][Boost 1.53][]]
[[`BOOST_HAS_CHAR16_T`][`BOOST_NO_CXX11_CHAR16_T` (negated)][Boost 1.53][]]
[[`BOOST_HAS_CHAR32_T`][`BOOST_NO_CXX11_CHAR32_T` (negated)][Boost 1.53][]]
]
[endsect]
[section Macros for libraries with separate source code]
The following macros and helper headers are of use to authors whose libraries

View File

@@ -1,6 +1,6 @@
// Boost config.hpp configuration header file ------------------------------//
// (C) Copyright John Maddock 2002.
// (C) Copyright John Maddock 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,10 @@
// 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>
#if 0
// For dependency trackers:
# include <boost/config/user.hpp>
#endif
#endif
// include it first:
#ifdef BOOST_USER_CONFIG
@@ -56,15 +60,8 @@
// get config suffix code:
#include <boost/config/suffix.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
#endif
#endif // BOOST_CONFIG_HPP

View File

@@ -60,14 +60,14 @@ BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
contains one or more of the following letters after
a hiphen:
a hyphen:
s static runtime (dynamic if not present).
g debug/diagnostic runtime (release if not present).
y Python debug/diagnostic runtime (release if not present).
d debug build (release if not present).
g debug/diagnostic runtime (release if not present).
p STLPort Build.
p STLport build.
n STLport build without its IOStreams.
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
@@ -114,63 +114,79 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// select toolset if not defined already:
//
#ifndef BOOST_LIB_TOOLSET
// Note: no compilers before 1200 are supported
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
// Note: no compilers before 1200 are supported
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# ifdef UNDER_CE
// eVC4:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
// vc7:
# define BOOST_LIB_TOOLSET "vc7"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
// vc12:
# define BOOST_LIB_TOOLSET "vc120"
# elif defined(BOOST_MSVC)
// vc14:
# define BOOST_LIB_TOOLSET "vc140"
# elif defined(__BORLANDC__)
// CBuilder 6:
# define BOOST_LIB_TOOLSET "bcb"
# elif defined(__ICL)
// Intel C++, no version number:
# define BOOST_LIB_TOOLSET "iw"
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x
# define BOOST_LIB_TOOLSET "cw8"
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x
# define BOOST_LIB_TOOLSET "cw9"
# ifdef UNDER_CE
// vc6:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
// vc7:
# define BOOST_LIB_TOOLSET "vc7"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
#elif defined(__BORLANDC__)
// CBuilder 6:
# define BOOST_LIB_TOOLSET "bcb"
#elif defined(__ICL)
// Intel C++, no version number:
# define BOOST_LIB_TOOLSET "iw"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x
# define BOOST_LIB_TOOLSET "cw8"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x
# define BOOST_LIB_TOOLSET "cw9"
#endif
#endif // BOOST_LIB_TOOLSET
//
@@ -196,11 +212,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# else
# define BOOST_LIB_RT_OPT "-p"
@@ -216,11 +232,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# else
# define BOOST_LIB_RT_OPT "-pn"
@@ -250,11 +266,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# else
# define BOOST_LIB_RT_OPT "-sp"
@@ -270,11 +286,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# else
# define BOOST_LIB_RT_OPT "-spn"
@@ -307,7 +323,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// sanity check:
//
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
#endif
# ifdef _RTLDLL
@@ -371,6 +387,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#elif defined(BOOST_LIB_BUILDID)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
# endif
#else
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
@@ -415,3 +436,4 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# undef BOOST_DYN_LINK
#endif

View File

@@ -47,7 +47,7 @@
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
// Variadic macros do not exist for C++ Builder versions 5 and below
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_MACROS
# endif
// Version 5.51 and below:
@@ -150,14 +150,14 @@
// C++0x Macros:
//
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_DECLTYPE
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_CXX11_STATIC_ASSERT
#else
# define BOOST_HAS_ALIGNOF
# define BOOST_HAS_CHAR16_T
@@ -169,25 +169,62 @@
# define BOOST_HAS_STATIC_ASSERT
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH
@@ -240,7 +277,7 @@
// all versions support __declspec:
//
#if defined(__STRICT_ANSI__)
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
@@ -279,7 +316,3 @@
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)

View File

@@ -1,81 +1,274 @@
// (C) Copyright Douglas Gregor 2010
//
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// Clang compiler setup.
#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
#else
#define BOOST_HAS_PRAGMA_ONCE
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
// When compiling with clang before __has_extension was defined,
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
// clang reports a compiler error. So the only workaround found is:
#ifndef __has_extension
#define __has_extension __has_feature
#endif
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
#if !__has_feature(cxx_rtti)
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
#if defined(__int64)
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
# define BOOST_NO_TYPEID
#endif
#if defined(__int64) && !defined(__GNUC__)
# define BOOST_HAS_MS_INT64
#endif
#define BOOST_HAS_NRVO
// Clang supports "long long" in all compilation modes.
// Branch prediction hints
#if defined(__has_builtin)
#if __has_builtin(__builtin_expect)
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
#endif
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
// Clang supports "long long" in all compilation modes.
#define BOOST_HAS_LONG_LONG
//
// We disable this if the compiler is really nvcc as it
// doesn't actually support __int128 as of CUDA_VERSION=5000
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/10418
// Only re-enable this for nvcc if you're absolutely sure
// of the circumstances under which it's supported.
// Similarly __SIZEOF_INT128__ is defined when targetting msvc
// compatibility even though the required support functions are absent.
//
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) && !defined(_MSC_VER)
# define BOOST_HAS_INT128
#endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
#endif
//
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
// between switch labels.
//
#if __cplusplus >= 201103L && defined(__has_warning)
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
# endif
#endif
#if !__has_feature(cxx_auto_type)
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
//
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
//
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if !__has_feature(cxx_constexpr)
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#if !__has_feature(cxx_decltype)
# define BOOST_NO_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE
#endif
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#if !__has_feature(cxx_decltype_incomplete_return_types)
# define BOOST_NO_CXX11_DECLTYPE_N3276
#endif
#if !__has_feature(cxx_defaulted_functions)
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#endif
#if !__has_feature(cxx_deleted_functions)
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#if !__has_feature(cxx_explicit_conversions)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if !__has_feature(cxx_default_function_template_args)
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#if !__has_feature(cxx_lambdas)
# define BOOST_NO_CXX11_LAMBDAS
#endif
#if !__has_feature(cxx_local_type_template_args)
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if !__has_feature(cxx_noexcept)
# define BOOST_NO_CXX11_NOEXCEPT
#endif
#if !__has_feature(cxx_nullptr)
# define BOOST_NO_CXX11_NULLPTR
#endif
#if !__has_feature(cxx_range_for)
# define BOOST_NO_CXX11_RANGE_BASED_FOR
#endif
#if !__has_feature(cxx_raw_string_literals)
# define BOOST_NO_CXX11_RAW_LITERALS
#endif
#if !__has_feature(cxx_reference_qualified_functions)
# define BOOST_NO_CXX11_REF_QUALIFIERS
#endif
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
#if !__has_feature(cxx_rvalue_references)
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#if !__has_feature(cxx_strong_enums)
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#if !__has_feature(cxx_static_assert)
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#if !__has_feature(cxx_alias_templates)
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
#endif
#if !__has_feature(cxx_unicode_literals)
# define BOOST_NO_CXX11_UNICODE_LITERALS
#endif
#if !__has_feature(cxx_variadic_templates)
# define BOOST_NO_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// Clang always supports variadic macros
// Clang always supports extern templates
#if !__has_feature(cxx_user_literals)
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if !__has_feature(cxx_alignas)
# define BOOST_NO_CXX11_ALIGNAS
#endif
#if !__has_feature(cxx_trailing_return)
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
#if !__has_feature(cxx_inline_namespaces)
# define BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
#if !__has_feature(cxx_override_control)
# define BOOST_NO_CXX11_FINAL
#endif
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !__has_feature(__cxx_decltype_auto__)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if !__has_feature(__cxx_aggregate_nsdmi__)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !__has_feature(__cxx_init_captures__)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !__has_feature(__cxx_generic_lambdas__)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
// clang < 3.5 has a defect with dependent type, like following.
//
// template <class T>
// constexpr typename enable_if<pred<T> >::type foo(T &)
// { } // error: no return statement in constexpr function
//
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
// Therefore we don't care such case.
//
// Note that we can't check Clang version directly as the numbering system changes depending who's
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
// so instead verify that we have a feature that was introduced at the same time as working C++14
// constexpr (generic lambda's in this case):
//
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !__has_feature(__cxx_return_type_deduction__)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !__has_feature(__cxx_variable_templates__)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if __cplusplus < 201400
// All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
//
// __builtin_unreachable:
#if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
// Clang has supported the 'unused' attribute since the first release.
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__

View File

@@ -72,11 +72,17 @@
# endif
#endif
// Reportedly, #pragma once is supported since C++ Builder 2010
#if (__CODEGEARC__ >= 0x620)
# define BOOST_HAS_PRAGMA_ONCE
#endif
//
// C++0x macros:
//
#if (__CODEGEARC__ <= 0x620)
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_CXX11_STATIC_ASSERT
#else
#define BOOST_HAS_STATIC_ASSERT
#endif
@@ -91,24 +97,60 @@
// #define BOOST_HAS_STATIC_ASSERT
#define BOOST_HAS_STD_TYPE_TRAITS
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// TR1 macros:
@@ -120,7 +162,7 @@
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
// On non-Win32 platforms let the platform config figure this out:
#ifdef _WIN32
@@ -149,7 +191,7 @@
// all versions support __declspec:
//
#if defined(__STRICT_ANSI__)
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//

View File

@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright Markus Schoepflin 2005.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -33,15 +33,15 @@
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
# define BOOST_NO_TEMPLATE_TEMPLATES
#endif
#endif
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
# define BOOST_NO_IS_ABSTRACT
#endif
#endif
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#endif
#endif
// See also kai.hpp which checks a Kai-specific symbol for EH
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
@@ -54,45 +54,87 @@
# define BOOST_NO_LONG_LONG
# endif
// Not sure what version was the first to support #pragma once, but
// different EDG-based compilers (e.g. Intel) supported it for ages.
// Add a proper version check if it causes problems.
#define BOOST_HAS_PRAGMA_ONCE
//
// C++0x features
//
// See above for BOOST_NO_LONG_LONG
//
#if (__EDG_VERSION__ < 310)
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if (__EDG_VERSION__ <= 310)
// No support for initializer lists
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#if (__EDG_VERSION__ < 400)
# define BOOST_NO_VARIADIC_MACROS
# define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#ifdef c_plusplus
// EDG has "long long" in non-strict mode

View File

@@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2011.
// (C) Copyright Cray, Inc. 2013
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,8 +10,8 @@
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
#if _RELEASE < 7
# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
#if _RELEASE < 8
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
#endif
//
@@ -22,36 +23,45 @@
#include "boost/config/compiler/common_edg.hpp"
//
// Cray peculiarities, probably version 7 specific:
//
#undef BOOST_NO_AUTO_DECLARATIONS
#undef BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_HAS_NRVO
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_HAS_NRVO
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_NULLPTR
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_LAMBDAS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DECLTYPE
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
//#define BOOST_HAS_FPCLASSIFY
@@ -59,3 +69,24 @@
#define BOOST_SP_USE_PTHREADS
#define BOOST_AC_USE_PTHREADS
/* everything that follows is working around what are thought to be
* compiler shortcomings. Revist all of these regularly.
*/
//#define BOOST_USE_ENUM_STATIC_ASSERT
//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define
// These constants should be provided by the
// compiler, at least when -hgnu is asserted on the command line.
#ifndef __ATOMIC_RELAXED
#define __ATOMIC_RELAXED 0
#define __ATOMIC_CONSUME 1
#define __ATOMIC_ACQUIRE 2
#define __ATOMIC_RELEASE 3
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_SEQ_CST 5
#endif

View File

@@ -1,8 +1,8 @@
// Copyright (C) Christof Meerwald 2003
// Copyright (C) Dan Watkins 2003
//
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// Digital Mars C++ compiler setup:
@@ -11,15 +11,7 @@
#define BOOST_HAS_LONG_LONG
#define BOOST_HAS_PRAGMA_ONCE
#if (__DMC__ <= 0x833)
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TEMPLATE_TEMPLATES
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#endif
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#if !defined(BOOST_STRICT_CONFIG)
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#define BOOST_NO_OPERATORS_IN_NAMESPACE
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
@@ -30,11 +22,9 @@
//
// has macros:
#if (__DMC__ >= 0x840)
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_WINTHREADS
#endif
#if (__DMC__ >= 0x847)
#define BOOST_HAS_EXPM1
@@ -60,36 +50,69 @@
//
// C++0x features
//
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#if (__DMC__ < 0x812)
#define BOOST_NO_VARIADIC_MACROS
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if __DMC__ < 0x800
#if (__DMC__ <= 0x840)
#error "Compiler not supported or configured - please reconfigure"
#endif
//

View File

@@ -1,67 +1,40 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Jens Maurer 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Douglas Gregor 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Synge Todo 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Jens Maurer 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Douglas Gregor 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Synge Todo 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// GNU C++ compiler setup:
// GNU C++ compiler setup.
#if __GNUC__ < 3
# if __GNUC_MINOR__ == 91
// egcs 1.1 won't parse shared_ptr.hpp without this:
# define BOOST_NO_AUTO_PTR
# endif
# if __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
//
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
//
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#if !defined(__CUDACC__)
#define BOOST_GCC BOOST_GCC_VERSION
#endif
# if __GNUC_MINOR__ < 96
# define BOOST_NO_SFINAE
# endif
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
# define BOOST_GCC_CXX11
#endif
# if __GNUC_MINOR__ <= 97
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_EXTERN_TEMPLATE
// Variadic macros do not exist for gcc versions before 3.0
# define BOOST_NO_VARIADIC_MACROS
#elif __GNUC__ == 3
#if __GNUC__ == 3
# if defined (__PATHSCALE__)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# define BOOST_NO_IS_ABSTRACT
# endif
//
// gcc-3.x problems:
//
// Bug specific to gcc 3.1 and 3.2:
//
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# endif
# if __GNUC_MINOR__ < 4
# define BOOST_NO_IS_ABSTRACT
# endif
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if __GNUC__ < 4
//
@@ -73,7 +46,12 @@
# endif
#endif
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
#if BOOST_GCC_VERSION >= 30400
#define BOOST_HAS_PRAGMA_ONCE
#endif
#if BOOST_GCC_VERSION < 40400
// Previous versions of GCC did not completely implement value-initialization:
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
// members", reported by Jonathan Wakely in 2006,
@@ -97,45 +75,51 @@
//
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS
#endif
#endif
//
// gcc has "long long"
// Except on Darwin with standard compliance enabled (-pedantic)
// Apple gcc helpfully defines this macro we can query
//
#define BOOST_HAS_LONG_LONG
#if !defined(__DARWIN_NO_LONG_LONG)
# define BOOST_HAS_LONG_LONG
#endif
//
// gcc implements the named return value optimization since version 3.1
//
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
#define BOOST_HAS_NRVO
#endif
// Branch prediction hints
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __GNUC__ >= 4
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
// All Win32 development environments, including 64-bit Windows and MinGW, define
// All Win32 development environments, including 64-bit Windows and MinGW, define
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
// so does not define _WIN32 or its variants.
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
# else
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
# endif
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
#else
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
// RTTI and typeinfo detection is possible post gcc-4.3:
//
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
#if BOOST_GCC_VERSION > 40300
# ifndef __GXX_RTTI
# ifndef BOOST_NO_TYPEID
# define BOOST_NO_TYPEID
@@ -146,13 +130,36 @@
# endif
#endif
// C++0x features not implemented in any GCC version
//
#define BOOST_NO_TEMPLATE_ALIASES
// Recent GCC versions have __int128 when in 64-bit mode.
//
// We disable this if the compiler is really nvcc as it
// doesn't actually support __int128 as of CUDA_VERSION=5000
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/8048
// Only re-enable this for nvcc if you're absolutely sure
// of the circumstances under which it's supported:
//
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
# define BOOST_HAS_INT128
#endif
//
// Recent GCC versions have a __float128 native type, we need to
// include a std lib header to detect this - not ideal, but we'll
// be including <cstddef> later anyway when we select the std lib.
//
#ifdef __cplusplus
#include <cstddef>
#else
#include <stddef.h>
#endif
#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__)
# define BOOST_HAS_FLOAT128
#endif
// C++0x features in 4.3.n and later
//
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11)
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
// passed on the command line, which in turn defines
// __GXX_EXPERIMENTAL_CXX0X__.
@@ -161,65 +168,121 @@
# define BOOST_HAS_STATIC_ASSERT
# define BOOST_HAS_VARIADIC_TMPL
#else
# define BOOST_NO_DECLTYPE
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_STATIC_ASSERT
// Variadic templates compiler:
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
# define BOOST_HAS_VARIADIC_TMPL
# else
# define BOOST_NO_VARIADIC_TEMPLATES
# endif
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
// C++0x features in 4.4.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DELETED_FUNCTIONS
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
#if BOOST_GCC_VERSION < 40500
# define BOOST_NO_SFINAE_EXPR
#endif
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// C++0x features in 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_LAMBDAS
# define BOOST_NO_RAW_LITERALS
# define BOOST_NO_UNICODE_LITERALS
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_UNICODE_LITERALS
#endif
// C++0x features in 4.5.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.5.1
#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11)
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
// C++0x features in 4.6.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
// C++0x features not supported at all yet
// C++0x features in 4.7.n and later
//
#define BOOST_NO_DECLTYPE_N3276
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// C++0x features in 4.8.n and later
//
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_ALIGNAS
#endif
// C++0x features in 4.8.1 and later
//
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
// C++14 features in 4.9.0 and later
//
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# endif
#endif
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// Unused attribute:
#if __GNUC__ >= 4
# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
#endif
//
// __builtin_unreachable:
#if BOOST_GCC_VERSION >= 40800
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "GNU C++ version " __VERSION__
@@ -233,13 +296,13 @@
#endif
// versions check:
// we don't know gcc prior to version 2.90:
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
// we don't know gcc prior to version 3.30:
#if (BOOST_GCC_VERSION< 30300)
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 4.6 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
// last known and checked version is 4.9:
#if (BOOST_GCC_VERSION > 40900)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
@@ -249,4 +312,3 @@
# endif
#endif

View File

@@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2006.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2006.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -18,7 +18,7 @@
//
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS
#endif
#endif
//
// gcc has "long long"
@@ -27,32 +27,68 @@
// C++0x features:
//
# define BOOST_NO_CONSTEXPR
# define BOOST_NO_NULLPTR
# define BOOST_NO_TEMPLATE_ALIASES
# define BOOST_NO_DECLTYPE
# define BOOST_NO_DECLTYPE_N3276
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_VARIADIC_TEMPLATES
# define BOOST_NO_VARIADIC_MACROS
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_CXX11_CONSTEXPR
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_LAMBDAS
# define BOOST_NO_RAW_LITERALS
# define BOOST_NO_UNICODE_LITERALS
# define BOOST_NO_NOEXCEPT
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__

View File

@@ -1,11 +1,11 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Toon Knapen 2003.
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006 - 2007.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -43,7 +43,7 @@
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
#endif
// optional features rather than defects:
#if (__HP_aCC >= 33900)
@@ -92,38 +92,45 @@
//
#if !defined(__EDG__)
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
/*
/*
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
*/
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#endif

View File

@@ -14,10 +14,44 @@
// Intel compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
#ifdef _MSC_VER
#include <boost/config/compiler/visualc.hpp>
#undef BOOST_MSVC
#undef BOOST_MSVC_FULL_VER
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
//
// These appear to be supported, even though VC++ may not support them:
//
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#undef BOOST_NO_CXX14_BINARY_LITERALS
// This one may be a little risky to enable??
#undef BOOST_NO_SFINAE_EXPR
#endif
#else
#include <boost/config/compiler/gcc.hpp>
#undef BOOST_GCC_VERSION
#undef BOOST_GCC_CXX11
#endif
#undef BOOST_COMPILER
#if defined(__INTEL_COMPILER)
#if __INTEL_COMPILER == 9999
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
#else
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC)
@@ -27,18 +61,25 @@
#endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_INTEL_STDCXX0X
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_INTEL_STDCXX0X
#endif
#ifdef BOOST_INTEL_STDCXX0X
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
#else
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
#ifdef __GNUC__
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if !defined(BOOST_COMPILER)
# if defined(BOOST_INTEL_STDCXX0X)
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# endif
#endif
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64)
@@ -47,9 +88,50 @@
# define BOOST_INTEL_LINUX BOOST_INTEL
#endif
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_TEMPLATE_TEMPLATES
#else
#include "boost/config/compiler/common_edg.hpp"
#if defined(__INTEL_COMPILER)
#if __INTEL_COMPILER == 9999
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
#else
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC)
# define BOOST_INTEL_CXX_VERSION __ICC
#elif defined(__ECC)
# define BOOST_INTEL_CXX_VERSION __ECC
#endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_INTEL_STDCXX0X
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_INTEL_STDCXX0X
#endif
#ifdef __GNUC__
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if !defined(BOOST_COMPILER)
# if defined(BOOST_INTEL_STDCXX0X)
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# endif
#endif
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64)
# define BOOST_INTEL_WIN BOOST_INTEL
#else
# define BOOST_INTEL_LINUX BOOST_INTEL
#endif
#if (BOOST_INTEL_CXX_VERSION <= 600)
@@ -111,7 +193,7 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# endif
#endif
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
// GCC or VC emulation:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
@@ -154,10 +236,36 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_HAS_NRVO
#endif
// Branch prediction hints
// I'm not sure 8.0 was the first version to support these builtins,
// update the condition if the version is not accurate. (Andrey Semashev)
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
#endif
// RTTI
// __RTTI is the EDG macro
// __INTEL_RTTI__ is the Intel macro
// __GXX_RTTI is the g++ macro
// _CPPRTTI is the MSVC++ macro
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
#if !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
// in MS mode, static typeid works even when RTTI is off
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
# define BOOST_NO_TYPEID
#endif
#endif
//
// versions check:
// we don't support Intel prior to version 5.0:
#if BOOST_INTEL_CXX_VERSION < 500
// we don't support Intel prior to version 6.0:
#if BOOST_INTEL_CXX_VERSION < 600
# error "Compiler not supported or configured - please reconfigure"
#endif
@@ -173,15 +281,15 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
//
// An attempt to value-initialize a pointer-to-member may trigger an
// internal error on Intel <= 11.1 (last checked version), as was
// internal error on Intel <= 11.1 (last checked version), as was
// reported by John Maddock, Intel support issue 589832, May 2010.
// Moreover, according to test results from Huang-Vista-x86_32_intel,
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
// cases when it should be value-initialized.
// (Niels Dekker, LKEB, May 2010)
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
#if defined(__INTEL_COMPILER)
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
#endif
@@ -196,29 +304,196 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
#endif
//
// C++0x features
// - ICC added static_assert in 11.0 (first version with C++0x support)
// For each feature we need to check both the Intel compiler version,
// and the version of MSVC or GCC that we are emulating.
// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
// for a list of which features were implemented in which Intel releases.
//
#if defined(BOOST_INTEL_STDCXX0X)
# undef BOOST_NO_STATIC_ASSERT
//
// These pass our test cases, but aren't officially supported according to:
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
//
//# undef BOOST_NO_LAMBDAS
//# undef BOOST_NO_DECLTYPE
//# undef BOOST_NO_AUTO_DECLARATIONS
//# undef BOOST_NO_AUTO_MULTIDECLARATIONS
// BOOST_NO_CXX11_CONSTEXPR:
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
// Available in earlier Intel versions, but fail our tests:
# undef BOOST_NO_CXX11_CONSTEXPR
#endif
// BOOST_NO_CXX11_NULLPTR:
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_NULLPTR
#endif
// BOOST_NO_CXX11_TEMPLATE_ALIASES
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
# undef BOOST_NO_DELETED_FUNCTIONS
# undef BOOST_NO_DEFAULTED_FUNCTIONS
# undef BOOST_NO_LAMBDAS
# undef BOOST_NO_DECLTYPE
# undef BOOST_NO_AUTO_DECLARATIONS
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
// BOOST_NO_CXX11_DECLTYPE
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_DECLTYPE
#endif
// BOOST_NO_CXX11_DECLTYPE_N3276
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DECLTYPE_N3276
#endif
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
// BOOST_NO_CXX11_RVALUE_REFERENCES
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
// BOOST_NO_CXX11_STATIC_ASSERT
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_STATIC_ASSERT
#endif
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// BOOST_NO_CXX11_VARIADIC_MACROS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
# undef BOOST_NO_CXX11_VARIADIC_MACROS
#endif
// BOOST_NO_CXX11_AUTO_DECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
#endif
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
// BOOST_NO_CXX11_CHAR16_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR16_T
#endif
// BOOST_NO_CXX11_CHAR32_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR32_T
#endif
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#endif
// BOOST_NO_CXX11_DELETED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
// BOOST_NO_CXX11_SCOPED_ENUMS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
// This is available but broken in earlier Intel releases.
# undef BOOST_NO_CXX11_SCOPED_ENUMS
#endif
// BOOST_NO_SFINAE_EXPR
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_SFINAE_EXPR
#endif
// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
// This is available in earlier Intel releases, but breaks Multiprecision:
# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
// BOOST_NO_CXX11_LAMBDAS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_LAMBDAS
#endif
// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
// BOOST_NO_CXX11_RANGE_BASED_FOR
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
#endif
// BOOST_NO_CXX11_RAW_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_RAW_LITERALS
#endif
// BOOST_NO_CXX11_UNICODE_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_UNICODE_LITERALS
#endif
// BOOST_NO_CXX11_NOEXCEPT
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
// Available in earlier Intel release, but generates errors when used with
// conditional exception specifications, for example in multiprecision:
# undef BOOST_NO_CXX11_NOEXCEPT
#endif
// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
// BOOST_NO_CXX11_ALIGNAS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_ALIGNAS
#endif
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
// BOOST_NO_CXX11_INLINE_NAMESPACES
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
// BOOST_NO_CXX11_REF_QUALIFIERS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_REF_QUALIFIERS
#endif
// BOOST_NO_CXX11_FINAL
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_FINAL
#endif
#endif
//
// Broken in all versions up to 15:
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
#if (BOOST_INTEL_CXX_VERSION < 1200)
@@ -228,9 +503,25 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_NO_FENV_H
#endif
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
// producing the following errors:
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
#if (BOOST_INTEL_CXX_VERSION <= 1310)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_HAS_STDINT_H
#endif
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(__CUDACC__)
# define BOOST_HAS_INT128
#endif
#endif
//
// last known and checked version:
#if (BOOST_INTEL_CXX_VERSION > 1200)
#if (BOOST_INTEL_CXX_VERSION > 1500)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# elif defined(_MSC_VER)

View File

@@ -1,11 +1,11 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Darin Adler 2001.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright David Abrahams 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Stefan Slapeta 2004.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// (C) Copyright Darin Adler 2001.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright David Abrahams 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Stefan Slapeta 2004.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -15,7 +15,7 @@
// locale support is disabled when linking with the dynamic runtime
# ifdef _MSL_NO_LOCALE
# define BOOST_NO_STD_LOCALE
# endif
# endif
# if __MWERKS__ <= 0x2301 // 5.3
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
@@ -90,33 +90,70 @@
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
# define BOOST_HAS_RVALUE_REFS
#else
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)

View File

@@ -1,7 +1,7 @@
// (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Aleksey Gurtovoy 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Aleksey Gurtovoy 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -40,32 +40,69 @@
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// versions check:

View File

@@ -14,15 +14,3 @@
// NVIDIA Specific support
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
#define BOOST_GPU_ENABLED __host__ __device__
// Boost support macro for NVCC
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
#ifdef __GNUC__
#include <boost/config/compiler/gcc.hpp>
#elif defined(_MSC_VER)
#include <boost/config/compiler/visualc.hpp>
#endif

View File

@@ -1,7 +1,7 @@
// (C) Copyright Bryce Lelbach 2011
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -32,49 +32,83 @@
# define BOOST_HAS_EXPM1
# define BOOST_HAS_DIRENT_H
# define BOOST_HAS_CLOCK_GETTIME
# define BOOST_NO_VARIADIC_TEMPLATES
# define BOOST_NO_UNICODE_LITERALS
# define BOOST_NO_TEMPLATE_ALIASES
# define BOOST_NO_STD_UNORDERED
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_RAW_LITERALS
# define BOOST_NO_NULLPTR
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_NOEXCEPT
# define BOOST_NO_LAMBDAS
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DECLTYPE
# define BOOST_NO_DECLTYPE_N3276
# define BOOST_NO_CONSTEXPR
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_CONSTEXPR
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# define BOOST_NO_CHAR32_T
# define BOOST_NO_CHAR16_T
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CHRONO
#endif
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#endif

View File

@@ -1,6 +1,6 @@
// (C) Copyright Noel Belcourt 2007.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -8,7 +8,7 @@
// PGI C++ compiler setup:
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
//
// Threading support:
@@ -16,13 +16,12 @@
// if no threading API is detected.
//
// PGI 10.x doesn't seem to define __PGIC__
// versions earlier than 10.x do define __PGIC__
#if __PGIC__ >= 10
#if __PGIC__ >= 11
// options requested by configure --enable-test
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_THREADS
#define BOOST_HAS_PTHREAD_YIELD
#define BOOST_HAS_NRVO
#define BOOST_HAS_LONG_LONG
@@ -31,13 +30,33 @@
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
#undef BOOST_DEDUCED_TYPENAME
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#elif __PGIC__ >= 10
// options requested by configure --enable-test
#define BOOST_HAS_THREADS
#define BOOST_HAS_NRVO
#define BOOST_HAS_LONG_LONG
#if defined(linux) || defined(__linux) || defined(__linux__)
# define BOOST_HAS_STDINT_H
#endif
// options --enable-test wants undefined
#undef BOOST_NO_STDC_NAMESPACE
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
#undef BOOST_DEDUCED_TYPENAME
#elif __PGIC__ >= 7
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SWPRINTF
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#else
@@ -49,31 +68,87 @@
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_NUMERIC_LIMITS
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_SWPRINTF
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
#define BOOST_NO_CXX11_HDR_TYPEINDEX
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
#define BOOST_NO_CXX11_HDR_TUPLE
#define BOOST_NO_CXX11_HDR_THREAD
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
#define BOOST_NO_CXX11_HDR_REGEX
#define BOOST_NO_CXX11_HDR_RATIO
#define BOOST_NO_CXX11_HDR_RANDOM
#define BOOST_NO_CXX11_HDR_MUTEX
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
#define BOOST_NO_CXX11_HDR_CODECVT
#define BOOST_NO_CXX11_HDR_CHRONO
#define BOOST_NO_CXX11_HDR_ARRAY
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// version check:
// probably nothing to do here?

View File

@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Peter Dimov 2002.
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
// (C) Copyright David Abrahams 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Peter Dimov 2002.
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
// (C) Copyright David Abrahams 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -34,7 +34,7 @@
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
# if (__SUNPRO_CC <= 0x530)
# if (__SUNPRO_CC <= 0x530)
// Requesting debug info (-g) with Boost.Python results
// in an internal compiler error for "static const"
// initialized in-class.
@@ -57,7 +57,7 @@
# define BOOST_NO_INTEGRAL_INT64_T
# endif
# if (__SUNPRO_CC < 0x570)
# if (__SUNPRO_CC < 0x570)
# define BOOST_NO_TEMPLATE_TEMPLATES
// see http://lists.boost.org/MailArchives/boost/msg47184.php
// and http://lists.boost.org/MailArchives/boost/msg47220.php
@@ -65,7 +65,7 @@
# define BOOST_NO_SFINAE
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# endif
# if (__SUNPRO_CC <= 0x580)
# if (__SUNPRO_CC <= 0x580)
# define BOOST_NO_IS_ABSTRACT
# endif
@@ -86,46 +86,89 @@
# define BOOST_SYMBOL_VISIBLE __global
#endif
//
// Issues that effect all known versions:
//
#if (__SUNPRO_CC < 0x5130)
// C++03 features in 12.4:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_ADL_BARRIER
#define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
// C++11 only featuires in 12.4:
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_FINAL
#endif
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
#endif
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++0x features
//
# define BOOST_HAS_LONG_LONG
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// Version
//

View File

@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Toon Knapen 2001 - 2003.
// (C) Copyright Lie-Quan Lee 2001.
// (C) Copyright Markus Schoepflin 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Toon Knapen 2001 - 2003.
// (C) Copyright Lie-Quan Lee 2001.
// (C) Copyright Markus Schoepflin 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
@@ -16,7 +16,7 @@
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif
#if (__IBMCPP__ <= 502)
#if (__IBMCPP__ <= 502)
// 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.
@@ -30,9 +30,9 @@
#endif
#if (__IBMCPP__ <= 1110)
// XL C++ V11.1 and earlier versions may not always value-initialize
// a temporary object T(), when T is a non-POD aggregate class type.
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
// XL C++ V11.1 and earlier versions may not always value-initialize
// a temporary object T(), when T is a non-POD aggregate class type.
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
// high priority. -- Niels Dekker (LKEB), May 2010.
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
@@ -53,8 +53,8 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1110:
#if (__IBMCPP__ > 1110)
// last known and checked version is 1210:
#if (__IBMCPP__ > 1210)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
@@ -71,50 +71,92 @@
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
#if ! __IBMCPP_UTF_LITERAL__
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if ! __IBMCPP_CONSTEXPR
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#define BOOST_NO_CONSTEXPR
#if ! __IBMCPP_DECLTYPE
# define BOOST_NO_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE
#else
# define BOOST_HAS_DECLTYPE
#endif
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if ! __IBMCPP_EXTERN_TEMPLATE
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if ! __IBMCPP_VARIADIC_TEMPLATES
// not enabled separately at this time
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#if ! __IBMCPP_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#if ! __IBMCPP_SCOPED_ENUM
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#if ! __IBMCPP_STATIC_ASSERT
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#if ! __IBMCPP_VARIADIC_TEMPLATES
# define BOOST_NO_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if ! __C99_MACRO_WITH_VA_ARGS
# define BOOST_NO_VARIADIC_MACROS
# define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif

View File

@@ -1,156 +1,88 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
//
// Microsoft Visual C++ compiler setup:
//
// We need to be careful with the checks in this file, as contrary
// to popular belief there are versions with _MSC_VER with the final
// digit non-zero (mainly the MIPS cross compiler).
//
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
// No other comparisons (==, >, or <=) are safe.
//
#define BOOST_MSVC _MSC_VER
//
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
//
#if _MSC_FULL_VER > 100000000
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
#else
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
#endif
// turn off the warnings before we #include anything
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_VOID_RETURNS
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
#define BOOST_HAS_PRAGMA_ONCE
# if BOOST_MSVC == 1202
# define BOOST_NO_STD_TYPEINFO
# endif
// disable min/max macro defines on vc6:
//
//
// versions check:
// we don't support Visual C++ prior to version 7.1:
#if _MSC_VER < 1310
# error "Compiler not supported or configured - please reconfigure"
#endif
/// Visual Studio has no fenv.h
#define BOOST_NO_FENV_H
#if (_MSC_VER <= 1300) // 1300 == 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_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEDUCED_TYPENAME
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
// 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
# define BOOST_NO_SFINAE
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
# if (_MSC_VER > 1200)
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# endif
#if _MSC_FULL_VER < 180020827
# define BOOST_NO_FENV_H
#endif
#if _MSC_VER < 1400
#if _MSC_VER < 1400
// although a conforming signature for swprint exists in VC7.1
// it appears not to actually work:
# define BOOST_NO_SWPRINTF
// Our extern template tests also fail for this compiler:
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
// Variadic macros do not exist for VC7.1 and lower
# define BOOST_NO_VARIADIC_MACROS
# define BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if defined(UNDER_CE)
// Windows CE does not have a conforming signature for swprintf
# define BOOST_NO_SWPRINTF
#endif
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
#if _MSC_VER < 1500 // 140X == VC++ 8.0
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
#if _MSC_VER < 1600 // 150X == VC++ 9.0
// A bug in VC9:
# define BOOST_NO_ADL_BARRIER
#endif
#if (_MSC_VER <= 1600)
// MSVC (including the latest checked version) has not yet completely
// implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp:
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
// "Presence of copy constructor breaks member class initialization",
// reported in 2009 by Alex Vakulenko:
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
// "Value-initialization in new-expression", reported in 2005 by
// Pavel Kuznetsov (MetaCommunications Engineering):
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
# define BOOST_NO_INITIALIZER_LISTS
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
#if defined(_WIN32_WCE) || defined(UNDER_CE)
# define BOOST_NO_SWPRINTF
#endif
// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
# define BOOST_HAS_THREADEX
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
//
// check for exception handling support:
//
// check for exception handling support:
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
# define BOOST_NO_EXCEPTIONS
#endif
//
// __int64 support:
//
#if (_MSC_VER >= 1200)
# define BOOST_HAS_MS_INT64
#endif
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
#define BOOST_HAS_MS_INT64
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
# define BOOST_HAS_LONG_LONG
#else
# define BOOST_NO_LONG_LONG
@@ -158,8 +90,11 @@
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
# define BOOST_HAS_NRVO
#endif
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
//
// disable Win32 API's if compiler extentions are
// disable Win32 API's if compiler extensions are
// turned off:
//
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
@@ -169,6 +104,16 @@
# define BOOST_NO_RTTI
#endif
//
// TR1 features:
//
#if _MSC_VER >= 1700
// # define BOOST_HAS_TR1_HASH // don't know if this is true yet.
// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet.
# define BOOST_HAS_TR1_UNORDERED_MAP
# define BOOST_HAS_TR1_UNORDERED_SET
#endif
//
// C++0x features
//
@@ -177,38 +122,97 @@
// C++ features supported by VC++ 10 (aka 2010)
//
#if _MSC_VER < 1600
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR
#define BOOST_NO_DECLTYPE
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_DECLTYPE
#endif // _MSC_VER < 1600
#if _MSC_VER >= 1600
#define BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
#endif
// C++0x features not supported by any versions
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
// C++11 features supported by VC++ 11 (aka 2012)
//
#if _MSC_VER < 1700
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif // _MSC_VER < 1700
// C++11 features supported by VC++ 12 (aka 2013).
//
#if _MSC_FULL_VER < 180020827
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_DECLTYPE_N3276
#endif
// C++11 features supported by VC++ 14 (aka 2015)
//
#if (_MSC_FULL_VER < 190023026)
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_BINARY_LITERALS
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
// MSVC including version 14 has not yet completely
// implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp:
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
// "Presence of copy constructor breaks member class initialization",
// reported in 2009 by Alex Vakulenko:
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
// "Value-initialization in new-expression", reported in 2005 by
// Pavel Kuznetsov (MetaCommunications Engineering):
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
// Reported again by John Maddock in 2015 for VC14:
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
// C++11 features not supported by any versions
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
//
// This is somewhat supported in VC14, but we may need to wait for
// a service release before enabling:
//
#define BOOST_NO_CXX11_CONSTEXPR
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
//
// prefix and suffix headers:
//
@@ -219,23 +223,33 @@
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
#endif
#ifndef BOOST_COMPILER
// TODO:
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
// artificial versions assigned to them only refer to the versions of some IDE
// these compilers have been shipped with, and even that is not all of it. Some
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
// IOW, you can't use these 'versions' in any sensible way. Sorry.
# if defined(UNDER_CE)
# if _MSC_VER < 1200
// Note: these are so far off, they are not really supported
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
# define BOOST_COMPILER_VERSION evc4.0
# elif _MSC_VER == 1400
# if _MSC_VER < 1400
// Note: I'm not aware of any CE compiler with version 13xx
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif
# elif _MSC_VER < 1500
# define BOOST_COMPILER_VERSION evc8
# elif _MSC_VER == 1500
# elif _MSC_VER < 1600
# define BOOST_COMPILER_VERSION evc9
# elif _MSC_VER == 1600
# elif _MSC_VER < 1700
# define BOOST_COMPILER_VERSION evc10
# elif _MSC_VER < 1800
# define BOOST_COMPILER_VERSION evc11
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION evc12
# elif _MSC_VER < 2000
# define BOOST_COMPILER_VERSION evc14
# else
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
@@ -244,37 +258,38 @@
# endif
# endif
# else
# if _MSC_VER < 1200
// Note: these are so far off, they are not really supported
# if _MSC_VER < 1310
// Note: Versions up to 7.0 aren't supported.
# define BOOST_COMPILER_VERSION 5.0
# elif _MSC_VER < 1300
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER == 1300
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER < 1310
# define BOOST_COMPILER_VERSION 7.0
# elif _MSC_VER == 1310
# elif _MSC_VER < 1400
# define BOOST_COMPILER_VERSION 7.1
# elif _MSC_VER == 1400
# elif _MSC_VER < 1500
# define BOOST_COMPILER_VERSION 8.0
# elif _MSC_VER == 1500
# elif _MSC_VER < 1600
# define BOOST_COMPILER_VERSION 9.0
# elif _MSC_VER == 1600
# elif _MSC_VER < 1700
# define BOOST_COMPILER_VERSION 10.0
# elif _MSC_VER < 1800
# define BOOST_COMPILER_VERSION 11.0
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION 12.0
# elif _MSC_VER < 2000
# define BOOST_COMPILER_VERSION 14.0
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
# endif
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
#endif
//
// 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 1600 (VC10, aka 2010):
#if (_MSC_VER > 1600)
// last known and checked version is 19.00.23026 (VC++ 2015 RTM):
#if (_MSC_VER > 1900)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else

View File

@@ -0,0 +1,258 @@
// (C) Copyright Douglas Gregor 2010
//
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang.
#define BOOST_HAS_PRAGMA_ONCE
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
// When compiling with clang before __has_extension was defined,
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
// clang reports a compiler error. So the only workaround found is:
#ifndef __has_extension
#define __has_extension __has_feature
#endif
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
# define BOOST_NO_TYPEID
#endif
#if defined(__int64) && !defined(__GNUC__)
# define BOOST_HAS_MS_INT64
#endif
#define BOOST_HAS_NRVO
// Branch prediction hints
#if defined(__has_builtin)
#if __has_builtin(__builtin_expect)
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
#endif
#endif
// Clang supports "long long" in all compilation modes.
#define BOOST_HAS_LONG_LONG
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
#endif
//
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
// between switch labels.
//
#if __cplusplus >= 201103L && defined(__has_warning)
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
# endif
#endif
#if !__has_feature(cxx_auto_type)
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
//
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
//
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if !__has_feature(cxx_constexpr)
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#if !__has_feature(cxx_decltype)
# define BOOST_NO_CXX11_DECLTYPE
#endif
#if !__has_feature(cxx_decltype_incomplete_return_types)
# define BOOST_NO_CXX11_DECLTYPE_N3276
#endif
#if !__has_feature(cxx_defaulted_functions)
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#endif
#if !__has_feature(cxx_deleted_functions)
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
#if !__has_feature(cxx_explicit_conversions)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if !__has_feature(cxx_default_function_template_args)
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#if !__has_feature(cxx_lambdas)
# define BOOST_NO_CXX11_LAMBDAS
#endif
#if !__has_feature(cxx_local_type_template_args)
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if !__has_feature(cxx_noexcept)
# define BOOST_NO_CXX11_NOEXCEPT
#endif
#if !__has_feature(cxx_nullptr)
# define BOOST_NO_CXX11_NULLPTR
#endif
#if !__has_feature(cxx_range_for)
# define BOOST_NO_CXX11_RANGE_BASED_FOR
#endif
#if !__has_feature(cxx_raw_string_literals)
# define BOOST_NO_CXX11_RAW_LITERALS
#endif
#if !__has_feature(cxx_reference_qualified_functions)
# define BOOST_NO_CXX11_REF_QUALIFIERS
#endif
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
#if !__has_feature(cxx_rvalue_references)
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#if !__has_feature(cxx_strong_enums)
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#if !__has_feature(cxx_static_assert)
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
#if !__has_feature(cxx_alias_templates)
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
#endif
#if !__has_feature(cxx_unicode_literals)
# define BOOST_NO_CXX11_UNICODE_LITERALS
#endif
#if !__has_feature(cxx_variadic_templates)
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if !__has_feature(cxx_user_literals)
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if !__has_feature(cxx_alignas)
# define BOOST_NO_CXX11_ALIGNAS
#endif
#if !__has_feature(cxx_trailing_return)
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
#if !__has_feature(cxx_inline_namespaces)
# define BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
#if !__has_feature(cxx_override_control)
# define BOOST_NO_CXX11_FINAL
#endif
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !__has_feature(__cxx_decltype_auto__)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if !__has_feature(__cxx_aggregate_nsdmi__)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !__has_feature(__cxx_init_captures__)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !__has_feature(__cxx_generic_lambdas__)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
// clang < 3.5 has a defect with dependent type, like following.
//
// template <class T>
// constexpr typename enable_if<pred<T> >::type foo(T &)
// { } // error: no return statement in constexpr function
//
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
// Therefore we don't care such case.
//
// Note that we can't check Clang version directly as the numbering system changes depending who's
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
// so instead verify that we have a feature that was introduced at the same time as working C++14
// constexpr (generic lambda's in this case):
//
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !__has_feature(__cxx_return_type_deduction__)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !__has_feature(__cxx_variable_templates__)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if __cplusplus < 201400
// All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
// Unused attribute:
#if defined(__GNUC__) && (__GNUC__ >= 4)
# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__
#endif
// Macro used to identify the Clang compiler.
#define BOOST_CLANG 1

View File

@@ -0,0 +1,18 @@
// Copyright Nuxi, https://nuxi.nl/ 2015.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PLATFORM "CloudABI"
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_EXPM1
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_LOG1P
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD

View File

@@ -0,0 +1,31 @@
// (C) Copyright Jessica Hamilton 2014.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// Haiku specific config options:
#define BOOST_PLATFORM "Haiku"
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H
#ifndef BOOST_DISABLE_THREADS
# define BOOST_HAS_THREADS
#endif
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
#define BOOST_NO_CXX11_ATOMIC_SMART_PTR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_VARIADIC_MACROS
//
// thread API's not auto detected:
//
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_GETTIMEOFDAY
// boilerplate code:
#include <boost/config/posix_features.hpp>

View File

@@ -72,7 +72,9 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#ifdef __USE_GNU
#define BOOST_HAS_PTHREAD_YIELD
#endif
#ifndef __GNUC__
//

View File

@@ -47,7 +47,7 @@
# define BOOST_NO_STDC_NAMESPACE
# endif
# if (__GNUC__ == 4)
# if (__GNUC__ >= 4)
// Both gcc and intel require these.
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE

View File

@@ -23,6 +23,9 @@
# undef BOOST_HAS_PTHREADS
#endif
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1

View File

@@ -1,31 +1,369 @@
// (C) Copyright Dustin Spicuzza 2009.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright Dustin Spicuzza 2009.
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// vxWorks specific config options:
// Since WRS does not yet properly support boost under vxWorks
// and this file was badly outdated, but I was keen on using it,
// I patched boost myself to make things work. This has been tested
// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
// to earlier 6.X versions! The only thing I know for sure is that
// very old versions of vxWorks (namely everything below 6.x) are
// absolutely unable to use boost. This is mainly due to the completely
// outdated libraries and ancient compiler (GCC 2.96 or worse). Do
// not even think of getting this to work, a miserable failure will
// be guaranteed!
// Equally, this file has been tested for RTPs (Real Time Processes)
// only, not for DKMs (Downloadable Kernel Modules). These two types
// of executables differ largely in the available functionality of
// the C-library, STL, and so on. A DKM uses a library similar to those
// of vxWorks 5.X - with all its limitations and incompatibilities
// with respect to ANSI C++ and STL. So probably there might be problems
// with the usage of boost from DKMs. WRS or any voluteers are free to
// prove the opposite!
#define BOOST_PLATFORM "vxWorks"
// ====================================================================
//
// Some important information regarding the usage of POSIX semaphores:
// -------------------------------------------------------------------
//
// VxWorks as a real time operating system handles threads somewhat
// different from what "normal" OSes do, regarding their scheduling!
// This could lead to a scenario called "priority inversion" when using
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
//
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
// priority inverting semaphores, which is fine. On the other hand,
// for RTP's it defaults to using non priority inverting semaphores,
// which could easily pose a serious problem for a real time process,
// i.e. deadlocks! To overcome this two possibilities do exist:
//
// a) Patch every piece of boost that uses semaphores to instanciate
// the proper type of semaphores. This is non-intrusive with respect
// to the OS and could relatively easy been done by giving all
// semaphores attributes deviating from the default (for in-depth
// information see the POSIX functions pthread_mutexattr_init()
// and pthread_mutexattr_setprotocol()). However this breaks all
// too easily, as with every new version some boost library could
// all in a sudden start using semaphores, resurrecting the very
// same, hard to locate problem over and over again!
//
// b) We could change the default properties for POSIX-semaphores
// that VxWorks uses for RTP's and this is being suggested here,
// as it will more or less seamlessly integrate with boost. I got
// the following information from WRS how to do this, compare
// Wind River TSR# 1209768:
//
// Instructions for changing the default properties of POSIX-
// semaphores for RTP's in VxWorks 6.9:
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
// in the root of your Workbench-installation.
// - Around line 917 there should be the definition of the default
// mutex attributes:
//
// LOCAL pthread_mutexattr_t defaultMutexAttr =
// {
// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
// PTHREAD_MUTEX_DEFAULT
// };
//
// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
// - Around line 1236 there should be a definition for the function
// pthread_mutexattr_init(). A couple of lines below you should
// find a block of code like this:
//
// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
// pAttr->mutexAttrPrioceiling = 0;
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
//
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
// with the changed properties. That's it! Now, using boost should
// no longer cause any problems with task deadlocks!
//
// And here's another useful piece of information concerning VxWorks'
// POSIX-functionality in general:
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
// kind of compatibility layer (sort of a wrapper) to emulate the
// POSIX-functionality by using its own resources and functions.
// At the time a task (thread) calls it's first POSIX-function during
// runtime it is being transformed by the OS into a POSIX-thread.
// This transformation does include a call to malloc() to allocate the
// memory required for the housekeeping of POSIX-threads. In a high
// priority RTP this malloc() call may be highly undesirable, as its
// timing is more or less unpredictable (depending on what your actual
// heap looks like). You can circumvent this problem by calling the
// function thread_self() at a well defined point in the code of the
// task, e.g. shortly after the task spawns up. Thereby you are able
// to define the time when the task-transformation will take place and
// you could shift it to an uncritical point where a malloc() call is
// tolerable. So, if this could pose a problem for your code, remember
// to call thread_self() from the affected task at an early stage.
//
// ====================================================================
#define BOOST_NO_CWCHAR
#define BOOST_NO_INTRINSIC_WCHAR_T
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
#define BOOST_NO_INT64_T
// Block out all versions before vxWorks 6.x, as these don't work:
// Include header with the vxWorks version information and query them
#include <version.h>
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
# error "The vxWorks version you're using is so badly outdated,\
it doesn't work at all with boost, sorry, no chance!"
#endif
// Handle versions above 5.X but below 6.9
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
// TODO: Starting from what version does vxWorks work with boost?
// We can't reasonably insert a #warning "" as a user hint here,
// as this will show up with every file including some boost header,
// badly bugging the user... So for the time being we just leave it.
#endif
// vxWorks specific config options:
// --------------------------------
#define BOOST_PLATFORM "vxWorks"
// Special behaviour for DKMs:
#ifdef _WRS_KERNEL
// DKMs do not have the <cwchar>-header,
// but apparently they do have an intrinsic wchar_t meanwhile!
# define BOOST_NO_CWCHAR
// Lots of wide-functions and -headers are unavailable for DKMs as well:
# define BOOST_NO_CWCTYPE
# define BOOST_NO_SWPRINTF
# define BOOST_NO_STD_WSTRING
# define BOOST_NO_STD_WSTREAMBUF
#endif
// Generally available headers:
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_SLIST
// these allow posix_features to work, since vxWorks doesn't
// define them itself
#define _POSIX_TIMERS 1
#define _POSIX_THREADS 1
// vxWorks does not have installed an iconv-library by default,
// so unfortunately no Unicode support from scratch is available!
// Thus, instead it is suggested to switch to ICU, as this seems
// to be the most complete and portable option...
#define BOOST_LOCALE_WITH_ICU
// vxworks doesn't work with asio serial ports
// Generally available functionality:
#define BOOST_HAS_THREADS
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_MACRO_USE_FACET
// Generally unavailable functionality, delivered by boost's test function:
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_VARIADIC_MACROS
// Generally available threading API's:
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_SIGACTION
// Functionality available for RTPs only:
#ifdef __RTP__
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_LOG1P
# define BOOST_HAS_EXPM1
#endif
// Functionality available for DKMs only:
#ifdef _WRS_KERNEL
// Luckily, at the moment there seems to be none!
#endif
// These #defines allow posix_features to work, since vxWorks doesn't
// #define them itself for DKMs (for RTPs on the contrary it does):
#ifdef _WRS_KERNEL
# ifndef _POSIX_TIMERS
# define _POSIX_TIMERS 1
# endif
# ifndef _POSIX_THREADS
# define _POSIX_THREADS 1
# endif
#endif
// vxWorks doesn't work with asio serial ports:
#define BOOST_ASIO_DISABLE_SERIAL_PORT
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
// ways to handle serial ports, incompatible with POSIX or anything...
// Maybe a specific implementation would be possible, but until the
// straight need arises... This implementation would presumably consist
// of some vxWorks specific ioctl-calls, etc. Any voluteers?
// boilerplate code:
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
// miserably fails to #include the required <sysLib.h> to make
// sysClkRateGet() available! So we manually include it here.
#ifdef __RTP__
# include <time.h>
# include <sysLib.h>
#endif
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
// UINT64_C() are defined errorneously, yielding not a signed/
// unsigned long/long long type, but a signed/unsigned int/long
// type. Eventually this leads to compile errors in ratio_fwd.hpp,
// when trying to define several constants which do not fit into a
// long type! We correct them here by redefining.
#include <cstdint>
// Some macro-magic to do the job
#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
#define VX_DO_JOIN2(X, Y) X##Y
// Correctly setup the macros
#undef INT32_C
#undef UINT32_C
#undef INT64_C
#undef UINT64_C
#define INT32_C(x) VX_JOIN(x, L)
#define UINT32_C(x) VX_JOIN(x, UL)
#define INT64_C(x) VX_JOIN(x, LL)
#define UINT64_C(x) VX_JOIN(x, ULL)
// #include Libraries required for the following function adaption
#include <ioLib.h>
#include <tickLib.h>
#include <sys/time.h>
// Use C-linkage for the following helper functions
extern "C" {
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
// But we have the similar functions getprlimit() and setprlimit(),
// which may serve the purpose.
// Problem: The vxWorks-documentation regarding these functions
// doesn't deserve its name! It isn't documented what the first two
// parameters idtype and id mean, so we must fall back to an educated
// guess - null, argh... :-/
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
// Thus for DKMs there would have to be another implementation.
#ifdef __RTP__
inline int getrlimit(int resource, struct rlimit *rlp){
return getprlimit(0, 0, resource, rlp);
}
inline int setrlimit(int resource, const struct rlimit *rlp){
return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
}
#endif
// vxWorks has ftruncate() only, so we do simulate truncate():
inline int truncate(const char *p, off_t l){
int fd = open(p, O_WRONLY);
if (fd == -1){
errno = EACCES;
return -1;
}
if (ftruncate(fd, l) == -1){
close(fd);
errno = EACCES;
return -1;
}
return close(fd);
}
// Fake symlink handling by dummy functions:
inline int symlink(const char*, const char*){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
inline ssize_t readlink(const char*, char*, size_t){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
// vxWorks claims to implement gettimeofday in sys/time.h
// but nevertheless does not provide it! See
// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
// We implement a surrogate version here via clock_gettime:
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
tv->tv_sec = ts.tv_sec;
tv->tv_usec = ts.tv_nsec / 1000;
return 0;
}
// vxWorks does provide neither struct tms nor function times()!
// We implement an empty dummy-function, simply setting the user
// and system time to the half of thew actual system ticks-value
// and the child user and system time to 0.
// Rather ugly but at least it suppresses compiler errors...
// Unfortunately, this of course *does* have an severe impact on
// dependant libraries, actually this is chrono only! Here it will
// not be possible to correctly use user and system times! But
// as vxWorks is lacking the ability to calculate user and system
// process times there seems to be no other possible solution.
struct tms{
clock_t tms_utime; // User CPU time
clock_t tms_stime; // System CPU time
clock_t tms_cutime; // User CPU time of terminated child processes
clock_t tms_cstime; // System CPU time of terminated child processes
};
inline clock_t times(struct tms *t){
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
t->tms_utime = ticks/2U;
t->tms_stime = ticks/2U;
t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
t->tms_cstime = 0; // -> Set the wait times for childs to 0
return ticks;
}
} // extern "C"
// Put the selfmade functions into the std-namespace, just in case
namespace std {
# ifdef __RTP__
using ::getrlimit;
using ::setrlimit;
# endif
using ::truncate;
using ::symlink;
using ::readlink;
using ::times;
using ::gettimeofday;
}
// Some more macro-magic:
// vxWorks-around: Some functions are not present or broken in vxWorks
// but may be patched to life via helper macros...
// Include signal.h which might contain a typo to be corrected here
#include <signal.h>
#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
#ifndef S_ISSOCK
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
#endif
#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks!
#ifndef FPE_FLTINV
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
#endif
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
#endif
//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks!
// #include boilerplate code:
#include <boost/config/posix_features.hpp>
// vxWorks lies about XSI conformance, there is no nl_types.h:
#undef BOOST_HAS_NL_TYPES_H

View File

@@ -33,14 +33,18 @@
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
# define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS
# ifndef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
# endif
# define BOOST_HAS_DIRENT_H
# define BOOST_HAS_UNISTD_H
#endif
#if defined(__MINGW32__) && (__GNUC__ >= 4)
# define BOOST_HAS_EXPM1
# define BOOST_HAS_LOG1P
// Mingw has these functions but there are persistent problems
// with calls to these crashing, so disable for now:
//# define BOOST_HAS_EXPM1
//# define BOOST_HAS_LOG1P
# define BOOST_HAS_GETTIMEOFDAY
#endif
//
@@ -53,14 +57,29 @@
// all translation units (needed for shared_ptr etc).
//
#ifdef _WIN32_WCE
#ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_WINTHREADS
#endif
//
// WinCE configuration:
//
#if defined(_WIN32_WCE) || defined(UNDER_CE)
# define BOOST_NO_ANSI_APIS
// Windows CE does not have a conforming signature for swprintf
# define BOOST_NO_SWPRINTF
#else
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
# define BOOST_HAS_THREADEX
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
#ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_WINTHREADS
//
// Windows Runtime
//
#if defined(WINAPI_FAMILY) && \
(WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
# define BOOST_NO_ANSI_APIS
#endif
#ifndef BOOST_DISABLE_WIN32

View File

@@ -13,6 +13,12 @@
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
#if defined __CUDACC__
// NVIDIA CUDA C++ compiler for GPU
# include "boost/config/compiler/nvcc.hpp"
#endif
#if defined(__GCCXML__)
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
@@ -21,10 +27,6 @@
// EDG based Cray compiler:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
#elif defined __CUDACC__
// NVIDIA CUDA C++ compiler for GPU
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
#elif defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
@@ -33,7 +35,12 @@
// PathScale EKOPath compiler (has to come before clang and gcc)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
#elif defined __clang__
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__)
// when using clang and cuda at same time, you want to appear as gcc
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
@@ -41,11 +48,7 @@
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
# elif defined __GNUC__
# elif defined(__GNUC__) && !defined(__ibmxl__)
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
@@ -89,8 +92,12 @@
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
#elif defined(__ibmxl__)
// IBM XL C/C++ for Linux (Little Endian)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp"
#elif defined(__IBMCPP__)
// IBM Visual Age
// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined(__PGI)
@@ -110,3 +117,32 @@
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
#endif
#if 0
//
// This section allows dependency scanners to find all the headers we *might* include:
//
#include "boost/config/compiler/gcc_xml.hpp"
#include "boost/config/compiler/cray.hpp"
#include "boost/config/compiler/comeau.hpp"
#include "boost/config/compiler/pathscale.hpp"
#include "boost/config/compiler/intel.hpp"
#include "boost/config/compiler/clang.hpp"
#include "boost/config/compiler/digitalmars.hpp"
#include "boost/config/compiler/gcc.hpp"
#include "boost/config/compiler/kai.hpp"
#include "boost/config/compiler/sgi_mipspro.hpp"
#include "boost/config/compiler/compaq_cxx.hpp"
#include "boost/config/compiler/greenhills.hpp"
#include "boost/config/compiler/codegear.hpp"
#include "boost/config/compiler/borland.hpp"
#include "boost/config/compiler/metrowerks.hpp"
#include "boost/config/compiler/sunpro_cc.hpp"
#include "boost/config/compiler/hp_acc.hpp"
#include "boost/config/compiler/mpw.hpp"
#include "boost/config/compiler/vacpp.hpp"
#include "boost/config/compiler/pgi.hpp"
#include "boost/config/compiler/visualc.hpp"
#endif

View File

@@ -41,6 +41,10 @@
// win32:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
#elif defined(__HAIKU__)
// Haiku
# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp"
#elif defined(__BEOS__)
// BeOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
@@ -76,6 +80,10 @@
#elif defined(__VMS)
// VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
#elif defined(__CloudABI__)
// Nuxi CloudABI:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
#else
# if defined(unix) \
@@ -101,5 +109,29 @@
#endif
#if 0
//
// This section allows dependency scanners to find all the files we *might* include:
//
# include "boost/config/platform/linux.hpp"
# include "boost/config/platform/bsd.hpp"
# include "boost/config/platform/solaris.hpp"
# include "boost/config/platform/irix.hpp"
# include "boost/config/platform/hpux.hpp"
# include "boost/config/platform/cygwin.hpp"
# include "boost/config/platform/win32.hpp"
# include "boost/config/platform/beos.hpp"
# include "boost/config/platform/macos.hpp"
# include "boost/config/platform/aix.hpp"
# include "boost/config/platform/amigaos.hpp"
# include "boost/config/platform/qnxnto.hpp"
# include "boost/config/platform/vxworks.hpp"
# include "boost/config/platform/symbian.hpp"
# include "boost/config/platform/cray.hpp"
# include "boost/config/platform/vms.hpp"
# include <boost/config/posix_features.hpp>
#endif

View File

@@ -28,13 +28,19 @@
#else
// If our std lib was not some version of STLport, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
// include their C++-related macros in <cstddef> so this additional include makes sure
// we get those definitions)
// (again do not rely on this header being included since users can short-circuit this
// header if they know whose std lib they are using.)
#include <boost/config/no_tr1/utility.hpp>
// If our std lib was not some version of STLport, and has not otherwise
// been detected, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff.
// Some std libs do not include their C++-related macros in <cstddef>
// so this additional include makes sure we get those definitions.
// Note: do not rely on this header being included since users can short-circuit this
// #include if they know whose std lib they are using.
#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
&& !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
&& !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
&& !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
#include <utility>
#endif
#if defined(__LIBCOMO__)
// Comeau STL:
@@ -81,5 +87,19 @@
#endif
#if 0
//
// This section allows dependency scanners to find all the files we *might* include:
//
# include "boost/config/stdlib/stlport.hpp"
# include "boost/config/stdlib/libcomo.hpp"
# include "boost/config/stdlib/roguewave.hpp"
# include "boost/config/stdlib/libcpp.hpp"
# include "boost/config/stdlib/libstdcpp3.hpp"
# include "boost/config/stdlib/sgi.hpp"
# include "boost/config/stdlib/msl.hpp"
# include "boost/config/stdlib/vacpp.hpp"
# include "boost/config/stdlib/modena.hpp"
# include "boost/config/stdlib/dinkumware.hpp"
#endif

View File

@@ -86,42 +86,104 @@
# define BOOST_NO_STD_LOCALE
#endif
// Fix for VC++ 8.0 on up ( I do not have a previous version to test )
// or clang-cl. If exceptions are off you must manually include the
// <exception> header before including the <typeinfo> header. Admittedly
// trying to use Boost libraries or the standard C++ libraries without
// exception support is not suggested but currently clang-cl ( v 3.4 )
// does not support exceptions and must be compiled with exceptions off.
#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER)))
#include <exception>
#endif
#include <typeinfo>
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
# define BOOST_NO_STD_TYPEINFO
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__)
# define BOOST_NO_STD_TYPEINFO
#endif
// C++0x headers implemented in 520 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_SMART_PTR
#endif
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
# define BOOST_NO_0X_HDR_TUPLE
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
&& (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
// C++0x headers implemented in 540 (as shipped by Microsoft)
//
// C++0x headers not yet (fully) implemented:
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
#endif
// C++0x headers implemented in 610 (as shipped by Microsoft)
//
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_THREAD
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_ALLOCATOR
// 540 has std::align but it is not a conforming implementation
# define BOOST_NO_CXX11_STD_ALIGN
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
// Intel's compiler can't handle this header yet:
# define BOOST_NO_CXX11_HDR_ATOMIC
#endif
// 520..610 have std::addressof, but it doesn't support functions
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
# define BOOST_NO_CXX11_ADDRESSOF
#endif
// Bug specific to VC14,
// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
# define BOOST_NO_CXX11_HDR_CODECVT
#endif
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available.
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
# define BOOST_NO_AUTO_PTR
# endif
#endif
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
@@ -134,12 +196,3 @@
#else
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
#endif

View File

@@ -35,26 +35,42 @@
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
//
// Intrinsic type_traits support.
@@ -65,5 +81,3 @@
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)

View File

@@ -20,17 +20,61 @@
#define BOOST_HAS_THREADS
#ifdef _LIBCPP_HAS_NO_VARIADICS
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
// allocator model. The C++11 allocator model requires a conforming
// std::allocator_traits which is only possible with C++11 template
// aliases since members rebind_alloc and rebind_traits require it.
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
# define BOOST_NO_CXX11_ALLOCATOR
#endif
#if __cplusplus < 201103
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#endif
//
// These appear to be unusable/incomplete so far:
//
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_HDR_ATOMIC
// libc++ uses a non-standard messages_base
#define BOOST_NO_STD_MESSAGES
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus <= 201103
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// --- end ---

View File

@@ -33,7 +33,11 @@
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|| defined(_GLIBCXX__PTHREADS)
|| defined(_GLIBCXX__PTHREADS) \
|| defined(_GLIBCXX_HAS_GTHREADS) \
|| defined(_WIN32) \
|| defined(_AIX) \
|| defined(__HAIKU__)
//
// If the std lib has thread support turned on, then turn it on in Boost
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
@@ -88,6 +92,14 @@
# endif
#endif
//
// Decide whether we have C++11 support turned on:
//
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103)
# define BOOST_LIBSTDCXX11
#endif
//
// Decide which version of libstdc++ we have, normally
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
// developers. He also commented:
@@ -99,55 +111,171 @@
//
// Another resource for understanding stdlibc++ features is:
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
//
// However, using the GCC version number fails when the compiler is clang since this
// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473
// for a long discussion on this issue. What we can do though is use clang's __has_include
// to detect the presence of a C++11 header that was introduced with a specific GCC release.
// We still have to be careful though as many such headers were buggy and/or incomplete when
// first introduced, so we only check for headers that were fully featured from day 1, and then
// use that to infer the underlying GCC version:
//
#ifdef __clang__
#if __has_include(<experimental/any>)
# define BOOST_LIBSTDCXX_VERSION 50100
#elif __has_include(<shared_mutex>)
# define BOOST_LIBSTDCXX_VERSION 40900
#elif __has_include(<ext/cmath>)
# define BOOST_LIBSTDCXX_VERSION 40800
#elif __has_include(<scoped_allocator>)
# define BOOST_LIBSTDCXX_VERSION 40700
#elif __has_include(<typeindex>)
# define BOOST_LIBSTDCXX_VERSION 40600
#elif __has_include(<future>)
# define BOOST_LIBSTDCXX_VERSION 40500
#elif __has_include(<ratio>)
# define BOOST_LIBSTDCXX_VERSION 40400
#elif __has_include(<array>)
# define BOOST_LIBSTDCXX_VERSION 40300
#endif
//
// GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively.
// However, we have no test for these as the headers were present but broken
// in early GCC versions.
//
#endif
#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L)
//
// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't
// set __GNUC__
//
#define BOOST_LIBSTDCXX_VERSION 40800
#endif
#if !defined(BOOST_LIBSTDCXX_VERSION)
# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
// C++0x headers in GCC 4.3.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
#endif
// C++0x headers in GCC 4.4.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_SMART_PTR
#else
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_0X_HDR_MUTEX))
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_MUTEX
#endif
// C++0x features in GCC 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_RANDOM
#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_RANDOM
#endif
// C++0x features in GCC 4.5.0 and later
// C++0x features in GCC 4.6.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_TYPEINDEX
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_ADDRESSOF
#endif
// C++0x headers not yet (fully!) implemented
// C++0x features in GCC 4.7.0 and later
//
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_CODECVT
#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11)
// Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock"
// so 4.7.0 is the first truely conforming one.
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_ALLOCATOR
#endif
// C++0x features in GCC 4.8.0 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11)
// Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types:
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_THREAD
#endif
// C++0x features in GCC 4.9.0 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
// Although <regex> is present and compilable against, the actual implementation is not functional
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
# define BOOST_NO_CXX11_HDR_REGEX
#endif
#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7)))
// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang:
# define BOOST_NO_CXX11_HDR_ATOMIC
#endif
//
// C++0x features in GCC 5.1 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_STD_ALIGN
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus <= 201103
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
//
// Headers not present on Solaris with the Oracle compiler:
#if defined(__SUNPRO_CC)
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_ATOMIC
// shared_ptr is present, but is not convertible to bool
// which causes all kinds of problems especially in Boost.Thread
// but probably elsewhere as well.
#define BOOST_NO_CXX11_SMART_PTR
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
// Headers not always available:
# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# endif
# ifndef BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_MUTEX
# endif
# ifndef BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_THREAD
# endif
# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
# endif
#endif
#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX)
// Timed mutexes are not always available:
# define BOOST_NO_CXX11_HDR_MUTEX
#endif
// --- end ---

View File

@@ -24,26 +24,42 @@
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#define BOOST_STDLIB "Modena C++ standard library"

View File

@@ -48,34 +48,41 @@
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)

View File

@@ -155,29 +155,44 @@
#endif
#if _RWSTD_VER < 0x05000000
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_ARRAY
#endif
// type_traits header is incomplete:
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
//
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif

View File

@@ -118,28 +118,41 @@
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "SGI standard library"
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#define BOOST_STDLIB "SGI standard library"

View File

@@ -71,10 +71,6 @@
# endif
#endif
#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520))
# define BOOST_NO_STD_UNORDERED
#endif
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
# define BOOST_HAS_TR1_UNORDERED_SET
# define BOOST_HAS_TR1_UNORDERED_MAP
@@ -212,33 +208,41 @@ namespace boost { using std::min; using std::max; }
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)

View File

@@ -24,28 +24,41 @@
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#define BOOST_STDLIB "Visual Age default standard library"

View File

@@ -1,9 +1,10 @@
// Boost config.hpp configuration header file ------------------------------//
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
// Copyright (c) 2001-2003 John Maddock
// Copyright (c) 2001 Darin Adler
// Copyright (c) 2001 Peter Dimov
// Copyright (c) 2002 Bill Kempf
// Copyright (c) 2002 Bill Kempf
// Copyright (c) 2002 Jens Maurer
// Copyright (c) 2002-2003 David Abrahams
// Copyright (c) 2003 Gennaro Prota
@@ -103,13 +104,6 @@
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
#endif
//
// Normalize BOOST_NO_STATIC_ASSERT and (depricated) BOOST_HAS_STATIC_ASSERT:
//
#if !defined(BOOST_NO_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
# define BOOST_HAS_STATIC_ASSERT
#endif
//
// if there is no __int64 then there is no specialisation
// for numeric_limits<__int64> either:
@@ -152,7 +146,7 @@
# endif
//
// Without partial specialization, partial
// Without partial specialization, partial
// specialization with default args won't work either:
//
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
@@ -334,38 +328,6 @@
# define BOOST_HASH_MAP_HEADER <hash_map>
#endif
//
// Set BOOST_NO_INITIALIZER_LISTS if there is no library support.
//
#if defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
# define BOOST_NO_INITIALIZER_LISTS
#endif
#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
#endif
//
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined
//
#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
#define BOOST_HAS_RVALUE_REFS
#endif
//
// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined
//
#if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
#define BOOST_HAS_VARIADIC_TMPL
#endif
//
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
//
#if !defined(BOOST_NO_DECLTYPE_N3276) && defined(BOOST_NO_DECLTYPE)
#define BOOST_NO_DECLTYPE_N3276
#endif
// BOOST_HAS_ABI_HEADERS
// This macro gets set if we have headers that fix the ABI,
// and prevent ODR violations when linking to external libraries:
@@ -482,10 +444,12 @@ namespace std {
// 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)
#ifndef BOOST_UNREACHABLE_RETURN
# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_UNREACHABLE_RETURN(x) return x;
# else
# define BOOST_UNREACHABLE_RETURN(x)
# endif
#endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
@@ -527,71 +491,32 @@ namespace boost{
# endif
}
#endif
// same again for __int128:
#if defined(BOOST_HAS_INT128) && defined(__cplusplus)
namespace boost{
# ifdef __GNUC__
__extension__ typedef __int128 int128_type;
__extension__ typedef unsigned __int128 uint128_type;
# else
typedef __int128 int128_type;
typedef unsigned __int128 uint128_type;
# endif
}
#endif
// same again for __float128:
#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
namespace boost {
# ifdef __GNUC__
__extension__ typedef __float128 float128_type;
# else
typedef __float128 float128_type;
# endif
}
#endif
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
//
// Some compilers have problems with function templates whose template
// parameters don't appear in the function parameter list (basically
// they just link one instantiation of the template in the final
// executable). These macros provide a uniform way to cope with the
// problem with no effects on the calling syntax.
// Example:
//
// #include <iostream>
// #include <ostream>
// #include <typeinfo>
//
// template <int n>
// void f() { std::cout << n << ' '; }
//
// template <typename T>
// void g() { std::cout << typeid(T).name() << ' '; }
//
// int main() {
// f<1>();
// f<2>();
//
// g<int>();
// g<double>();
// }
//
// With VC++ 6.0 the output is:
//
// 2 2 double double
//
// To fix it, write
//
// template <int n>
// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
//
// template <typename T>
// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
//
#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
# include "boost/type.hpp"
# include "boost/non_type.hpp"
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
, BOOST_EXPLICIT_TEMPLATE_TYPE(t)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
, BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
#else
// no workaround needed: expand to nothing
// These macros are obsolete. Port away and remove.
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
@@ -603,9 +528,6 @@ namespace boost{
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
// the global definition into std namespace:
#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
@@ -658,21 +580,428 @@ namespace std{ using ::type_info; }
// Set some default values GPU support
//
# ifndef BOOST_GPU_ENABLED
# define BOOST_GPU_ENABLED
# define BOOST_GPU_ENABLED
# endif
// BOOST_FORCEINLINE ---------------------------------------------//
// Macro to use in place of 'inline' to force a function to be inline
#if !defined(BOOST_FORCEINLINE)
# if defined(_MSC_VER)
# define BOOST_FORCEINLINE __forceinline
# elif defined(__GNUC__) && __GNUC__ > 3
// Clang also defines __GNUC__ (as 4)
# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
# else
# define BOOST_FORCEINLINE inline
# endif
#endif
// BOOST_NOINLINE ---------------------------------------------//
// Macro to use in place of 'inline' to prevent a function to be inlined
#if !defined(BOOST_NOINLINE)
# if defined(_MSC_VER)
# define BOOST_NOINLINE __declspec(noinline)
# elif defined(__GNUC__) && __GNUC__ > 3
// Clang also defines __GNUC__ (as 4)
# if defined(__CUDACC__)
// nvcc doesn't always parse __noinline__,
// see: https://svn.boost.org/trac/boost/ticket/9392
# define BOOST_NOINLINE __attribute__ ((noinline))
# else
# define BOOST_NOINLINE __attribute__ ((__noinline__))
# endif
# else
# define BOOST_NOINLINE
# endif
#endif
// BOOST_NORETURN ---------------------------------------------//
// Macro to use before a function declaration/definition to designate
// the function as not returning normally (i.e. with a return statement
// or by leaving the function scope, if the function return type is void).
#if !defined(BOOST_NORETURN)
# if defined(_MSC_VER)
# define BOOST_NORETURN __declspec(noreturn)
# elif defined(__GNUC__)
# define BOOST_NORETURN __attribute__ ((__noreturn__))
# else
# define BOOST_NO_NORETURN
# define BOOST_NORETURN
# endif
#endif
// Branch prediction hints
// These macros are intended to wrap conditional expressions that yield true or false
//
// if (BOOST_LIKELY(var == 10))
// {
// // the most probable code here
// }
//
#if !defined(BOOST_LIKELY)
# define BOOST_LIKELY(x) x
#endif
#if !defined(BOOST_UNLIKELY)
# define BOOST_UNLIKELY(x) x
#endif
// Type and data alignment specification
//
#if !defined(BOOST_NO_CXX11_ALIGNAS)
# define BOOST_ALIGNMENT(x) alignas(x)
#elif defined(_MSC_VER)
# define BOOST_ALIGNMENT(x) __declspec(align(x))
#elif defined(__GNUC__)
# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
#else
# define BOOST_NO_ALIGNMENT
# define BOOST_ALIGNMENT(x)
#endif
// Lack of non-public defaulted functions is implied by the lack of any defaulted functions
#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// Defaulted and deleted function declaration helpers
// These macros are intended to be inside a class definition.
// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its
// body, which will be used if the compiler doesn't support defaulted functions.
// BOOST_DELETED_FUNCTION only accepts the function declaration. It
// will expand to a private function declaration, if the compiler doesn't support
// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION
// in the end of the class definition.
//
// class my_class
// {
// public:
// // Default-constructible
// BOOST_DEFAULTED_FUNCTION(my_class(), {})
// // Copying prohibited
// BOOST_DELETED_FUNCTION(my_class(my_class const&))
// BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&))
// };
//
#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS))
# define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default;
#else
# define BOOST_DEFAULTED_FUNCTION(fun, body) fun body
#endif
#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
# define BOOST_DELETED_FUNCTION(fun) fun = delete;
#else
# define BOOST_DELETED_FUNCTION(fun) private: fun;
#endif
//
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
//
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
#endif
// -------------------- Deprecated macros for 1.50 ---------------------------
// These will go away in a future release
// Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
// instead of BOOST_NO_STD_UNORDERED
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
# ifndef BOOST_NO_CXX11_STD_UNORDERED
# define BOOST_NO_CXX11_STD_UNORDERED
# endif
#endif
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
# define BOOST_NO_INITIALIZER_LISTS
#endif
// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
# define BOOST_NO_0X_HDR_ARRAY
#endif
// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
# define BOOST_NO_0X_HDR_CHRONO
#endif
// Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
# define BOOST_NO_0X_HDR_CODECVT
#endif
// Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
#endif
// Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
# define BOOST_NO_0X_HDR_FORWARD_LIST
#endif
// Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
# define BOOST_NO_0X_HDR_FUTURE
#endif
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# endif
# ifndef BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_INITIALIZER_LISTS
# endif
#endif
// Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
# define BOOST_NO_0X_HDR_MUTEX
#endif
// Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
# define BOOST_NO_0X_HDR_RANDOM
#endif
// Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
# define BOOST_NO_0X_HDR_RATIO
#endif
// Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
# define BOOST_NO_0X_HDR_REGEX
#endif
// Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
#endif
// Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
# define BOOST_NO_0X_HDR_THREAD
#endif
// Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
# define BOOST_NO_0X_HDR_TUPLE
#endif
// Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
# define BOOST_NO_0X_HDR_TYPE_TRAITS
#endif
// Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
# define BOOST_NO_0X_HDR_TYPEINDEX
#endif
// Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
# define BOOST_NO_0X_HDR_UNORDERED_MAP
#endif
// Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
# define BOOST_NO_0X_HDR_UNORDERED_SET
#endif
// ------------------ End of deprecated macros for 1.50 ---------------------------
// -------------------- Deprecated macros for 1.51 ---------------------------
// These will go away in a future release
// Use BOOST_NO_CXX11_AUTO_DECLARATIONS instead of BOOST_NO_AUTO_DECLARATIONS
#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
# define BOOST_NO_AUTO_DECLARATIONS
#endif
// Use BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of BOOST_NO_AUTO_MULTIDECLARATIONS
#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
# define BOOST_NO_AUTO_MULTIDECLARATIONS
#endif
// Use BOOST_NO_CXX11_CHAR16_T instead of BOOST_NO_CHAR16_T
#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
# define BOOST_NO_CHAR16_T
#endif
// Use BOOST_NO_CXX11_CHAR32_T instead of BOOST_NO_CHAR32_T
#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
# define BOOST_NO_CHAR32_T
#endif
// Use BOOST_NO_CXX11_TEMPLATE_ALIASES instead of BOOST_NO_TEMPLATE_ALIASES
#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
# define BOOST_NO_TEMPLATE_ALIASES
#endif
// Use BOOST_NO_CXX11_CONSTEXPR instead of BOOST_NO_CONSTEXPR
#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
# define BOOST_NO_CONSTEXPR
#endif
// Use BOOST_NO_CXX11_DECLTYPE_N3276 instead of BOOST_NO_DECLTYPE_N3276
#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
# define BOOST_NO_DECLTYPE_N3276
#endif
// Use BOOST_NO_CXX11_DECLTYPE instead of BOOST_NO_DECLTYPE
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
# define BOOST_NO_DECLTYPE
#endif
// Use BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS
#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
# define BOOST_NO_DEFAULTED_FUNCTIONS
#endif
// Use BOOST_NO_CXX11_DELETED_FUNCTIONS instead of BOOST_NO_DELETED_FUNCTIONS
#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
# define BOOST_NO_DELETED_FUNCTIONS
#endif
// Use BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#endif
// Use BOOST_NO_CXX11_EXTERN_TEMPLATE instead of BOOST_NO_EXTERN_TEMPLATE
#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
# define BOOST_NO_EXTERN_TEMPLATE
#endif
// Use BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
// Use BOOST_NO_CXX11_LAMBDAS instead of BOOST_NO_LAMBDAS
#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
# define BOOST_NO_LAMBDAS
#endif
// Use BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
// Use BOOST_NO_CXX11_NOEXCEPT instead of BOOST_NO_NOEXCEPT
#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
# define BOOST_NO_NOEXCEPT
#endif
// Use BOOST_NO_CXX11_NULLPTR instead of BOOST_NO_NULLPTR
#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
# define BOOST_NO_NULLPTR
#endif
// Use BOOST_NO_CXX11_RAW_LITERALS instead of BOOST_NO_RAW_LITERALS
#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
# define BOOST_NO_RAW_LITERALS
#endif
// Use BOOST_NO_CXX11_RVALUE_REFERENCES instead of BOOST_NO_RVALUE_REFERENCES
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
# define BOOST_NO_RVALUE_REFERENCES
#endif
// Use BOOST_NO_CXX11_SCOPED_ENUMS instead of BOOST_NO_SCOPED_ENUMS
#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
# define BOOST_NO_SCOPED_ENUMS
#endif
// Use BOOST_NO_CXX11_STATIC_ASSERT instead of BOOST_NO_STATIC_ASSERT
#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
# define BOOST_NO_STATIC_ASSERT
#endif
// Use BOOST_NO_CXX11_STD_UNORDERED instead of BOOST_NO_STD_UNORDERED
#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
# define BOOST_NO_STD_UNORDERED
#endif
// Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS
#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
# define BOOST_NO_UNICODE_LITERALS
#endif
// Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#endif
// Use BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of BOOST_NO_VARIADIC_TEMPLATES
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
# define BOOST_NO_VARIADIC_TEMPLATES
#endif
// Use BOOST_NO_CXX11_VARIADIC_MACROS instead of BOOST_NO_VARIADIC_MACROS
#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
# define BOOST_NO_VARIADIC_MACROS
#endif
// Use BOOST_NO_CXX11_NUMERIC_LIMITS instead of BOOST_NO_NUMERIC_LIMITS_LOWEST
#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#endif
// ------------------ End of deprecated macros for 1.51 ---------------------------
//
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
// These aid the transition to C++11 while still supporting C++03 compilers
//
#ifdef BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NOEXCEPT
# define BOOST_NOEXCEPT_OR_NOTHROW throw()
# define BOOST_NOEXCEPT_IF(Predicate)
# define BOOST_NOEXCEPT_EXPR(Expression) false
#else
# define BOOST_NOEXCEPT noexcept
# define BOOST_NOEXCEPT_OR_NOTHROW noexcept
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
#endif
//
// Helper macro BOOST_FALLTHROUGH
// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended
// fall-through between case labels in a switch statement. We use a definition
// that requires a semicolon after it to avoid at least one type of misuse even
// on unsupported compilers.
//
#ifndef BOOST_FALLTHROUGH
# define BOOST_FALLTHROUGH ((void)0)
#endif
//
// constexpr workarounds
//
#if defined(BOOST_NO_CONSTEXPR)
//
#if defined(BOOST_NO_CXX11_CONSTEXPR)
#define BOOST_CONSTEXPR
#define BOOST_CONSTEXPR_OR_CONST const
#else
#define BOOST_CONSTEXPR constexpr
#define BOOST_CONSTEXPR_OR_CONST constexpr
#endif
#if defined(BOOST_NO_CXX14_CONSTEXPR)
#define BOOST_CXX14_CONSTEXPR
#else
#define BOOST_CXX14_CONSTEXPR constexpr
#endif
//
// Unused variable/typedef workarounds:
//
#ifndef BOOST_ATTRIBUTE_UNUSED
# define BOOST_ATTRIBUTE_UNUSED
#endif
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
//
// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
//
#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
# define BOOST_HAS_STATIC_ASSERT
#endif
//
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
//
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
#define BOOST_HAS_RVALUE_REFS
#endif
//
// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
//
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
#define BOOST_HAS_VARIADIC_TMPL
#endif
//
// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when
// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set:
//
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
//
// Finish off with checks for macros that are depricated / no longer supported,
// if any of these are set then it's very likely that much of Boost will no
// longer work. So stop with a #error for now, but give the user a chance
// to continue at their own risk if they really want to:
//
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_CONFIG_ALLOW_DEPRECATED)
# error "You are using a compiler which lacks features which are now a minimum requirement in order to use Boost, define BOOST_CONFIG_ALLOW_DEPRECATED if you want to continue at your own risk!!!"
#endif
#endif

View File

@@ -85,8 +85,7 @@
// (this macro is used to turn on __declspec(dllimport) modifiers, so that
// the compiler knows which symbols to look for in a dll rather than in a
// static library). Note that there may be some libraries that can only
// be statically linked (Boost.Test for example) and others which may only
// be dynamically linked (Boost.Threads for example), in these cases this
// be linked in one way (statically or dynamically), in these cases this
// macro has no effect.
// #define BOOST_ALL_DYN_LINK
@@ -97,9 +96,9 @@
// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
// modifiers, so that the compiler knows which symbols to look for in a dll
// rather than in a static library).
// Note that there may be some libraries that can only be statically linked
// (Boost.Test for example) and others which may only be dynamically linked
// (Boost.Threads for example), in these cases this macro is unsupported.
// Note that there may be some libraries that can only
// be linked in one way (statically or dynamically),
// in these cases this macro is unsupported.
// #define BOOST_WHATEVER_DYN_LINK
// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
@@ -120,5 +119,15 @@
// that feature off.
// #define BOOST_WHATEVER_NO_LIB
// BOOST_LIB_BUILDID: Set to the same value as the value passed to Boost.Build's
// --buildid command line option. For example if you built using:
//
// bjam address-model=64 --buildid=amd64
//
// then compile your code with:
//
// -DBOOST_LIB_BUILDID = amd64
//
// to ensure the correct libraries are selected at link time.
// #define BOOST_LIB_BUILDID amd64

546
include/boost/cstdint.hpp Normal file
View File

@@ -0,0 +1,546 @@
// boost cstdint.hpp header file ------------------------------------------//
// (C) Copyright Beman Dawes 1999.
// (C) Copyright Jens Mauer 2001
// (C) Copyright John Maddock 2001
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/integer for documentation.
// Revision History
// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer)
// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
// 23 Sep 00 Added INTXX_C macro support (John Maddock).
// 22 Sep 00 Better 64-bit support (John Maddock)
// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost
// 8 Aug 99 Initial version (Beman Dawes)
#ifndef BOOST_CSTDINT_HPP
#define BOOST_CSTDINT_HPP
//
// Since we always define the INT#_C macros as per C++0x,
// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
// thing if possible, and so that the user knows that the macros
// are actually defined as per C99.
//
#ifndef __STDC_CONSTANT_MACROS
# define __STDC_CONSTANT_MACROS
#endif
#include <boost/config.hpp>
//
// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
// depending upon what headers happen to have been included first...
// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
//
#if defined(BOOST_HAS_STDINT_H) \
&& (!defined(__GLIBC__) \
|| defined(__GLIBC_HAVE_LONG_LONG) \
|| (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
// The following #include is an implementation artifact; not part of interface.
# ifdef __hpux
// HP-UX has a vaguely nice <stdint.h> in a non-standard location
# include <inttypes.h>
# ifdef __STDC_32_MODE__
// this is triggered with GCC, because it defines __cplusplus < 199707L
# define BOOST_NO_INT64_T
# endif
# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
# include <inttypes.h>
# else
# include <stdint.h>
// There is a bug in Cygwin two _C macros
# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
# undef INTMAX_C
# undef UINTMAX_C
# define INTMAX_C(c) c##LL
# define UINTMAX_C(c) c##ULL
# endif
# endif
#if defined(__QNX__) && defined(__EXT_QNX)
// QNX (Dinkumware stdlib) defines these as non-standard names.
// Reflect to the standard names.
typedef ::intleast8_t int_least8_t;
typedef ::intfast8_t int_fast8_t;
typedef ::uintleast8_t uint_least8_t;
typedef ::uintfast8_t uint_fast8_t;
typedef ::intleast16_t int_least16_t;
typedef ::intfast16_t int_fast16_t;
typedef ::uintleast16_t uint_least16_t;
typedef ::uintfast16_t uint_fast16_t;
typedef ::intleast32_t int_least32_t;
typedef ::intfast32_t int_fast32_t;
typedef ::uintleast32_t uint_least32_t;
typedef ::uintfast32_t uint_fast32_t;
# ifndef BOOST_NO_INT64_T
typedef ::intleast64_t int_least64_t;
typedef ::intfast64_t int_fast64_t;
typedef ::uintleast64_t uint_least64_t;
typedef ::uintfast64_t uint_fast64_t;
# endif
#endif
namespace boost
{
using ::int8_t;
using ::int_least8_t;
using ::int_fast8_t;
using ::uint8_t;
using ::uint_least8_t;
using ::uint_fast8_t;
using ::int16_t;
using ::int_least16_t;
using ::int_fast16_t;
using ::uint16_t;
using ::uint_least16_t;
using ::uint_fast16_t;
using ::int32_t;
using ::int_least32_t;
using ::int_fast32_t;
using ::uint32_t;
using ::uint_least32_t;
using ::uint_fast32_t;
# ifndef BOOST_NO_INT64_T
using ::int64_t;
using ::int_least64_t;
using ::int_fast64_t;
using ::uint64_t;
using ::uint_least64_t;
using ::uint_fast64_t;
# endif
using ::intmax_t;
using ::uintmax_t;
} // namespace boost
#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__)
// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
# include <inttypes.h>
namespace boost {
using ::int8_t;
typedef int8_t int_least8_t;
typedef int8_t int_fast8_t;
using ::uint8_t;
typedef uint8_t uint_least8_t;
typedef uint8_t uint_fast8_t;
using ::int16_t;
typedef int16_t int_least16_t;
typedef int16_t int_fast16_t;
using ::uint16_t;
typedef uint16_t uint_least16_t;
typedef uint16_t uint_fast16_t;
using ::int32_t;
typedef int32_t int_least32_t;
typedef int32_t int_fast32_t;
using ::uint32_t;
typedef uint32_t uint_least32_t;
typedef uint32_t uint_fast32_t;
# ifndef BOOST_NO_INT64_T
using ::int64_t;
typedef int64_t int_least64_t;
typedef int64_t int_fast64_t;
using ::uint64_t;
typedef uint64_t uint_least64_t;
typedef uint64_t uint_fast64_t;
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# else
typedef int32_t intmax_t;
typedef uint32_t uintmax_t;
# endif
} // namespace boost
#else // BOOST_HAS_STDINT_H
# include <boost/limits.hpp> // implementation artifact; not part of interface
# include <limits.h> // needed for limits macros
namespace boost
{
// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
// platforms. For other systems, they will have to be hand tailored.
//
// Because the fast types are assumed to be the same as the undecorated types,
// it may be possible to hand tailor a more efficient implementation. Such
// an optimization may be illusionary; on the Intel x86-family 386 on, for
// example, byte arithmetic and load/stores are as fast as "int" sized ones.
// 8-bit types ------------------------------------------------------------//
# if UCHAR_MAX == 0xff
typedef signed char int8_t;
typedef signed char int_least8_t;
typedef signed char int_fast8_t;
typedef unsigned char uint8_t;
typedef unsigned char uint_least8_t;
typedef unsigned char uint_fast8_t;
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
// 16-bit types -----------------------------------------------------------//
# if USHRT_MAX == 0xffff
# if defined(__crayx1)
// The Cray X1 has a 16-bit short, however it is not recommend
// for use in performance critical code.
typedef short int16_t;
typedef short int_least16_t;
typedef int int_fast16_t;
typedef unsigned short uint16_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_fast16_t;
# else
typedef short int16_t;
typedef short int_least16_t;
typedef short int_fast16_t;
typedef unsigned short uint16_t;
typedef unsigned short uint_least16_t;
typedef unsigned short uint_fast16_t;
# endif
# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__)
// On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified
// MTA / XMT does support the following non-standard integer types
typedef __short16 int16_t;
typedef __short16 int_least16_t;
typedef __short16 int_fast16_t;
typedef unsigned __short16 uint16_t;
typedef unsigned __short16 uint_least16_t;
typedef unsigned __short16 uint_fast16_t;
# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
// no 16-bit types on Cray:
typedef short int_least16_t;
typedef short int_fast16_t;
typedef unsigned short uint_least16_t;
typedef unsigned short uint_fast16_t;
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
// 32-bit types -----------------------------------------------------------//
# if UINT_MAX == 0xffffffff
typedef int int32_t;
typedef int int_least32_t;
typedef int int_fast32_t;
typedef unsigned int uint32_t;
typedef unsigned int uint_least32_t;
typedef unsigned int uint_fast32_t;
# elif (USHRT_MAX == 0xffffffff)
typedef short int32_t;
typedef short int_least32_t;
typedef short int_fast32_t;
typedef unsigned short uint32_t;
typedef unsigned short uint_least32_t;
typedef unsigned short uint_fast32_t;
# elif ULONG_MAX == 0xffffffff
typedef long int32_t;
typedef long int_least32_t;
typedef long int_fast32_t;
typedef unsigned long uint32_t;
typedef unsigned long uint_least32_t;
typedef unsigned long uint_fast32_t;
# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__)
// Integers are 64 bits on the MTA / XMT
typedef __int32 int32_t;
typedef __int32 int_least32_t;
typedef __int32 int_fast32_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int32 uint_least32_t;
typedef unsigned __int32 uint_fast32_t;
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
# if defined(BOOST_HAS_LONG_LONG) && \
!defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
(!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
# if defined(__hpux)
// HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
// 2**64 - 1
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
typedef ::boost::long_long_type intmax_t;
typedef ::boost::ulong_long_type uintmax_t;
typedef ::boost::long_long_type int64_t;
typedef ::boost::long_long_type int_least64_t;
typedef ::boost::long_long_type int_fast64_t;
typedef ::boost::ulong_long_type uint64_t;
typedef ::boost::ulong_long_type uint_least64_t;
typedef ::boost::ulong_long_type uint_fast64_t;
# elif ULONG_MAX != 0xffffffff
# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
typedef long intmax_t;
typedef unsigned long uintmax_t;
typedef long int64_t;
typedef long int_least64_t;
typedef long int_fast64_t;
typedef unsigned long uint64_t;
typedef unsigned long uint_least64_t;
typedef unsigned long uint_fast64_t;
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
__extension__ typedef long long intmax_t;
__extension__ typedef unsigned long long uintmax_t;
__extension__ typedef long long int64_t;
__extension__ typedef long long int_least64_t;
__extension__ typedef long long int_fast64_t;
__extension__ typedef unsigned long long uint64_t;
__extension__ typedef unsigned long long uint_least64_t;
__extension__ typedef unsigned long long uint_fast64_t;
# elif defined(BOOST_HAS_MS_INT64)
//
// we have Borland/Intel/Microsoft __int64:
//
typedef __int64 intmax_t;
typedef unsigned __int64 uintmax_t;
typedef __int64 int64_t;
typedef __int64 int_least64_t;
typedef __int64 int_fast64_t;
typedef unsigned __int64 uint64_t;
typedef unsigned __int64 uint_least64_t;
typedef unsigned __int64 uint_fast64_t;
# else // assume no 64-bit integers
# define BOOST_NO_INT64_T
typedef int32_t intmax_t;
typedef uint32_t uintmax_t;
# endif
} // namespace boost
#endif // BOOST_HAS_STDINT_H
// intptr_t/uintptr_t are defined separately because they are optional and not universally available
#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
#include <stddef.h>
#endif
// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
#if !defined(__PGIC__)
#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
|| (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
|| defined(__CYGWIN__) \
|| defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
|| defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun)
namespace boost {
using ::intptr_t;
using ::uintptr_t;
}
#define BOOST_HAS_INTPTR_T
// Clang pretends to be GCC, so it'll match this condition
#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
namespace boost {
typedef __INTPTR_TYPE__ intptr_t;
typedef __UINTPTR_TYPE__ uintptr_t;
}
#define BOOST_HAS_INTPTR_T
#endif
#endif // !defined(__PGIC__)
#endif // BOOST_CSTDINT_HPP
/****************************************************
Macro definition section:
Added 23rd September 2000 (John Maddock).
Modified 11th September 2001 to be excluded when
BOOST_HAS_STDINT_H is defined (John Maddock).
Modified 11th Dec 2009 to always define the
INT#_C macros if they're not already defined (John Maddock).
******************************************************/
#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
(!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
//
// For the following code we get several warnings along the lines of:
//
// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
//
// So we declare this a system header to suppress these warnings.
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
#pragma GCC system_header
#endif
#include <limits.h>
# define BOOST__STDC_CONSTANT_MACROS_DEFINED
# if defined(BOOST_HAS_MS_INT64)
//
// Borland/Intel/Microsoft compilers have width specific suffixes:
//
#ifndef INT8_C
# define INT8_C(value) value##i8
#endif
#ifndef INT16_C
# define INT16_C(value) value##i16
#endif
#ifndef INT32_C
# define INT32_C(value) value##i32
#endif
#ifndef INT64_C
# define INT64_C(value) value##i64
#endif
# ifdef __BORLANDC__
// Borland bug: appending ui8 makes the type a signed char
# define UINT8_C(value) static_cast<unsigned char>(value##u)
# else
# define UINT8_C(value) value##ui8
# endif
#ifndef UINT16_C
# define UINT16_C(value) value##ui16
#endif
#ifndef UINT32_C
# define UINT32_C(value) value##ui32
#endif
#ifndef UINT64_C
# define UINT64_C(value) value##ui64
#endif
#ifndef INTMAX_C
# define INTMAX_C(value) value##i64
# define UINTMAX_C(value) value##ui64
#endif
# else
// do it the old fashioned way:
// 8-bit types ------------------------------------------------------------//
# if (UCHAR_MAX == 0xff) && !defined(INT8_C)
# define INT8_C(value) static_cast<boost::int8_t>(value)
# define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
# endif
// 16-bit types -----------------------------------------------------------//
# if (USHRT_MAX == 0xffff) && !defined(INT16_C)
# define INT16_C(value) static_cast<boost::int16_t>(value)
# define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
# endif
// 32-bit types -----------------------------------------------------------//
#ifndef INT32_C
# if (UINT_MAX == 0xffffffff)
# define INT32_C(value) value
# define UINT32_C(value) value##u
# elif ULONG_MAX == 0xffffffff
# define INT32_C(value) value##L
# define UINT32_C(value) value##uL
# endif
#endif
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
#ifndef INT64_C
# if defined(BOOST_HAS_LONG_LONG) && \
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX))
# if defined(__hpux)
// HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
# define INT64_C(value) value##LL
# define UINT64_C(value) value##uLL
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
(defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
(defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \
(defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL)
# define INT64_C(value) value##LL
# define UINT64_C(value) value##uLL
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
# elif ULONG_MAX != 0xffffffff
# if ULONG_MAX == 18446744073709551615U // 2**64 - 1
# define INT64_C(value) value##L
# define UINT64_C(value) value##uL
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
# elif defined(BOOST_HAS_LONG_LONG)
// Usual macros not defined, work things out for ourselves:
# if(~0uLL == 18446744073709551615ULL)
# define INT64_C(value) value##LL
# define UINT64_C(value) value##uLL
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
# ifdef BOOST_NO_INT64_T
# define INTMAX_C(value) INT32_C(value)
# define UINTMAX_C(value) UINT32_C(value)
# else
# define INTMAX_C(value) INT64_C(value)
# define UINTMAX_C(value) UINT64_C(value)
# endif
#endif
# endif // Borland/Microsoft specific width suffixes
#endif // INT#_C macros.

View File

@@ -0,0 +1,70 @@
// boost cxx11_char_types.hpp --------------------------------------------------------//
// Copyright Beman Dawes 2011
// Distributed under the Boost Software License, Version 1.0.
// See http://www.boost.org/LICENSE_1_0.txt
//--------------------------------------------------------------------------------------//
// //
// The purpose of this header is to emulate the C++11 char16_t and char32_t //
// character and string types so that they can be used in both C++11 and C++03 //
// programs. //
// //
// The emulation names use char16/char32 rather than char16_t/char32_t to avoid use //
// of names that are keywords in C++11. //
// //
// The emulation names are placed in namespace boost, as is usual for Boost C++11 //
// emulation names such as those in header <boost/cstdint.hpp>. //
// //
// An alternative would would have been to place the C++11 emulation names at global //
// scope, and put the C++11 string types in namespace std. That is the approach taken //
// by Microsoft Visual Studio 2010, but is controversion with some Boost users and //
// developers, and runs counter to usual Boost practice. //
// //
// Thanks to Mathias Gaunard and others for discussions leading to the final form //
// of these typedefs. //
// //
// Boost C++11 C++03 //
// ---------------- -------------- -------------------------------- //
// boost::char16 char16_t uint16_t //
// boost::char32 char32_t uint32_t //
// boost::u16string std::u16string std::basic_string<boost::char16> //
// boost::u32string std::u32string std::basic_string<boost::char32> //
// //
// Uses the typedefs provided by Microsoft Visual C++ 2010 if present //
// //
// Thanks to Mathias Gaunard and others for discussions leading to the final form //
// of these typedefs. //
// //
//--------------------------------------------------------------------------------------//
#if !defined(BOOST_CXX11_CHAR_TYPES_HPP)
# define BOOST_CXX11_CHAR_TYPES_HPP
# include <boost/config.hpp>
# include <boost/cstdint.hpp>
# include <string>
namespace boost
{
# if defined(BOOST_NO_CHAR16_T) && (!defined(_MSC_VER) || _MSC_VER < 1600) // 1600 == VC++10
typedef boost::uint_least16_t char16;
typedef std::basic_string<boost::char16> u16string;
# else
typedef char16_t char16;
typedef std::u16string u16string;
# endif
# if defined(BOOST_NO_CHAR32_T) && (!defined(_MSC_VER) || _MSC_VER < 1600) // 1600 == VC++10
typedef boost::uint_least32_t char32;
typedef std::basic_string<boost::char32> u32string;
# else
typedef char32_t char32;
typedef std::u32string u32string;
# endif
} // namespace boost
#endif // !defined(BOOST_CXX11_CHAR_TYPES_HPP)

View File

@@ -1,449 +0,0 @@
// Copyright 2001 John Maddock
// Distributed under the Boost Software License, Version 1.0. (See accompany-
// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
/*
* Copyright (c) 1997
* Silicon Graphics Computer Systems, Inc.
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Silicon Graphics makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*/
/* NOTE: This is not portable code. Parts of numeric_limits<> are
* inherently machine-dependent, and this file is written for the MIPS
* architecture and the SGI MIPSpro C++ compiler. Parts of it (in
* particular, some of the characteristics of floating-point types)
* 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.
*/
#ifndef BOOST_SGI_CPP_LIMITS
#define BOOST_SGI_CPP_LIMITS
#include <climits>
#include <cfloat>
#include <boost/config.hpp>
#include <boost/detail/endian.hpp>
#ifndef BOOST_NO_CWCHAR
#include <cwchar> // for WCHAR_MIN and WCHAR_MAX
#endif
namespace std {
enum float_round_style {
round_indeterminate = -1,
round_toward_zero = 0,
round_to_nearest = 1,
round_toward_infinity = 2,
round_toward_neg_infinity = 3
};
enum float_denorm_style {
denorm_indeterminate = -1,
denorm_absent = 0,
denorm_present = 1
};
// The C++ standard (section 18.2.1) requires that some of the members of
// numeric_limits be static const data members that are given constant-
// initializers within the class declaration. On compilers where the
// BOOST_NO_INCLASS_MEMBER_INITIALIZATION macro is defined, it is impossible to write
// a standard-conforming numeric_limits class.
//
// There are two possible workarounds: either initialize the data
// members outside the class, or change them from data members to
// enums. Neither workaround is satisfactory: the former makes it
// impossible to use the data members in constant-expressions, and the
// latter means they have the wrong type and that it is impossible to
// take their addresses. We choose the former workaround.
#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \
enum { __mem_name = __mem_value }
#else /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */
# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \
static const __mem_type __mem_name = __mem_value
#endif /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */
// Base class for all specializations of numeric_limits.
template <class __number>
class _Numeric_limits_base {
public:
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, false);
static __number min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); }
static __number max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); }
BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 0);
static __number epsilon() throw() { return __number(); }
static __number round_error() throw() { return __number(); }
BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style,
has_denorm,
denorm_absent);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false);
static __number infinity() throw() { return __number(); }
static __number quiet_NaN() throw() { return __number(); }
static __number signaling_NaN() throw() { return __number(); }
static __number denorm_min() throw() { return __number(); }
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style,
round_style,
round_toward_zero);
};
// Base class for integers.
template <class _Int,
_Int __imin,
_Int __imax,
int __idigits = -1>
class _Integer_limits : public _Numeric_limits_base<_Int>
{
public:
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true);
static _Int min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imin; }
static _Int max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imax; }
BOOST_STL_DECLARE_LIMITS_MEMBER(int,
digits,
(__idigits < 0) ? (int)(sizeof(_Int) * CHAR_BIT)
- (__imin == 0 ? 0 : 1)
: __idigits);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, (digits * 301) / 1000);
// log 2 = 0.301029995664...
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, __imin != 0);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, true);
};
#if defined(BOOST_BIG_ENDIAN)
template<class Number, unsigned int Word>
struct float_helper{
static Number get_word() throw() {
// sizeof(long double) == 16
const unsigned int _S_word[4] = { Word, 0, 0, 0 };
return *reinterpret_cast<const Number*>(&_S_word);
}
};
#else
template<class Number, unsigned int Word>
struct float_helper{
static Number get_word() throw() {
// sizeof(long double) == 12, but only 10 bytes significant
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)));
}
};
#endif
// Base class for floating-point numbers.
template <class __number,
int __Digits, int __Digits10,
int __MinExp, int __MaxExp,
int __MinExp10, int __MaxExp10,
unsigned int __InfinityWord,
unsigned int __QNaNWord, unsigned int __SNaNWord,
bool __IsIEC559,
float_round_style __RoundStyle>
class _Floating_limits : public _Numeric_limits_base<__number>
{
public:
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, __Digits);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, __Digits10);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, __MinExp);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, __MaxExp);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, __MinExp10);
BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, __MaxExp10);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style,
has_denorm,
denorm_indeterminate);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false);
static __number infinity() throw() {
return float_helper<__number, __InfinityWord>::get_word();
}
static __number quiet_NaN() throw() {
return float_helper<__number,__QNaNWord>::get_word();
}
static __number signaling_NaN() throw() {
return float_helper<__number,__SNaNWord>::get_word();
}
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, __IsIEC559);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true);
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false /* was: true */ );
BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false);
BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style, round_style, __RoundStyle);
};
// Class numeric_limits
// The unspecialized class.
template<class T>
class numeric_limits : public _Numeric_limits_base<T> {};
// Specializations for all built-in integral types.
template<>
class numeric_limits<bool>
: public _Integer_limits<bool, false, true, 0>
{};
template<>
class numeric_limits<char>
: public _Integer_limits<char, CHAR_MIN, CHAR_MAX>
{};
template<>
class numeric_limits<signed char>
: public _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX>
{};
template<>
class numeric_limits<unsigned char>
: public _Integer_limits<unsigned char, 0, UCHAR_MAX>
{};
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
template<>
class numeric_limits<wchar_t>
#if !defined(WCHAR_MAX) || !defined(WCHAR_MIN)
#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
// we have WCHAR_MIN and WCHAR_MAX defined, so use it
: public _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX>
#endif
{};
#endif
template<>
class numeric_limits<short>
: public _Integer_limits<short, SHRT_MIN, SHRT_MAX>
{};
template<>
class numeric_limits<unsigned short>
: public _Integer_limits<unsigned short, 0, USHRT_MAX>
{};
template<>
class numeric_limits<int>
: public _Integer_limits<int, INT_MIN, INT_MAX>
{};
template<>
class numeric_limits<unsigned int>
: public _Integer_limits<unsigned int, 0, UINT_MAX>
{};
template<>
class numeric_limits<long>
: public _Integer_limits<long, LONG_MIN, LONG_MAX>
{};
template<>
class numeric_limits<unsigned long>
: public _Integer_limits<unsigned long, 0, ULONG_MAX>
{};
#ifdef __GNUC__
// 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_MAX) && !defined(ULONGLONG_MAX)
# define ULONGLONG_MAX 0xffffffffffffffffLLU
# define LONGLONG_MAX 0x7fffffffffffffffLL
#endif
#if !defined(LONGLONG_MIN)
# define LONGLONG_MIN (-LONGLONG_MAX - 1)
#endif
#if !defined(ULONGLONG_MIN)
# define ULONGLONG_MIN 0
#endif
#endif /* __GNUC__ */
// Specializations for all built-in floating-point type.
template<> class numeric_limits<float>
: public _Floating_limits<float,
FLT_MANT_DIG, // Binary digits of precision
FLT_DIG, // Decimal digits of precision
FLT_MIN_EXP, // Minimum exponent
FLT_MAX_EXP, // Maximum exponent
FLT_MIN_10_EXP, // Minimum base 10 exponent
FLT_MAX_10_EXP, // Maximum base 10 exponent
#if defined(BOOST_BIG_ENDIAN)
0x7f80 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
0x7f81 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
0x7fc1 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
#else
0x7f800000u, // Last word of +infinity
0x7f810000u, // Last word of quiet NaN
0x7fc10000u, // Last word of signaling NaN
#endif
true, // conforms to iec559
round_to_nearest>
{
public:
static float min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MIN; }
static float denorm_min() throw() { return FLT_MIN; }
static float max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MAX; }
static float epsilon() throw() { return FLT_EPSILON; }
static float round_error() throw() { return 0.5f; } // Units: ulps.
};
template<> class numeric_limits<double>
: public _Floating_limits<double,
DBL_MANT_DIG, // Binary digits of precision
DBL_DIG, // Decimal digits of precision
DBL_MIN_EXP, // Minimum exponent
DBL_MAX_EXP, // Maximum exponent
DBL_MIN_10_EXP, // Minimum base 10 exponent
DBL_MAX_10_EXP, // Maximum base 10 exponent
#if defined(BOOST_BIG_ENDIAN)
0x7ff0 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
0x7ff1 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
0x7ff9 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
#else
0x7ff00000u, // Last word of +infinity
0x7ff10000u, // Last word of quiet NaN
0x7ff90000u, // Last word of signaling NaN
#endif
true, // conforms to iec559
round_to_nearest>
{
public:
static double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MIN; }
static double denorm_min() throw() { return DBL_MIN; }
static double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MAX; }
static double epsilon() throw() { return DBL_EPSILON; }
static double round_error() throw() { return 0.5; } // Units: ulps.
};
template<> class numeric_limits<long double>
: public _Floating_limits<long double,
LDBL_MANT_DIG, // Binary digits of precision
LDBL_DIG, // Decimal digits of precision
LDBL_MIN_EXP, // Minimum exponent
LDBL_MAX_EXP, // Maximum exponent
LDBL_MIN_10_EXP,// Minimum base 10 exponent
LDBL_MAX_10_EXP,// Maximum base 10 exponent
#if defined(BOOST_BIG_ENDIAN)
0x7ff0 << (sizeof(int)*CHAR_BIT-16), // Last word of +infinity
0x7ff1 << (sizeof(int)*CHAR_BIT-16), // Last word of quiet NaN
0x7ff9 << (sizeof(int)*CHAR_BIT-16), // Last word of signaling NaN
#else
0x7fff8000u, // Last word of +infinity
0x7fffc000u, // Last word of quiet NaN
0x7fff9000u, // Last word of signaling NaN
#endif
false, // Doesn't conform to iec559
round_to_nearest>
{
public:
static long double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MIN; }
static long double denorm_min() throw() { return LDBL_MIN; }
static long double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MAX; }
static long double epsilon() throw() { return LDBL_EPSILON; }
static long double round_error() throw() { return 4; } // Units: ulps.
};
} // namespace std
#endif /* BOOST_SGI_CPP_LIMITS */
// Local Variables:
// mode:C++
// End:

View File

@@ -14,7 +14,7 @@
#include <boost/config.hpp>
#ifdef BOOST_NO_LIMITS
# include <boost/detail/limits.hpp>
# error "There is no std::numeric_limits suppport available."
#else
# include <limits>
#endif

View File

@@ -10,16 +10,16 @@
#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.
// Caution: this is the only Boost header that is guaranteed
// to change with every Boost release. Including this header
// will cause a recompile every time a new Boost version is
// used.
//
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 104800
#define BOOST_VERSION 106000
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,9 +27,6 @@
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_48"
#define BOOST_LIB_VERSION "1_60"
#endif

13
meta/libraries.json Normal file
View File

@@ -0,0 +1,13 @@
{
"key": "config",
"name": "Config",
"description": "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users.",
"documentation": "config.htm",
"category": [
"workarounds"
],
"authors": "",
"maintainers": [
"John Maddock <john -at- johnmaddock.co.uk>"
]
}

View File

@@ -1,52 +1,84 @@
#
# Copyright John Maddock 2008.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# If you need to alter build preferences then set them in
# the template defined in options_v2.jam.
#
project
: requirements
<toolset>gcc:<cxxflags>-Wno-deprecated-declarations
;
import modules ;
import ../checks/config : requires ;
local is_unix = [ modules.peek : UNIX ] ;
if $(is_unix)
{
local osname = [ SHELL uname ] ;
lib atomic ;
lib pthread ;
lib rt ;
switch $(osname)
{
case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ;
case "*BSD*" : OTHERFLAGS = "-lpthread" ;
}
}
exe has_atomic_lib : config_info.cpp atomic ;
explicit has_atomic_lib ;
exe has_pthread_lib : config_info.cpp pthread ;
explicit has_pthread_lib ;
exe has_rt_lib : config_info.cpp rt ;
explicit has_rt_lib ;
test-suite config
:
:
[ compile config_test_c.c ]
[ run config_test.cpp
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>multi
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
: config_test_threaded
]
[ run config_test.cpp
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
]
[ run config_test.cpp
: #args
: #input-files
: #requirements
<rtti>off
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
: config_test_no_rtti
]
[ run config_test.cpp
: #args
: #input-files
: #requirements
<exception-handling>off
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
: config_test_no_except
]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi : config_info_threaded ]
[ run config_info.cpp : : : <test-info>always_show_run_output <rtti>off : config_info_no_rtti ]
[ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off : config_info_no_except ]
[ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
[ run abi/abi_test.cpp abi/main.cpp ]
[ run limits_test.cpp ../../test/build//boost_test_exec_monitor ]
[ run limits_test.cpp ]
[ run link/main.cpp link//link_test
: #args
: #input-files
@@ -59,4 +91,16 @@ test-suite config
]
[ compile-fail threads/test_thread_fail1.cpp ]
[ compile-fail threads/test_thread_fail2.cpp ]
[ compile boost_fallthrough_test.cpp : [ check-target-builds has_clang_implicit_fallthrough "Clang implicit fallthrough" : <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ] ]
[ compile helper_macro_test.cpp ]
[ run cstdint_test.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
[ run cstdint_test2.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
[ compile cstdint_include_test.cpp : <warnings>all <toolset>gcc:<cxxflags>-Wextra ]
[ run config_build_check.cpp : : : [ requires int128 cxx11_constexpr cxx11_user_defined_literals ] ]
;
obj has_clang_implicit_fallthrough : cmd_line_check.cpp :
<toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ;
explicit has_clang_implicit_fallthrough ;

View File

@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Wed Jul 13 18:50:14 2011
# This file was automatically generated on Thu Aug 13 16:32:12 2015
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -37,6 +37,9 @@ test-suite "BOOST_HAS_DIRENT_H" :
test-suite "BOOST_HAS_EXPM1" :
[ run ../has_expm1_pass.cpp ]
[ compile-fail ../has_expm1_fail.cpp ] ;
test-suite "BOOST_HAS_FLOAT128" :
[ run ../has_float128_pass.cpp ]
[ compile-fail ../has_float128_fail.cpp ] ;
test-suite "BOOST_HAS_FTIME" :
[ run ../has_ftime_pass.cpp ]
[ compile-fail ../has_ftime_fail.cpp ] ;
@@ -49,6 +52,9 @@ test-suite "BOOST_HAS_GETTIMEOFDAY" :
test-suite "BOOST_HAS_HASH" :
[ run ../has_hash_pass.cpp ]
[ compile-fail ../has_hash_fail.cpp ] ;
test-suite "BOOST_HAS_INT128" :
[ run ../has_int128_pass.cpp ]
[ compile-fail ../has_int128_fail.cpp ] ;
test-suite "BOOST_HAS_LOG1P" :
[ run ../has_log1p_pass.cpp ]
[ compile-fail ../has_log1p_fail.cpp ] ;
@@ -73,9 +79,6 @@ test-suite "BOOST_HAS_NRVO" :
test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" :
[ run ../has_part_alloc_pass.cpp ]
[ compile-fail ../has_part_alloc_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREADS" :
[ run ../has_pthreads_pass.cpp ]
[ compile-fail ../has_pthreads_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREAD_DELAY_NP" :
[ run ../has_pthread_delay_np_pass.cpp ]
[ compile-fail ../has_pthread_delay_np_fail.cpp ] ;
@@ -85,6 +88,9 @@ test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
test-suite "BOOST_HAS_PTHREAD_YIELD" :
[ run ../has_pthread_yield_pass.cpp ]
[ compile-fail ../has_pthread_yield_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREADS" :
[ run ../has_pthreads_pass.cpp ]
[ compile-fail ../has_pthreads_fail.cpp ] ;
test-suite "BOOST_HAS_RVALUE_REFS" :
[ run ../has_rvalue_refs_pass.cpp ]
[ compile-fail ../has_rvalue_refs_fail.cpp ] ;
@@ -175,60 +181,6 @@ test-suite "BOOST_MSVC_STD_ITERATOR" :
test-suite "BOOST_HAS_WINTHREADS" :
[ run ../has_winthreads_pass.cpp ]
[ compile-fail ../has_winthreads_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_ARRAY" :
[ run ../no_0x_hdr_array_pass.cpp ]
[ compile-fail ../no_0x_hdr_array_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CHRONO" :
[ run ../no_0x_hdr_chrono_pass.cpp ]
[ compile-fail ../no_0x_hdr_chrono_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CODECVT" :
[ run ../no_0x_hdr_codecvt_pass.cpp ]
[ compile-fail ../no_0x_hdr_codecvt_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CONDITION_VARIABLE" :
[ run ../no_0x_hdr_condition_variable_pass.cpp ]
[ compile-fail ../no_0x_hdr_condition_variable_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_FORWARD_LIST" :
[ run ../no_0x_hdr_forward_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_forward_list_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_FUTURE" :
[ run ../no_0x_hdr_future_pass.cpp ]
[ compile-fail ../no_0x_hdr_future_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_INITIALIZER_LIST" :
[ run ../no_0x_hdr_initializer_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_initializer_list_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_MUTEX" :
[ run ../no_0x_hdr_mutex_pass.cpp ]
[ compile-fail ../no_0x_hdr_mutex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_RANDOM" :
[ run ../no_0x_hdr_random_pass.cpp ]
[ compile-fail ../no_0x_hdr_random_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_RATIO" :
[ run ../no_0x_hdr_ratio_pass.cpp ]
[ compile-fail ../no_0x_hdr_ratio_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_REGEX" :
[ run ../no_0x_hdr_regex_pass.cpp ]
[ compile-fail ../no_0x_hdr_regex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_SYSTEM_ERROR" :
[ run ../no_0x_hdr_system_error_pass.cpp ]
[ compile-fail ../no_0x_hdr_system_error_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_THREAD" :
[ run ../no_0x_hdr_thread_pass.cpp ]
[ compile-fail ../no_0x_hdr_thread_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TUPLE" :
[ run ../no_0x_hdr_tuple_pass.cpp ]
[ compile-fail ../no_0x_hdr_tuple_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TYPEINDEX" :
[ run ../no_0x_hdr_typeindex_pass.cpp ]
[ compile-fail ../no_0x_hdr_typeindex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TYPE_TRAITS" :
[ run ../no_0x_hdr_type_traits_pass.cpp ]
[ compile-fail ../no_0x_hdr_type_traits_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_UNORDERED_MAP" :
[ run ../no_0x_hdr_unordered_map_pass.cpp ]
[ compile-fail ../no_0x_hdr_unordered_map_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_UNORDERED_SET" :
[ run ../no_0x_hdr_unordered_set_pass.cpp ]
[ compile-fail ../no_0x_hdr_unordered_set_fail.cpp ] ;
test-suite "BOOST_NO_ADL_BARRIER" :
[ run ../no_adl_barrier_pass.cpp ]
[ compile-fail ../no_adl_barrier_fail.cpp ] ;
@@ -238,10 +190,10 @@ test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
[ run ../no_array_type_spec_pass.cpp ]
[ compile-fail ../no_array_type_spec_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_DECLARATIONS" :
test-suite "BOOST_NO_CXX11_AUTO_DECLARATIONS" :
[ run ../no_auto_declarations_pass.cpp ]
[ compile-fail ../no_auto_declarations_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
test-suite "BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS" :
[ run ../no_auto_multidecl_pass.cpp ]
[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_PTR" :
@@ -250,16 +202,16 @@ test-suite "BOOST_NO_AUTO_PTR" :
test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
[ run ../no_bcb_partial_spec_pass.cpp ]
[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_CHAR16_T" :
test-suite "BOOST_NO_CXX11_CHAR16_T" :
[ run ../no_char16_t_pass.cpp ]
[ compile-fail ../no_char16_t_fail.cpp ] ;
test-suite "BOOST_NO_CHAR32_T" :
test-suite "BOOST_NO_CXX11_CHAR32_T" :
[ run ../no_char32_t_pass.cpp ]
[ compile-fail ../no_char32_t_fail.cpp ] ;
test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
[ run ../no_com_value_init_pass.cpp ]
[ compile-fail ../no_com_value_init_fail.cpp ] ;
test-suite "BOOST_NO_CONSTEXPR" :
test-suite "BOOST_NO_CXX11_CONSTEXPR" :
[ run ../no_constexpr_pass.cpp ]
[ compile-fail ../no_constexpr_fail.cpp ] ;
test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
@@ -277,19 +229,148 @@ test-suite "BOOST_NO_CWCHAR" :
test-suite "BOOST_NO_CWCTYPE" :
[ run ../no_cwctype_pass.cpp ]
[ compile-fail ../no_cwctype_fail.cpp ] ;
test-suite "BOOST_NO_DECLTYPE" :
test-suite "BOOST_NO_CXX11_ADDRESSOF" :
[ run ../no_cxx11_addressof_pass.cpp ]
[ compile-fail ../no_cxx11_addressof_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_ALIGNAS" :
[ run ../no_cxx11_alignas_pass.cpp ]
[ compile-fail ../no_cxx11_alignas_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_ALLOCATOR" :
[ run ../no_cxx11_allocator_pass.cpp ]
[ compile-fail ../no_cxx11_allocator_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_ATOMIC_SMART_PTR" :
[ run ../no_cxx11_atomic_sp_pass.cpp ]
[ compile-fail ../no_cxx11_atomic_sp_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_FINAL" :
[ run ../no_cxx11_final_pass.cpp ]
[ compile-fail ../no_cxx11_final_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_ARRAY" :
[ run ../no_cxx11_hdr_array_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_ATOMIC" :
[ run ../no_cxx11_hdr_atomic_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_atomic_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_CHRONO" :
[ run ../no_cxx11_hdr_chrono_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_chrono_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_CODECVT" :
[ run ../no_cxx11_hdr_codecvt_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_codecvt_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_CONDITION_VARIABLE" :
[ run ../no_cxx11_hdr_condition_variable_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_condition_variable_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_FORWARD_LIST" :
[ run ../no_cxx11_hdr_forward_list_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_forward_list_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_FUTURE" :
[ run ../no_cxx11_hdr_future_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_future_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_INITIALIZER_LIST" :
[ run ../no_cxx11_hdr_initializer_list_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_initializer_list_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_MUTEX" :
[ run ../no_cxx11_hdr_mutex_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_mutex_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_RANDOM" :
[ run ../no_cxx11_hdr_random_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_random_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_RATIO" :
[ run ../no_cxx11_hdr_ratio_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_ratio_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_REGEX" :
[ run ../no_cxx11_hdr_regex_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_regex_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_SYSTEM_ERROR" :
[ run ../no_cxx11_hdr_system_error_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_system_error_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_THREAD" :
[ run ../no_cxx11_hdr_thread_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_thread_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_TUPLE" :
[ run ../no_cxx11_hdr_tuple_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_tuple_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_TYPE_TRAITS" :
[ run ../no_cxx11_hdr_type_traits_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_type_traits_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_TYPEINDEX" :
[ run ../no_cxx11_hdr_typeindex_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_typeindex_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_MAP" :
[ run ../no_cxx11_hdr_unordered_map_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_unordered_map_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_SET" :
[ run ../no_cxx11_hdr_unordered_set_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_unordered_set_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_INLINE_NAMESPACES" :
[ run ../no_cxx11_inline_namespaces_pass.cpp ]
[ compile-fail ../no_cxx11_inline_namespaces_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS" :
[ run ../no_cxx11_non_pub_def_fun_pass.cpp ]
[ compile-fail ../no_cxx11_non_pub_def_fun_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_NUMERIC_LIMITS" :
[ run ../no_cxx11_numeric_limits_pass.cpp ]
[ compile-fail ../no_cxx11_numeric_limits_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_REF_QUALIFIERS" :
[ run ../no_cxx11_ref_qualifiers_pass.cpp ]
[ compile-fail ../no_cxx11_ref_qualifiers_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_SMART_PTR" :
[ run ../no_cxx11_smart_ptr_pass.cpp ]
[ compile-fail ../no_cxx11_smart_ptr_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_STD_ALIGN" :
[ run ../no_cxx11_std_align_pass.cpp ]
[ compile-fail ../no_cxx11_std_align_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_TRAILING_RESULT_TYPES" :
[ run ../no_cxx11_trailing_result_types_pass.cpp ]
[ compile-fail ../no_cxx11_trailing_result_types_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_USER_DEFINED_LITERALS" :
[ run ../no_cxx11_user_lit_pass.cpp ]
[ compile-fail ../no_cxx11_user_lit_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_BINARY_LITERALS" :
[ run ../no_cxx14_binary_literals_pass.cpp ]
[ compile-fail ../no_cxx14_binary_literals_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_CONSTEXPR" :
[ run ../no_cxx14_constexpr_pass.cpp ]
[ compile-fail ../no_cxx14_constexpr_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_DECLTYPE_AUTO" :
[ run ../no_cxx14_decltype_auto_pass.cpp ]
[ compile-fail ../no_cxx14_decltype_auto_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_DIGIT_SEPARATORS" :
[ run ../no_cxx14_digit_separator_pass.cpp ]
[ compile-fail ../no_cxx14_digit_separator_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_GENERIC_LAMBDAS" :
[ run ../no_cxx14_generic_lambda_pass.cpp ]
[ compile-fail ../no_cxx14_generic_lambda_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_HDR_SHARED_MUTEX" :
[ run ../no_cxx14_hdr_shared_mutex_pass.cpp ]
[ compile-fail ../no_cxx14_hdr_shared_mutex_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES" :
[ run ../no_cxx14_lambda_capture_pass.cpp ]
[ compile-fail ../no_cxx14_lambda_capture_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_AGGREGATE_NSDMI" :
[ run ../no_cxx14_member_init_pass.cpp ]
[ compile-fail ../no_cxx14_member_init_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION" :
[ run ../no_cxx14_return_type_ded_pass.cpp ]
[ compile-fail ../no_cxx14_return_type_ded_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_VARIABLE_TEMPLATES" :
[ run ../no_cxx14_var_templ_pass.cpp ]
[ compile-fail ../no_cxx14_var_templ_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" :
[ run ../no_cxx_hdr_functional_pass.cpp ]
[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_DECLTYPE" :
[ run ../no_decltype_pass.cpp ]
[ compile-fail ../no_decltype_fail.cpp ] ;
test-suite "BOOST_NO_DECLTYPE_N3276" :
test-suite "BOOST_NO_CXX11_DECLTYPE_N3276" :
[ run ../no_decltype_n3276_pass.cpp ]
[ compile-fail ../no_decltype_n3276_fail.cpp ] ;
test-suite "BOOST_DEDUCED_TYPENAME" :
[ run ../no_ded_typename_pass.cpp ]
[ compile-fail ../no_ded_typename_fail.cpp ] ;
test-suite "BOOST_NO_DEFAULTED_FUNCTIONS" :
test-suite "BOOST_NO_CXX11_DEFAULTED_FUNCTIONS" :
[ run ../no_defaulted_functions_pass.cpp ]
[ compile-fail ../no_defaulted_functions_fail.cpp ] ;
test-suite "BOOST_NO_DELETED_FUNCTIONS" :
test-suite "BOOST_NO_CXX11_DELETED_FUNCTIONS" :
[ run ../no_deleted_functions_pass.cpp ]
[ compile-fail ../no_deleted_functions_fail.cpp ] ;
test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
@@ -298,39 +379,39 @@ test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
test-suite "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS" :
[ run ../no_dep_val_param_pass.cpp ]
[ compile-fail ../no_dep_val_param_fail.cpp ] ;
test-suite "BOOST_NO_EXCEPTIONS" :
[ run ../no_exceptions_pass.cpp ]
[ compile-fail ../no_exceptions_fail.cpp ] ;
test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
[ run ../no_excep_std_pass.cpp ]
[ compile-fail ../no_excep_std_fail.cpp ] ;
test-suite "BOOST_NO_EXPLICIT_CONVERSION_OPERATORS" :
[ run ../no_explicit_cvt_ops_pass.cpp ]
[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
test-suite "BOOST_NO_EXCEPTIONS" :
[ run ../no_exceptions_pass.cpp ]
[ compile-fail ../no_exceptions_fail.cpp ] ;
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run ../no_exp_func_tem_arg_pass.cpp ]
[ compile-fail ../no_exp_func_tem_arg_fail.cpp ] ;
test-suite "BOOST_NO_EXTERN_TEMPLATE" :
test-suite "BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS" :
[ run ../no_explicit_cvt_ops_pass.cpp ]
[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_EXTERN_TEMPLATE" :
[ run ../no_extern_template_pass.cpp ]
[ compile-fail ../no_extern_template_fail.cpp ] ;
test-suite "BOOST_NO_FENV_H" :
[ run ../no_fenv_h_pass.cpp ]
[ compile-fail ../no_fenv_h_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
test-suite "BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS" :
[ run ../no_fixed_len_variadic_templates_pass.cpp ]
[ compile-fail ../no_fixed_len_variadic_templates_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run ../no_func_tmp_order_pass.cpp ]
[ compile-fail ../no_func_tmp_order_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
[ run ../no_function_template_default_args_pass.cpp ]
[ compile-fail ../no_function_template_default_args_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
[ run ../no_function_type_spec_pass.cpp ]
[ compile-fail ../no_function_type_spec_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run ../no_func_tmp_order_pass.cpp ]
[ compile-fail ../no_func_tmp_order_fail.cpp ] ;
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
[ run ../no_i64_limits_pass.cpp ]
[ compile-fail ../no_i64_limits_fail.cpp ] ;
test-suite "BOOST_NO_INITIALIZER_LISTS" :
[ run ../no_initializer_lists_pass.cpp ]
[ compile-fail ../no_initializer_lists_fail.cpp ] ;
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
[ run ../no_inline_memb_init_pass.cpp ]
[ compile-fail ../no_inline_memb_init_fail.cpp ] ;
@@ -349,7 +430,7 @@ test-suite "BOOST_NO_IS_ABSTRACT" :
test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
[ run ../no_iter_construct_pass.cpp ]
[ compile-fail ../no_iter_construct_fail.cpp ] ;
test-suite "BOOST_NO_LAMBDAS" :
test-suite "BOOST_NO_CXX11_LAMBDAS" :
[ run ../no_lambdas_pass.cpp ]
[ compile-fail ../no_lambdas_fail.cpp ] ;
test-suite "BOOST_NO_LIMITS" :
@@ -358,9 +439,6 @@ test-suite "BOOST_NO_LIMITS" :
test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
[ run ../no_limits_const_exp_pass.cpp ]
[ compile-fail ../no_limits_const_exp_fail.cpp ] ;
test-suite "BOOST_NO_NUMERIC_LIMITS_LOWEST" :
[ run ../no_limits_lowest_pass.cpp ]
[ compile-fail ../no_limits_lowest_fail.cpp ] ;
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
[ run ../no_ll_limits_pass.cpp ]
[ compile-fail ../no_ll_limits_fail.cpp ] ;
@@ -370,43 +448,46 @@ test-suite "BOOST_NO_LONG_LONG" :
test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
[ run ../no_mem_func_spec_pass.cpp ]
[ compile-fail ../no_mem_func_spec_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATES" :
[ run ../no_mem_templates_pass.cpp ]
[ compile-fail ../no_mem_templates_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
[ run ../no_mem_templ_frnds_pass.cpp ]
[ compile-fail ../no_mem_templ_frnds_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
[ run ../no_mem_tem_keyword_pass.cpp ]
[ compile-fail ../no_mem_tem_keyword_fail.cpp ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
[ run ../no_mem_tem_pnts_pass.cpp ]
[ compile-fail ../no_mem_tem_pnts_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
[ run ../no_mem_templ_frnds_pass.cpp ]
[ compile-fail ../no_mem_templ_frnds_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATES" :
[ run ../no_mem_templates_pass.cpp ]
[ compile-fail ../no_mem_templates_fail.cpp ] ;
test-suite "BOOST_NO_NESTED_FRIENDSHIP" :
[ run ../no_nested_friendship_pass.cpp ]
[ compile-fail ../no_nested_friendship_fail.cpp ] ;
test-suite "BOOST_NO_NOEXCEPT" :
test-suite "BOOST_NO_CXX11_NOEXCEPT" :
[ run ../no_noexcept_pass.cpp ]
[ compile-fail ../no_noexcept_fail.cpp ] ;
test-suite "BOOST_NO_NULLPTR" :
test-suite "BOOST_NO_CXX11_NULLPTR" :
[ run ../no_nullptr_pass.cpp ]
[ compile-fail ../no_nullptr_fail.cpp ] ;
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
[ run ../no_ops_in_namespace_pass.cpp ]
[ compile-fail ../no_ops_in_namespace_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run ../no_partial_spec_pass.cpp ]
[ compile-fail ../no_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS" :
[ run ../no_part_spec_def_args_pass.cpp ]
[ compile-fail ../no_part_spec_def_args_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run ../no_partial_spec_pass.cpp ]
[ compile-fail ../no_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run ../no_priv_aggregate_pass.cpp ]
[ compile-fail ../no_priv_aggregate_fail.cpp ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
[ run ../no_ptr_mem_const_pass.cpp ]
[ compile-fail ../no_ptr_mem_const_fail.cpp ] ;
test-suite "BOOST_NO_RAW_LITERALS" :
test-suite "BOOST_NO_CXX11_RANGE_BASED_FOR" :
[ run ../no_range_based_for_pass.cpp ]
[ compile-fail ../no_range_based_for_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_RAW_LITERALS" :
[ run ../no_raw_literals_pass.cpp ]
[ compile-fail ../no_raw_literals_fail.cpp ] ;
test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
@@ -415,10 +496,10 @@ test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
test-suite "BOOST_NO_RTTI" :
[ run ../no_rtti_pass.cpp ]
[ compile-fail ../no_rtti_fail.cpp ] ;
test-suite "BOOST_NO_RVALUE_REFERENCES" :
test-suite "BOOST_NO_CXX11_RVALUE_REFERENCES" :
[ run ../no_rvalue_references_pass.cpp ]
[ compile-fail ../no_rvalue_references_fail.cpp ] ;
test-suite "BOOST_NO_SCOPED_ENUMS" :
test-suite "BOOST_NO_CXX11_SCOPED_ENUMS" :
[ run ../no_scoped_enums_pass.cpp ]
[ compile-fail ../no_scoped_enums_fail.cpp ] ;
test-suite "BOOST_NO_SFINAE" :
@@ -430,24 +511,21 @@ test-suite "BOOST_NO_SFINAE_EXPR" :
test-suite "BOOST_NO_STRINGSTREAM" :
[ run ../no_sstream_pass.cpp ]
[ compile-fail ../no_sstream_fail.cpp ] ;
test-suite "BOOST_NO_STATIC_ASSERT" :
test-suite "BOOST_NO_CXX11_STATIC_ASSERT" :
[ run ../no_static_assert_pass.cpp ]
[ compile-fail ../no_static_assert_fail.cpp ] ;
test-suite "BOOST_NO_STDC_NAMESPACE" :
[ run ../no_stdc_namespace_pass.cpp ]
[ compile-fail ../no_stdc_namespace_fail.cpp ] ;
test-suite "BOOST_NO_STD_ALLOCATOR" :
[ run ../no_std_allocator_pass.cpp ]
[ compile-fail ../no_std_allocator_fail.cpp ] ;
test-suite "BOOST_NO_STD_DISTANCE" :
[ run ../no_std_distance_pass.cpp ]
[ compile-fail ../no_std_distance_fail.cpp ] ;
test-suite "BOOST_NO_STD_ITERATOR" :
[ run ../no_std_iterator_pass.cpp ]
[ compile-fail ../no_std_iterator_fail.cpp ] ;
test-suite "BOOST_NO_STD_ITERATOR_TRAITS" :
[ run ../no_std_iter_traits_pass.cpp ]
[ compile-fail ../no_std_iter_traits_fail.cpp ] ;
test-suite "BOOST_NO_STD_ITERATOR" :
[ run ../no_std_iterator_pass.cpp ]
[ compile-fail ../no_std_iterator_fail.cpp ] ;
test-suite "BOOST_NO_STD_LOCALE" :
[ run ../no_std_locale_pass.cpp ]
[ compile-fail ../no_std_locale_fail.cpp ] ;
@@ -463,9 +541,6 @@ test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
test-suite "BOOST_NO_STD_TYPEINFO" :
[ run ../no_std_typeinfo_pass.cpp ]
[ compile-fail ../no_std_typeinfo_fail.cpp ] ;
test-suite "BOOST_NO_STD_UNORDERED" :
[ run ../no_std_unordered_pass.cpp ]
[ compile-fail ../no_std_unordered_fail.cpp ] ;
test-suite "BOOST_NO_STD_USE_FACET" :
[ run ../no_std_use_facet_pass.cpp ]
[ compile-fail ../no_std_use_facet_fail.cpp ] ;
@@ -475,10 +550,16 @@ test-suite "BOOST_NO_STD_WSTREAMBUF" :
test-suite "BOOST_NO_STD_WSTRING" :
[ run ../no_std_wstring_pass.cpp ]
[ compile-fail ../no_std_wstring_fail.cpp ] ;
test-suite "BOOST_NO_STDC_NAMESPACE" :
[ run ../no_stdc_namespace_pass.cpp ]
[ compile-fail ../no_stdc_namespace_fail.cpp ] ;
test-suite "BOOST_NO_SWPRINTF" :
[ run ../no_swprintf_pass.cpp ]
[ compile-fail ../no_swprintf_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_ALIASES" :
test-suite "BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS" :
[ run ../no_tem_local_classes_pass.cpp ]
[ compile-fail ../no_tem_local_classes_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_TEMPLATE_ALIASES" :
[ run ../no_template_aliases_pass.cpp ]
[ compile-fail ../no_template_aliases_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
@@ -496,10 +577,10 @@ test-suite "BOOST_NO_TYPEID" :
test-suite "BOOST_NO_TYPENAME_WITH_CTOR" :
[ run ../no_typename_with_ctor_pass.cpp ]
[ compile-fail ../no_typename_with_ctor_fail.cpp ] ;
test-suite "BOOST_NO_UNICODE_LITERALS" :
test-suite "BOOST_NO_CXX11_UNICODE_LITERALS" :
[ run ../no_unicode_literals_pass.cpp ]
[ compile-fail ../no_unicode_literals_fail.cpp ] ;
test-suite "BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX" :
test-suite "BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX" :
[ run ../no_unified_init_pass.cpp ]
[ compile-fail ../no_unified_init_fail.cpp ] ;
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
@@ -511,10 +592,10 @@ test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" :
test-suite "BOOST_NO_USING_TEMPLATE" :
[ run ../no_using_template_pass.cpp ]
[ compile-fail ../no_using_template_fail.cpp ] ;
test-suite "BOOST_NO_VARIADIC_MACROS" :
test-suite "BOOST_NO_CXX11_VARIADIC_MACROS" :
[ run ../no_variadic_macros_pass.cpp ]
[ compile-fail ../no_variadic_macros_fail.cpp ] ;
test-suite "BOOST_NO_VARIADIC_TEMPLATES" :
test-suite "BOOST_NO_CXX11_VARIADIC_TEMPLATES" :
[ run ../no_variadic_templates_pass.cpp ]
[ compile-fail ../no_variadic_templates_fail.cpp ] ;
test-suite "BOOST_NO_VOID_RETURNS" :

View File

@@ -0,0 +1,20 @@
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/config.hpp>
int test(int n)
{
switch (n)
{
case 0:
n++;
BOOST_FALLTHROUGH;
case 1:
n++;
break;
}
return n;
}

View File

@@ -0,0 +1,29 @@
// (C) Copyright John Maddock 2012.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_FLOAT128
// TITLE: __float128
// DESCRIPTION: The platform supports __float128.
#include <cstdlib>
namespace boost_has_float128{
int test()
{
#ifdef __GNUC__
__extension__ __float128 big_float = 0.0Q;
#else
__float128 big_float = 0.0Q;
#endif
(void)&big_float;
return 0;
}
}

View File

@@ -14,10 +14,9 @@
namespace boost_has_ftime{
void f()
void f(FILETIME)
{
// this is never called, it just has to compile:
FILETIME ft;
}
int test()

View File

@@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -11,12 +11,13 @@
// or hash_map classes.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# ifdef BOOST_NO_STD_UNORDERED
# ifdef BOOST_NO_CXX11_STD_UNORDERED
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define _BACKWARD_BACKWARD_WARNING_H 1 /* turn off warnings from the headers below */
# include <ext/hash_set>
# include <ext/hash_map>
# else
// If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
// If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must
// not include the <ext/*> headers as they clash with the C++0x
// headers. ie in any given translation unit we can include one
// or the other, but not both.

36
test/boost_has_int128.ipp Normal file
View File

@@ -0,0 +1,36 @@
// (C) Copyright John Maddock 2012.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_INT128
// TITLE: __int128
// DESCRIPTION: The platform supports __int128.
#include <cstdlib>
namespace boost_has_int128{
int test()
{
#ifdef __GNUC__
__extension__ __int128 lli = 0;
__extension__ unsigned __int128 ulli = 0u;
#else
__int128 lli = 0;
unsigned __int128 ulli = 0u;
#endif
(void)&lli;
(void)&ulli;
return 0;
}
}

View File

@@ -1,7 +1,7 @@
// (C) Copyright Terje Slettebo 2001.
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -18,7 +18,7 @@ class test_class
{
public:
test_class() {}
test_class(const test_class &other)
test_class(const test_class&)
{
++copy_count;
}

View File

@@ -12,6 +12,12 @@
#include <memory>
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
#else
# define BOOST_UNUSED_ATTRIBUTE
#endif
namespace boost_has_partial_std_allocator{
//
@@ -23,12 +29,12 @@ 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::difference_type difference_type BOOST_UNUSED_ATTRIBUTE;
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;
typedef typename alloc1_t::value_type value_type BOOST_UNUSED_ATTRIBUTE;
alloc1_t a1;
@@ -55,8 +61,5 @@ int test()
}
#undef BOOST_UNUSED_ATTRIBUTE

View File

@@ -18,6 +18,7 @@ void f()
{
// this is never called, it just has to compile:
int res = pthread_yield();
(void)res;
}
int test()

View File

@@ -5,13 +5,13 @@
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_NO_AUTO_DECLARATIONS
// MACRO: BOOST_NO_CXX11_AUTO_DECLARATIONS
// TITLE: C++0x auto declarators unavailable
// DESCRIPTION: The compiler does not support C++0x declarations of variables with automatically deduced type
namespace boost_no_auto_declarations {
namespace boost_no_cxx11_auto_declarations {
void check_f(int& x)
void check_f(int&)
{
}

View File

@@ -5,13 +5,13 @@
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_NO_AUTO_MULTIDECLARATIONS
// MACRO: BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
// TITLE: C++0x auto multideclarators unavailable
// DESCRIPTION: The compiler does not support C++0x declarations of series of variables with automatically deduced type
namespace boost_no_auto_multideclarations {
namespace boost_no_cxx11_auto_multideclarations {
void check_f(int& x, int*& y)
void check_f(int&, int*&)
{
}

View File

@@ -7,15 +7,25 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CHAR16_T
// MACRO: BOOST_NO_CXX11_CHAR16_T
// TITLE: C++0x char16_t unavailable
// DESCRIPTION: The compiler does not support C++0x char16_t
namespace boost_no_char16_t {
namespace boost_no_cxx11_char16_t {
// Microsoft VC++ 2010, and possibly other compilers, provides
// a typedef for char16_t rather than a new type. We want that
// to be an error, so provide an overloaded function that will
// be ambiguous if char16_t is just a typedef.
void f(const char16_t*){}
void f(const unsigned short*){}
void f(const unsigned int*){}
void f(const unsigned long*){}
int test()
{
const char16_t* p = u"abc";
const char16_t p(0);
f(&p);
return 0;
}

View File

@@ -6,15 +6,25 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CHAR32_T
// MACRO: BOOST_NO_CXX11_CHAR32_T
// TITLE: C++0x char32_t unavailable
// DESCRIPTION: The compiler does not support C++0x char32_t
namespace boost_no_char32_t {
namespace boost_no_cxx11_char32_t {
// Microsoft VC++ 2010, and possibly other compilers, provides
// a typedef for char32_t rather than a new type. We want that
// to be an error, so provide an overloaded function that will
// be ambiguous if char16_t is just a typedef.
void f(const char32_t*){}
void f(const unsigned short*){}
void f(const unsigned int*){}
void f(const unsigned long*){}
int test()
{
const char32_t* p = U"abc";
const char32_t p(0);
f(&p);
return 0;
}

View File

@@ -6,11 +6,13 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CONSTEXPR
// MACRO: BOOST_NO_CXX11_CONSTEXPR
// TITLE: C++0x constexpr unavailable
// DESCRIPTION: The compiler does not support C++0x constexpr
namespace boost_no_constexpr {
namespace boost_no_cxx11_constexpr {
void quiet_warning(int){}
constexpr int square(int x) { return x * x; } // from N2235
@@ -22,21 +24,55 @@ constexpr const int* xp = addr(x);
struct A
{
constexpr A(int i) : val(i) { }
constexpr operator int() { return val; }
constexpr operator long() { return 43; }
constexpr operator int()const { return val; }
constexpr operator long()const { return 43; }
private:
int val;
};
template<int> struct X { };
constexpr A a = 42;
constexpr const A a = 42;
X<a> xx; // OK: unique conversion to int
// virtual function
struct B
{
virtual void vf() {}
};
struct C : B
{
constexpr C() {}
};
// aggregate initialization
struct D
{
int val[2];
constexpr D() : val() {}
};
// virtual base
struct E
{
};
struct F : virtual E
{
};
constexpr F& f(F& out) { return out; }
int test()
{
int i = square(5);
quiet_warning(i);
switch (i)
{
case a:
break;
}
return 0;
}

View File

@@ -0,0 +1,28 @@
// (C) Copyright John Maddock 2012
// (C) Copyright Peter Dimov 2014
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_ADDRESSOF
// TITLE: C++11 <memory> doesn't have a working std::addressof
// DESCRIPTION: The compiler does not support the function std::addressof added to <memory>
#include <memory>
namespace boost_no_cxx11_addressof {
void x3()
{
}
int test()
{
int x1, x2[3];
return std::addressof(x1) != &x1 || std::addressof(x2) != &x2 || std::addressof(x3) != &x3;
}
}

View File

@@ -0,0 +1,36 @@
// (C) Copyright Andrey Semashev 2013
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_ALIGNAS
// TITLE: C++11 alignas keyword.
// DESCRIPTION: The compiler does not support the C++11 alignment specification with alignas keyword.
namespace boost_no_cxx11_alignas {
struct alignas(16) my_data1
{
char data[10];
};
struct alignas(double) my_data2
{
char data[16];
};
my_data1 dummy1[2];
my_data2 dummy2;
alignas(16) char dummy3[10];
alignas(double) char dummy4[32];
int test()
{
// TODO: Test that the data is actually aligned on platforms with uintptr_t
return 0;
}
}

View File

@@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2012
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_ALLOCATOR
// TITLE: C++11 <memory> doesn't have C++0x allocator support
// DESCRIPTION: The compiler does not support the C++11 allocator features added to <memory>
#include <memory>
namespace boost_no_cxx11_allocator {
int test()
{
std::pointer_traits<char*>* p = 0;
(void) p;
//std::pointer_safety s = std::relaxed;
//char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable;
//void (*l_declare_no_pointers)(char *p, size_t n) = std::declare_no_pointers;
//void (*l_undeclare_no_pointers)(char *p, size_t n) = std::undeclare_no_pointers;
//std::pointer_safety (*l_get_pointer_safety)() = std::get_pointer_safety;
//void* (*l_align)(std::size_t alignment, std::size_t size, void *&ptr, std::size_t& space) = std::align;
std::allocator_arg_t aat;
std::uses_allocator<int, std::allocator<int> > ua;
std::allocator_traits<std::allocator<int> > at;
std::allocator<int> ia;
std::allocator_traits<std::allocator<int> >::rebind_alloc<void*> ra(ia);
std::allocator<void*>* pva = &ra;
std::allocator_traits<std::allocator<int> >::rebind_traits<void*>::pointer pt;
(void)aat;
(void)ua;
(void)at;
(void)pva;
(void)pt;
return 0;
}
}

View File

@@ -0,0 +1,36 @@
// (C) Copyright John Maddock 2012
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_ATOMIC_SMART_PTR
// TITLE: C++11 <memory> does not support atomic smart pointer operations
// DESCRIPTION: The compiler does not support the C++11 atomic smart pointer features added to <memory>
#include <memory>
namespace boost_no_cxx11_atomic_smart_ptr {
int test()
{
std::shared_ptr<int> spi(new int), spi2(new int);
spi = std::static_pointer_cast<int>(spi);
atomic_is_lock_free(&spi);
atomic_load(&spi);
atomic_load_explicit(&spi, std::memory_order_relaxed);
atomic_store(&spi, spi2);
atomic_store_explicit(&spi, spi2, std::memory_order_relaxed);
atomic_exchange(&spi, spi2);
atomic_compare_exchange_weak(&spi, &spi2, spi);
atomic_compare_exchange_strong(&spi, &spi2, spi);
atomic_compare_exchange_weak_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
atomic_compare_exchange_strong_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
return 0;
}
}

View File

@@ -0,0 +1,41 @@
// (C) Copyright Agustin Berge 2014
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_FINAL
// TITLE: C++11 final class-virt-specifier
// DESCRIPTION: The compiler does not support the C++ class-virt-specifier final
namespace boost_no_cxx11_final {
struct X final {};
struct abstract
{
virtual int f() = 0;
};
struct derived : public abstract
{
virtual int f() final
{
return 0;
}
};
int check(abstract* pa)
{
return pa->f();
}
int test()
{
derived d;
return check(&d);
}
}

View File

@@ -6,17 +6,17 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_0X_HDR_ARRAY
// MACRO: BOOST_NO_CXX11_HDR_ARRAY
// TITLE: C++0x header <array> unavailable
// DESCRIPTION: The standard library does not supply C++0x header <array>
#include <array>
namespace boost_no_0x_hdr_array {
namespace boost_no_cxx11_hdr_array {
int test()
{
std::array<int, 3> a = { 1, 2, 3 };
std::array<int, 3> a = {{ 1, 2, 3 }};
return a.size() == 3 ? 0 : 1;
}

View File

@@ -0,0 +1,90 @@
// (C) Copyright John Maddock 2013
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX11_HDR_ATOMIC
// TITLE: C++11 <atomic> header is either not present or too broken to be used
// DESCRIPTION: The compiler does not support the C++11 header <atomic>
#include <atomic>
#if !defined(ATOMIC_BOOL_LOCK_FREE) || !defined(ATOMIC_CHAR_LOCK_FREE) || !defined(ATOMIC_CHAR16_T_LOCK_FREE) \
|| !defined(ATOMIC_CHAR32_T_LOCK_FREE) || !defined(ATOMIC_WCHAR_T_LOCK_FREE) || !defined(ATOMIC_SHORT_LOCK_FREE)\
|| !defined(ATOMIC_INT_LOCK_FREE) || !defined(ATOMIC_LONG_LOCK_FREE) || !defined(ATOMIC_LLONG_LOCK_FREE)\
|| !defined(ATOMIC_POINTER_LOCK_FREE)
# error "required macros not defined"
#endif
namespace boost_no_cxx11_hdr_atomic {
int test()
{
std::memory_order m = static_cast<std::memory_order>(std::memory_order_relaxed | std::memory_order_consume | std::memory_order_acquire | std::memory_order_release
| std::memory_order_acq_rel | std::memory_order_seq_cst);
(void)m;
std::atomic<int> a1;
std::atomic<unsigned> a2;
std::atomic<void*> a3;
a1.is_lock_free();
a1.store(1);
a1.load();
a1.exchange(2);
int v;
a1.compare_exchange_weak(v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
a1.compare_exchange_strong(v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
a1.fetch_add(2);
a1.fetch_sub(3);
a1.fetch_and(3);
a1.fetch_or(1);
a1.fetch_xor(1);
a1++;
++a1;
a1--;
--a1;
a1 += 2;
a1 -= 2;
a1 &= 1;
a1 |= 2;
a1 ^= 3;
a3.store(&v);
a3.fetch_add(1);
a3.fetch_sub(1);
++a3;
--a3;
a3++;
a3--;
a3 += 1;
a3 -= 1;
std::atomic_is_lock_free(&a1);
// This produces linker errors on Mingw32 for some reason, probably not required anyway for most uses??
//std::atomic_init(&a1, 2);
std::atomic_store(&a1, 3);
std::atomic_store_explicit(&a1, 3, std::memory_order_relaxed);
std::atomic_load(&a1);
std::atomic_load_explicit(&a1, std::memory_order_relaxed);
std::atomic_exchange(&a1, 3);
std::atomic_compare_exchange_weak(&a1, &v, 2);
std::atomic_compare_exchange_strong(&a1, &v, 2);
std::atomic_compare_exchange_weak_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
std::atomic_compare_exchange_strong_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
std::atomic_flag f = ATOMIC_FLAG_INIT;
f.test_and_set(std::memory_order_relaxed);
f.test_and_set();
f.clear(std::memory_order_relaxed);
f.clear();
std::atomic_thread_fence(std::memory_order_relaxed);
std::atomic_signal_fence(std::memory_order_relaxed);
return 0;
}
}

View File

@@ -6,13 +6,13 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_0X_HDR_CHRONO
// MACRO: BOOST_NO_CXX11_HDR_CHRONO
// TITLE: C++0x header <chrono> unavailable
// DESCRIPTION: The standard library does not supply C++0x header <chrono>
#include <chrono>
namespace boost_no_0x_hdr_chrono {
namespace boost_no_cxx11_hdr_chrono {
int test()
{
@@ -23,7 +23,7 @@ int test()
using std::chrono::minutes;
using std::chrono::hours;
using std::chrono::system_clock;
using std::chrono::monotonic_clock;
using std::chrono::steady_clock;
using std::chrono::high_resolution_clock;
return 0;
}

View File

@@ -6,19 +6,23 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_0X_HDR_CODECVT
// MACRO: BOOST_NO_CXX11_HDR_CODECVT
// TITLE: C++0x header <codecvt> unavailable
// DESCRIPTION: The standard library does not supply C++0x header <codecvt>
#include <codecvt>
#include <locale> // for wstring_convert
namespace boost_no_0x_hdr_codecvt {
namespace boost_no_cxx11_hdr_codecvt {
int test()
{
using std::codecvt_utf8;
using std::codecvt_utf16;
using std::codecvt_utf8_utf16;
#ifndef BOOST_NO_CXX11_CHAR16_T
std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> test;
#endif
return 0;
}

View File

@@ -6,13 +6,13 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_0X_HDR_CONDITION_VARIABLE
// MACRO: BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
// TITLE: C++0x header <condition_variable> unavailable
// DESCRIPTION: The standard library does not supply C++0x header <condition_variable>
#include <condition_variable>
namespace boost_no_0x_hdr_condition_variable {
namespace boost_no_cxx11_hdr_condition_variable {
int test()
{

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