Compare commits

..

168 Commits

Author SHA1 Message Date
Peter Dimov
bef8ef7b80 Add CMake test project 2018-09-28 22:48:02 +03:00
jzmaddock
1d39fdec80 Remove malformed CMake testing files. 2018-09-28 12:46:49 +01:00
jzmaddock
d25a1df5d2 Add comments to CMake files.
[CI SKIP]
2018-09-28 12:07:29 +01:00
jzmaddock
fb33858b6e Merge pull request #242 from Mike-Devel/min_cmake
[CMake] Generate cmake target for boost config that other libraries can depend on
2018-09-28 12:02:57 +01:00
Mike Dev
9d084e5310 [CI/CMake] Remove cmake build from ci 2018-09-27 18:17:22 +02:00
Mike Dev
fe45ca1601 [CMake] Test cmake target on travis 2018-09-25 20:36:19 +02:00
Mike Dev
6b238b5d1c [CMake] Add copyright notice 2018-09-25 16:37:33 +02:00
Mike Dev
1f5fc3c74b [CMake] Lower requirement to 3.5 and rename project to BoostConfig 2018-09-19 18:38:47 +02:00
Mike Dev
85f716830d [CMake] Generate cmake target that other libraries can use
... to express their dependency on this library and retrieve any
configuration information such as the include directory, binary
to link to (if any), transitive dependencies, necessary compiler
options or the required c++ standards level.
2018-09-19 18:38:47 +02:00
jzmaddock
d229f9be96 Latest msvc seems OK with C++14 constexpr now. 2018-09-15 08:22:00 +01:00
jzmaddock
cec1a860e9 Add call to report_errors() to limits_test.cpp. 2018-09-15 08:21:19 +01:00
jzmaddock
c2af669dd7 Merge pull request #239 from boostorg/string_view
Add BOOST_NO_CXX17_HDR_STRING_VIEW.
2018-08-16 12:07:19 +01:00
jzmaddock
b420491e88 Add BOOST_NO_CXX17_HDR_STRING_VIEW. 2018-08-16 11:25:16 +01:00
jzmaddock
7a5a1e1154 Merge pull request #238 from boostorg/mclow-boost-version-patch
Bump version number to 1.69.0
2018-08-09 18:25:52 +01:00
Marshall Clow
9f006ceb6c Bump version number to 1.69.0 2018-08-09 10:11:34 -07:00
jzmaddock
d3084e8cb0 Stop testing C++1z with obsolete libc++ version.
There is also no shared_timed_mutex in obsolete libc++ versions.
2018-08-05 08:31:18 +01:00
jzmaddock
fb9957101f Correct use of __has_include in suffix.hpp. 2018-08-04 19:35:11 +01:00
jzmaddock
96a6cd878f Apply fix for [[fallthrough]] attribute in Intel C++ compiler.
Fixes: https://github.com/boostorg/config/issues/211.
2018-08-04 19:32:00 +01:00
jzmaddock
5364a2e8a7 Add new macro BOOST_NO_CXX17_HDR_OPTIONAL.
Fixes: https://github.com/boostorg/config/issues/236.
2018-08-04 19:21:21 +01:00
jzmaddock
ec3318d47a Fixes https://github.com/boostorg/config/issues/237.
Also tentatively adds .cu test file, though without boost.build support at present.
2018-08-04 18:15:48 +01:00
jzmaddock
eb4e8d58d5 Clang/libc++: Disable thread_local prior to clang-6 as it appears not to work.
See: https://github.com/boostorg/config/issues/231.
2018-08-04 17:55:58 +01:00
jzmaddock
304a62a85a CI: Try again with clang-6 libc++ test. 2018-08-04 17:03:36 +01:00
jzmaddock
fa426d8e24 CI: Add clang 6.0 and another libc++/clang config. 2018-08-04 11:16:15 +01:00
jzmaddock
ffd6682a8b No need to define BOOST_NO_CXX11_THREAD_LOCAL for recent libc++ versions on Linux.
Fixes https://github.com/boostorg/config/issues/231.
2018-08-04 08:25:09 +01:00
jzmaddock
d265f48d7b Don't use __attribute__((__visibility__("default"))) for clang on windows as it isn't supported.
Fixes https://github.com/boostorg/config/issues/226.
2018-08-03 18:21:18 +01:00
jzmaddock
cd5c825039 Document intptr_t in cstdint.h.
[SKIP CI]
Fixes https://github.com/boostorg/config/issues/234.
2018-08-03 13:09:53 +01:00
jzmaddock
76a94a4bcf Merge branch 'develop' of https://github.com/boostorg/config into develop 2018-08-02 18:30:13 +01:00
jzmaddock
7143b31545 Document recently added auto-linking macros.
[CI SKIP]
2018-08-02 18:29:55 +01:00
jzmaddock
87f56edb22 Merge pull request #228 from lanurmi/message-prefix
Prefix "Unknown compiler version ..." messages with "boost:".
2018-08-02 18:29:17 +01:00
jzmaddock
447dab3d20 Merge pull request #227 from isuruf/auto_link_system
Add support for user defined option BOOST_AUTO_LINK_SYSTEM
2018-08-02 18:19:53 +01:00
jzmaddock
0a22b8dbed Update last tested gcc version. 2018-07-31 19:50:31 +01:00
Lauri Nurmi
024dbed67e Merge branch 'develop' into message-prefix 2018-07-12 09:42:07 +03:00
Lauri Nurmi
cdf41efdd3 Prefix "Unknown compiler version ..." messages with "boost:".
Makes it easier to figure out which library is outputing such messages
during compilation.
2018-07-12 09:33:40 +03:00
Isuru Fernando
fb903c7180 Add support for user defined option BOOST_AUTO_LINK_SYSTEM
This is to support auto linking when the libraries are built with
system layout
2018-07-10 21:06:20 -06:00
jzmaddock
9fd87d6d7d CUDA 9 does support constexpr for msvc. 2018-07-09 17:54:42 +01:00
jzmaddock
47bc9827be Tentatively add support for gcc-8 CI testing. 2018-06-28 18:05:33 +01:00
Edward Diener
11d584332c Merge pull request #224 from boostorg/pdimov-patch-1
Add parentheses to BOOST_CUDA_VERSION
2018-04-28 14:40:50 -04:00
Peter Dimov
eb68e4725a Add parentheses to BOOST_CUDA_VERSION
Expressions like `BOOST_CUDA_VERSION / 1000000` don't work correctly; add parentheses around the expression to fix.
2018-04-28 20:32:16 +03:00
jzmaddock
c80a3088a0 #pragma detect_mismatch should be at global scope.
[CI SKIP]
2018-04-19 18:25:57 +01:00
jzmaddock
a97d5f32d4 Previous fix broke some tests, second try at warning suppression. 2018-04-19 09:12:18 +01:00
jzmaddock
39f48141c5 Fix some warnings and miswritten test case, add test for BOOST_HAS_PRAGMA_DETECT_MISMATCH. 2018-04-18 20:08:22 +01:00
jzmaddock
f3ebdc4558 Add docs for BOOST_NO_CXX17_IF_CONSTEXPR
[CI SKIP]
2018-04-18 19:30:39 +01:00
jzmaddock
29b754ed08 Merge pull request #216 from tzlaine/develop
Add BOOST_NO_CXX17_IF_CONSTEXPR.
2018-04-18 19:26:47 +01:00
jzmaddock
28b1b02546 Merge pull request #220 from pkolbus/remove-c4668-warning
Fix MSVC C4668 on _HAS_NAMESPACE
2018-04-18 19:21:29 +01:00
jzmaddock
6d8b3bc77b Merge pull request #222 from jlapolla-cray/cray-config
Update Cray config
2018-04-18 19:19:33 +01:00
morinmorin
3f10d20431 Merge pull request #223 from danieljames/feature/1.68.0
Bump to 1.68.0
2018-04-18 20:35:44 +09:00
Daniel James
17c6806797 Bump to 1.68.0 2018-04-15 20:53:20 +01:00
Justin LaPolla
d70b298826 Fix typo in comment in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
664b2fdec8 Update 'cray.hpp' for CCE 8.6.4 2018-04-11 13:25:17 -05:00
Justin LaPolla
42e1c7913a Update 'cray.hpp' for CCE 8.6.5 2018-04-11 13:25:17 -05:00
Justin LaPolla
5e33b4c27a Update 'cray.hpp' for upcoming release 2018-04-11 13:25:17 -05:00
Justin LaPolla
54c07da09b Update copyright information 2018-04-11 13:25:17 -05:00
Justin LaPolla
7238f9f0f6 Fix 'cray.hpp' BOOST_NO_CXX11_HDR_ATOMIC setting 2018-04-11 13:25:17 -05:00
Justin LaPolla
c04b991321 Add section for next release to 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
3144e2a8e4 Fix comments in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
620f819e3b Handle Cray developer builds 2018-04-11 13:25:17 -05:00
Justin LaPolla
07993e2e2f Remove redundant macro definitions in 'cray.hpp'
- This commit had no effect on test results.
2018-04-11 13:25:17 -05:00
Justin LaPolla
900c36e2fb 'cray.hpp' empty section for 8.7.0 2018-04-11 13:25:17 -05:00
Justin LaPolla
d1e0933528 Improve Cray 8.6.5 C++2003 configuration 2018-04-11 13:25:17 -05:00
Justin LaPolla
382913d25d Work on Cray 8.6.5 C++2011 configuration 2018-04-11 13:25:17 -05:00
Justin LaPolla
ea46cf5332 Set more macros in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
026ebd864e Alphabetize macros in 'cray.hpp'
- Did not change any macro values.
2018-04-11 13:25:17 -05:00
Justin LaPolla
f2eca6c7fa Add comments in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
3c4ea795d7 Add explanatory comments to 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
d26ae70b20 BOOST_NO_DEDUCED_TYPENAME test is broken 2018-04-11 13:25:17 -05:00
Justin LaPolla
90ae208868 BOOST_NO_COMPLETE_VALUE_INITIALIZATION test is broken 2018-04-11 13:25:17 -05:00
Justin LaPolla
82c6e933f1 Remove 'BOOST_HAS_CLOCK_GETTIME' from 'cray.hpp'
- This is a platform specific macro that is set elsewhere. It does not
  belong in a compiler configuration header.
- This commit has no effect on test results for CCE 8.6.5 with C++14.
2018-04-11 13:25:17 -05:00
Justin LaPolla
bf628a3b3e Fix 'BOOST_NO_DEDUCED_TYPENAME' in 'cray.hpp'
- Cray compiler requires the 'typename' keyword before a dependent type.
2018-04-11 13:25:17 -05:00
Justin LaPolla
f7165b4f70 Add comments on macro definitions in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
83c9f74990 Add '<linkflags>-lrt' to 'cray.hpp' test specification 2018-04-11 13:25:17 -05:00
Justin LaPolla
bea3493fcb Add comments in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
5679e66d10 Add more notes about 'cray.hpp' failing tests 2018-04-11 13:25:17 -05:00
Justin LaPolla
f34ea93eb2 Document test procedure for 'cray.hpp'
- It took me a while to figure out that I had to be in the 'test/all'
  directory.
2018-04-11 13:25:17 -05:00
Justin LaPolla
9c220e9fff Work on Cray 8.6.5 header for C++14
- We're down to 7 failing tests in 'test/all'.
2018-04-11 13:25:17 -05:00
Justin LaPolla
31cbd59c85 'cray.hpp' remove unneeded macros for C++14
- Test still passes: `b2 -q toolset=craype cxxstd=14
  cxxstd-dialect=gnu`.
2018-04-11 13:25:17 -05:00
Justin LaPolla
da5012a135 Work on 'cray.hpp' for C++2003 version 8.6.5
- All tests pass except the 'qnan' test mentioned in the previous
  commit. The test command line is: `b2 -q toolset=craype cxxstd=03
  cxxstd-dialect=gnu`
2018-04-11 13:25:17 -05:00
Justin LaPolla
76ee8244df Fix 'cray.hpp' for C++11 version 8.6.5
- All tests pass except that one about 'qnan' (described in the last
  commit). The test command line is: `b2 -q toolset=craype cxxstd=11
  cxxstd-dialect=gnu`.
2018-04-11 13:25:17 -05:00
Justin LaPolla
f18418b17a Work through tests with 'cray.hpp'
- Almost everything is passing. The only thing that's failing is
  'limits_test.cpp', which is failing tests on lines 160 and 161 (shown
  below).

  if(lim::is_iec559)
  {
    BOOST_TEST(! (qnan == qnan)); # __LINE__ == 160
    BOOST_TEST(qnan != qnan); # __LINE__ == 161
  }
2018-04-11 13:25:17 -05:00
Justin LaPolla
c78aa62469 Undefine temporary macros in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
e20aa6d187 Remove duplicate macros in 'cray.hpp' 2018-04-11 13:25:17 -05:00
Justin LaPolla
b21d168410 Sort macro definitions in 'cray.hpp'
- There are some duplicates. This commit does not remove the duplicates.
2018-04-11 13:25:17 -05:00
Justin LaPolla
9e9ba3361d Cosmetic refactoring
- Nothing really changed, besides readability.
2018-04-11 13:25:17 -05:00
Justin LaPolla
790a047107 Refactor cray.hpp logic
- The effect of the logic is the same as before, but it is organized
  according to the outline described in the comments. The only change in
  the logic is that we always include 'common_edg.hpp', since we know we
  are only dealing with EDG based compilers.
2018-04-11 13:25:17 -05:00
Justin LaPolla
745a1eb4f8 Refactoring cray.hpp
- Added comments and file structure outline.
- Added basic identifying information (e.g. BOOST_COMPILER).
2018-04-11 13:25:17 -05:00
jzmaddock
149bfe1c93 libcpp has no invoke_result. 2018-04-04 18:37:59 +01:00
jzmaddock
4370498457 std::invoke is only feature complete in VC2015.3 and later. 2018-04-04 18:20:47 +01:00
jzmaddock
3764d61f25 BOOST_NO_CXX17_STD_INVOKE: Update test case to check we have std::invoke_result.
MSVC has no std::invoke in C++14 mode.
GCC has no std::invoke_result prior to 7.1.
2018-04-03 19:08:57 +01:00
Peter Kolbus
77a290c237 Fix MSVC C4668 on _HAS_NAMESPACE
Resolve MSVC warning C4668 (undefined preprocessor macro) for _HAS_NAMESPACE by short-circuiting (checking for Green Hills compiler first).
2018-03-26 22:19:21 -05:00
jzmaddock
d9d5ece1c8 Revert "BOOST_STATIC_CONSTANT should use constexpr"
This reverts commit 51f1178921.
2018-03-18 10:53:41 +00:00
Zach Laine
d03a3756d9 Add static_asserts() to a false path in boost_no_cxx_if_constexpr.ipp as a
further check of implementation correctness.
2018-03-17 13:37:34 -05:00
jzmaddock
90238fe435 Merge pull request #213 from Kojoley/patch-1
BOOST_STATIC_CONSTANT should use constexpr
2018-03-16 18:24:58 +00:00
jzmaddock
2814b40640 Merge pull request #217 from Lastique/cygwin_dllattr
Use dllimport/dllexport with clang and gcc on Cygwin.
2018-03-16 18:15:30 +00:00
jzmaddock
f48572a067 Merge pull request #218 from danieljames/fix-boost-gcc-on-intel
Undefine BOOST_GCC for intel compilers
2018-03-16 18:13:59 +00:00
jzmaddock
dca252c087 cstdint.hpp: Move the #pragma system_header to catch more cases.
See https://github.com/boostorg/config/issues/190.
2018-03-16 18:10:43 +00:00
Daniel James
3cf434c002 Undefine BOOST_GCC for intel compilers
Otherwise it's just defined as BOOST_GCC_VERSION.
2018-03-11 21:12:53 +00:00
Andrey Semashev
3b709bc3ed Use dllimport/dllexport with clang and gcc on Cygwin.
This is required at least for Boost.WinAPI to match the declarations in
Windows SDK headers, which use dllimport.

Also, for clang on Windows, use dllimport/dllexport even beyond Cygwin.
The compiler does support these attributes, and it should for
compatibility with Windows headers.
2018-03-11 17:37:13 +03:00
jzmaddock
5ad0730630 visualc.hpp: Disable warning about outdated config. 2018-03-07 18:02:01 +00:00
Zach Laine
15d78e548f Add BOOST_NO_CXX17_IF_CONSTEXPR. 2018-03-06 17:44:52 -06:00
Nikita Kniazev
51f1178921 BOOST_STATIC_CONSTANT should use constexpr 2018-02-24 20:17:36 +03:00
jzmaddock
f68542269a config_info: add more architecture specific macros. 2018-02-22 12:50:48 +00:00
jzmaddock
bfd85ac978 Merge pull request #212 from glenfe/develop
Variable templates are somewhat unusable in GCC 5.1 (bug 65719)
2018-02-10 11:59:13 +00:00
Glen Fernandes
db4ebfca6f Variable templates are somewhat unusable in GCC 5.1 (bug 65719) 2018-02-09 07:58:30 -05:00
jzmaddock
0275380f32 Appveyor: try to fix quoting in batch script. 2018-01-30 17:58:24 +00:00
jzmaddock
29dbea1b5a Appveyor: yet another attempt to print config_info for each build config. 2018-01-30 09:17:01 +00:00
jzmaddock
2de7d27bfd Appveyor: correct ^ typo. 2018-01-28 19:43:33 +00:00
jzmaddock
bc99a449c1 Appveyor: give up trying to loop through cxxstd options for now... 2018-01-28 19:40:28 +00:00
jzmaddock
d566c119a7 Appveyor: yet another command line escaping attempt... 2018-01-28 19:37:10 +00:00
jzmaddock
8e14096bf3 appveyor: yet another try at command for loop. 2018-01-28 19:31:25 +00:00
jzmaddock
81b7dfb728 Appveyor: try again with FOR loop. 2018-01-28 19:23:20 +00:00
jzmaddock
5ac217aa3f Config: correct appveyor.yml multi-config builds. 2018-01-28 19:07:22 +00:00
jzmaddock
d0b3e9d59e Config: Fix up cygwin support as follows:
* Define BOOST_HAS_STDINT_H in more situations.
* Disable BOOST_NO_CXX14_HDR_SHARED_MUTEX in -std=c++XX mode as the std header doesn't compile (cygwin bug).
* Add more tests to CI.
2018-01-28 18:37:04 +00:00
jzmaddock
bb095bf0e7 Merge pull request #210 from boostorg/feature/travis-libc++
Add clang++-libc++, g++ 4.4, g++ 4.6 to Travis
2018-01-25 10:15:04 +00:00
jzmaddock
73cff8ec7c Merge pull request #209 from boostorg/pr/pragma-message-intel
Add file/line to BOOST_PRAGMA_MESSAGE on Intel C++
2018-01-25 10:13:35 +00:00
jzmaddock
e87ea67c61 Merge pull request #205 from akrzemi1/develop
Added macro BOOST_NO_CXX11_DEFAULTED_MOVES
2018-01-25 10:12:08 +00:00
jzmaddock
f04e129c05 Merge pull request #206 from danieljames/feature/deprecated-macros
Update deprecated macros
2018-01-21 10:19:58 +00:00
jzmaddock
611d428a37 Merge pull request #204 from boostorg/feature/header-deprecated
Add BOOST_HEADER_DEPRECATED
2018-01-21 10:18:58 +00:00
Peter Dimov
2ec8f0fc73 Add file/line to BOOST_PRAGMA_MESSAGE on Intel C++ 2018-01-19 05:01:39 +02:00
Peter Dimov
9d3cef6dba Define BOOST_NO_CXX11_THREAD_LOCAL for libc++ on Linux 2018-01-18 21:45:06 +02:00
Peter Dimov
2617671fd2 Use full g++ 4.4 version (4.4.7) 2018-01-18 00:47:00 +02:00
Peter Dimov
3143e185c6 Disable config_test_no_rtti on g++ 4.4 -std=c++0x 2018-01-17 19:27:38 +02:00
Peter Dimov
0ac815ed21 Add clang++-libc++, g++ 4.4, g++ 4.6 to Travis 2018-01-16 19:01:36 +02:00
Andrzej Krzemieński
cb2b706bf2 comment/whitespace fixes 2018-01-11 21:22:59 +01:00
Andrzej Krzemieński
0d0211e4d5 comment typeo fix 2018-01-11 21:21:20 +01:00
Daniel James
95fe1c03ac Update deprecated macros 2018-01-10 15:27:31 +00:00
akrzemi1
3ec5a2b573 Added macro BOOST_NO_CXX11_DEFAULTED_MOVES 2018-01-04 00:58:32 +01:00
Peter Dimov
da9f4d062b Add BOOST_HEADER_DEPRECATED 2017-12-23 01:52:52 +02:00
jzmaddock
24a2cc623d Merge pull request #202 from danieljames/feature/1.67.0
Bump to 1.67.0
2017-12-22 18:56:40 +00:00
Daniel James
a28e9c6c1c Bump to 1.67.0 2017-12-18 17:04:53 +00:00
jzmaddock
b95595517e Merge pull request #201 from boostorg/pr/more-gcc-macros
Print a few more g++/libstdc++ macros, notably _GLIBCXX_RELEASE
2017-12-17 09:15:51 +00:00
jzmaddock
cc5a67a18d Merge pull request #200 from boostorg/pr/more-ms-macros
Print more MS macros, taken from VS2017 15.5 yvals.h
2017-12-17 09:15:29 +00:00
Peter Dimov
d70e6fcc85 Print a few more g++/libstdc++ macros, notably _GLIBCXX_RELEASE 2017-12-17 03:15:08 +02:00
Peter Dimov
d5986d697c Print more MS macros, taken from VS2017 15.5 yvals.h 2017-12-15 19:25:13 +02:00
jzmaddock
08212107cb Merge pull request #199 from bitsrules/patch-1
Update to newest Visual Studio 2017
2017-12-13 12:11:18 +00:00
bitsrules
f6296c0495 Update to newest Visual Studio 2017 2017-12-13 14:58:09 +09:00
jzmaddock
4ba6b9d545 Config: Add file and line number info to visualc.hpp #pragma message. 2017-12-12 18:20:27 +00:00
jzmaddock
5fa3b7d00c Merge branch 'feature/pragma-message' into develop
# Fixed Conflicts:
#	doc/html/index.html
2017-12-12 18:15:37 +00:00
jzmaddock
ae3c914e70 Merge pull request #198 from boostorg/msvc_15_5
Apply changes required by MSVC-15.5.
2017-12-12 10:00:24 +00:00
jzmaddock
884133ef7f Config.MSVC-15.5: Fix macro spelling. 2017-12-11 20:02:32 +00:00
jzmaddock
baeb8cd550 Config.MSVC-15.5: Update docs. 2017-12-11 19:32:29 +00:00
jzmaddock
90466c9d32 Config.MSVC-15.5: Document changes to meaning of BOOST_NO_STD_ITERATOR. 2017-12-11 19:31:31 +00:00
jzmaddock
f060bb1eca Config.MSVC-15.5: Update list of predefined macros printed in config_info.cpp. 2017-12-11 19:27:43 +00:00
jzmaddock
1f86d51030 Config.MSVC-15.5: We still need to define BOOST_NO_TWO_PHASE_NAME_LOOKUP as we can't tell if /permissive- is in effect or not. 2017-12-11 19:27:07 +00:00
jzmaddock
464f30fe36 Config.MSVC-14.5: complete changes required, update appveyor.yml to test /permissive-. 2017-12-09 18:08:39 +00:00
jzmaddock
44e0d3ec75 Config.MSVC-14.5: complete configuration of new compiler features. 2017-12-09 18:02:33 +00:00
jzmaddock
280ebb9129 Config.msvc-15.5: Fix test case for BOOST_NO_CXX17_ITERATOR_TRAITS. 2017-12-09 17:45:26 +00:00
jzmaddock
e376809717 Config.msvc-15.5: enable some initial C++17 features. 2017-12-09 12:44:38 +00:00
jzmaddock
305f5a58ef Config.msvc-15.5: Fix tests that can't pass in C++17. 2017-12-09 12:42:47 +00:00
jzmaddock
ac0cc94982 Config.MSVC-15.5: BOOST_NO_CXX11_SFINAE_EXPR no longer required in C++14 or later mode. 2017-12-08 20:01:39 +00:00
jzmaddock
4ca03928e9 Merge pull request #191 from boostorg/pr/config-info-sd6
Print SD-6 macros and a few more VC STL ones
2017-12-04 19:59:23 +00:00
jzmaddock
f841c990c9 Merge pull request #194 from boostorg/pr/more-travis-configs
Update .travis.yml with more configurations, feature branch support
2017-12-04 19:58:26 +00:00
Peter Dimov
23327d6d01 Suppress BOOST_PRAGMA_MESSAGE messages when BOOST_DISABLE_PRAGMA_MESSAGE is defined 2017-12-04 19:15:36 +02:00
Peter Dimov
08bd1dbe71 Move BOOST_STRINGIZE, BOOST_JOIN to config/helper_macros.hpp; use BOOST_STRINGIZE in BOOST_PRAGMA_MESSAGE 2017-12-04 18:05:05 +02:00
Peter Dimov
77c6a915db Document BOOST_PRAGMA_MESSAGE header; fix mentions of detail/workaround.hpp 2017-12-04 01:24:39 +02:00
Peter Dimov
025db91843 Add BOOST_PRAGMA_MESSAGE 2017-12-04 00:55:14 +02:00
Peter Dimov
aa6193c839 Add cxxstd=11 to default g++ on Travis 2017-12-04 00:03:58 +02:00
Peter Dimov
3c00cb8760 Update .travis.yml 2017-12-03 23:30:13 +02:00
jzmaddock
aecc402971 Merge pull request #192 from OlafvdSpek/patch-1
Typo in visualc.hpp
2017-11-17 12:15:17 +00:00
Olaf van der Spek
9efa768e30 Typo in visualc.hpp 2017-11-17 11:18:48 +01:00
Peter Dimov
6e8df4186f Print SD-6 macros and a few more VC STL ones 2017-11-06 23:40:06 +02:00
jzmaddock
74ef9af25a Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-10-29 17:13:55 +00:00
jzmaddock
8a6d83ce29 Travis: simplify travis.yml to reduce testing load. 2017-10-29 17:13:34 +00:00
jzmaddock
644073bcf7 Merge pull request #187 from eldiener/develop
A number of places use BOOST_GCC_VERSION rather than just BOOST_GCC w…
2017-10-25 18:31:14 +01:00
jzmaddock
907cb7ca8b Merge pull request #185 from kuhlenough/develop
Update config for VxWorks 7
2017-10-25 18:30:04 +01:00
Edward Diener
f4d91c7aa2 A number of places use BOOST_GCC_VERSION rather than just BOOST_GCC when testing workarounds so we need to define BOOST_GCC_VERSION_WORKAROUND_GUARD also. 2017-10-07 09:47:41 -04:00
Brian Kuhl
421866a4b2 Update vxworks.hpp
Add additional configuration guidence
2017-09-05 22:01:13 -04:00
Brian Kuhl
2356a7e9c4 Additional feature disabling defines for Diab compiler 2017-09-02 06:38:18 -04:00
Brian Kuhl
8f1f13d0f2 Disable tests for VxWorks that use no-rtti
While it's possible to re-build VxWorks libraries with this option, there isn't a separate link path, so there's no way to test in the same pass as normal libraries
2017-09-02 06:26:39 -04:00
Brian Kuhl
918c5fc486 Update vxworks.hpp for VxWorks 7 2017-09-02 06:21:57 -04:00
87 changed files with 4060 additions and 552 deletions

View File

@@ -1,4 +1,4 @@
# Copyright 2016, 2017 Peter Dimov
# Copyright 2016, 2017, 2018 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
@@ -6,16 +6,11 @@ language: cpp
sudo: false
python: "2.7"
os:
- linux
- osx
branches:
only:
- master
- develop
- /feature\/.*/
env:
matrix:
@@ -28,10 +23,30 @@ matrix:
include:
- os: linux
env: TOOLSET=gcc COMPILER=g++ CXXSTD=c++03
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++03
compiler: g++-4.4
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
addons:
apt:
packages:
- g++-4.4
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-4.6
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
addons:
apt:
packages:
- g++-4.6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
addons:
apt:
packages:
@@ -40,16 +55,7 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++03
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
addons:
apt:
packages:
@@ -58,16 +64,7 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++03
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
addons:
apt:
packages:
@@ -76,16 +73,7 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.9
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++03
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -94,25 +82,7 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++03
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -121,7 +91,7 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
addons:
apt:
packages:
@@ -130,67 +100,28 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-6
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-6
- g++-8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++03
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++11
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++14
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -200,17 +131,7 @@ matrix:
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.5
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -220,17 +141,7 @@ matrix:
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -240,17 +151,7 @@ matrix:
- llvm-toolchain-precise-3.7
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -260,37 +161,7 @@ matrix:
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -300,134 +171,98 @@ matrix:
- llvm-toolchain-precise-3.9
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11
compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-4.0
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-5.0
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z
compiler: clang++-libc++
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- libc++-dev
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-5.0
- os: linux
compiler: clang++-6.0
env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-6.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: linux
compiler: clang++-libc++
env: TOOLSET=clang COMPILER="clang++-6.0 -stdlib=libc++" CXXSTD=03,11,14
addons:
apt:
packages:
- clang-6.0
- libc++-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode9.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode9
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode8.3
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
osx_image: xcode8.2
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode8.2
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode8.2
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
osx_image: xcode8.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode8.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode8.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode8.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode6.4
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
osx_image: xcode6.4
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
osx_image: xcode6.4
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
osx_image: xcode6.4
- os: linux
env: CMAKE_TEST_PROJECT=1
install: true
script:
- mkdir __build__ && cd __build__
- cmake ../test/cmake_test_project
- cmake --build .
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/detail
@@ -440,9 +275,11 @@ install:
script:
- |-
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
- (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET && ./config_info_travis)
- ./b2 -j3 libs/config/test toolset=$TOOLSET
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
- IFS=','
- for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done
- unset IFS
- ./b2 -j3 libs/config/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT
notifications:
email:

21
CMakeLists.txt Normal file
View File

@@ -0,0 +1,21 @@
# Copyright 2018 Mike Dev
# 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
#
# CAUTION!!!!
#
# This addition to Boost.Config should be considered experimental and is part
# of an ongoing effort to add CMake support Boost-wide.
#
# IT IS HIGHLY LIKELY THAT THIS FILE WILL CHANGE WITHOUT NOTICE!!!
#
# DO NOT REPLY ON THE CONTENTS OF THIS FILE!!!
#
cmake_minimum_required(VERSION 3.5)
project(BoostConfig LANGUAGES CXX)
add_library(boost_config INTERFACE)
add_library(Boost::config ALIAS boost_config)
target_include_directories(boost_config INTERFACE include)

12
appveyor.bat Normal file
View File

@@ -0,0 +1,12 @@
IF NOT DEFINED CXXSTD (
ECHO %ARGS:"=%
..\..\..\b2 config_info_travis_install %ARGS:"=%
config_info_travis
del config_info_travis.exe
)
IF DEFINED CXXSTD FOR %%A IN (%CXXSTD%) DO (
ECHO %ARGS:"=%
..\..\..\b2 -a -d2 config_info_travis_install %ARGS:"=% cxxstd=%%A
config_info_travis
del config_info_travis.exe
)

View File

@@ -21,7 +21,7 @@ environment:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest cxxflags=-permissive-
- ARGS: --toolset=msvc-9.0 address-model=32
- ARGS: --toolset=msvc-10.0 address-model=32
- ARGS: --toolset=msvc-11.0 address-model=32
@@ -30,14 +30,21 @@ environment:
- ARGS: --toolset=msvc-12.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
- ARGS: --toolset=gcc address-model=64
CXXSTD: 03,11,14,1z
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=64
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32
PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
CXXSTD: 03,11,14,1z
PATH: C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
CXXSTD: 03,11,14,1z
PATH: C:\MinGW\bin;%PATH%
- ARGS: --toolset=gcc address-model=64
CXXSTD: 03,11,14,1z
PATH: C:\cygwin64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32
CXXSTD: 03,11,14,1z
PATH: C:\cygwin\bin;%PATH%
install:
- cd ..
@@ -56,6 +63,5 @@ build: off
test_script:
- cd libs\config\test
- ..\..\..\b2 config_info_travis_install %ARGS%
- config_info_travis
- ..\..\..\b2 -j3 %ARGS%
- ..\appveyor.bat
- ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD%

View File

@@ -1,6 +1,6 @@
#
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Sun Jul 9 16:30:35 2017
# This file was automatically generated on Thu Aug 16 11:20:17 2018
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -14,6 +14,7 @@ import path ;
obj two_arg_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_TWO_ARG_USE_FACET ;
obj bethreads : test_case.cpp : <define>TEST_BOOST_HAS_BETHREADS ;
obj clock_gettime : test_case.cpp : <define>TEST_BOOST_HAS_CLOCK_GETTIME ;
obj pragma_detect_mismatch : test_case.cpp : <define>TEST_BOOST_HAS_PRAGMA_DETECT_MISMATCH ;
obj dirent_h : test_case.cpp : <define>TEST_BOOST_HAS_DIRENT_H ;
obj expm1 : test_case.cpp : <define>TEST_BOOST_HAS_EXPM1 ;
obj float128 : test_case.cpp : <define>TEST_BOOST_HAS_FLOAT128 ;
@@ -67,6 +68,7 @@ obj cxx11_addressof : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ADDRESSOF ;
obj cxx11_alignas : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ALIGNAS ;
obj cxx11_allocator : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ALLOCATOR ;
obj cxx11_atomic_smart_ptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR ;
obj cxx11_defaulted_moves : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DEFAULTED_MOVES ;
obj cxx11_final : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FINAL ;
obj cxx11_hdr_array : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_ARRAY ;
obj cxx11_hdr_atomic : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_ATOMIC ;
@@ -110,6 +112,9 @@ obj cxx14_return_type_deduction : test_case.cpp : <define>TEST_BOOST_NO_CXX14_RE
obj cxx14_std_exchange : test_case.cpp : <define>TEST_BOOST_NO_CXX14_STD_EXCHANGE ;
obj cxx14_variable_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES ;
obj cxx17_fold_expressions : test_case.cpp : <define>TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS ;
obj cxx17_hdr_optional : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_OPTIONAL ;
obj cxx17_hdr_string_view : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_STRING_VIEW ;
obj cxx17_if_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX17_IF_CONSTEXPR ;
obj cxx17_inline_variables : test_case.cpp : <define>TEST_BOOST_NO_CXX17_INLINE_VARIABLES ;
obj cxx17_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX17_ITERATOR_TRAITS ;
obj cxx17_std_apply : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STD_APPLY ;

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Sun Jul 9 16:30:35 2017
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -26,6 +26,11 @@
# error "Feature macro BOOST_HAS_CLOCK_GETTIME is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PRAGMA_DETECT_MISMATCH
# ifndef BOOST_HAS_PRAGMA_DETECT_MISMATCH
# error "Feature macro BOOST_HAS_PRAGMA_DETECT_MISMATCH is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_DIRENT_H
# ifndef BOOST_HAS_DIRENT_H
# error "Feature macro BOOST_HAS_DIRENT_H is not defined."
@@ -291,6 +296,11 @@
# error "Defect macro BOOST_NO_CXX11_ATOMIC_SMART_PTR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_MOVES
# ifdef BOOST_NO_CXX11_DEFAULTED_MOVES
# error "Defect macro BOOST_NO_CXX11_DEFAULTED_MOVES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_FINAL
# ifdef BOOST_NO_CXX11_FINAL
# error "Defect macro BOOST_NO_CXX11_FINAL is defined."
@@ -506,6 +516,21 @@
# error "Defect macro BOOST_NO_CXX17_FOLD_EXPRESSIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_HDR_OPTIONAL
# ifdef BOOST_NO_CXX17_HDR_OPTIONAL
# error "Defect macro BOOST_NO_CXX17_HDR_OPTIONAL is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_HDR_STRING_VIEW
# ifdef BOOST_NO_CXX17_HDR_STRING_VIEW
# error "Defect macro BOOST_NO_CXX17_HDR_STRING_VIEW is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_IF_CONSTEXPR
# ifdef BOOST_NO_CXX17_IF_CONSTEXPR
# error "Defect macro BOOST_NO_CXX17_IF_CONSTEXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_INLINE_VARIABLES
# ifdef BOOST_NO_CXX17_INLINE_VARIABLES
# error "Defect macro BOOST_NO_CXX17_INLINE_VARIABLES is defined."

View File

@@ -136,4 +136,11 @@ For example:
[endsect]
[section:intptr Integers for Storing Pointers]
The typedefs [^intptr_t] and [^uintptr_t] defined signed and unsigned integers respectively each capable of storing a pointer. The macro [^BOOST_HAS_INTPTR_T] is set when these types are available.
[endsect]
[endsect]

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.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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,7 +3,7 @@
<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.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -26,7 +26,7 @@
<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>
<div class="toc"><dl class="toc">
<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
@@ -939,7 +939,8 @@
<td>
<p>
The C++ implementation fails to provide the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
class.
class. Note that post C++17, this macro is re-purposed to indicate
that std::iterator has been removed or deprecated.
</p>
</td>
</tr>
@@ -2618,6 +2619,19 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_MOVES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support defaulted move constructor or assignment.
Other defaulted functions may still be supported.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
@@ -3806,6 +3820,30 @@
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_HDR_OPTIONAL</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_HDR_STRING_VIEW</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">string_view</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_STD_APPLY</span></code>
@@ -3829,6 +3867,31 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_ITERATOR_TRAITS</span></code>
</p>
</td>
<td>
<p>
The compiler does not support SFINAE-friendly <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_IF_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
The compiler does not support <code class="computeroutput"><span class="keyword">if</span>
<span class="keyword">constexpr</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -3956,7 +4019,7 @@
that is not otherwise described by one of the other Boost.Config
macros. To use the macro you must first
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
usage is then:
@@ -3987,7 +4050,7 @@
</p>
<p>
<span class="bold"><strong>Note</strong></span>: the ultimate source of documentation
for this macro is in <a href="../../../../../boost/detail/workaround.hpp" target="_top">boost/detail/workaround.hpp</a>.
for this macro is in <a href="../../../../../boost/config/workaround.hpp" target="_top">boost/config/workaround.hpp</a>.
</p>
</td>
</tr>
@@ -4183,7 +4246,16 @@
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
<code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
</p>
</td>
<td>
@@ -4452,6 +4524,8 @@
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_UNLIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
</p>
</td>
@@ -4520,6 +4594,54 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PRAGMA_MESSAGE</span><span class="special">(</span><span class="identifier">M</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Defined in header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">pragma_message</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>,
this macro expands to the equivalent of <code class="computeroutput"><span class="preprocessor">#pragma</span>
<span class="identifier">message</span><span class="special">(</span><span class="identifier">M</span><span class="special">)</span></code>.
<code class="computeroutput"><span class="identifier">M</span></code> must be a string
literal.
</p>
<p>
Example: <code class="computeroutput"><span class="identifier">BOOST_PRAGMA_MESSAGE</span><span class="special">(</span><span class="string">"This header
is deprecated."</span><span class="special">)</span></code>
</p>
<p>
The messages issued by <code class="computeroutput"><span class="identifier">BOOST_PRAGMA_MESSAGE</span></code>
can be suppressed by defining the macro <code class="computeroutput"><span class="identifier">BOOST_DISABLE_PRAGMA_MESSAGE</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HEADER_DEPRECATED</span><span class="special">(</span><span class="identifier">A</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Defined in header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">header_deprecated</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>,
this macro issues the message "This header is deprecated.
Use <code class="computeroutput"><span class="identifier">A</span></code> instead."
via <code class="computeroutput"><span class="identifier">BOOST_PRAGMA_MESSAGE</span></code>.
<code class="computeroutput"><span class="identifier">A</span></code> must be a string
literal.
</p>
<p>
Example: <code class="computeroutput"><span class="identifier">BOOST_HEADER_DEPRECATED</span><span class="special">(</span><span class="string">"&lt;boost/config/workaround.hpp&gt;"</span><span class="special">)</span></code>
</p>
<p>
The messages issued by <code class="computeroutput"><span class="identifier">BOOST_HEADER_DEPRECATED</span></code>
can be suppressed by defining the macro <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED_HEADERS</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -5884,7 +6006,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>
<div class="toc"><dl class="toc">
<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
@@ -6167,6 +6289,24 @@
Optional: when set the header will print out the name of the library
selected (useful for debugging).
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_AUTO_LINK_NOMANGLE</span></code></span></dt>
<dd><p>
Optional: whan set specifies that we should link to BOOST_LIB_NAME.lib,
rather than a mangled-name version.
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_AUTO_LINK_TAGGED</span></code></span></dt>
<dd><p>
Optional: Specifies that we link to libraries built with the --layout=tagged
option. This is essentially the same as the default name-mangled
version, but without the compiler name and version, or the Boost
version. Just the build options.
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_AUTO_LINK_SYSTEM</span></code></span></dt>
<dd><p>
Optional: Specifies that we link to libraries built with the --layout=system
option. This is essentially the same as the non-name-mangled version,
but with the prefix to differentiate static and dll builds
</p></dd>
</dl>
</div>
<p>

View File

@@ -3,7 +3,7 @@
<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">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Standard Integer Types</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="build_config.html" title="Build Time Configuration">
@@ -26,7 +26,7 @@
<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>
<div class="toc"><dl class="toc">
<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>
@@ -40,6 +40,7 @@
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.intptr">Integers for Storing Pointers</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
@@ -271,6 +272,17 @@
<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">INT64_C</span><span class="special">(</span><span class="number">0</span><span class="identifier">x1FFFFFFFF</span><span class="special">);</span>
</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.intptr"></a><a class="link" href="cstdint.html#boost_config.cstdint.intptr" title="Integers for Storing Pointers">Integers for Storing Pointers</a>
</h3></div></div></div>
<p>
The typedefs <code class="literal">intptr_t</code> and <code class="literal">uintptr_t</code>
defined signed and unsigned integers respectively each capable of storing
a pointer. The macro <code class="literal">BOOST_HAS_INTPTR_T</code> is set when these
types are available.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

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.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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>
<div class="toc"><dl class="toc">
<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.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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>
<div class="toc"><dl class="toc">
<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.77.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.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>
<dl class="toc">
<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>
@@ -101,6 +101,7 @@
integer types</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.intptr">Integers for Storing Pointers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
Boost Authors</a></span></dt>
@@ -127,7 +128,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>
<div class="toc"><dl class="toc">
<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
@@ -725,7 +726,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>
<div class="toc"><dl class="toc">
<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
@@ -992,7 +993,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: July 21, 2017 at 18:08:20 GMT</small></p></td>
<td align="left"><p><small>Last revised: August 16, 2018 at 10:24:31 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -232,7 +232,8 @@ The C++ standard library does not provide a standards conforming
The platform does not have a conforming version of `std::distance`.
]]
[[`BOOST_NO_STD_ITERATOR`][Standard library][
The C++ implementation fails to provide the `std::iterator` class.
The C++ implementation fails to provide the `std::iterator` class.
Note that post C++17, this macro is re-purposed to indicate that std::iterator has been removed or deprecated.
]]
[[`BOOST_NO_STD_ITERATOR_TRAITS`][Standard library][
The compiler does not provide a standard compliant implementation of
@@ -624,6 +625,9 @@ deleted (`= delete`) functions.
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_CXX11_DEFAULTED_MOVES`][The compiler does not support
defaulted move constructor or assignment. Other defaulted functions may still be supported.
]]
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
explicit conversion operators (`explicit operator T()`).
]]
@@ -943,9 +947,12 @@ that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
[[`BOOST_NO_CXX17_HDR_OPTIONAL`][The compiler does not support the header `<optional>`.]]
[[`BOOST_NO_CXX17_HDR_STRING_VIEW`][The compiler does not support the header `<string_view>`.]]
[[`BOOST_NO_CXX17_STD_APPLY`][The compiler does not support `std::apply()`.]]
[[`BOOST_NO_CXX17_STD_INVOKE`][The compiler does not support `std::invoke()`.]]
[[`BOOST_NO_CXX17_ITERATOR_TRAITS`][The compiler does not support SFINAE-friendly `std::iterator_traits`.]]
[[`BOOST_NO_CXX17_IF_CONSTEXPR`][The compiler does not support `if constexpr`.]]
]
[endsect]
@@ -979,7 +986,7 @@ workarounds for compiler/standard library defects.
This macro is used where a compiler specific workaround is required that is not otherwise
described by one of the other Boost.Config macros. To use the macro you must first
``
#include <boost/detail/workaround.hpp>
#include <boost/config/workaround.hpp>
``
usage is then:
``
@@ -1001,7 +1008,7 @@ For example
of `__BORLANDC__` /unless/ the macro `BOOST_DETECT_OUTDATED_WORKAROUNDS` is defined, in which case evaluates to
`(__BORLANDC__ <= 0x590)`.
[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/detail/workaround.hpp boost/detail/workaround.hpp].
[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/config/workaround.hpp boost/config/workaround.hpp].
]]
[[`BOOST_PREVENT_MACRO_SUBSTITUTION`][
Sometimes you have a function name with the same name as a C macro, for example "min" and "max"
@@ -1095,8 +1102,11 @@ In either case this macro has no effect on runtime behavior and performance
of code.
]]
[[`BOOST_EXPLICIT_TEMPLATE_TYPE(t)`
`BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`
`BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)`
`BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`][
Some compilers silently "fold" different function template instantiations if
some of the template parameters don't appear in the function parameter list.
@@ -1247,6 +1257,7 @@ If the compiler does not support this markup, `BOOST_NORETURN` is defined empty
additional macro `BOOST_NO_NORETURN` is defined.
]]
[[`BOOST_LIKELY(X)`
`BOOST_UNLIKELY(X)`][
These macros communicate to the compiler that the conditional expression `X` is likely
or unlikely to yield a positive result. The expression should result in a boolean value.
@@ -1275,6 +1286,23 @@ Usage example:
typedef unsigned int BOOST_MAY_ALIAS aliasing_uint;
``
]]
[[`BOOST_PRAGMA_MESSAGE(M)`][Defined in header `<boost/config/pragma_message.hpp>`,
this macro expands to the equivalent of `#pragma message(M)`. `M` must be a string
literal.
Example: `BOOST_PRAGMA_MESSAGE("This header is deprecated.")`
The messages issued by `BOOST_PRAGMA_MESSAGE` can be suppressed by defining the macro
`BOOST_DISABLE_PRAGMA_MESSAGE`.]]
[[`BOOST_HEADER_DEPRECATED(A)`][Defined in header `<boost/config/header_deprecated.hpp>`,
this macro issues the message "This header is deprecated. Use `A` instead." via
`BOOST_PRAGMA_MESSAGE`. `A` must be a string literal.
Example: `BOOST_HEADER_DEPRECATED("<boost/config/workaround.hpp>")`
The messages issued by `BOOST_HEADER_DEPRECATED` can be suppressed by defining the macro
`BOOST_ALLOW_DEPRECATED_HEADERS`.]]
]
[endsect]
@@ -1596,6 +1624,14 @@ Optional: when set link to dll rather than static library.
Optional: when set the header will print out the name of the library selected
(useful for debugging).
]]
[[`BOOST_AUTO_LINK_NOMANGLE`][
Optional: whan set specifies that we should link to BOOST_LIB_NAME.lib, rather than a mangled-name version.]]
[[`BOOST_AUTO_LINK_TAGGED`][Optional: Specifies that we link to libraries built with the --layout=tagged option.
This is essentially the same as the default name-mangled version, but without
the compiler name and version, or the Boost version. Just the build options.]]
[[`BOOST_AUTO_LINK_SYSTEM`][Optional: Specifies that we link to libraries built with the --layout=system option.
This is essentially the same as the non-name-mangled version, but with
the prefix to differentiate static and dll builds]]
]
If the compiler supports this mechanism, then it will be told to link against

View File

@@ -28,6 +28,9 @@ BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
This is essentially the same as the default name-mangled version, but without
the compiler name and version, or the Boost version. Just the build options.
BOOST_AUTO_LINK_SYSTEM: Specifies that we link to libraries built with the --layout=system option.
This is essentially the same as the non-name-mangled version, but with
the prefix to differentiate static and dll builds
These macros will be undef'ed at the end of the header, further this header
has no include guards - so be sure to include it only once from your library!
@@ -406,6 +409,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_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# endif
#elif defined(BOOST_AUTO_LINK_SYSTEM)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC

View File

@@ -19,9 +19,9 @@
// last known compiler version:
#if (__BORLANDC__ > 0x613)
//# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
//# else
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
//# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")
//# endif
#elif (__BORLANDC__ == 0x600)
# error "CBuilderX preview compiler is no longer supported"
@@ -174,6 +174,7 @@
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
@@ -238,6 +239,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH

View File

@@ -98,10 +98,14 @@
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
#else
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
#endif
//
@@ -290,6 +294,10 @@
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Clang 3.9+ in c++1z
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
# define BOOST_NO_CXX17_INLINE_VARIABLES

View File

@@ -22,9 +22,9 @@
// last known and checked version is 0x621
#if (__CODEGEARC__ > 0x621)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
@@ -167,6 +167,10 @@
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
//
// TR1 macros:
//

View File

@@ -50,7 +50,7 @@
// last known and checked version is 4245:
#if (__COMO_VERSION__ > 4245)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -149,6 +149,10 @@
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#ifdef c_plusplus
// EDG has "long long" in non-strict mode
// However, some libraries have insufficient "long long" support

View File

@@ -1,68 +1,227 @@
// (C) Copyright John Maddock 2011.
// (C) Copyright Cray, Inc. 2013
// Copyright 2011 John Maddock
// Copyright 2013, 2017-2018 Cray, Inc.
// 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.
// Greenhills C compiler setup:
// Cray C++ compiler setup.
//
// There are a few parameters that affect the macros defined in this file:
//
// - What version of CCE (Cray Compiling Environment) are we running? This
// comes from the '_RELEASE_MAJOR', '_RELEASE_MINOR', and
// '_RELEASE_PATCHLEVEL' macros.
// - What C++ standards conformance level are we using (e.g. '-h
// std=c++14')? This comes from the '__cplusplus' macro.
// - Are we using GCC extensions ('-h gnu' or '-h nognu')? If we have '-h
// gnu' then CCE emulates GCC, and the macros '__GNUC__',
// '__GNUC_MINOR__', and '__GNUC_PATCHLEVEL__' are defined.
//
// This file is organized as follows:
//
// - Verify that the combination of parameters listed above is supported.
// If we have an unsupported combination, we abort with '#error'.
// - Establish baseline values for all Boost macros.
// - Apply changes to the baseline macros based on compiler version. These
// changes are cummulative so each version section only describes the
// changes since the previous version.
// - Within each version section, we may also apply changes based on
// other parameters (i.e. C++ standards conformance level and GCC
// extensions).
//
// To test changes to this file:
//
// ```
// module load cce/8.6.5 # Pick the version you want to test.
// cd boost/libs/config/test/all
// b2 -j 8 toolset=cray cxxstd=03 cxxstd=11 cxxstd=14 cxxstd-dialect=gnu linkflags=-lrt
// ```
// Note: Using 'cxxstd-dialect=iso' is not supported at this time (the
// tests run, but many tests fail).
//
// Note: 'linkflags=-lrt' is needed in Cray Linux Environment. Otherwise
// you get an 'undefined reference to clock_gettime' error.
//
// Note: If a test '*_fail.cpp' file compiles, but fails to run, then it is
// reported as a defect. However, this is not actually a defect. This is an
// area where the test system is somewhat broken. Tests that are failing
// because of this problem are noted in the comments.
//
// Pay attention to the macro definitions for the macros you wish to
// modify. For example, only macros categorized as compiler macros should
// appear in this file; platform macros should not appear in this file.
// Also, some macros have to be defined to specific values; it is not
// always enough to define or undefine a macro.
//
// Macro definitions are available in the source code at:
//
// `boost/libs/config/doc/html/boost_config/boost_macro_reference.html`
//
// Macro definitions are also available online at:
//
// http://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html
//
// Typically, if you enable a feature, and the tests pass, then you have
// nothing to worry about. However, it's sometimes hard to figure out if a
// disabled feature needs to stay disabled. To get a list of disabled
// features, run 'b2' in 'boost/libs/config/checks'. These are the macros
// you should pay attention to (in addition to macros that cause test
// failures).
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
////
//// Front matter
////
#if _RELEASE_MAJOR < 8
// In a developer build of the Cray compiler (i.e. a compiler built by a
// Cray employee), the release patch level is reported as "x". This gives
// versions that look like e.g. "8.6.x".
//
// To accomplish this, the the Cray compiler preprocessor inserts:
//
// #define _RELEASE_PATCHLEVEL x
//
// If we are using a developer build of the compiler, we want to use the
// configuration macros for the most recent patch level of the release. To
// accomplish this, we'll pretend that _RELEASE_PATCHLEVEL is 99.
//
// However, it's difficult to detect if _RELEASE_PATCHLEVEL is x. We must
// consider that the x will be expanded if x is defined as a macro
// elsewhere. For example, imagine if someone put "-D x=3" on the command
// line, and _RELEASE_PATCHLEVEL is x. Then _RELEASE_PATCHLEVEL would
// expand to 3, and we could not distinguish it from an actual
// _RELEASE_PATCHLEVEL of 3. This problem only affects developer builds; in
// production builds, _RELEASE_PATCHLEVEL is always an integer.
//
// IMPORTANT: In developer builds, if x is defined as a macro, you will get
// an incorrect configuration. The behavior in this case is undefined.
//
// Even if x is not defined, we have to use some trickery to detect if
// _RELEASE_PATCHLEVEL is x. First we define BOOST_CRAY_x to some arbitrary
// magic value, 9867657. Then we use BOOST_CRAY_APPEND to append the
// expanded value of _RELEASE_PATCHLEVEL to the string "BOOST_CRAY_".
//
// - If _RELEASE_PATCHLEVEL is undefined, we get "BOOST_CRAY_".
// - If _RELEASE_PATCHLEVEL is 5, we get "BOOST_CRAY_5".
// - If _RELEASE_PATCHLEVEL is x (and x is not defined) we get
// "BOOST_CRAY_x":
//
// Then we check if BOOST_CRAY_x is equal to the output of
// BOOST_CRAY_APPEND. In other words, the output of BOOST_CRAY_APPEND is
// treated as a macro name, and expanded again. If we can safely assume
// that BOOST_CRAY_ is not a macro defined as our magic number, and
// BOOST_CRAY_5 is not a macro defined as our magic number, then the only
// way the equality test can pass is if _RELEASE_PATCHLEVEL expands to x.
//
// So, that is how we detect if we are using a developer build of the Cray
// compiler.
#define BOOST_CRAY_x 9867657 // Arbitrary number
#define BOOST_CRAY_APPEND(MACRO) BOOST_CRAY_APPEND_INTERNAL(MACRO)
#define BOOST_CRAY_APPEND_INTERNAL(MACRO) BOOST_CRAY_##MACRO
#if BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
// This is a developer build.
//
// - _RELEASE_PATCHLEVEL is defined as x, and x is not defined as a macro.
// Pretend _RELEASE_PATCHLEVEL is 99, so we get the configuration for the
// most recent patch level in this release.
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + 99)
#else
// This is a production build.
//
// _RELEASE_PATCHLEVEL is not defined as x, or x is defined as a macro.
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + _RELEASE_PATCHLEVEL)
#endif // BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
#undef BOOST_CRAY_APPEND_INTERNAL
#undef BOOST_CRAY_APPEND
#undef BOOST_CRAY_x
#ifdef __GNUC__
# define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Cray C++ version " BOOST_STRINGIZE(_RELEASE_MAJOR) "." BOOST_STRINGIZE(_RELEASE_MINOR) "." BOOST_STRINGIZE(_RELEASE_PATCHLEVEL)
#endif
// Since the Cray compiler defines '__GNUC__', we have to emulate some
// additional GCC macros in order to make everything work.
//
// FIXME: Perhaps Cray should fix the compiler to define these additional
// macros for GCC emulation?
#if __cplusplus >= 201103L && defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define __GXX_EXPERIMENTAL_CXX0X__ 1
#endif
////
//// Parameter validation
////
// FIXME: Do we really need to support compilers before 8.5? Do they pass
// the Boost.Config tests?
#if BOOST_CRAY_VERSION < 80000
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
#endif
//
// Check this is a recent EDG based compiler, otherwise we don't support it here:
//
#ifndef __EDG_VERSION__
// We only support recent EDG based compilers.
#ifndef __EDG__
# error "Unsupported Cray compiler, please try running the configure script."
#endif
#if _RELEASE_MINOR < 5 || __cplusplus < 201100
////
//// Baseline values
////
#include <boost/config/compiler/common_edg.hpp>
//
//
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_HAS_NRVO
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_HAS_NRVO
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_HAS_NRVO
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_THREAD_LOCAL
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
@@ -71,15 +230,15 @@
#define BOOST_SP_USE_PTHREADS
#define BOOST_AC_USE_PTHREADS
/* everything that follows is working around what are thought to be
* compiler shortcomings. Revist all of these regularly.
*/
//
// Everything that follows is working around what are thought to be
// compiler shortcomings. Revist all of these regularly.
//
//#define BOOST_USE_ENUM_STATIC_ASSERT
//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define
// These constants should be provided by the
// compiler, at least when -hgnu is asserted on the command line.
// These constants should be provided by the compiler.
#ifndef __ATOMIC_RELAXED
#define __ATOMIC_RELAXED 0
@@ -90,7 +249,55 @@
#define __ATOMIC_SEQ_CST 5
#endif
#else /* _RELEASE_MINOR */
////
//// Version changes
////
//
// 8.5.0
//
#if BOOST_CRAY_VERSION >= 80500
#if __cplusplus >= 201103L
#undef BOOST_HAS_NRVO
#undef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#undef BOOST_NO_CXX11_CHAR16_T
#undef BOOST_NO_CXX11_CHAR32_T
#undef BOOST_NO_CXX11_CONSTEXPR
#undef BOOST_NO_CXX11_DECLTYPE
#undef BOOST_NO_CXX11_DECLTYPE_N3276
#undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#undef BOOST_NO_CXX11_DELETED_FUNCTIONS
#undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#undef BOOST_NO_CXX11_FINAL
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#undef BOOST_NO_CXX11_LAMBDAS
#undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#undef BOOST_NO_CXX11_NOEXCEPT
#undef BOOST_NO_CXX11_NULLPTR
#undef BOOST_NO_CXX11_RANGE_BASED_FOR
#undef BOOST_NO_CXX11_RAW_LITERALS
#undef BOOST_NO_CXX11_REF_QUALIFIERS
#undef BOOST_NO_CXX11_RVALUE_REFERENCES
#undef BOOST_NO_CXX11_SCOPED_ENUMS
#undef BOOST_NO_CXX11_SFINAE_EXPR
#undef BOOST_NO_CXX11_STATIC_ASSERT
#undef BOOST_NO_CXX11_TEMPLATE_ALIASES
#undef BOOST_NO_CXX11_THREAD_LOCAL
#undef BOOST_NO_CXX11_UNICODE_LITERALS
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
#undef BOOST_NO_CXX11_VARIADIC_MACROS
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#undef BOOST_NO_SFINAE_EXPR
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY
#undef BOOST_SP_USE_PTHREADS
#undef BOOST_AC_USE_PTHREADS
#define BOOST_HAS_VARIADIC_TMPL
#define BOOST_HAS_UNISTD_H
@@ -114,11 +321,120 @@
#define BOOST_HAS_LONG_LONG
#define BOOST_HAS_FLOAT128
#if __cplusplus < 201400
#if __cplusplus < 201402L
#define BOOST_NO_CXX11_DECLTYPE_N3276
#endif /* __cpluspus */
#endif // __cplusplus < 201402L
#endif /* _RELEASE_MINOR */
#endif // __cplusplus >= 201103L
#endif // BOOST_CRAY_VERSION >= 80500
//
// 8.6.4
// (versions prior to 8.6.5 do not define _RELEASE_PATCHLEVEL)
//
#if BOOST_CRAY_VERSION >= 80600
#if __cplusplus >= 199711L
#define BOOST_HAS_FLOAT128
#define BOOST_HAS_PTHREAD_YIELD // This is a platform macro, but it improves test results.
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION // This is correct. Test compiles, but fails to run.
#undef BOOST_NO_CXX11_CHAR16_T
#undef BOOST_NO_CXX11_CHAR32_T
#undef BOOST_NO_CXX11_INLINE_NAMESPACES
#undef BOOST_NO_CXX11_FINAL
#undef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails.
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#undef BOOST_NO_CXX11_VARIADIC_MACROS
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
// 'BOOST_NO_DEDUCED_TYPENAME' test is broken. The test files are enabled /
// disabled with an '#ifdef BOOST_DEDUCED_TYPENAME'. However,
// 'boost/libs/config/include/boost/config/detail/suffix.hpp' ensures that
// 'BOOST_DEDUCED_TYPENAME' is always defined (the value it is defined as
// depends on 'BOOST_NO_DEDUCED_TYPENAME'). So, modifying
// 'BOOST_NO_DEDUCED_TYPENAME' has no effect on which tests are run.
//
// The 'no_ded_typename_pass.cpp' test should always compile and run
// successfully, because 'BOOST_DEDUCED_TYPENAME' must always have an
// appropriate value (it's not just something that you turn on or off).
// Therefore, if you wish to test changes to 'BOOST_NO_DEDUCED_TYPENAME',
// you have to modify 'no_ded_typename_pass.cpp' to unconditionally include
// 'boost_no_ded_typename.ipp'.
#undef BOOST_NO_DEDUCED_TYPENAME // This is correct. Test is broken.
#undef BOOST_NO_SFINAE_EXPR
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#undef BOOST_NO_CXX11_ALIGNAS
#undef BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_HDR_ATOMIC
#undef BOOST_NO_CXX11_HDR_FUNCTIONAL
#define BOOST_NO_CXX11_HDR_REGEX // This is correct. Test compiles, but fails to run.
#undef BOOST_NO_CXX11_SFINAE_EXPR
#undef BOOST_NO_CXX11_SMART_PTR
#undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#undef BOOST_NO_CXX14_CONSTEXPR
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION >= 80600
//
// 8.6.5
// (no change from 8.6.4)
//
//
// 8.7.0
//
#if BOOST_CRAY_VERSION >= 80700
#if __cplusplus >= 199711L
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#undef BOOST_NO_CXX11_HDR_ATOMIC
#undef BOOST_NO_CXX11_HDR_REGEX
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION >= 80700
//
// Next release
//
#if BOOST_CRAY_VERSION > 80799
#if __cplusplus >= 199711L
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION > 80799
////
//// Remove temporary macros
////
// I've commented out some '#undef' statements to signify that we purposely
// want to keep certain macros.
//#undef __GXX_EXPERIMENTAL_CXX0X__
//#undef BOOST_COMPILER
#undef BOOST_GCC_VERSION
#undef BOOST_CRAY_VERSION

View File

@@ -12,8 +12,15 @@
#include "boost/config/compiler/common_edg.hpp"
#define BOOST_HAS_LONG_LONG
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
#define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
#define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS
#define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_HDR_CODECVT
#define BOOST_NO_CXX11_NUMERIC_LIMITS
#define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__)

View File

@@ -124,6 +124,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#if (__DMC__ <= 0x840)
#error "Compiler not supported or configured - please reconfigure"
@@ -132,6 +135,6 @@
// last known and checked version is ...:
#if (__DMC__ > 0x848)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -99,10 +99,10 @@
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __GNUC__ >= 4
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)
// All Win32 development environments, including 64-bit Windows and MinGW, define
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
// so does not define _WIN32 or its variants.
// so does not define _WIN32 or its variants, but still supports dllexport/dllimport.
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
@@ -233,6 +233,7 @@
//
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
@@ -284,7 +285,7 @@
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
#if (BOOST_GCC_VERSION < 50200) || !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
@@ -298,6 +299,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#if __GNUC__ >= 7
# define BOOST_FALLTHROUGH __attribute__((fallthrough))
@@ -342,14 +346,14 @@
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 7.1:
#if (BOOST_GCC_VERSION > 70100)
// last known and checked version is 8.1:
#if (BOOST_GCC_VERSION > 80100)
# if defined(BOOST_ASSERT_CONFIG)
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
# else
// we don't emit warnings here anymore since there are no defect macros defined for
// gcc post 3.4, so any failures are gcc regressions...
//# warning "Unknown compiler version - please run the configure tests and report the results"
//# warning "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -102,6 +102,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__

View File

@@ -21,7 +21,7 @@
// last known and checked version is 0:
#if (__ghs > 0)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -142,6 +142,6 @@
// last known and checked version for PA-RISC is 38000
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -45,12 +45,18 @@
#undef BOOST_GCC_VERSION
#undef BOOST_GCC_CXX11
#undef BOOST_GCC
#undef BOOST_FALLTHROUGH
// Broken in all versions up to 17 (newer versions not tested)
#if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703)
# define BOOST_FALLTHROUGH [[fallthrough]]
#endif
#endif // defined(_MSC_VER)
#undef BOOST_COMPILER
@@ -557,7 +563,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
// We don't emit this warning any more, since we have so few
// defect macros set anyway (just the one).
//
//# pragma message("Unknown compiler version - please run the configure tests and report the results")
//# pragma message("boost: Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -25,7 +25,7 @@
// last known and checked version is 4001:
#if (__KCC_VERSION > 4001)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -167,6 +167,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
@@ -180,7 +183,7 @@
// last known and checked version:
#if (__MWERKS__ > 0x3205)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -116,6 +116,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
//
// versions check:
@@ -127,7 +130,7 @@
// last known and checked version is 0x890:
#if (MPW_CPLUS > 0x890)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -12,7 +12,7 @@
#endif
#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__)
# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__
# define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__)
#else
// We don't really know what the CUDA version is, but it's definitely before 7.5:
# define BOOST_CUDA_VERSION 7000000
@@ -33,8 +33,8 @@
#if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// Most recent CUDA (8.0) has no constexpr support in msvc mode:
#if defined(_MSC_VER)
// CUDA (8.0) has no constexpr support in msvc mode:
#if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)
# define BOOST_NO_CXX11_CONSTEXPR
#endif

View File

@@ -129,4 +129,7 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#endif

View File

@@ -182,6 +182,9 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Turn on threading support for Solaris 12.
// Ticket #11972

View File

@@ -56,7 +56,7 @@
// last known and checked version is 1210:
#if (__IBMCPP__ > 1210)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif
@@ -178,3 +178,6 @@
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif

View File

@@ -167,6 +167,7 @@
//
#if (_MSC_FULL_VER < 190023026)
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_DEFAULTED_MOVES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
@@ -200,6 +201,9 @@
//
#if (_MSC_VER < 1911) || (_MSVC_LANG < 201703)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
# define BOOST_NO_CXX17_IF_CONSTEXPR
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
// MSVC including version 14 has not yet completely
@@ -217,17 +221,31 @@
// 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)
// Still present in VC15.5, Dec 2017.
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++ 11:
//
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
// This is supported with /permissive- for 15.5 onwards, unfortunately we appear to have no way to tell
// if this is in effect or not, in any case nothing in Boost is currently using this, so we'll just go
// on defining it for now:
//
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#if (_MSC_VER < 1912) || (_MSVC_LANG < 201402)
// Supported from msvc-15.5 onwards:
#define BOOST_NO_CXX11_SFINAE_EXPR
#endif
#if (_MSC_VER < 1915) || (_MSVC_LANG < 201402)
// C++ 14:
// Still gives internal compiler error for msvc-15.5:
# define BOOST_NO_CXX14_CONSTEXPR
#endif
// C++ 17:
#if (_MSC_VER < 1912) || (_MSVC_LANG < 201703)
#define BOOST_NO_CXX17_INLINE_VARIABLES
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
//
// Things that don't work in clr mode:
@@ -270,9 +288,9 @@
# if _MSC_VER < 1400
// Note: I'm not aware of any CE compiler with version 13xx
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif
# elif _MSC_VER < 1500
# define BOOST_COMPILER_VERSION evc8
@@ -288,9 +306,9 @@
# 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"
# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif
# endif
# else
@@ -325,12 +343,17 @@
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
#endif
#include <boost/config/pragma_message.hpp>
//
// last known and checked version is 19.11.25547 (VC++ 2017.4):
#if (_MSC_VER > 1911)
// last known and checked version is 19.12.25830.2 (VC++ 2017.3):
#if (_MSC_VER > 1912)
# if defined(BOOST_ASSERT_CONFIG)
# error "Boost.Config is older than your current compiler version."
# elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
# pragma message("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an update Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.")
//
// Disabled as of March 2018 - the pace of VS releases is hard to keep up with
// and in any case, we have relatively few defect macros defined now.
// BOOST_PRAGMA_MESSAGE("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an updated Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.")
# endif
#endif

View File

@@ -246,6 +246,10 @@
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Clang 3.9+ in c++1z
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
# define BOOST_NO_CXX17_INLINE_VARIABLES

View File

@@ -153,6 +153,7 @@
#define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#define BOOST_NO_CXX17_INLINE_VARIABLES
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#define BOOST_NO_CXX17_IF_CONSTEXPR
// -------------------------------------

View File

@@ -39,8 +39,7 @@
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__)
// when using clang and cuda at same time, you want to appear as gcc
#elif defined __clang__ && !defined(__ibmxl__)
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"

View File

@@ -537,25 +537,10 @@ namespace std{ using ::type_info; }
// ---------------------------------------------------------------------------//
//
// Helper macro BOOST_STRINGIZE:
// Converts the parameter X to a string after macro replacement
// on X has been performed.
//
#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
#define BOOST_DO_STRINGIZE(X) #X
//
// Helper macro BOOST_JOIN:
// The following piece of macro magic joins the two
// arguments together, even when one of the arguments is
// itself a macro (see 16.3.1 in C++ standard). The key
// is that macro expansion of macro arguments does not
// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
//
#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
#define BOOST_DO_JOIN2( X, Y ) X##Y
#include <boost/config/helper_macros.hpp>
//
// Set some default values for compiler/library/platform names.
@@ -702,6 +687,11 @@ namespace std{ using ::type_info; }
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// Lack of defaulted moves is implied by the lack of either rvalue references or any defaulted functions
#if !defined(BOOST_NO_CXX11_DEFAULTED_MOVES) && (defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES))
# define BOOST_NO_CXX11_DEFAULTED_MOVES
#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
@@ -1033,6 +1023,19 @@ namespace std{ using ::type_info; }
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// This is a catch all case for obsolete compilers / std libs:
#if !defined(__has_include)
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#else
#if !__has_include(<optional>)
# define BOOST_NO_CXX17_HDR_OPTIONAL
#endif
#if !__has_include(<string_view>)
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
#endif
//
// Finish off with checks for macros that are depricated / no longer supported,
// if any of these are set then it's very likely that much of Boost will no

View File

@@ -0,0 +1,26 @@
#ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED
#define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED
// Copyright 2017 Peter Dimov.
//
// 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
//
// BOOST_HEADER_DEPRECATED("<alternative>")
//
// Expands to the equivalent of
// BOOST_PRAGMA_MESSAGE("This header is deprecated. Use <alternative> instead.")
//
// Note that this header is C compatible.
#include <boost/config/pragma_message.hpp>
#if defined(BOOST_ALLOW_DEPRECATED_HEADERS)
# define BOOST_HEADER_DEPRECATED(a)
#else
# define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.")
#endif
#endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED

View File

@@ -0,0 +1,37 @@
#ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
#define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
// Copyright 2001 John Maddock.
// Copyright 2017 Peter Dimov.
//
// 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
//
// BOOST_STRINGIZE(X)
// BOOST_JOIN(X, Y)
//
// Note that this header is C compatible.
//
// Helper macro BOOST_STRINGIZE:
// Converts the parameter X to a string after macro replacement
// on X has been performed.
//
#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
#define BOOST_DO_STRINGIZE(X) #X
//
// Helper macro BOOST_JOIN:
// The following piece of macro magic joins the two
// arguments together, even when one of the arguments is
// itself a macro (see 16.3.1 in C++ standard). The key
// is that macro expansion of macro arguments does not
// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
//
#define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y)
#define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y)
#define BOOST_DO_JOIN2(X, Y) X##Y
#endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED

View File

@@ -38,10 +38,21 @@
#ifdef _STDINT_H
#define BOOST_HAS_STDINT_H
#endif
#if __GNUC__ > 5 && !defined(BOOST_HAS_STDINT_H)
# define BOOST_HAS_STDINT_H
#endif
/// Cygwin has no fenv.h
#define BOOST_NO_FENV_H
// Cygwin has it's own <pthread.h> which breaks <shared_mutex> unless the correct compiler flags are used:
#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
#include <pthread.h>
#if !(__XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#endif
// boilerplate code:
#include <boost/config/detail/posix_features.hpp>

View File

@@ -1,30 +1,50 @@
// (C) Copyright Dustin Spicuzza 2009.
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
// Updated for VxWorks 7 by Brian Kuhl 2016
// 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.
// Since WRS does not yet properly support boost under vxWorks
// and this file was badly outdated, but I was keen on using it,
// I patched boost myself to make things work. This has been tested
// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
// to earlier 6.X versions! The only thing I know for sure is that
// very old versions of vxWorks (namely everything below 6.x) are
// absolutely unable to use boost. This is mainly due to the completely
// outdated libraries and ancient compiler (GCC 2.96 or worse). Do
// not even think of getting this to work, a miserable failure will
// be guaranteed!
// Old versions of vxWorks (namely everything below 6.x) are
// absolutely unable to use boost. Old STLs and compilers
// like (GCC 2.96) . Do not even think of getting this to work,
// a miserable failure will be guaranteed!
//
// Equally, this file has been tested for RTPs (Real Time Processes)
// only, not for DKMs (Downloadable Kernel Modules). These two types
// of executables differ largely in the available functionality of
// the C-library, STL, and so on. A DKM uses a library similar to those
// of vxWorks 5.X - with all its limitations and incompatibilities
// with respect to ANSI C++ and STL. So probably there might be problems
// with the usage of boost from DKMs. WRS or any voluteers are free to
// prove the opposite!
// the C-library, STL, and so on. A DKM uses a C89 library with no
// wide character support and no guarantee of ANSI C. The same Dinkum
// STL library is used in both contexts.
//
// Similarly the Dinkum abridged STL that supports the loosely specified
// embedded C++ standard has not been tested and is unlikely to work
// on anything but the simplest library.
// ====================================================================
//
// Additional Configuration
// -------------------------------------------------------------------
//
// Because of the ordering of include files and other issues the following
// additional definitions worked better outside this file.
//
// When building the log library add the following to the b2 invocation
// define=BOOST_LOG_WITHOUT_IPC
// and
// -DBOOST_LOG_WITHOUT_DEFAULT_FACTORIES
// to your compile options.
//
// When building the test library add
// -DBOOST_TEST_LIMITED_SIGNAL_DETAILS
// to your compile options
//
// When building containers library add
// -DHAVE_MORECORE=0
// to your c compile options so dlmalloc heap library is compiled
// without brk() calls
//
// ====================================================================
//
// Some important information regarding the usage of POSIX semaphores:
@@ -38,29 +58,14 @@
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
// priority inverting semaphores, which is fine. On the other hand,
// for RTP's it defaults to using non priority inverting semaphores,
// which could easily pose a serious problem for a real time process,
// i.e. deadlocks! To overcome this two possibilities do exist:
// which could easily pose a serious problem for a real time process.
//
// a) Patch every piece of boost that uses semaphores to instanciate
// the proper type of semaphores. This is non-intrusive with respect
// to the OS and could relatively easy been done by giving all
// semaphores attributes deviating from the default (for in-depth
// information see the POSIX functions pthread_mutexattr_init()
// and pthread_mutexattr_setprotocol()). However this breaks all
// too easily, as with every new version some boost library could
// all in a sudden start using semaphores, resurrecting the very
// same, hard to locate problem over and over again!
//
// b) We could change the default properties for POSIX-semaphores
// that VxWorks uses for RTP's and this is being suggested here,
// as it will more or less seamlessly integrate with boost. I got
// the following information from WRS how to do this, compare
// Wind River TSR# 1209768:
//
// Instructions for changing the default properties of POSIX-
// semaphores for RTP's in VxWorks 6.9:
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
// in the root of your Workbench-installation.
// To change the default properties for POSIX-semaphores in VxWorks 7
// enable core > CORE_USER Menu > DEFAULT_PTHREAD_PRIO_INHERIT
//
// In VxWorks 6.x so as to integrate with boost.
// - Edit the file
// installDir/vxworks-6.x/target/usr/src/posix/pthreadLib.c
// - Around line 917 there should be the definition of the default
// mutex attributes:
//
@@ -81,30 +86,11 @@
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
//
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
// - Finally, rebuild your VSB. This will rebuild the libraries
// with the changed properties. That's it! Now, using boost should
// no longer cause any problems with task deadlocks!
//
// And here's another useful piece of information concerning VxWorks'
// POSIX-functionality in general:
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
// kind of compatibility layer (sort of a wrapper) to emulate the
// POSIX-functionality by using its own resources and functions.
// At the time a task (thread) calls it's first POSIX-function during
// runtime it is being transformed by the OS into a POSIX-thread.
// This transformation does include a call to malloc() to allocate the
// memory required for the housekeeping of POSIX-threads. In a high
// priority RTP this malloc() call may be highly undesirable, as its
// timing is more or less unpredictable (depending on what your actual
// heap looks like). You can circumvent this problem by calling the
// function thread_self() at a well defined point in the code of the
// task, e.g. shortly after the task spawns up. Thereby you are able
// to define the time when the task-transformation will take place and
// you could shift it to an uncritical point where a malloc() call is
// tolerable. So, if this could pose a problem for your code, remember
// to call thread_self() from the affected task at an early stage.
//
// ====================================================================
// ====================================================================
// Block out all versions before vxWorks 6.x, as these don't work:
// Include header with the vxWorks version information and query them
@@ -158,11 +144,6 @@
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_MACRO_USE_FACET
// Generally unavailable functionality, delivered by boost's test function:
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_VARIADIC_MACROS
// Generally available threading API's:
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD
@@ -191,14 +172,7 @@
# endif
#endif
// vxWorks doesn't work with asio serial ports:
#define BOOST_ASIO_DISABLE_SERIAL_PORT
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
// ways to handle serial ports, incompatible with POSIX or anything...
// Maybe a specific implementation would be possible, but until the
// straight need arises... This implementation would presumably consist
// of some vxWorks specific ioctl-calls, etc. Any voluteers?
#if (_WRS_VXWORKS_MAJOR < 7)
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
// miserably fails to #include the required <sysLib.h> to make
// sysClkRateGet() available! So we manually include it here.
@@ -208,11 +182,12 @@
#endif
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
// UINT64_C() are defined errorneously, yielding not a signed/
// UINT64_C() are defined erroneously, yielding not a signed/
// unsigned long/long long type, but a signed/unsigned int/long
// type. Eventually this leads to compile errors in ratio_fwd.hpp,
// when trying to define several constants which do not fit into a
// long type! We correct them here by redefining.
#include <cstdint>
// Some macro-magic to do the job
@@ -231,12 +206,16 @@
#define UINT64_C(x) VX_JOIN(x, ULL)
// #include Libraries required for the following function adaption
#include <sys/time.h>
#endif // _WRS_VXWORKS_MAJOR < 7
#include <ioLib.h>
#include <tickLib.h>
#include <sys/time.h>
// Use C-linkage for the following helper functions
#ifdef __cplusplus
extern "C" {
#endif
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
// But we have the similar functions getprlimit() and setprlimit(),
@@ -248,7 +227,7 @@ extern "C" {
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
// Thus for DKMs there would have to be another implementation.
#ifdef __RTP__
#if defined ( __RTP__) && (_WRS_VXWORKS_MAJOR < 7)
inline int getrlimit(int resource, struct rlimit *rlp){
return getprlimit(0, 0, resource, rlp);
}
@@ -273,14 +252,20 @@ inline int truncate(const char *p, off_t l){
return close(fd);
}
#ifdef __GNUC__
#define ___unused __attribute__((unused))
#else
#define ___unused
#endif
// Fake symlink handling by dummy functions:
inline int symlink(const char*, const char*){
inline int symlink(const char* path1 ___unused, const char* path2 ___unused){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
inline ssize_t readlink(const char*, char*, size_t){
inline ssize_t readlink(const char* path1 ___unused, char* path2 ___unused, size_t size ___unused){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
@@ -297,8 +282,18 @@ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
}
#endif
#ifdef __cplusplus
} // extern "C"
#endif
// vxWorks does provide neither struct tms nor function times()!
/*
* moved to os/utils/unix/freind_h/times.h in VxWorks 7
* to avoid conflict with MPL operator times
*/
#if (_WRS_VXWORKS_MAJOR < 7)
#ifdef __cplusplus
// vxWorks provides neither struct tms nor function times()!
// We implement an empty dummy-function, simply setting the user
// and system time to the half of thew actual system ticks-value
// and the child user and system time to 0.
@@ -315,7 +310,8 @@ struct tms{
clock_t tms_cstime; // System CPU time of terminated child processes
};
inline clock_t times(struct tms *t){
inline clock_t times(struct tms *t){
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
@@ -327,8 +323,16 @@ inline clock_t times(struct tms *t){
return ticks;
}
extern void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
} // extern "C"
namespace std {
using ::times;
}
#endif // __cplusplus
#endif // _WRS_VXWORKS_MAJOR < 7
#ifdef __cplusplus
extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
// Put the selfmade functions into the std-namespace, just in case
namespace std {
@@ -339,9 +343,11 @@ namespace std {
using ::truncate;
using ::symlink;
using ::readlink;
using ::times;
using ::gettimeofday;
#if (_WRS_VXWORKS_MAJOR < 7)
using ::gettimeofday;
#endif
}
#endif // __cplusplus
// Some more macro-magic:
// vxWorks-around: Some functions are not present or broken in vxWorks
@@ -349,12 +355,13 @@ namespace std {
// Include signal.h which might contain a typo to be corrected here
#include <signal.h>
inline int getpagesize() { return sysconf(_SC_PAGESIZE); } // getpagesize is deprecated anyway!
#if (_WRS_VXWORKS_MAJOR < 7)
#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
#endif
#ifndef S_ISSOCK
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
#endif
inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
#ifndef FPE_FLTINV
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
#endif
@@ -371,22 +378,56 @@ typedef int locale_t; // locale_t is a POSIX-ex
// vxWorks 7 adds C++11 support
// however it is optional, and does not match exactly the support determined
// by examining Dinkum STL version and GCC version (or ICC and DCC)
// by examining the Dinkum STL version and GCC version (or ICC and DCC)
#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011
# define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_NUMERIC_LIMITS // max_digits10 in test/../print_helper.hpp
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST //serialization/test/test_list.cpp
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM //math/../test_data.hpp
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
#else
# define BOOST_NO_CXX11_NULLPTR
#ifndef BOOST_SYSTEM_NO_DEPRECATED
# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit
#endif
#endif
// NONE is used in enums in lamda and other libraries
#undef NONE
// restrict is an iostreams class
#undef restrict
// use fake poll() from Unix layer in ASIO to get full functionality
// most libraries will use select() but this define allows 'iostream' functionality
// which is based on poll() only
#if (_WRS_VXWORKS_MAJOR > 6)
# ifndef BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
# define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
# endif
#else
# define BOOST_ASIO_DISABLE_SERIAL_PORT
#endif

View File

@@ -0,0 +1,31 @@
#ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
#define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
// Copyright 2017 Peter Dimov.
//
// 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
//
// BOOST_PRAGMA_MESSAGE("message")
//
// Expands to the equivalent of #pragma message("message")
//
// Note that this header is C compatible.
#include <boost/config/helper_macros.hpp>
#if defined(BOOST_DISABLE_PRAGMA_MESSAGE)
# define BOOST_PRAGMA_MESSAGE(x)
#elif defined(__INTEL_COMPILER)
# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
#elif defined(__GNUC__)
# define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
#elif defined(_MSC_VER)
# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
#else
# define BOOST_PRAGMA_MESSAGE(x)
#endif
#endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED

View File

@@ -96,7 +96,8 @@
#include <exception>
#endif
#include <typeinfo>
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__)
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (defined(__ghs__) && !_HAS_NAMESPACE) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \
&& !defined(__VXWORKS__)
# define BOOST_NO_STD_TYPEINFO
#endif
@@ -172,11 +173,16 @@
// C++17 features
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
# define BOOST_NO_CXX17_STD_APPLY
#endif
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#endif
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)
# define BOOST_NO_CXX17_STD_INVOKE
#endif
#if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))
// Deprecated std::iterator:
# define BOOST_NO_STD_ITERATOR
#endif
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
// Intel's compiler can't handle this header yet:

View File

@@ -87,11 +87,10 @@
#endif
// C++17 features
#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_INVOKE
#endif
#if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
# define BOOST_NO_AUTO_PTR
@@ -104,6 +103,7 @@
#endif
#define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result)
#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
// This is a bit of a sledgehammer, because really it's just libc++abi that has no
@@ -113,6 +113,19 @@
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#if defined(__linux__) && (_LIBCPP_VERSION < 6000) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
// After libc++-dev is installed on Trusty, clang++-libc++ almost works,
// except uses of `thread_local` fail with undefined reference to
// `__cxa_thread_atexit`.
//
// clang's libc++abi provides an implementation by deferring to the glibc
// implementation, which may or may not be available (it is not on Trusty).
// clang 4's libc++abi will provide an implementation if one is not in glibc
// though, so thread local support should work with clang 4 and above as long
// as libc++abi is linked in.
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
@@ -123,4 +136,8 @@
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// --- end ---

View File

@@ -78,6 +78,7 @@
# include <unistd.h>
#endif
#ifndef __VXWORKS__ // VxWorks uses Dinkum, not GNU STL with GCC
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define BOOST_HAS_SLIST
@@ -91,6 +92,7 @@
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
# endif
#endif
#endif
//
// Decide whether we have C++11 support turned on:
@@ -292,13 +294,13 @@ extern "C" char *gets (char *__s);
#endif
//
// C++17 features in GCC 6.1 and later
// C++17 features in GCC 7.1 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 60100) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_INVOKE
#endif
#if (BOOST_LIBSTDCXX_VERSION < 70100) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
#if defined(__has_include)

View File

@@ -87,8 +87,10 @@
#endif
#ifndef BOOST_GCC
#define BOOST_GCC_WORKAROUND_GUARD 1
#define BOOST_GCC_VERSION_WORKAROUND_GUARD 1
#else
#define BOOST_GCC_WORKAROUND_GUARD 0
#define BOOST_GCC_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_XLCPP_ZOS
#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 1

View File

@@ -34,6 +34,17 @@
#endif
#include <boost/config.hpp>
//
// For the following code we get several warnings along the lines of:
//
// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
//
// So we declare this a system header to suppress these warnings.
// See also https://github.com/boostorg/config/issues/190
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
#pragma GCC system_header
#endif
//
// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
@@ -60,7 +71,7 @@
# include <stdint.h>
// There is a bug in Cygwin two _C macros
# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
# if defined(INTMAX_C) && defined(__CYGWIN__)
# undef INTMAX_C
# undef UINTMAX_C
# define INTMAX_C(c) c##LL
@@ -408,16 +419,6 @@ INT#_C macros if they're not already defined (John Maddock).
#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
(!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
//
// For the following code we get several warnings along the lines of:
//
// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
//
// So we declare this a system header to suppress these warnings.
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
#pragma GCC system_header
#endif
//
// Undef the macros as a precaution, since we may get here if <stdint.h> has failed
// to define them all, see https://svn.boost.org/trac/boost/ticket/12786
//

View File

@@ -49,7 +49,7 @@
namespace boost
{
# if defined(BOOST_NO_CHAR16_T) && (!defined(_MSC_VER) || _MSC_VER < 1600) // 1600 == VC++10
# if defined(BOOST_NO_CXX11_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
@@ -57,7 +57,7 @@ namespace boost
typedef std::u16string u16string;
# endif
# if defined(BOOST_NO_CHAR32_T) && (!defined(_MSC_VER) || _MSC_VER < 1600) // 1600 == VC++10
# if defined(BOOST_NO_CXX11_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

View File

@@ -19,7 +19,7 @@
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 106600
#define BOOST_VERSION 106900
//
// 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_66"
#define BOOST_LIB_VERSION "1_69"
#endif

View File

@@ -59,6 +59,7 @@ test-suite config
: #input-files
: #requirements
<rtti>off
<toolset>gcc-4.4.7,<cxxstd>0x:<build>no # <memory> does not compile with -fno-rtti
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
@@ -69,6 +70,7 @@ test-suite config
: #input-files
: #requirements
<exception-handling>off
<target-os>vxworks:<build>no # vx requires complete library rebuild to turn off exceptions
[ check-target-builds has_atomic_lib : <source>atomic ]
[ check-target-builds has_pthread_lib : <source>pthread ]
[ check-target-builds has_rt_lib : <source>rt ]
@@ -77,7 +79,9 @@ test-suite config
[ 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 config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off
<target-os>vxworks:<build>no
: 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 ]
@@ -88,6 +92,7 @@ test-suite config
<runtime-link>shared
<define>BOOST_DYN_LINK=1
<define>BOOST_CONFIG_NO_LIB=1
<target-os>vxworks:<link>shared
:
config_link_test
]
@@ -99,6 +104,9 @@ test-suite config
[ 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 ] ]
[ run helper_macros_test.cpp ]
[ compile pragma_message_test.cpp ]
[ compile header_deprecated_test.cpp ]
;
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 Sun Jul 9 16:30:35 2017
# This file was automatically generated on Thu Aug 16 11:20:17 2018
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -31,6 +31,9 @@ test-suite "BOOST_HAS_BETHREADS" :
test-suite "BOOST_HAS_CLOCK_GETTIME" :
[ run ../has_clock_gettime_pass.cpp ]
[ compile-fail ../has_clock_gettime_fail.cpp ] ;
test-suite "BOOST_HAS_PRAGMA_DETECT_MISMATCH" :
[ run ../has_detect_mismatch_pass.cpp ]
[ compile-fail ../has_detect_mismatch_fail.cpp ] ;
test-suite "BOOST_HAS_DIRENT_H" :
[ run ../has_dirent_h_pass.cpp ]
[ compile-fail ../has_dirent_h_fail.cpp ] ;
@@ -190,6 +193,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_DEFAULTED_MOVES" :
[ run ../no_cxx11_defaulted_moves_pass.cpp ]
[ compile-fail ../no_cxx11_defaulted_moves_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_FINAL" :
[ run ../no_cxx11_final_pass.cpp ]
[ compile-fail ../no_cxx11_final_fail.cpp ] ;
@@ -319,6 +325,15 @@ test-suite "BOOST_NO_CXX14_VARIABLE_TEMPLATES" :
test-suite "BOOST_NO_CXX17_FOLD_EXPRESSIONS" :
[ run ../no_cxx17_fold_expressions_pass.cpp ]
[ compile-fail ../no_cxx17_fold_expressions_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_HDR_OPTIONAL" :
[ run ../no_cxx17_hdr_optional_pass.cpp ]
[ compile-fail ../no_cxx17_hdr_optional_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_HDR_STRING_VIEW" :
[ run ../no_cxx17_hdr_string_view_pass.cpp ]
[ compile-fail ../no_cxx17_hdr_string_view_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_IF_CONSTEXPR" :
[ run ../no_cxx17_if_constexpr_pass.cpp ]
[ compile-fail ../no_cxx17_if_constexpr_fail.cpp ] ;
test-suite "BOOST_NO_CXX17_INLINE_VARIABLES" :
[ run ../no_cxx17_inline_variables_pass.cpp ]
[ compile-fail ../no_cxx17_inline_variables_fail.cpp ] ;

View File

@@ -0,0 +1,25 @@
// (C) Copyright John Maddock 2018.
// 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_PRAGMA_DETECT_MISMATCH
// TITLE: detect_mismatch pragma
// DESCRIPTION: The compiler supports #pragma detect_mismatch
#include <cstdlib>
namespace boost_has_pragma_detect_mismatch {
# pragma detect_mismatch("Boost_Config", "1")
int test()
{
return 0;
}
}

View File

@@ -28,6 +28,7 @@ template <class T>
int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
typedef typename alloc1_t::size_type size_type;
typedef typename alloc1_t::difference_type difference_type BOOST_UNUSED_ATTRIBUTE;
typedef typename alloc1_t::pointer pointer;
@@ -35,9 +36,10 @@ int test_allocator(const T& i)
typedef typename alloc1_t::reference reference;
typedef typename alloc1_t::const_reference const_reference;
typedef typename alloc1_t::value_type value_type BOOST_UNUSED_ATTRIBUTE;
#endif
alloc1_t a1;
(void)i;
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
pointer p = a1.allocate(1);
const_pointer cp = p;
a1.construct(p,i);
@@ -49,7 +51,7 @@ int test_allocator(const T& i)
if(cp != a1.address(cr)) return -1;
a1.destroy(p);
a1.deallocate(p,1);
#endif
return 0;
}

View File

@@ -0,0 +1,25 @@
// (C) Copyright Andrzej Krzemienski 2018
// 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_DEFAULTED_MOVES
// TITLE: C++0x defaulting of move constructor/assignment unavailable
// DESCRIPTION: The compiler does not support C++0x defaulting of move constructor/assignment
namespace boost_no_cxx11_defaulted_moves {
struct foo {
foo(foo&&) = default;
foo& operator=(foo&&) = default;
};
int test()
{
return 0;
}
}

View File

@@ -52,6 +52,8 @@ int test()
a1 |= 2;
a1 ^= 3;
a2 = 0u;
a3.store(&v);
a3.fetch_add(1);
a3.fetch_sub(1);

View File

@@ -17,6 +17,7 @@ namespace boost_no_cxx11_hdr_tuple {
int test()
{
std::tuple<int, int, long> t(0, 1, 2);
(void)t;
return 0;
}

View File

@@ -45,7 +45,11 @@ int test()
using std::is_trivially_copyable;
using std::is_standard_layout;
using std::is_pod;
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
// deprecated in C++ 17:
using std::is_literal_type;
using std::result_of;
#endif
using std::is_empty;
using std::is_polymorphic;
using std::is_abstract;
@@ -99,7 +103,6 @@ int test()
using std::conditional;
using std::common_type;
using std::underlying_type;
using std::result_of;
return 0;
}

View File

@@ -18,7 +18,7 @@ namespace boost_no_cxx11_pointer_traits {
template<class T>
struct pointer {
template<class U>
using rebind = pointer<bool>;
using rebind = pointer<U>;
};
template<class T>
@@ -31,7 +31,7 @@ struct result<pointer<bool> > {
int test()
{
return result<std::pointer_traits<pointer<int> >::rebind<char> >::value;
return result<std::pointer_traits<pointer<int> >::rebind<bool> >::value;
}
} /* boost_no_cxx11_pointer_traits */

View File

@@ -0,0 +1,23 @@
// (C) Copyright John Maddock 2018
// 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_CXX17_HDR_OPTIONAL
// TITLE: C++17 header <optional> unavailable
// DESCRIPTION: The standard library does not supply C++17 header <optional>
#include <optional>
namespace boost_no_cxx17_hdr_optional {
int test()
{
using std::optional;
return 0;
}
}

View File

@@ -0,0 +1,26 @@
// (C) Copyright John Maddock 2018
// 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_CXX17_HDR_STRING_VIEW
// TITLE: C++17 header <string_view> unavailable
// DESCRIPTION: The standard library does not supply C++17 header <string_view>
#include <string_view>
namespace boost_no_cxx17_hdr_string_view {
int test()
{
using std::string_view;
using std::wstring_view;
using std::u16string_view;
using std::u32string_view;
return 0;
}
}

View File

@@ -0,0 +1,45 @@
/*
Copyright 2018 T. Zachary Laine
(whatwasthataddress@gmail.com)
Distributed under Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
// MACRO: BOOST_NO_CXX17_IF_CONSTEXPR
// TITLE: C++17 if constexpr
// DESCRIPTION: C++17 if constexpr are not supported.
namespace boost_no_cxx17_if_constexpr {
template <typename T, typename U>
struct same
{
static constexpr bool value = false;
};
template <typename T>
struct same<T, T>
{
static constexpr bool value = true;
};
int test()
{
if constexpr (true) {
if constexpr (1 != 0) {
if constexpr (same<int, double>::value) {
static_assert(!same<int, double>::value, "");
return 1;
} else if constexpr (false) {
return 1;
} else {
return 0;
}
}
}
return 1;
}
}

View File

@@ -13,9 +13,16 @@
namespace boost_no_cxx17_iterator_traits {
struct iterator :
public std::iterator< std::random_access_iterator_tag, char >
struct iterator
{
typedef std::random_access_iterator_tag iterator_category;
typedef char value_type;
typedef std::ptrdiff_t difference_type;
typedef char* pointer;
typedef char& reference;
reference operator*()const;
iterator operator++();
};
struct non_iterator {};
@@ -37,11 +44,9 @@ struct has_iterator_category< Traits, typename void_type< typename Traits::itera
int test()
{
if (!has_iterator_category< std::iterator_traits< boost_no_cxx17_iterator_traits::iterator > >::value)
return 1;
static_assert(has_iterator_category< std::iterator_traits< boost_no_cxx17_iterator_traits::iterator > >::value, "has_iterator_category failed");
if (has_iterator_category< std::iterator_traits< boost_no_cxx17_iterator_traits::non_iterator > >::value)
return 2;
static_assert(!has_iterator_category< std::iterator_traits< boost_no_cxx17_iterator_traits::non_iterator > >::value, "has_iterator_category negative check failed");
return 0;
}

View File

@@ -19,7 +19,7 @@ int foo( int i, int j) {
int test() {
int i = 1, j = 2;
std::invoke( foo, i, j);
typename std::invoke_result<int(&)(int,int), int, int>::type t = std::invoke( foo, i, j);
return 0;
}

View File

@@ -28,20 +28,34 @@ template <class T>
int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
// stuff deprecated in C++17:
typedef typename alloc1_t::size_type size_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;
#endif
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;
alloc1_t a1;
alloc1_t a2(a1);
(void)i;
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
// stuff deprecated in C++17:
typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t;
typedef typename binder_t::other alloc2_t;
alloc2_t a3(a1);
// this chokes early versions of the MSL library
// and isn't currently required by anything in boost
// so don't test for now...
// a3 = a2;
(void)a2;
#endif
#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
pointer p = a1.allocate(1);
const_pointer cp = p;
a1.construct(p,i);
@@ -52,15 +66,11 @@ int test_allocator(const T& i)
if(p != a1.address(r)) return -1;
if(cp != a1.address(cr)) return -1;
a1.destroy(p);
#else
auto p = a1.allocate(1);
#endif
a1.deallocate(p,1);
alloc2_t a3(a1);
// this chokes early versions of the MSL library
// and isn't currently required by anything in boost
// so don't test for now...
// a3 = a2;
(void)a2;
return 0;
}

View File

@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.5)
add_subdirectory(../.. ${CMAKE_CURRENT_BINARY_DIR}/boost_config)
add_executable(boost_config_cmake_test main.cpp)
target_link_libraries(boost_config_cmake_test Boost::config)

View File

@@ -0,0 +1,5 @@
#include <boost/config.hpp>
int main()
{
}

View File

@@ -143,19 +143,53 @@ void print_compiler_macros()
PRINT_MACRO(_WCHAR_T_DEFINED);
#endif
// MSVC macros:
PRINT_MACRO(_ALIGNED_NEW_SUPPORTED);
PRINT_MACRO(__ATOM__);
PRINT_MACRO(__AVX__);
PRINT_MACRO(__AVX2__);
PRINT_MACRO(_CHAR_UNSIGNED);
PRINT_MACRO(_CLR_VER);
PRINT_MACRO(_CONTROL_FLOW_GUARD);
PRINT_MACRO(__cplusplus_cli);
PRINT_MACRO(__cplusplus_winrt);
PRINT_MACRO(_CPPRTTI);
PRINT_MACRO(_CPPUNWIND);
PRINT_MACRO(_DLL);
PRINT_MACRO(_INLINE_VARIABLES_SUPPORTED);
PRINT_MACRO(_ISO_VOLATILE);
PRINT_MACRO(_M_AMD64);
PRINT_MACRO(_M_ARM);
PRINT_MACRO(_M_ARM_ARMV7VE);
PRINT_MACRO(_M_ARM_FP);
PRINT_MACRO(_M_ARM64);
PRINT_MACRO(_M_CEE);
PRINT_MACRO(_M_CEE_PURE);
PRINT_MACRO(_M_CEE_SAFE);
PRINT_MACRO(_M_FP_EXCEPT);
PRINT_MACRO(_M_FP_FAST);
PRINT_MACRO(_M_FP_PRECISE);
PRINT_MACRO(_M_FP_STRICT);
PRINT_MACRO(_M_IX86);
PRINT_MACRO(_M_IX86_FP);
PRINT_MACRO(_M_X64);
PRINT_MACRO(_M_ALPHA);
PRINT_MACRO(_M_MPPC);
PRINT_MACRO(_M_MRX000);
PRINT_MACRO(_M_PPC);
PRINT_MACRO(_MANAGED);
PRINT_MACRO(_MSC_BUILD);
PRINT_MACRO(_MFC_VER);
PRINT_MACRO(_MSC_EXTENSIONS);
PRINT_MACRO(_MSC_VER);
PRINT_MACRO(_MSC_FULL_VER);
PRINT_MACRO(_MSVC_LANG);
PRINT_MACRO(_MSVC_WARNING_LEVEL);
PRINT_MACRO(__MSVC_RUNTIME_CHECKS);
PRINT_MACRO(_MT);
PRINT_MACRO(_NATIVE_WCHAR_T_DEFINED);
PRINT_MACRO(_NOEXCEPT_TYPES_SUPPORTED);
PRINT_MACRO(_OPENMP);
PRINT_MACRO(_PREFAST_);
// GNUC options:
PRINT_MACRO(__GNUC__);
PRINT_MACRO(__GNUC_MINOR__);
@@ -194,6 +228,32 @@ void print_compiler_macros()
PRINT_MACRO(__CYGWIN__);
PRINT_MACRO(__MINGW32__);
PRINT_MACRO(__GXX_RTTI);
PRINT_MACRO(__alpha__);
PRINT_MACRO(__amd64__);
PRINT_MACRO(__arm__);
PRINT_MACRO(__aarch64__);
PRINT_MACRO(__bfin);
PRINT_MACRO(__convex__);
PRINT_MACRO(__epiphany__);
PRINT_MACRO(__hppa__);
PRINT_MACRO(__ia64__);
PRINT_MACRO(__IA64);
PRINT_MACRO(__IA64__);
PRINT_MACRO(__m68k__);
PRINT_MACRO(__mips__);
PRINT_MACRO(__powerpc);
PRINT_MACRO(__powerpc__);
PRINT_MACRO(__powerpc64__);
PRINT_MACRO(__POWERPC__);
PRINT_MACRO(__ppc__);
PRINT_MACRO(__ppc64__);
PRINT_MACRO(__PPC__);
PRINT_MACRO(__PPC64__);
PRINT_MACRO(_ARCH_PPC);
PRINT_MACRO(_ARCH_PPC64);
PRINT_MACRO(__sh__);
PRINT_MACRO(__370__);
PRINT_MACRO(__THW_370__);
// HP aCC:
PRINT_MACRO(__HP_aCC);
PRINT_MACRO(_HPACC_);
@@ -581,10 +641,33 @@ void print_stdlib_macros()
#endif
// Dinkumware options:
PRINT_MACRO(_CPPLIB_VER);
PRINT_MACRO(_MSVC_STL_VERSION); // VS2017 15.5+
PRINT_MACRO(_MSVC_STL_UPDATE); // VS2017 15.5+
PRINT_MACRO(_GLOBAL_USING);
PRINT_MACRO(_HAS_EXCEPTIONS);
PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
// https://blogs.msdn.microsoft.com/vcblog/2016/08/12/stl-fixes-in-vs-2015-update-3/
PRINT_MACRO(_HAS_CXX17);
PRINT_MACRO(_HAS_AUTO_PTR_ETC);
PRINT_MACRO(_HAS_OLD_IOSTREAMS_MEMBERS);
PRINT_MACRO(_HAS_FUNCTION_ASSIGN);
PRINT_MACRO(_HAS_TR1_NAMESPACE);
PRINT_MACRO(_HAS_IDENTITY_STRUCT);
// VS2017 15.5+
PRINT_MACRO(_HAS_STATIC_RTTI);
PRINT_MACRO(_HAS_UNEXPECTED);
PRINT_MACRO(_HAS_STD_BYTE);
PRINT_MACRO(_HAS_FUNCTION_ALLOCATOR_SUPPORT);
PRINT_MACRO(_HAS_TR2_SYS_NAMESPACE);
PRINT_MACRO(_ENFORCE_MATCHING_ALLOCATORS);
PRINT_MACRO(_HAS_HAS_UNIQUE_OBJECT_REPRESENTATIONS);
PRINT_MACRO(_HAS_INLINE_VARIABLES);
PRINT_MACRO(_HAS_ALIGNED_NEW);
PRINT_MACRO(_HAS_NOEXCEPT_FUNCTION_TYPES);
PRINT_MACRO(_ITERATOR_DEBUG_LEVEL);
PRINT_MACRO(_HAS_ITERATOR_DEBUGGING);
PRINT_MACRO(_ITERATOR_DEBUG_ARRAY_OVERLOADS);
// Libc++:
PRINT_MACRO(_LIBCPP_VERSION);
// STLPort and generic SGI STL options:
@@ -764,6 +847,7 @@ void print_stdlib_macros()
PRINT_MACRO(_GLIBCXX_MEM_LIMITS);
PRINT_MACRO(_GLIBCXX_HOSTED);
PRINT_MACRO(_GLIBCXX_SJLJ_EXCEPTIONS);
PRINT_MACRO(_GLIBCXX_RELEASE);
// Modena C++ standard library
PRINT_MACRO(MSIPL_ANSI_HEADER);
@@ -970,6 +1054,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
PRINT_MACRO(BOOST_HAS_NRVO);
PRINT_MACRO(BOOST_HAS_PARTIAL_STD_ALLOCATOR);
PRINT_MACRO(BOOST_HAS_PRAGMA_DETECT_MISMATCH);
PRINT_MACRO(BOOST_HAS_PTHREADS);
PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
PRINT_MACRO(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE);
@@ -1010,6 +1095,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE);
PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE_N3276);
PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_MOVES);
PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
@@ -1073,6 +1159,9 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX14_STD_EXCHANGE);
PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
PRINT_MACRO(BOOST_NO_CXX17_FOLD_EXPRESSIONS);
PRINT_MACRO(BOOST_NO_CXX17_HDR_OPTIONAL);
PRINT_MACRO(BOOST_NO_CXX17_HDR_STRING_VIEW);
PRINT_MACRO(BOOST_NO_CXX17_IF_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CXX17_INLINE_VARIABLES);
PRINT_MACRO(BOOST_NO_CXX17_ITERATOR_TRAITS);
PRINT_MACRO(BOOST_NO_CXX17_STD_APPLY);
@@ -1142,10 +1231,22 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_VOID_RETURNS);
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
PRINT_MACRO(BOOST_MSVC);
PRINT_MACRO(BOOST_GCC);
PRINT_MACRO(BOOST_LIBSTDCXX_VERSION);
PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0));
PRINT_MACRO(BOOST_CONSTEXPR);
@@ -1159,6 +1260,65 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_MAY_ALIAS);
}
void print_sd6_macros()
{
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0096r5.html
// C++17:
PRINT_MACRO(__cpp_hex_float);
PRINT_MACRO(__cpp_inline_variables);
PRINT_MACRO(__cpp_aligned_new);
PRINT_MACRO(__cpp_guaranteed_copy_elision);
PRINT_MACRO(__cpp_noexcept_function_type);
PRINT_MACRO(__cpp_fold_expressions);
PRINT_MACRO(__cpp_capture_star_this);
PRINT_MACRO(__cpp_constexpr);
PRINT_MACRO(__cpp_if_constexpr);
PRINT_MACRO(__cpp_range_based_for);
PRINT_MACRO(__cpp_static_assert);
PRINT_MACRO(__cpp_deduction_guides);
PRINT_MACRO(__cpp_nontype_template_parameter_auto);
PRINT_MACRO(__cpp_namespace_attributes);
PRINT_MACRO(__cpp_enumerator_attributes);
PRINT_MACRO(__cpp_inheriting_constructors);
PRINT_MACRO(__cpp_variadic_using);
PRINT_MACRO(__cpp_structured_bindings);
PRINT_MACRO(__cpp_aggregate_bases);
PRINT_MACRO(__cpp_nontype_template_args);
PRINT_MACRO(__cpp_template_template_args);
// C++14:
PRINT_MACRO(__cpp_binary_literals);
PRINT_MACRO(__cpp_init_captures);
PRINT_MACRO(__cpp_generic_lambdas);
PRINT_MACRO(__cpp_sized_deallocation);
PRINT_MACRO(__cpp_decltype_auto);
PRINT_MACRO(__cpp_return_type_deduction);
PRINT_MACRO(__cpp_aggregate_nsdmi);
PRINT_MACRO(__cpp_variable_templates);
// C++11:
PRINT_MACRO(__cpp_unicode_characters);
PRINT_MACRO(__cpp_raw_strings);
PRINT_MACRO(__cpp_unicode_literals);
PRINT_MACRO(__cpp_user_defined_literals);
PRINT_MACRO(__cpp_threadsafe_static_init);
PRINT_MACRO(__cpp_lambdas);
PRINT_MACRO(__cpp_decltype);
PRINT_MACRO(__cpp_attributes);
PRINT_MACRO(__cpp_rvalue_references);
PRINT_MACRO(__cpp_variadic_templates);
PRINT_MACRO(__cpp_initializer_lists);
PRINT_MACRO(__cpp_delegating_constructors);
PRINT_MACRO(__cpp_nsdmi);
PRINT_MACRO(__cpp_ref_qualifiers);
PRINT_MACRO(__cpp_alias_templates);
// C++98:
PRINT_MACRO(__cpp_rtti);
PRINT_MACRO(__cpp_exceptions);
}
void print_separator()
{
std::cout <<
@@ -1176,6 +1336,8 @@ int main()
print_platform_macros();
print_separator();
print_boost_macros();
print_separator();
print_sd6_macros();
return 0;
}

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Sun Jul 9 16:30:35 2017
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// 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_DEFAULTED_MOVES
#include "boost_no_cxx11_defaulted_moves.ipp"
#else
namespace boost_no_cxx11_defaulted_moves = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_FINAL
#include "boost_no_cxx11_final.ipp"
#else
@@ -337,6 +342,21 @@ namespace boost_no_cxx14_variable_templates = empty_boost;
#else
namespace boost_no_cxx17_fold_expressions = empty_boost;
#endif
#ifndef BOOST_NO_CXX17_HDR_OPTIONAL
#include "boost_no_cxx17_hdr_optional.ipp"
#else
namespace boost_no_cxx17_hdr_optional = empty_boost;
#endif
#ifndef BOOST_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
namespace boost_no_cxx17_hdr_string_view = empty_boost;
#endif
#ifndef BOOST_NO_CXX17_IF_CONSTEXPR
#include "boost_no_cxx17_if_constexpr.ipp"
#else
namespace boost_no_cxx17_if_constexpr = empty_boost;
#endif
#ifndef BOOST_NO_CXX17_INLINE_VARIABLES
#include "boost_no_cxx17_inline_variables.ipp"
#else
@@ -813,6 +833,11 @@ namespace boost_has_bethreads = empty_boost;
#else
namespace boost_has_clock_gettime = empty_boost;
#endif
#ifdef BOOST_HAS_PRAGMA_DETECT_MISMATCH
#include "boost_has_detect_mismatch.ipp"
#else
namespace boost_has_pragma_detect_mismatch = empty_boost;
#endif
#ifdef BOOST_HAS_DIRENT_H
#include "boost_has_dirent_h.ipp"
#else
@@ -996,6 +1021,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_CLOCK_GETTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_pragma_detect_mismatch::test())
{
std::cerr << "Failed test for BOOST_HAS_PRAGMA_DETECT_MISMATCH at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_dirent_h::test())
{
std::cerr << "Failed test for BOOST_HAS_DIRENT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1261,6 +1291,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_defaulted_moves::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_DEFAULTED_MOVES 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;
@@ -1476,6 +1511,21 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX17_FOLD_EXPRESSIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx17_hdr_optional::test())
{
std::cerr << "Failed test for BOOST_NO_CXX17_HDR_OPTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx17_hdr_string_view::test())
{
std::cerr << "Failed test for BOOST_NO_CXX17_HDR_STRING_VIEW at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx17_if_constexpr::test())
{
std::cerr << "Failed test for BOOST_NO_CXX17_IF_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx17_inline_variables::test())
{
std::cerr << "Failed test for BOOST_NO_CXX17_INLINE_VARIABLES at: " << __FILE__ << ":" << __LINE__ << std::endl;

1971
test/config_test.cu Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Wed Apr 18 20:03:40 2018
// 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_PRAGMA_DETECT_MISMATCH
// This file should not compile, if it does then
// BOOST_HAS_PRAGMA_DETECT_MISMATCH should be defined.
// See file boost_has_detect_mismatch.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_PRAGMA_DETECT_MISMATCH
#include "boost_has_detect_mismatch.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_has_pragma_detect_mismatch::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Wed Apr 18 20:03:40 2018
// 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_PRAGMA_DETECT_MISMATCH
// This file should compile, if it does not then
// BOOST_HAS_PRAGMA_DETECT_MISMATCH should not be defined.
// See file boost_has_detect_mismatch.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_PRAGMA_DETECT_MISMATCH
#include "boost_has_detect_mismatch.ipp"
#else
namespace boost_has_pragma_detect_mismatch = empty_boost;
#endif
int main( int, char *[] )
{
return boost_has_pragma_detect_mismatch::test();
}

View File

@@ -0,0 +1,18 @@
// Copyright 2017 Peter Dimov.
//
// 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
#include <boost/config/header_deprecated.hpp>
BOOST_HEADER_DEPRECATED("<boost/config/workaround.hpp>")
#define ALTERNATIVE "the suitable component header"
BOOST_HEADER_DEPRECATED(ALTERNATIVE)
#include <boost/config.hpp> // BOOST_STRINGIZE
#define HEADER <boost/config/workaround.hpp>
BOOST_HEADER_DEPRECATED(BOOST_STRINGIZE(HEADER))

View File

@@ -0,0 +1,30 @@
// Copyright 2017 Peter Dimov.
//
// 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
#include <boost/config/helper_macros.hpp>
#include <boost/core/lightweight_test.hpp>
int main()
{
#define X pumpkin
BOOST_TEST_CSTR_EQ( BOOST_STRINGIZE(X), "pumpkin" );
BOOST_TEST_CSTR_EQ( BOOST_STRINGIZE(__LINE__), "16" );
#define Y 2
int BOOST_JOIN(X, Y) = 0;
(void)pumpkin2;
int BOOST_JOIN(X, __LINE__) = 0;
(void)pumpkin23;
BOOST_TEST_CSTR_EQ( BOOST_STRINGIZE(BOOST_JOIN(X, Y)), "pumpkin2" );
BOOST_TEST_CSTR_EQ( BOOST_STRINGIZE(BOOST_JOIN(X, __LINE__)), "pumpkin27" );
return boost::report_errors();
}

View File

@@ -207,7 +207,7 @@ int cpp_main(int, char*[])
test_float_limits(long_double(), "long double");
// Some compilers don't pay attention to std:3.6.1/5 and issue a
// warning here if "return 0;" is omitted.
return 0;
return boost::report_errors();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Wed Jan 03 23:31:30 2018
// 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_NO_CXX11_DEFAULTED_MOVES
// This file should not compile, if it does then
// BOOST_NO_CXX11_DEFAULTED_MOVES should not be defined.
// See file boost_no_cxx11_defaulted_moves.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_NO_CXX11_DEFAULTED_MOVES
#include "boost_no_cxx11_defaulted_moves.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx11_defaulted_moves::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Wed Jan 03 23:31:30 2018
// 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_NO_CXX11_DEFAULTED_MOVES
// This file should compile, if it does not then
// BOOST_NO_CXX11_DEFAULTED_MOVES should be defined.
// See file boost_no_cxx11_defaulted_moves.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_NO_CXX11_DEFAULTED_MOVES
#include "boost_no_cxx11_defaulted_moves.ipp"
#else
namespace boost_no_cxx11_defaulted_moves = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx11_defaulted_moves::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sat Aug 4 19:11:09 2018
// 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_NO_CXX17_HDR_OPTIONAL
// This file should not compile, if it does then
// BOOST_NO_CXX17_HDR_OPTIONAL should not be defined.
// See file boost_no_cxx17_hdr_optional.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_NO_CXX17_HDR_OPTIONAL
#include "boost_no_cxx17_hdr_optional.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_optional::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sat Aug 4 19:11:08 2018
// 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_NO_CXX17_HDR_OPTIONAL
// This file should compile, if it does not then
// BOOST_NO_CXX17_HDR_OPTIONAL should be defined.
// See file boost_no_cxx17_hdr_optional.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_NO_CXX17_HDR_OPTIONAL
#include "boost_no_cxx17_hdr_optional.ipp"
#else
namespace boost_no_cxx17_hdr_optional = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_optional::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// 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_NO_CXX17_HDR_STRING_VIEW
// This file should not compile, if it does then
// BOOST_NO_CXX17_HDR_STRING_VIEW should not be defined.
// See file boost_no_cxx17_hdr_string_view.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_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_string_view::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// 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_NO_CXX17_HDR_STRING_VIEW
// This file should compile, if it does not then
// BOOST_NO_CXX17_HDR_STRING_VIEW should be defined.
// See file boost_no_cxx17_hdr_string_view.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_NO_CXX17_HDR_STRING_VIEW
#include "boost_no_cxx17_hdr_string_view.ipp"
#else
namespace boost_no_cxx17_hdr_string_view = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx17_hdr_string_view::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Tue Mar 6 00:52:32 2018
// 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_NO_CXX17_IF_CONSTEXPR
// This file should not compile, if it does then
// BOOST_NO_CXX17_IF_CONSTEXPR should not be defined.
// See file boost_no_cxx17_if_constexpr.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_NO_CXX17_IF_CONSTEXPR
#include "boost_no_cxx17_if_constexpr.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx17_if_constexpr::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Tue Mar 6 00:52:32 2018
// 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_NO_CXX17_IF_CONSTEXPR
// This file should compile, if it does not then
// BOOST_NO_CXX17_IF_CONSTEXPR should be defined.
// See file boost_no_cxx17_if_constexpr.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_NO_CXX17_IF_CONSTEXPR
#include "boost_no_cxx17_if_constexpr.ipp"
#else
namespace boost_no_cxx17_if_constexpr = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx17_if_constexpr::test();
}

View File

@@ -0,0 +1,18 @@
// Copyright 2017 Peter Dimov.
//
// 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
#include <boost/config/pragma_message.hpp>
BOOST_PRAGMA_MESSAGE("first message")
#define MSG2 "second message"
BOOST_PRAGMA_MESSAGE(MSG2)
#include <boost/config.hpp> // BOOST_STRINGIZE
#define MSG3 third message
BOOST_PRAGMA_MESSAGE(BOOST_STRINGIZE(MSG3))