Compare commits

...

219 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
130 changed files with 6217 additions and 721 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();
}

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,7 @@ 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]

View File

@@ -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

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.78.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">

View File

@@ -3,11 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost Macro Reference</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="../index.html" title="Boost.Config">
<link rel="next" href="cstdint.html" title="Standard Integer Types">
<link rel="next" href="build_config.html" title="Build Time Configuration">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,13 +20,13 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.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>
<a accesskey="p" href="../index.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="build_config.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.boost_macro_reference"></a><a class="link" href="boost_macro_reference.html" title="Boost Macro Reference">Boost Macro Reference</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<div class="toc"><dl>
<dt><span class="section"><a href="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_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
@@ -37,6 +37,10 @@
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="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_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_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_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -1423,6 +1427,25 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_FLOAT128</span></code>
</p>
</td>
<td>
<p>
Compiler
</p>
</td>
<td>
<p>
The compiler has <code class="computeroutput"><span class="identifier">__float128</span></code>
as a native type which is distinct from all the regular C++ floating
point types.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_FTIME</span></code>
@@ -1663,6 +1686,29 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_PRAGMA_DETECT_MISMATCH</span></code>
</p>
</td>
<td>
<p>
Compiler
</p>
</td>
<td>
<p>
The compiler recognizes the <code class="computeroutput"><span class="preprocessor">#pragma</span>
<span class="identifier">detect_mismatch</span><span class="special">(</span><span class="string">"name"</span><span class="special">,</span>
<span class="string">"value"</span><span class="special">)</span></code>
directive which tells that the link stage should be terminated
with error if values for provided <code class="computeroutput"><span class="string">"name"</span></code>
missmatch. This pragma may be a help in preventing ODR violations
and ensuring that different modules are compiled with same flags.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_DELAY_NP</span></code>
@@ -2427,6 +2473,190 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type deduction for variables declared
with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
<span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type deduction for multiple variables
declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
<span class="special">=</span> <span class="special">...,</span>
<span class="special">*</span><span class="identifier">ptr</span>
<span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
accepted in Madrid, March 2011.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
<span class="keyword">delete</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
<span class="keyword">default</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
<span class="identifier">T</span><span class="special">()</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
</p>
</td>
<td>
<p>
The compiler does not support explicit instantiation forward declarations
for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FINAL</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the C++ class-virt-specifier final.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support expanding a variadic template parameter
pack into a template containing one or more fixed arguments
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support default template arguments for function
templates.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ATOMIC</span></code>
@@ -2680,202 +2910,6 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
</p>
</td>
<td>
<p>
The standard library header &lt;memory&gt; has no shared_ptr and
unique_ptr.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_ALIGN</span></code>
</p>
</td>
<td>
<p>
The standard library header &lt;memory&gt; has no working std::align.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type deduction for variables declared
with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
<span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type deduction for multiple variables
declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
<span class="special">=</span> <span class="special">...,</span>
<span class="special">*</span><span class="identifier">ptr</span>
<span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
</p>
</td>
<td>
<p>
The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support template aliases.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
accepted in Madrid, March 2011.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
<span class="keyword">default</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
<span class="keyword">delete</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
<span class="identifier">T</span><span class="special">()</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
</p>
</td>
<td>
<p>
The compiler does not support explicit instantiation forward declarations
for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support default template arguments for function
templates.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LAMBDAS</span></code>
@@ -2904,13 +2938,19 @@
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
<span class="keyword">long</span></code>.
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
<span class="keyword">default</span></code>) functions in access
control sections other than <code class="computeroutput"><span class="keyword">public</span></code>.
Public defaulted functions may still be supported, as indicated
by <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>.
Some compilers implementing an early draft of the C++11 standard
(in particular, incorporating <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906" target="_top">DR906</a>)
are susceptible to this problem.
</p>
</td>
</tr>
@@ -2939,6 +2979,19 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NUMERIC_LIMITS</span></code>
</p>
</td>
<td>
<p>
The standard library <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span></code>
header does not support the C++11 version of <code class="computeroutput"><span class="identifier">numeric_limits</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RANGE_BASED_FOR</span></code>
@@ -3000,6 +3053,19 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
</p>
</td>
<td>
<p>
The standard library header &lt;memory&gt; has no shared_ptr and
unique_ptr.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
@@ -3012,6 +3078,18 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_ALIGN</span></code>
</p>
</td>
<td>
<p>
The standard library header &lt;memory&gt; has no working std::align.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
@@ -3025,6 +3103,18 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support template aliases.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TRAILING_RESULT_TYPES</span></code>
@@ -3100,6 +3190,19 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
<span class="keyword">long</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -3384,6 +3487,221 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported" title="Macros that describe C++14 features not supported">Macros
that describe C++14 features not supported</a>
</h3></div></div></div>
<p>
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.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_AGGREGATE_NSDMI</span></code>
</p>
</td>
<td>
<p>
The compiler does not support member initializer for aggregates
as in the following example:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">Foo</span>
<span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span> <span class="special">=</span> <span class="number">42</span><span class="special">;</span>
<span class="special">};</span>
<span class="identifier">Foo</span> <span class="identifier">foo</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0</span> <span class="special">};</span>
</pre>
<p>
</p>
</blockquote></div>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_BINARY_LITERALS</span></code>
</p>
</td>
<td>
<p>
The compiler does not binary literals (e.g. <code class="computeroutput"><span class="number">0</span><span class="identifier">b1010</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
The compiler does not support relaxed <code class="computeroutput"><span class="keyword">constexpr</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DECLTYPE_AUTO</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span><span class="special">(</span><span class="keyword">auto</span><span class="special">)</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DIGIT_SEPARATORS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support digit separators (e.g. <code class="computeroutput"><span class="number">1</span><span class="char">'000'</span><span class="number">000</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_GENERIC_LAMBDAS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support generic lambda (e.g. <code class="computeroutput"><span class="special">[](</span><span class="keyword">auto</span>
<span class="identifier">v</span><span class="special">){</span>
<span class="special">}</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_HDR_SHARED_MUTEX</span></code>
</p>
</td>
<td>
<p>
The standard library does not provide header &lt;shared_mutex&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support initialized lambda capture (e.g.
<code class="computeroutput"><span class="special">[</span><span class="identifier">foo</span>
<span class="special">=</span> <span class="number">42</span><span class="special">]{</span> <span class="special">}</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION</span></code>
</p>
</td>
<td>
<p>
The compiler does not support return type deduction for normal
functions (e.g. <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">f</span><span class="special">()</span>
<span class="special">{</span> <span class="keyword">return</span>
<span class="identifier">val</span><span class="special">;</span>
<span class="special">}</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_VARIABLE_TEMPLATES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support variable template (e.g. <code class="computeroutput"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span>
<span class="identifier">kibi</span> <span class="special">=</span>
<span class="identifier">T</span><span class="special">(</span><span class="number">1024</span><span class="special">);</span></code>).
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers"></a><a name="config_14_for_11"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers" title="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>
</h3></div></div></div>
<p>
The following macros allow use of C++14 features even with compilers that
do not yet provide compliant C++14 support.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_CXX14_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
This macro works similar to BOOST_CONSTEXPR, but expands to <code class="computeroutput"><span class="keyword">constexpr</span></code> only if the C++14 "relaxed"
<code class="computeroutput"><span class="keyword">constexpr</span></code> is available.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
Helper Macros</a>
</h3></div></div></div>
@@ -3914,6 +4232,20 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ATTRIBUTE_UNUSED</span></code>
</p>
</td>
<td>
<p>
Expands to <code class="computeroutput"><span class="identifier">__attribute__</span><span class="special">((</span><span class="identifier">unused</span><span class="special">))</span></code> when this is available - can
be used to disable compiler warnings relating to unused types or
variables.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -5278,7 +5610,7 @@
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code" title="Macros for libraries with separate source code">Macros
for libraries with separate source code</a>
</h3></div></div></div>
<div class="toc"><dl class="toc">
<div class="toc"><dl>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility">Macros
controlling shared library symbol visibility</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing">ABI
@@ -5613,7 +5945,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.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>
<a accesskey="p" href="../index.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="build_config.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

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

@@ -3,10 +3,10 @@
<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.78.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="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">
@@ -20,13 +20,13 @@
</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="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<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 class="toc">
<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>
@@ -283,7 +283,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="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<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,7 +3,7 @@
<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.78.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="cstdint.html" title="Standard Integer Types">
@@ -27,7 +27,7 @@
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<div class="toc"><dl>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
Compiler Warnings</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding

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.78.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">
@@ -26,7 +26,7 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<div class="toc"><dl>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
</dl></div>

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.78.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>
@@ -39,7 +39,7 @@
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
<dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
Boost for Your Platform</a></span></dt>
<dd><dl>
@@ -68,6 +68,10 @@
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
@@ -77,6 +81,7 @@
<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>
@@ -118,7 +123,7 @@
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
Boost for Your Platform</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<div class="toc"><dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
the default boost configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
@@ -679,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>
@@ -700,7 +721,7 @@
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
configuration usage</a>
</h3></div></div></div>
<div class="toc"><dl class="toc">
<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>
<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
@@ -967,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: June 01, 2014 at 09:50:01 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

@@ -348,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.
]]
@@ -399,6 +402,13 @@ 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`.
]]
@@ -582,6 +592,48 @@ that are not yet supported by a particular compiler or library.
[[`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_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
]]
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
]]
[[`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_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_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
[[`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_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>.]]
@@ -602,49 +654,8 @@ that are not yet supported by a particular compiler or library.
[[`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_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
]]
[[`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_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
]]
[[`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_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
explicit conversion operators (`explicit operator T()`).
]]
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates.
]]
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
]]
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
@@ -652,12 +663,19 @@ 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_LONG_LONG`][The compiler does not support `long long`.
[[`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.
]]
@@ -674,12 +692,16 @@ r-value references.
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
scoped enumerations (`enum class`).
]]
[[`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_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_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
@@ -696,6 +718,8 @@ 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]
@@ -852,6 +876,52 @@ 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]
[#config_helpers]
[section Boost Helper Macros]
@@ -1134,6 +1204,8 @@ Usage example:
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]

View File

@@ -156,11 +156,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC)
# 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:
@@ -382,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

View File

@@ -195,6 +195,36 @@
#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

View File

@@ -10,6 +10,11 @@
#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:
@@ -18,6 +23,10 @@
#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
@@ -47,7 +56,17 @@
// Clang supports "long long" in all compilation modes.
#define BOOST_HAS_LONG_LONG
#if defined(__SIZEOF_INT128__)
//
// 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
@@ -176,7 +195,7 @@
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas))
#if !__has_feature(cxx_alignas)
# define BOOST_NO_CXX11_ALIGNAS
#endif
@@ -188,8 +207,68 @@
# define BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
// Clang always supports variadic macros
// Clang always supports extern templates
#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

@@ -121,6 +121,36 @@
#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:

View File

@@ -105,6 +105,36 @@
#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

@@ -59,6 +59,9 @@
#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

View File

@@ -81,6 +81,36 @@
#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 (__DMC__ <= 0x840)
#error "Compiler not supported or configured - please reconfigure"

View File

@@ -16,8 +16,13 @@
//
// 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 (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#define BOOST_GCC BOOST_GCC_VERSION
#endif
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
# define BOOST_GCC_CXX11
#endif
#if __GNUC__ == 3
@@ -42,11 +47,11 @@
#endif
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#if BOOST_GCC_VERSION >= 30400
#define BOOST_HAS_PRAGMA_ONCE
#endif
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
#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,
@@ -114,7 +119,7 @@
//
// 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
@@ -138,10 +143,23 @@
#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__.
@@ -154,19 +172,11 @@
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_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_CXX11_VARIADIC_TEMPLATES
# endif
#endif
// C++0x features in 4.4.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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
@@ -176,20 +186,21 @@
# 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__ < 5)
#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 !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
#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__)
#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
@@ -199,7 +210,7 @@
// C++0x features in 4.5.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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_CXX11_SCOPED_ENUMS
@@ -207,7 +218,7 @@
// C++0x features in 4.6.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
@@ -217,22 +228,60 @@
// C++0x features in 4.7.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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 __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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 (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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
@@ -248,12 +297,12 @@
// versions check:
// we don't know gcc prior to version 3.30:
#if (__GNUC__ < 3) || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))
#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
@@ -263,4 +312,3 @@
# endif
#endif

View File

@@ -59,6 +59,36 @@
# 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

@@ -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)
@@ -34,11 +68,64 @@
# 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)
# define BOOST_INTEL_WIN BOOST_INTEL
#else
# define BOOST_INTEL_LINUX BOOST_INTEL
#endif
#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)
@@ -157,6 +244,24 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
#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 6.0:
@@ -184,7 +289,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
// (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) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
#endif
@@ -199,75 +304,187 @@ 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_CXX11_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_CXX11_LAMBDAS
//# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
//# undef BOOST_NO_CXX11_DECLTYPE
//# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
//# undef BOOST_NO_CXX11_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_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
//# undef BOOST_NO_CXX11_SCOPED_ENUMS // doesn't really work!!
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# undef BOOST_NO_CXX11_LAMBDAS
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# undef BOOST_NO_CXX11_DECLTYPE
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
// 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
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# undef BOOST_NO_CXX11_NULLPTR
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
# undef BOOST_NO_SFINAE_EXPR
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
// continues to list scoped enum support as "Partial"
//# undef BOOST_NO_CXX11_SCOPED_ENUMS
// 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
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(_MSC_VER)
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
// 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
// This one generates internal compiler errors in multiprecision, disabled for now:
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
//# undef BOOST_NO_CXX11_NOEXCEPT
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
#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
#if (BOOST_INTEL_CXX_VERSION >= 1310)
# undef BOOST_NO_SFINAE_EXPR
// 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
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1400) && !defined(_MSC_VER)
# undef BOOST_NO_CXX11_UNICODE_LITERALS
# undef BOOST_NO_CXX11_RAW_LITERALS
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
//# undef BOOST_NO_CXX11_NOEXCEPT
// This breaks multiprecision:
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# undef BOOST_NO_CXX11_HDR_THREAD
# undef BOOST_NO_CXX11_CHAR32_T
# undef BOOST_NO_CXX11_CHAR16_T
// 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
@@ -279,20 +496,6 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
//
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
//
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# if(BOOST_INTEL_CXX_VERSION < 1310)
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# endif
#endif
#if (BOOST_INTEL_CXX_VERSION < 1200)
//
// fenv.h appears not to work with Intel prior to 12.0:
@@ -300,17 +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)
#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 > 1310)
#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

@@ -124,6 +124,36 @@
#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

@@ -73,6 +73,37 @@
#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:
// we don't support MPW prior to version 8.9:

View File

@@ -81,4 +81,34 @@
# 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

@@ -119,7 +119,36 @@
#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

@@ -86,26 +86,22 @@
# 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
//
// C++0x features
//
# define BOOST_HAS_LONG_LONG
#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_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
@@ -120,19 +116,59 @@
#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_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
#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
// 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

@@ -130,3 +130,33 @@
#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

@@ -55,6 +55,7 @@
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
// Variadic macros do not exist for VC7.1 and lower
# define BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if _MSC_VER < 1500 // 140X == VC++ 8.0
@@ -67,21 +68,6 @@
#endif
// 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
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
@@ -104,6 +90,9 @@
#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 extensions are
// turned off:
@@ -149,6 +138,7 @@
// 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
@@ -168,18 +158,60 @@
# 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_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_INLINE_NAMESPACES
//
// 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:
@@ -216,6 +248,8 @@
# 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"
@@ -243,6 +277,8 @@
# 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
@@ -252,8 +288,8 @@
#endif
//
// last known and checked version is 18.00.20827.3 (VC12 RC, aka 2013 RC):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 180020827)
// 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

@@ -41,8 +41,10 @@
#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
//
@@ -72,6 +74,14 @@
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
//
// 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
// WEK: Added
#define BOOST_HAS_FTIME

View File

@@ -39,7 +39,8 @@
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__
#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"
@@ -47,7 +48,7 @@
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
# elif defined __GNUC__
# elif defined(__GNUC__) && !defined(__ibmxl__)
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
@@ -91,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)

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) \

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:

View File

@@ -96,7 +96,7 @@
#include <exception>
#endif
#include <typeinfo>
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__)
# define BOOST_NO_STD_TYPEINFO
#endif
@@ -147,9 +147,43 @@
# 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

View File

@@ -62,6 +62,16 @@
# 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.
// The SGI STL has it's own __type_traits class, which
@@ -71,5 +81,3 @@
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)

View File

@@ -31,6 +31,30 @@
# 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:
//
@@ -43,4 +67,14 @@
// 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

@@ -36,7 +36,8 @@
|| defined(_GLIBCXX__PTHREADS) \
|| defined(_GLIBCXX_HAS_GTHREADS) \
|| defined(_WIN32) \
|| defined(_AIX)
|| 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
@@ -91,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:
@@ -102,10 +111,56 @@
//
// 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__)
#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
@@ -115,7 +170,7 @@
// C++0x headers in GCC 4.4.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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
@@ -128,14 +183,9 @@
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_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__)
#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
@@ -143,36 +193,89 @@
// C++0x features in GCC 4.6.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_ADDRESSOF
#endif
// C++0x features in GCC 4.7.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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.7.0 and later
// C++0x features in GCC 4.8.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#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
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
// 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
// C++0x headers not yet (fully!) implemented
#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
//
# define BOOST_NO_CXX11_HDR_THREAD
// 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

@@ -51,6 +51,16 @@
# 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

@@ -75,13 +75,14 @@
# 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

@@ -187,3 +187,12 @@
# 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

@@ -145,7 +145,14 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#define BOOST_STDLIB "SGI standard library"
#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

@@ -235,12 +235,14 @@ namespace boost { using std::min; using std::max; }
# 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

@@ -51,7 +51,14 @@
# 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,5 +1,5 @@
// Boost config.hpp configuration header file ------------------------------//
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
// Copyright (c) 2001-2003 John Maddock
// Copyright (c) 2001 Darin Adler
@@ -444,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 ------------------------------------------//
@@ -501,6 +503,16 @@ namespace boost{
# 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 --------------------------//
@@ -646,6 +658,11 @@ namespace std{ using ::type_info; }
# 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
@@ -681,7 +698,7 @@ namespace std{ using ::type_info; }
// 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
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
#endif
// -------------------- Deprecated macros for 1.50 ---------------------------
@@ -934,6 +951,18 @@ namespace std{ using ::type_info; }
#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
@@ -957,6 +986,13 @@ namespace std{ using ::type_info; }
#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,

View File

@@ -119,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

View File

@@ -69,7 +69,7 @@
# endif
#ifdef __QNX__
#if defined(__QNX__) && defined(__EXT_QNX)
// QNX (Dinkumware stdlib) defines these as non-standard names.
// Reflect to the standard names.
@@ -140,7 +140,7 @@ namespace boost
} // namespace boost
#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS)
#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>
@@ -374,7 +374,7 @@ namespace boost
|| (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(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun)
namespace boost {
using ::intptr_t;
@@ -492,7 +492,7 @@ INT#_C macros if they're not already defined (John Maddock).
// 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(_LLONG_MAX))
(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
@@ -501,7 +501,8 @@ INT#_C macros if they're not already defined (John Maddock).
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
(defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
(defined(_LLONG_MAX) && _LLONG_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

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

@@ -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 105600
#define BOOST_VERSION 106000
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,6 +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_56"
#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

@@ -15,19 +15,20 @@ project
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
:
@@ -37,6 +38,9 @@ test-suite config
: #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
@@ -44,15 +48,37 @@ test-suite config
: #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)
[ 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
@@ -66,9 +92,11 @@ 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 :

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 May 28 17:13:04 2014
# 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 ] ;
@@ -76,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 ] ;
@@ -88,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 ] ;
@@ -238,6 +241,9 @@ test-suite "BOOST_NO_CXX11_ALLOCATOR" :
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 ] ;
@@ -283,12 +289,12 @@ test-suite "BOOST_NO_CXX11_HDR_THREAD" :
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_TYPEINDEX" :
[ run ../no_cxx11_hdr_typeindex_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_typeindex_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 ] ;
@@ -298,6 +304,9 @@ test-suite "BOOST_NO_CXX11_HDR_UNORDERED_SET" :
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 ] ;
@@ -316,6 +325,36 @@ test-suite "BOOST_NO_CXX11_TRAILING_RESULT_TYPES" :
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 ] ;
@@ -340,33 +379,36 @@ 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_CXX11_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_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_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 ] ;
@@ -406,18 +448,18 @@ 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 ] ;
@@ -430,12 +472,12 @@ test-suite "BOOST_NO_CXX11_NULLPTR" :
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 ] ;
@@ -472,21 +514,18 @@ test-suite "BOOST_NO_STRINGSTREAM" :
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 ] ;
@@ -511,9 +550,15 @@ 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_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 ] ;
@@ -523,9 +568,6 @@ test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run ../no_template_template_pass.cpp ]
[ compile-fail ../no_template_template_fail.cpp ] ;
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_TWO_PHASE_NAME_LOOKUP" :
[ run ../no_two_phase_lookup_pass.cpp ]
[ compile-fail ../no_two_phase_lookup_fail.cpp ] ;

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

@@ -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

@@ -36,10 +36,43 @@ 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,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

@@ -25,6 +25,7 @@ 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;

View File

@@ -11,6 +11,7 @@
// DESCRIPTION: The standard library does not supply C++0x header <codecvt>
#include <codecvt>
#include <locale> // for wstring_convert
namespace boost_no_cxx11_hdr_codecvt {
@@ -19,6 +20,9 @@ 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

@@ -51,22 +51,23 @@ int test()
using std::is_abstract;
using std::is_constructible;
using std::is_nothrow_constructible;
using std::has_default_constructor;
using std::has_copy_constructor;
using std::has_copy_assign;
using std::has_move_constructor;
using std::has_move_assign;
using std::has_trivial_default_constructor;
using std::has_trivial_copy_constructor;
using std::has_trivial_move_constructor;
using std::has_trivial_copy_assign;
using std::has_trivial_move_assign;
using std::has_trivial_destructor;
using std::has_nothrow_default_constructor;
using std::has_nothrow_copy_constructor;
using std::has_nothrow_move_constructor;
using std::has_nothrow_copy_assign;
using std::has_nothrow_move_assign;
using std::is_default_constructible;
using std::is_copy_constructible;
using std::is_copy_assignable;
using std::is_move_constructible;
using std::is_move_assignable;
using std::is_destructible;
using std::is_trivially_default_constructible;
using std::is_trivially_copy_constructible;
using std::is_trivially_move_constructible;
using std::is_trivially_copy_assignable;
using std::is_trivially_move_assignable;
using std::is_trivially_destructible;
using std::is_nothrow_default_constructible;
using std::is_nothrow_copy_constructible;
using std::is_nothrow_move_constructible;
using std::is_nothrow_copy_assignable;
using std::is_nothrow_move_assignable;
using std::has_virtual_destructor;
using std::is_signed;
using std::is_unsigned;

View File

@@ -16,10 +16,18 @@ namespace boost_no_cxx11_hdr_typeindex {
int test()
{
#if defined( BOOST_NO_TYPEID )
std::type_index * p1;
std::hash<std::type_index> h;
(void)p1;
(void)h;
return 0;
#else
std::type_index t1 = typeid(int);
std::type_index t2 = typeid(double);
std::hash<std::type_index> h;
return (t1 != t2) && (h(t1) != h(t2)) ? 0 : 1;
#endif
}
}

View File

@@ -0,0 +1,38 @@
// (C) Copyright Andrey Semashev 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_NON_PUBLIC_DEFAULTED_FUNCTIONS
// TITLE: C++11 non-public defaulted functions unavailable
// DESCRIPTION: The compiler does not support C++11 defaulted functions in access control sections other than public
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
# error Non-public defaulted functions are not supported in non-C++11 mode
#endif
namespace boost_no_cxx11_non_public_defaulted_functions {
struct foo
{
protected:
foo() = default;
foo& operator= (foo const&) = default;
};
struct bar
{
private:
bar() = default;
bar& operator= (bar const&) = default;
};
int test()
{
return 0;
}
}

View File

@@ -16,10 +16,10 @@ namespace boost_no_cxx11_user_defined_literals {
struct my_literal
{
constexpr my_literal() : val(0) {}
constexpr my_literal(int i) : val(i) {}
constexpr my_literal(const my_literal& a) : val(a.val) {}
constexpr bool operator==(const my_literal& a) const { return val == a.val; }
my_literal() : val(0) {}
my_literal(int i) : val(i) {}
my_literal(const my_literal& a) : val(a.val) {}
bool operator==(const my_literal& a) const { return val == a.val; }
int val;
};
@@ -47,20 +47,20 @@ struct parse_int<base, val, c, Digits...>
char_value, Digits...>::value };
};
constexpr my_literal operator "" _suf1(unsigned long long v)
my_literal operator "" _suf1(unsigned long long v)
{
return my_literal(v);
}
template <char...PACK>
constexpr my_literal operator "" _bin()
my_literal operator "" _bin()
{
return parse_int<2, 0, PACK...>::value;
}
int test()
{
constexpr my_literal a = 0x23_suf1;
constexpr my_literal b = 1001_bin;
my_literal a = 0x23_suf1;
my_literal b = 1001_bin;
return ((a == my_literal(0x23)) && (b == my_literal(9))) ? 0 : 1;
}

View File

@@ -0,0 +1,23 @@
// (C) Copyright Kohei Takahashi 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_CXX14_BINARY_LITERALS
// TITLE: C++14 binary literals unavailable
// DESCRIPTION: The compiler does not support C++14 binary literals
namespace boost_no_cxx14_binary_literals
{
int test()
{
return ((int)0b01000010 == (int)0x42) ? 0 : 1;
}
}

View File

@@ -0,0 +1,43 @@
// (C) Copyright Kohei Takahashi 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_CXX14_CONSTEXPR
// TITLE: C++14 relaxed constexpr unavailable
// DESCRIPTION: The compiler does not support C++14 relaxed constexpr
namespace boost_no_cxx14_constexpr
{
namespace detail
{
template <class> struct void_ { typedef void type; };
}
// Test relaxed constexpr with dependent type; for more details, see comment of
// BOOST_CXX14_CONSTEXPR definition in boost/config/compiler/clang.hpp .
template <class T>
constexpr typename detail::void_<T>::type decrement(T &value)
{
--value;
}
constexpr int zero()
{
int ret = 1;
decrement(ret);
return ret;
}
int test()
{
return zero();
}
}

View File

@@ -0,0 +1,33 @@
// (C) Copyright Kohei Takahashi 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_CXX14_DECLTYPE_AUTO
// TITLE: C++14 decltype(auto) unavailable
// DESCRIPTION: The compiler does not support C++14 decltype(auto)
namespace boost_no_cxx14_decltype_auto
{
void quiet_warning(int){}
const int &foo(const int &x)
{
return x;
}
int test()
{
int j;
decltype(auto) x = foo(j);
quiet_warning(x);
return 0;
}
}

View File

@@ -0,0 +1,23 @@
// (C) Copyright Kohei Takahashi 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_CXX14_DIGIT_SEPARATORS
// TITLE: C++14 digit separator unavailable
// DESCRIPTION: The compiler does not support C++14 digit separator
namespace boost_no_cxx14_digit_separators
{
int test()
{
return 0'0;
}
}

View File

@@ -0,0 +1,23 @@
// (C) Copyright Kohei Takahashi 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_CXX14_GENERIC_LAMBDAS
// TITLE: C++14 generic lambda unavailable
// DESCRIPTION: The compiler does not support C++14 generic lambda
namespace boost_no_cxx14_generic_lambdas
{
int test()
{
return [](auto ret) { return ret; } (0);
}
}

View File

@@ -0,0 +1,27 @@
// (C) Copyright Edward Diener 2015
// 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_CXX14_HDR_SHARED_MUTEX
// TITLE: C++0y header <shared_mutex> unavailable
// DESCRIPTION: The standard library does not supply C++0y header <shared_mutex>
#include <shared_mutex>
namespace boost_no_cxx14_hdr_shared_mutex {
int test()
{
//
// We should probably test __cpp_lib_shared_timed_mutex here, but since neither
// MSVC/Dinkumware, nor clang/libc++ bother to set it (as of July 2015), there's
// not much point....
using std::shared_timed_mutex;
return 0;
}
}

View File

@@ -0,0 +1,23 @@
// (C) Copyright Kohei Takahashi 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_CXX14_INITIALIZED_LAMBDA_CAPTURES
// TITLE: C++14 initialized lambda capture unavailable
// DESCRIPTION: The compiler does not support C++14 initialized lambda capture
namespace boost_no_cxx14_initialized_lambda_captures
{
int test()
{
return [ret = 0] { return ret; } ();
}
}

View File

@@ -0,0 +1,30 @@
// (C) Copyright Kohei Takahashi 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_CXX14_AGGREGATE_NSDMI
// TITLE: C++14 member initializers unavailable
// DESCRIPTION: The compiler does not support C++14 member initializers
namespace boost_no_cxx14_aggregate_nsdmi
{
struct S
{
int x;
int y = 0;
};
int test()
{
S s[] = { { 0x72 }, { 0x42 } };
return s[1].x - 0x42;
}
}

View File

@@ -0,0 +1,29 @@
// (C) Copyright Kohei Takahashi 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_CXX14_RETURN_TYPE_DEDUCTION
// TITLE: C++14 return type deduction unavailable
// DESCRIPTION: The compiler does not support C++14 return type deduction
namespace boost_no_cxx14_return_type_deduction
{
template<typename T>
auto deduced_abs(T x)
{
return x > 0 ? x : -x;
}
int test()
{
return deduced_abs(2) - deduced_abs(-2);
}
}

View File

@@ -0,0 +1,26 @@
// (C) Copyright Kohei Takahashi 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_CXX14_VARIABLE_TEMPLATES
// TITLE: C++14 variable templates unavailable
// DESCRIPTION: The compiler does not support C++14 variable templates
namespace boost_no_cxx14_variable_templates
{
template <class T>
T zero = static_cast<T>(0);
int test()
{
return zero<int>;
}
}

View File

@@ -36,8 +36,8 @@ int test()
#endif
int i;
fexcept_t fe;
fenv_t env;
has_fexcept_t fe;
has_fenv_t env;
i = feclearexcept(FE_ALL_EXCEPT);
i += fetestexcept(FE_ALL_EXCEPT); // All flags should be zero

View File

@@ -0,0 +1,26 @@
// Copyright (C) 2007 Douglas Gregor
// 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_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
// TITLE: C++0x variadic templates unavailable
// DESCRIPTION: The compiler does not support C++0x variadic templates
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs {
template<char one, char two, char... Others> struct char_tuple {};
template<char... Args> struct super_class : public char_tuple<Args...> {};
int test()
{
super_class<'a', 'b', 'c', 'd'> sc;
(void)sc;
return 0;
}
}

View File

@@ -44,12 +44,19 @@ struct is_int<int>
static const bool value = true;
};
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
#else
# define BOOST_UNUSED_ATTRIBUTE
#endif
int test()
{
typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1];
typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1] BOOST_UNUSED_ATTRIBUTE;
return 0;
}
}
#undef BOOST_UNUSED_ATTRIBUTE

View File

@@ -16,10 +16,15 @@
namespace boost_no_cxx11_lambdas {
template <class Func>
int f(Func f)
{
return f();
}
int test()
{
(void)[](){};
return 0;
return f([](){ return 0; });
}
}

View File

@@ -12,12 +12,19 @@
// compilers insist on it, while other issue a
// bunch of warnings if it is in fact present.
#if defined( BOOST_NO_EXCEPTIONS ) && !defined( _MSC_VER )
# include <stdlib.h>
#endif
namespace boost_no_unreachable_return_detection{
int checker()
{
#if defined( BOOST_NO_EXCEPTIONS ) && !defined( _MSC_VER )
abort();
#else
throw 0;
#endif
// no return statement: we don't ever get here...
}

View File

@@ -43,6 +43,12 @@ int check_f(const A& a)
int test()
{
#if defined( BOOST_NO_EXCEPTIONS )
{
B b;
return check_f(b);
}
#else
try{
B b;
return check_f(b);
@@ -51,6 +57,7 @@ int test()
{
return 1;
}
#endif
}
}

View File

@@ -18,17 +18,23 @@
namespace boost_no_std_allocator{
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
#else
# define BOOST_UNUSED_ATTRIBUTE
#endif
template <class T>
int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
typedef typename alloc1_t::size_type size_type;
typedef typename alloc1_t::difference_type difference_type;
typedef typename alloc1_t::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;
typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t;
typedef typename binder_t::other alloc2_t;
@@ -66,7 +72,7 @@ int test()
}
#undef BOOST_UNUSED_ATTRIBUTE

View File

@@ -0,0 +1,18 @@
// Copyright John Maddock 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 the most recent version.//
// Revision $Id$
//
# include "../test/boost_has_int128.ipp"
# include "../test/boost_no_constexpr.ipp"
# include "../test/boost_no_cxx11_user_lit.ipp"
int main( int, char *[] )
{
return boost_has_int128::test() || boost_no_cxx11_constexpr::test() || boost_no_cxx11_user_defined_literals::test();
}

View File

@@ -192,6 +192,7 @@ void print_compiler_macros()
PRINT_MACRO(__hppa);
PRINT_MACRO(__CYGWIN__);
PRINT_MACRO(__MINGW32__);
PRINT_MACRO(__GXX_RTTI);
// HP aCC:
PRINT_MACRO(__HP_aCC);
PRINT_MACRO(_HPACC_);
@@ -293,6 +294,8 @@ void print_compiler_macros()
PRINT_MACRO(_OPENMPT);
PRINT_MACRO(_PGO_INSTRUMENT);
PRINT_MACRO(__QMSPP_);
PRINT_MACRO(__INTEL_RTTI__);
PRINT_MACRO(__INTEL_CXX11_MODE__);
// Cray options:
PRINT_MACRO(_CRAYC);
@@ -934,6 +937,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
PRINT_MACRO(BOOST_HAS_DIRENT_H);
PRINT_MACRO(BOOST_HAS_EXPM1);
PRINT_MACRO(BOOST_HAS_FLOAT128);
PRINT_MACRO(BOOST_HAS_FTIME);
PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
@@ -1007,6 +1011,8 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
PRINT_MACRO(BOOST_NO_CXX11_FINAL);
PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
@@ -1032,6 +1038,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
PRINT_MACRO(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_NULLPTR);
PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_CXX11_RANGE_BASED_FOR);
@@ -1049,6 +1056,16 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
PRINT_MACRO(BOOST_NO_CXX14_AGGREGATE_NSDMI);
PRINT_MACRO(BOOST_NO_CXX14_BINARY_LITERALS);
PRINT_MACRO(BOOST_NO_CXX14_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO);
PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS);
PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS);
PRINT_MACRO(BOOST_NO_CXX14_HDR_SHARED_MUTEX);
PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES);
PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION);
PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
PRINT_MACRO(BOOST_NO_EXCEPTIONS);
@@ -1110,15 +1127,6 @@ void print_boost_macros()
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Wed May 28 17:13:04 2014
// 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
@@ -122,6 +122,11 @@ namespace boost_no_cxx11_allocator = empty_boost;
#else
namespace boost_no_cxx11_atomic_smart_ptr = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_FINAL
#include "boost_no_cxx11_final.ipp"
#else
namespace boost_no_cxx11_final = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_ARRAY
#include "boost_no_cxx11_hdr_array.ipp"
#else
@@ -197,16 +202,16 @@ namespace boost_no_cxx11_hdr_thread = empty_boost;
#else
namespace boost_no_cxx11_hdr_tuple = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_TYPEINDEX
#include "boost_no_cxx11_hdr_typeindex.ipp"
#else
namespace boost_no_cxx11_hdr_typeindex = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_TYPE_TRAITS
#include "boost_no_cxx11_hdr_type_traits.ipp"
#else
namespace boost_no_cxx11_hdr_type_traits = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_TYPEINDEX
#include "boost_no_cxx11_hdr_typeindex.ipp"
#else
namespace boost_no_cxx11_hdr_typeindex = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_UNORDERED_MAP
#include "boost_no_cxx11_hdr_unordered_map.ipp"
#else
@@ -222,6 +227,11 @@ namespace boost_no_cxx11_hdr_unordered_set = empty_boost;
#else
namespace boost_no_cxx11_inline_namespaces = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#include "boost_no_cxx11_non_pub_def_fun.ipp"
#else
namespace boost_no_cxx11_non_public_defaulted_functions = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
#include "boost_no_cxx11_numeric_limits.ipp"
#else
@@ -252,6 +262,56 @@ namespace boost_no_cxx11_trailing_result_types = empty_boost;
#else
namespace boost_no_cxx11_user_defined_literals = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_BINARY_LITERALS
#include "boost_no_cxx14_binary_literals.ipp"
#else
namespace boost_no_cxx14_binary_literals = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_CONSTEXPR
#include "boost_no_cxx14_constexpr.ipp"
#else
namespace boost_no_cxx14_constexpr = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_DECLTYPE_AUTO
#include "boost_no_cxx14_decltype_auto.ipp"
#else
namespace boost_no_cxx14_decltype_auto = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
#include "boost_no_cxx14_digit_separator.ipp"
#else
namespace boost_no_cxx14_digit_separators = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_GENERIC_LAMBDAS
#include "boost_no_cxx14_generic_lambda.ipp"
#else
namespace boost_no_cxx14_generic_lambdas = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
#include "boost_no_cxx14_hdr_shared_mutex.ipp"
#else
namespace boost_no_cxx14_hdr_shared_mutex = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#include "boost_no_cxx14_lambda_capture.ipp"
#else
namespace boost_no_cxx14_initialized_lambda_captures = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_AGGREGATE_NSDMI
#include "boost_no_cxx14_member_init.ipp"
#else
namespace boost_no_cxx14_aggregate_nsdmi = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#include "boost_no_cxx14_return_type_ded.ipp"
#else
namespace boost_no_cxx14_return_type_deduction = empty_boost;
#endif
#ifndef BOOST_NO_CXX14_VARIABLE_TEMPLATES
#include "boost_no_cxx14_var_templ.ipp"
#else
namespace boost_no_cxx14_variable_templates = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
#include "boost_no_cxx_hdr_functional.ipp"
#else
@@ -292,26 +352,26 @@ namespace boost_no_dependent_nested_derivations = empty_boost;
#else
namespace boost_no_dependent_types_in_template_value_parameters = empty_boost;
#endif
#ifndef BOOST_NO_EXCEPTIONS
#include "boost_no_exceptions.ipp"
#else
namespace boost_no_exceptions = empty_boost;
#endif
#ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
#include "boost_no_excep_std.ipp"
#else
namespace boost_no_exception_std_namespace = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#include "boost_no_explicit_cvt_ops.ipp"
#ifndef BOOST_NO_EXCEPTIONS
#include "boost_no_exceptions.ipp"
#else
namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
namespace boost_no_exceptions = empty_boost;
#endif
#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#include "boost_no_exp_func_tem_arg.ipp"
#else
namespace boost_no_explicit_function_template_arguments = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#include "boost_no_explicit_cvt_ops.ipp"
#else
namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_EXTERN_TEMPLATE
#include "boost_no_extern_template.ipp"
#else
@@ -322,6 +382,16 @@ namespace boost_no_cxx11_extern_template = empty_boost;
#else
namespace boost_no_fenv_h = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#include "boost_no_fixed_len_variadic_templates.ipp"
#else
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
#include "boost_no_func_tmp_order.ipp"
#else
namespace boost_no_function_template_ordering = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
@@ -332,11 +402,6 @@ namespace boost_no_cxx11_function_template_default_args = empty_boost;
#else
namespace boost_no_function_type_specializations = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
#include "boost_no_func_tmp_order.ipp"
#else
namespace boost_no_function_template_ordering = empty_boost;
#endif
#ifndef BOOST_NO_MS_INT64_NUMERIC_LIMITS
#include "boost_no_i64_limits.ipp"
#else
@@ -402,16 +467,6 @@ namespace boost_no_long_long = empty_boost;
#else
namespace boost_no_member_function_specializations = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATES
#include "boost_no_mem_templates.ipp"
#else
namespace boost_no_member_templates = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#include "boost_no_mem_templ_frnds.ipp"
#else
namespace boost_no_member_template_friends = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#include "boost_no_mem_tem_keyword.ipp"
#else
@@ -422,6 +477,16 @@ namespace boost_no_member_template_keyword = empty_boost;
#else
namespace boost_no_pointer_to_member_template_parameters = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#include "boost_no_mem_templ_frnds.ipp"
#else
namespace boost_no_member_template_friends = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATES
#include "boost_no_mem_templates.ipp"
#else
namespace boost_no_member_templates = empty_boost;
#endif
#ifndef BOOST_NO_NESTED_FRIENDSHIP
#include "boost_no_nested_friendship.ipp"
#else
@@ -442,16 +507,16 @@ namespace boost_no_cxx11_nullptr = empty_boost;
#else
namespace boost_no_operators_in_namespace = empty_boost;
#endif
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#include "boost_no_partial_spec.ipp"
#else
namespace boost_no_template_partial_specialization = empty_boost;
#endif
#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
#include "boost_no_part_spec_def_args.ipp"
#else
namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
#endif
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#include "boost_no_partial_spec.ipp"
#else
namespace boost_no_template_partial_specialization = empty_boost;
#endif
#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
#include "boost_no_priv_aggregate.ipp"
#else
@@ -512,11 +577,6 @@ namespace boost_no_stringstream = empty_boost;
#else
namespace boost_no_cxx11_static_assert = empty_boost;
#endif
#ifndef BOOST_NO_STDC_NAMESPACE
#include "boost_no_stdc_namespace.ipp"
#else
namespace boost_no_stdc_namespace = empty_boost;
#endif
#ifndef BOOST_NO_STD_ALLOCATOR
#include "boost_no_std_allocator.ipp"
#else
@@ -527,16 +587,16 @@ namespace boost_no_std_allocator = empty_boost;
#else
namespace boost_no_std_distance = empty_boost;
#endif
#ifndef BOOST_NO_STD_ITERATOR
#include "boost_no_std_iterator.ipp"
#else
namespace boost_no_std_iterator = empty_boost;
#endif
#ifndef BOOST_NO_STD_ITERATOR_TRAITS
#include "boost_no_std_iter_traits.ipp"
#else
namespace boost_no_std_iterator_traits = empty_boost;
#endif
#ifndef BOOST_NO_STD_ITERATOR
#include "boost_no_std_iterator.ipp"
#else
namespace boost_no_std_iterator = empty_boost;
#endif
#ifndef BOOST_NO_STD_LOCALE
#include "boost_no_std_locale.ipp"
#else
@@ -577,11 +637,21 @@ namespace boost_no_std_wstreambuf = empty_boost;
#else
namespace boost_no_std_wstring = empty_boost;
#endif
#ifndef BOOST_NO_STDC_NAMESPACE
#include "boost_no_stdc_namespace.ipp"
#else
namespace boost_no_stdc_namespace = empty_boost;
#endif
#ifndef BOOST_NO_SWPRINTF
#include "boost_no_swprintf.ipp"
#else
namespace boost_no_swprintf = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#include "boost_no_tem_local_classes.ipp"
#else
namespace boost_no_cxx11_local_class_template_parameters = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES
#include "boost_no_template_aliases.ipp"
#else
@@ -597,11 +667,6 @@ namespace boost_no_templated_iostreams = empty_boost;
#else
namespace boost_no_template_templates = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#include "boost_no_tem_local_classes.ipp"
#else
namespace boost_no_cxx11_local_class_template_parameters = empty_boost;
#endif
#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#include "boost_no_two_phase_lookup.ipp"
#else
@@ -688,6 +753,11 @@ namespace boost_has_dirent_h = empty_boost;
#else
namespace boost_has_expm1 = empty_boost;
#endif
#ifdef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
namespace boost_has_float128 = empty_boost;
#endif
#ifdef BOOST_HAS_FTIME
#include "boost_has_ftime.ipp"
#else
@@ -753,11 +823,6 @@ namespace boost_has_nrvo = empty_boost;
#else
namespace boost_has_partial_std_allocator = empty_boost;
#endif
#ifdef BOOST_HAS_PTHREADS
#include "boost_has_pthreads.ipp"
#else
namespace boost_has_pthreads = empty_boost;
#endif
#ifdef BOOST_HAS_PTHREAD_DELAY_NP
#include "boost_has_pthread_delay_np.ipp"
#else
@@ -773,6 +838,11 @@ namespace boost_has_pthread_mutexattr_settype = empty_boost;
#else
namespace boost_has_pthread_yield = empty_boost;
#endif
#ifdef BOOST_HAS_PTHREADS
#include "boost_has_pthreads.ipp"
#else
namespace boost_has_pthreads = empty_boost;
#endif
#ifdef BOOST_HAS_RVALUE_REFS
#include "boost_has_rvalue_refs.ipp"
#else
@@ -951,6 +1021,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_EXPM1 at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_float128::test())
{
std::cerr << "Failed test for BOOST_HAS_FLOAT128 at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_ftime::test())
{
std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1016,11 +1091,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_PARTIAL_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_pthreads::test())
{
std::cerr << "Failed test for BOOST_HAS_PTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_pthread_delay_np::test())
{
std::cerr << "Failed test for BOOST_HAS_PTHREAD_DELAY_NP at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1036,6 +1106,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_PTHREAD_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_pthreads::test())
{
std::cerr << "Failed test for BOOST_HAS_PTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_rvalue_refs::test())
{
std::cerr << "Failed test for BOOST_HAS_RVALUE_REFS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1286,6 +1361,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_ATOMIC_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_final::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_FINAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_array::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1361,16 +1441,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_typeindex::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_type_traits::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_typeindex::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_unordered_map::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_MAP at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1386,6 +1466,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_INLINE_NAMESPACES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_non_public_defaulted_functions::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_numeric_limits::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1416,6 +1501,56 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_USER_DEFINED_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_binary_literals::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_BINARY_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_constexpr::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_decltype_auto::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_DECLTYPE_AUTO at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_digit_separators::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_DIGIT_SEPARATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_generic_lambdas::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_GENERIC_LAMBDAS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_hdr_shared_mutex::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_HDR_SHARED_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_initialized_lambda_captures::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_aggregate_nsdmi::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_AGGREGATE_NSDMI at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_return_type_deduction::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx14_variable_templates::test())
{
std::cerr << "Failed test for BOOST_NO_CXX14_VARIABLE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_functional::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUNCTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1456,19 +1591,14 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_exceptions::test())
{
std::cerr << "Failed test for BOOST_NO_EXCEPTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_exception_std_namespace::test())
{
std::cerr << "Failed test for BOOST_NO_EXCEPTION_STD_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_explicit_conversion_operators::test())
if(0 != boost_no_exceptions::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
std::cerr << "Failed test for BOOST_NO_EXCEPTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_explicit_function_template_arguments::test())
@@ -1476,6 +1606,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_explicit_conversion_operators::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_extern_template::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1486,6 +1621,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_FENV_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_template_ordering::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_function_template_default_args::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1496,11 +1641,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_template_ordering::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_ms_int64_numeric_limits::test())
{
std::cerr << "Failed test for BOOST_NO_MS_INT64_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1566,16 +1706,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_member_templates::test())
{
std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_member_template_friends::test())
{
std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_FRIENDS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_member_template_keyword::test())
{
std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_KEYWORD at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1586,6 +1716,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_member_template_friends::test())
{
std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_FRIENDS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_member_templates::test())
{
std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_nested_friendship::test())
{
std::cerr << "Failed test for BOOST_NO_NESTED_FRIENDSHIP at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1606,16 +1746,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_OPERATORS_IN_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_template_partial_specialization::test())
{
std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_partial_specialization_implicit_default_args::test())
{
std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_template_partial_specialization::test())
{
std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_private_in_aggregate::test())
{
std::cerr << "Failed test for BOOST_NO_PRIVATE_IN_AGGREGATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1676,11 +1816,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_stdc_namespace::test())
{
std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_allocator::test())
{
std::cerr << "Failed test for BOOST_NO_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1691,16 +1826,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_DISTANCE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_iterator::test())
{
std::cerr << "Failed test for BOOST_NO_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_iterator_traits::test())
{
std::cerr << "Failed test for BOOST_NO_STD_ITERATOR_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_iterator::test())
{
std::cerr << "Failed test for BOOST_NO_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_locale::test())
{
std::cerr << "Failed test for BOOST_NO_STD_LOCALE at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1741,11 +1876,21 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_WSTRING at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_stdc_namespace::test())
{
std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_swprintf::test())
{
std::cerr << "Failed test for BOOST_NO_SWPRINTF at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_local_class_template_parameters::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_template_aliases::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_TEMPLATE_ALIASES at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1761,11 +1906,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_local_class_template_parameters::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_two_phase_name_lookup::test())
{
std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 13 16:29:35 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$
//
// Test file for macro BOOST_HAS_FLOAT128
// This file should not compile, if it does then
// BOOST_HAS_FLOAT128 should be defined.
// See file boost_has_float128.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_has_float128::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 13 16:29:35 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$
//
// Test file for macro BOOST_HAS_FLOAT128
// This file should compile, if it does not then
// BOOST_HAS_FLOAT128 should not be defined.
// See file boost_has_float128.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
namespace boost_has_float128 = empty_boost;
#endif
int main( int, char *[] )
{
return boost_has_float128::test();
}

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