Compare commits

...

601 Commits

Author SHA1 Message Date
jzmaddock
200d36776e Merge branch 'develop' 2018-03-25 10:36:23 +01:00
jzmaddock
d9d5ece1c8 Revert "BOOST_STATIC_CONSTANT should use constexpr"
This reverts commit 51f1178921.
2018-03-18 10:53:41 +00: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
47c2b0a74a Merge branch 'develop'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2018-03-07 18:04:01 +00:00
jzmaddock
5ad0730630 visualc.hpp: Disable warning about outdated config. 2018-03-07 18:02:01 +00: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
29ceb18264 Merge branch 'develop' 2018-02-18 18:39:35 +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
Peter Dimov
19349c3941 Merge branch 'develop' 2018-01-13 21:33:48 +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
59ea08b918 Merge pull request #188 from KindDragon/patch-2
Update supported MSVC compiler version
2017-10-25 18:32:00 +01: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
Arkady Shapkin
4d88edd1e9 Update supported MSVC compiler version 2017-10-23 16:27:48 +03:00
Peter Dimov
068d8e1c4e Merge branch 'develop' 2017-10-21 22:16:16 +03:00
Peter Dimov
2e3392e00c Use architecture and address model in autolink, instead of just address model 2017-10-21 21:10:32 +03:00
Peter Dimov
2e2d4ce583 Add address model to auto_link.hpp 2017-10-21 21:10:19 +03:00
Peter Dimov
e276412eb9 Merge pull request #160 from boostorg/pr/arch-and-model-autolink
Use architecture and address model in autolink
2017-10-20 18:46:13 +03: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
jzmaddock
0cdf4a5da8 config_build_check.cpp: add workarounds from config.hpp for clang build. 2017-09-04 08:34:00 +01: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
jzmaddock
6102d18867 VC2017.3: don't test for wcscpy as VC2017.3 rejects it as "unsafe". 2017-09-01 18:33:35 +01:00
jzmaddock
46525c9bd5 Merge pull request #183 from boostorg/develop
Merge develop to master.
2017-08-26 12:59:39 +01:00
jzmaddock
f6c3a163f0 Merge branch 'master' into develop 2017-08-25 19:47:02 +01:00
jzmaddock
a7dd324d41 Merge pull request #175 from boostorg/jzmaddock-patch-6-1
Update for CUDA version macro changes.
2017-08-22 18:55:15 +01:00
jzmaddock
593389dc4b Update nvcc.hpp 2017-08-18 18:13:38 +01:00
jzmaddock
011426d510 Merge pull request #181 from KindDragon/patch-1
Print _MSVC_LANG for MSVC complier
2017-08-18 18:06:40 +01:00
jzmaddock
02888f5052 Merge pull request #179 from MarcelRaad/msvc1411
MSVC: 14.11 supports structured bindings in C++17 mode
2017-08-18 18:06:05 +01:00
jzmaddock
2e2285930c Merge pull request #178 from boostorg/messages
Improve outdated configuration / new compiler messages.
2017-08-18 18:05:21 +01:00
Arkady Shapkin
19429a2bde Print _MSVC_LANG for MSVC complier 2017-08-18 16:19:11 +03:00
Marcel Raad
b04ae6d7ab MSVC: 14.11 supports structured bindings in C++17 mode 2017-08-18 13:30:07 +02:00
jzmaddock
bb22ab3c5f Update sunpro_cc.hpp 2017-08-18 08:04:06 +01:00
jzmaddock
8c9e237f26 Improve outdated configuration / new compiler messages. 2017-08-17 17:51:48 +01:00
jzmaddock
ee11fba649 Merge pull request #177 from gongminmin/FixForVS2017.3
Update last known MSVC version to 19.11.25506 (VS2017.3).
2017-08-15 17:54:15 +01:00
Minmin Gong
a0147b73e8 Update last known MSVC version to 19.11.25506 (VS2017.3). 2017-08-14 18:49:00 -07:00
jzmaddock
17a4997aaa Update for CUDA version macro changes. 2017-08-11 19:38:00 +01:00
jzmaddock
b57df2a3c4 Merge pull request #174 from mclow/patch-3
Bump version number to 1.66
2017-08-11 19:23:34 +01:00
jzmaddock
a4815b04af Merge pull request #173 from kuhlenough/develop
VxWorks is also using ::intptr_t in boost namespace
2017-08-11 19:23:06 +01:00
jzmaddock
e27474534c Merge pull request #172 from sergey-shandar/patch-1
Incorrect MSVC version detection
2017-08-11 19:20:33 +01:00
Marshall Clow
b8fe4fe5e0 Bump version number to 1.66 2017-08-10 16:34:53 -07:00
Brian Kuhl
994e3cbba1 VxWorks is also using ::intptr_t in boost namespace 2017-08-10 12:40:22 -04:00
Marshall Clow
9e51aa81ca Fix copy-paste-o
Now checks `_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS` instead.
2017-08-09 17:55:26 +01:00
Marshall Clow
1e544eae21 Add code to set for BOOST_NO_CXX98_RANDOM_SHUFFLE and BOOST_NO_CXX98_BINDERS correctly 2017-08-09 17:55:25 +01:00
Sergey Shandar
d23ba31dad Incorrect MSVC version detection
I know, Boost doesn't support MSVC 5.0 and 6.0. But the expression is invalid. Another way to fix it:
```c++
#   if _MSC_VER < 1300
      // Note: Versions up to 7.0 aren't supported.
#     define BOOST_COMPILER_VERSION 6.0
#   elif _MSC_VER < 1310
#     define BOOST_COMPILER_VERSION 7.0
```
2017-08-08 17:36:58 -07:00
Edward Diener
6fe0977fc4 Merge pull request #171 from mclow/patch-3
Add code to set for BOOST_NO_CXX98_RANDOM_SHUFFLE and BOOST_NO_CXX98_…
2017-08-07 11:23:49 -04:00
Marshall Clow
186a7316b9 Fix copy-paste-o
Now checks `_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS` instead.
2017-08-07 06:11:30 -07:00
Marshall Clow
b2ee38f94b Add code to set for BOOST_NO_CXX98_RANDOM_SHUFFLE and BOOST_NO_CXX98_BINDERS correctly 2017-08-06 17:53:56 -07:00
jzmaddock
d0dab31612 Merge pull request #170 from dkolsen-pgi/pgi-compiler-support2
Update PGI C++ compiler support
2017-08-01 18:12:06 +01:00
jzmaddock
c5e6c45d93 Merge pull request #169 from dkolsen-pgi/pgi-compiler-support
Update PGI C++ compiler support
2017-08-01 18:11:07 +01:00
jzmaddock
911a6140e3 Merge pull request #168 from asomers/bin_bash
Fix bash paths in shebangs
2017-08-01 18:09:21 +01:00
David Olsen
4f1df700ad Update PGI C++ compiler support
When the PGI C++ compiler changed to be GNU compatible, pgi.hpp stopped being used, because the check for __GNUC__ in select_compiler_config.hpp was true before the preprocessor ever got to the check for __PGI.  Rearrange the order of the checks in select_compiler_config.hpp, moving the check for __PGI above the check for __GNUC__.

pgi.hpp was designed for a very old version of PGI C++, before it was GNU compatible.  The settings in that file won't work for PGI compilers of the last few years.  Replace the entire file with one that just includes gcc.hpp and then adjusts a few macros for areas where PGI is not quite GNU compatible.  (The old PGI compilers are not actively being used by any customers that we (PGI) know of, so keeping the old contents of pgi.hpp would be of little or no benefit.)
2017-07-27 14:49:09 -07:00
David Olsen
dd31807230 Update PGI C++ compiler support
Remove an old PGI-specific workaround for intptr_t.  The workaround is no longer necessary and now causes compilation errors.
2017-07-26 13:10:10 -07:00
Alan Somers
5cf4d8b369 Fix bash paths in shebangs
"/bin/bash" is a Linuxism.  "/usr/bin/env bash" is portable.
2017-07-26 11:23:05 -06:00
jzmaddock
04abb9270b Merge pull request #167 from boostorg/2017_07_21
Cherry pick patches from develop.
2017-07-23 17:08:03 +01:00
jzmaddock
8f09bc2846 Merge pull request #161 from Lastique/no_cxx17_std_iterator_traits
Add BOOST_NO_CXX17_ITERATOR_TRAITS macro.
2017-07-21 19:40:17 +01:00
jzmaddock
c21f170a97 Regenerate docs. 2017-07-21 19:08:40 +01:00
Andrey Semashev
d2b16361e6 Fixed references to headers in the docs. 2017-07-21 19:06:13 +01:00
jzmaddock
21830e11ff Merge pull request #162 from Lastique/may_alias
Added BOOST_MAY_ALIAS and BOOST_NO_MAY_ALIAS macros.
2017-07-21 18:52:27 +01:00
rsdale
da4c0418da Merge pull request #166 from boostorg/cray-revert-last-update
Revert last change.
2017-07-21 08:29:47 -05:00
Richard Dale
92ab15c361 Revert last change.
We will fix this in the compiler.
2017-07-21 08:20:15 -05:00
jzmaddock
7e4a1c85b7 Add link to bug report in comment.
[ci skip]
2017-07-21 13:25:49 +01:00
jzmaddock
6415a2cd43 Restrict last fix to CUDA 8 only - other versions are apparently unaffected. 2017-07-21 13:25:48 +01:00
jzmaddock
9910b354e5 CUDA: disable some C++11 and 14 features which aren't supported when compiling as a .cu file. 2017-07-21 13:25:48 +01:00
jzmaddock
08c7f03f29 Add android detection macros to config_info output. 2017-07-21 13:25:48 +01:00
jzmaddock
573c1a5027 Tentative fix for clang-3.0 failing config_test:
It appears not to completely support variadic template expansion.
2017-07-21 13:25:48 +01:00
jzmaddock
e56e24f0a3 gcc.hpp: Mingw has broken thread_local support.
See  https://sourceforge.net/p/mingw-w64/bugs/527/
2017-07-21 13:25:47 +01:00
jzmaddock
cdfa925095 Allow stdint.h for compilers other than gcc when building on linux with a recent glibc version.
See https://svn.boost.org/trac/boost/ticket/13045.
2017-07-21 13:25:47 +01:00
rsdale
a53698c4a8 Merge pull request #164 from boostorg/cray--boost-hash-no-extensions
add BOOST_HASH_NO_EXTENSIONS to compile/cray.hpp
2017-07-20 14:48:55 -05:00
Richard Dale
e2c4eb9de8 add BOOST_HASH_NO_EXTENSIONS to compile/cray.hpp
Avoid problems with multiple definitions of std::list using gnu headers.
	modified:   cray.hpp
2017-07-20 14:15:50 -05:00
Andrey Semashev
34f320c4c9 Added BOOST_NO_CXX17_ITERATOR_TRAITS macro.
The macro indicates that the standard library does not implement SFINAE-friendly
std::iterator_traits (LWG issue 2408, [iterator.traits]/2).
2017-07-12 20:37:47 +03:00
Andrey Semashev
4a58e5360a Added BOOST_MAY_ALIAS and BOOST_NO_MAY_ALIAS macros.
The macros can be used to mark types that can alias other types (i.e. break
C++ strict aliasing rules).
2017-07-12 17:51:53 +03:00
Peter Dimov
6098c81ee0 Use architecture and address model in autolink, instead of just address model 2017-07-07 02:56:46 +03:00
Peter Dimov
80fb8000f0 Add address model to auto_link.hpp 2017-06-30 20:57:59 +03:00
rsdale
3ffaa417c2 Merge pull request #158 from boostorg/cce86-cray-config
Cce86 cray config
2017-06-28 06:56:13 -05:00
Richard Dale
437f334745 Update compiler/cray.hpp to support c++03 and both 8.5 and 8.6 releases.
modified:   cray.hpp
2017-06-27 14:09:06 -05:00
Richard Dale
214c04f139 Update cray configuration for C++11.
Define BOOST_NO_CXX11_DECLTYPE_N3276 when __cplusplus < 201400.
This is for boost/variant.
2017-06-26 15:31:49 -05:00
rsdale
97a6bdbf46 Merge pull request #157 from boostorg/cce86-cray-config
Cray compiler config update to support current release and c++14.
2017-06-24 07:07:45 -05:00
Richard Dale
bfd7d04440 config/cray.hpp updated for release 8.6 of CCE (Cray Compiler Environment)
The default C++ standard support at this release is c++14, compared
with c++03 in previous releases.

	modified:   cray.hpp
2017-06-23 14:26:04 -05:00
rsd
e6deedfb33 Changed _RELEASE to _RELEASE_MAJOR. Mostly this is to test pushing to our fork. More to come. 2017-06-21 14:35:04 -05:00
jzmaddock
0324c92e5c Merge pull request #155 from boostorg/issue13045
Allow stdint.h for compilers other than gcc when building on linux wi…
2017-06-21 14:44:53 +01:00
jzmaddock
07aa7f248d Merge pull request #156 from glenfe/master
Master
2017-06-21 14:44:35 +01:00
Glen Fernandes
9aa6c016bb Merge develop
(Merges up to commit 'f867e70d06c45cd43776825ebf0c8b8a7328cdf6')
2017-06-19 07:11:52 -04:00
jzmaddock
02dd07481d Add link to bug report in comment.
[ci skip]
2017-06-15 17:54:41 +01:00
jzmaddock
d9332d3fa3 Restrict last fix to CUDA 8 only - other versions are apparently unaffected. 2017-06-15 17:53:14 +01:00
jzmaddock
9b8de65f1d CUDA: disable some C++11 and 14 features which aren't supported when compiling as a .cu file. 2017-06-15 13:04:18 +01:00
jzmaddock
d2b7f45ea2 Add android detection macros to config_info output. 2017-06-14 19:49:11 +01:00
jzmaddock
7d41f597cb Tentative fix for clang-3.0 failing config_test:
It appears not to completely support variadic template expansion.
2017-06-14 19:42:21 +01:00
jzmaddock
fe5e07b521 gcc.hpp: Mingw has broken thread_local support.
See  https://sourceforge.net/p/mingw-w64/bugs/527/
2017-06-14 19:32:59 +01:00
jzmaddock
f867e70d06 Merge pull request #154 from glenfe/develop
Move workaround.hpp out of detail (used by more than Config)
2017-06-13 18:51:00 +01:00
jzmaddock
0debb6db2f Allow stdint.h for compilers other than gcc when building on linux with a recent glibc version.
See https://svn.boost.org/trac/boost/ticket/13045.
2017-06-12 19:38:54 +01:00
Glen Fernandes
2dfd1a95ba Move workaround.hpp out of detail (used by more than Config) 2017-06-12 07:57:34 -04:00
jzmaddock
4c7b536b3a Merge pull request #153 from glenfe/fallthrough
Add BOOST_FALLTHROUGH for gcc
2017-06-12 11:53:03 +01:00
Glen Fernandes
62189d3b86 Add BOOST_FALLTHROUGH for gcc 2017-06-11 17:56:31 -04:00
jzmaddock
5d17cf16be Merge pull request #151 from boostorg/msvc2017
MSVC2017: Add appveyor testing.
2017-05-29 21:12:58 +01:00
jzmaddock
6f0c7dfb0c Merge branch 'develop' into msvc2017 2017-05-29 19:15:22 +01:00
jzmaddock
fa8c3269da Merge pull request #149 from glenfe/develop
Add feature defect detection for C++17 structured bindings and inline variables
2017-05-29 18:32:37 +01:00
jzmaddock
c08b859996 MSVC2017: Add appveyor testing.
Disable C++14 constexpr support as our tests don't pass.
2017-05-29 18:22:10 +01:00
Glen Fernandes
a6ccb8f910 Add BOOST_NO_CXX17_FOLD_EXPRESSIONS detection 2017-05-29 10:29:17 -04:00
Glen Fernandes
1995778211 Add BOOST_NO_CXX17_INLINE_VARIABLES detection 2017-05-29 10:01:36 -04:00
Glen Fernandes
fe06370972 Add BOOST_NO_CXX17_STRUCTURED_BINDINGS detection 2017-05-29 09:57:18 -04:00
jzmaddock
1074d5ed6e Merge pull request #148 from boostorg/develop
Merge removal of legacy TR1 support.
2017-05-29 08:47:03 +01:00
jzmaddock
833634021a Merge pull request #147 from boostorg/remove_tr1
Begin to remove all references to TR1.
2017-05-28 11:06:06 +01:00
jzmaddock
373710b7ce Begin to remove all references to TR1. 2017-05-28 10:11:59 +01:00
jzmaddock
23060d8973 Merge branch 'develop' of https://github.com/boostorg/config into develop
# Conflicts:
#	appveyor.yml
2017-05-27 09:59:22 +01:00
jzmaddock
076c86864c CI: streamline dependencies.
Add GCC testers to Appveyor.
2017-05-27 09:57:41 +01:00
jzmaddock
ffb31de966 Merge pull request #144 from boostorg/jzmaddock-patch-3
Appveyor: we need to copy the latest Git commit, not check out the su…
2017-05-26 12:43:29 +01:00
jzmaddock
18c69e9f40 Appveyor: we need to copy the latest Git commit, not check out the super-project which may be out of date! 2017-05-26 08:45:21 +01:00
jzmaddock
6c452d6e28 Merge pull request #142 from boostorg/master
Master
2017-05-26 08:37:54 +01:00
jzmaddock
6ea02d000f Merge pull request #143 from boostorg/jzmaddock-patch-2
Travis: remove redundent git clone
2017-05-26 08:37:04 +01:00
jzmaddock
07312935fd Travis: remove redundent git clone 2017-05-25 19:56:41 +01:00
jzmaddock
bcf6a6f6a4 Merge pull request #141 from boostorg/develop
Merge develop to master
2017-05-25 17:58:08 +01:00
jzmaddock
9f39b329fb Appveyor: remove test matrix entities that can not currently be built. 2017-05-25 12:25:40 +01:00
jzmaddock
4af206ea53 Appveyor: try enabling msvc-14.1, and add address-model to matrix. 2017-05-25 08:47:08 +01:00
jzmaddock
e41b4e22ac Jamfile needs to import testing module. 2017-05-24 18:02:43 +01:00
jzmaddock
d0d8da8823 appveyor.yml: Fix config_info name. 2017-05-24 08:32:19 +01:00
jzmaddock
1f83bcb56a appveyor.yml: correct directories now that we can see where they are. 2017-05-23 19:52:30 +01:00
jzmaddock
2e38c1cded appveyor.yml: still can't get the directories quite right - try again with some debugging. 2017-05-23 19:36:36 +01:00
jzmaddock
c6d2300f07 appveyor.yml: try again with simplified directory structure. 2017-05-23 19:18:12 +01:00
jzmaddock
3651139cc1 Simplify appveyor.yml directory usage. 2017-05-23 19:16:06 +01:00
jzmaddock
da36b699fc Try again with appveyor.yml 2017-05-23 19:06:54 +01:00
jzmaddock
ba4210f244 Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-05-23 19:05:12 +01:00
jzmaddock
15fb8c47f8 Add first tentative appveyor.yml file. 2017-05-23 19:04:55 +01:00
jzmaddock
3df5411858 Merge pull request #138 from boostorg/thread_local_patch
Enhance thread_local tests.
2017-05-21 19:11:30 +01:00
jzmaddock
63b39e2758 Enhance thread_local tests.
Try to reproduce issues:
https://github.com/libbitcoin/libbitcoin/issues/733#issuecomment-301652210
https://github.com/boostorg/multiprecision/issues/20
2017-05-21 11:41:04 +01:00
jzmaddock
493e3ba9de We should have at least one set of tests that enable GNU extensions. 2017-05-21 09:33:14 +01:00
jzmaddock
cf95f4b62c Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-05-20 17:59:45 +01:00
jzmaddock
ee93e38022 More travis fixes:
Fix compiler name in config_info output generation.
Remove g++7 tests: apparently it's not supported yet.
2017-05-20 17:59:33 +01:00
jzmaddock
ecd1c79fd0 Merge pull request #134 from glenfe/develop
Add BOOST_NO_CXX11_POINTER_TRAITS library defect detection
2017-05-20 11:30:15 +01:00
jzmaddock
55c0e345ab Merge pull request #137 from mclow/develop
Update boost_has_nl_types_h.ipp
2017-05-20 11:28:37 +01:00
jzmaddock
b73cb38a43 Merge pull request #136 from mclow/patch-2
define BOOST_NO_AUTO_PTR when building with libc++ and C++17
2017-05-20 11:28:11 +01:00
jzmaddock
f5afbf8e27 Merge pull request #135 from DanielaE/fix/dinkumware-v650-apply
The library implementations in MSVC 14.0 and 14.1 have both version n…
2017-05-20 11:27:23 +01:00
jzmaddock
4a02ac84e2 More travis improvements:
Output config_info built from b2.
Add more XCode versions to the test matrix.
2017-05-20 10:53:25 +01:00
Marshall Clow
eec62a1162 Update boost_has_nl_types_h.ipp
clang 5 complains that comparing a `nl_catd` to an integer is not allowed.

./boost_has_nl_types_h.ipp:20:11: error: ordered comparison between pointer and zero ('nl_catd' (aka '__nl_cat_d *') and 'int')
   if(cat >= 0) catclose(cat);
2017-05-19 12:38:14 -06:00
Marshall Clow
0df7552f38 define BOOST_NO_AUTO_PTR when building with libc++ and C++17
New libc++ versions remove `std::auto_ptr` when building as C++17, unless the magic tag `_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR` is defined. Tell the rest of Boost that there's no `auto_ptr` in that case.
2017-05-19 12:22:13 -06:00
John Maddock
cd396b619a Clang 3.x can't parse <chrono> from gcc-4.6 and earlier. 2017-05-19 19:18:40 +01:00
Glen Fernandes
219c351cb4 Add BOOST_NO_CXX11_POINTER_TRAITS 2017-05-19 13:29:52 -04:00
jzmaddock
32318e41aa Add clang detection macros to config_info.cpp. 2017-05-19 18:11:56 +01:00
jzmaddock
40f4e6ed2f Disable <chrono> for older clang versions. 2017-05-19 18:11:29 +01:00
Daniela Engert
15a0c119a1 The library implementations in MSVC 14.0 and 14.1 have both version number V6.50:0009, and therefore _CPPLIB_VER defined to 650. But the library in 14.0 does *not* have std::apply whereas the one in 14.1 *does*.
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-05-19 16:06:39 +02:00
John Maddock
6b64d2e803 Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-05-19 13:38:31 +01:00
John Maddock
6d7592091c When using clang + libstdC++ not all C++11 features are necessarily available 2017-05-19 13:38:02 +01:00
jzmaddock
fd5d37f6df Another attempt to fix travis.yml 2017-05-19 08:37:45 +01:00
jzmaddock
2a15c53fbb Correct path to config_info.cpp in travis file. 2017-05-19 08:26:21 +01:00
jzmaddock
7398ea7955 Add diagnostic information to travis build. 2017-05-19 08:18:17 +01:00
jzmaddock
bc966c41ad Fix missing dependencies in travis build. 2017-05-18 19:43:19 +01:00
jzmaddock
118c432e74 Add initial travis.yml file. 2017-05-18 19:39:25 +01:00
jzmaddock
8c102bcaa7 Add initial travis CI file. 2017-05-16 13:10:36 +01:00
jzmaddock
74c14a42a5 Merge branch 'develop' 2017-05-03 11:59:03 +01:00
John Maddock
0b508cb2c9 noreturn attribute is apparently not supported by Oracle 12.4 2017-04-27 17:22:18 +00:00
jzmaddock
2bc27c752c Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-04-26 19:43:28 +01:00
jzmaddock
19766b0a0e Older Oracle Solaris compiles have no ::intptr_t.
Defer to whether INTPTR_MAX is defined or not on sun whenever <stdint.h> is available.
2017-04-26 19:43:11 +01:00
Rene Rivera
cb2216eaff Bump to 1.65.0. 2017-04-23 22:16:39 -05:00
Rene Rivera
912ebda1ca Bump to 1.65.0. 2017-04-23 22:11:56 -05:00
jzmaddock
5317fd4193 Regenerate docs. 2017-04-17 18:42:27 +01:00
jzmaddock
0e364efe0b Add more macros for removed std lib features:
BOOST_NO_CXX98_FUNCTION_BASE
BOOST_NO_CXX98_BINDERS
Added new documentation section for features that have been removed from the standard.
2017-04-17 18:41:44 +01:00
jzmaddock
5193948558 Merge branch 'feature/config-macro-random_shuffle' of https://github.com/DanielaE/boost.config into PR131 2017-04-17 17:48:12 +01:00
jzmaddock
79bd4b8acf Simplify build-time config checks.
These now simply reflect whatever config.hpp reports, and are therefore always in synch with the headers.
They are also now compile-time tests only, which means they function with cross compilers.
Fixes: https://svn.boost.org/trac/boost/ticket/12805.
2017-04-17 13:19:19 +01:00
Daniela Engert
f3cea5a8e4 Introduce feature-test macro BOOST_NO_CXX98_RANDOM_SHUFFLE
The algorithm std::random_shuffle was marked as deprecated in C++14 and is removed from the upcoming C++17 standard. The name itself is still reserved and library implementations may continue to ship it. In this sense, support for std::random_shuffle must be regarded as purely optional and a feature-test macro is required to test for its presence.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-04-17 13:48:08 +02:00
jzmaddock
8acd1c464d If we have INTPTR_MAX then presumably we have intptr_t.
See https://svn.boost.org/trac/boost/ticket/12853.
2017-04-16 19:41:36 +01:00
jzmaddock
fc1f603143 Prevent macro re-definition in cstdint.hpp.
See https://svn.boost.org/trac/boost/ticket/12786.
2017-04-16 19:31:25 +01:00
jzmaddock
8037ff436b Use inline functions not macros for workarounds for missing functions.
See https://svn.boost.org/trac/boost/ticket/12501.
2017-04-16 19:22:19 +01:00
jzmaddock
3fbf51f31a Move private headers into detail directory.
See https://svn.boost.org/trac/boost/ticket/12328.
2017-04-16 19:12:59 +01:00
jzmaddock
7e1b05be28 Update for Pathscale from https://svn.boost.org/trac/boost/ticket/12193. 2017-04-16 18:52:22 +01:00
jzmaddock
7d09af4555 Apply Diab compiler support from https://svn.boost.org/trac/boost/ticket/11655. 2017-04-16 18:29:44 +01:00
jzmaddock
3eff8788b1 Apply VXWorks patch from https://svn.boost.org/trac/boost/ticket/11653 2017-04-16 18:22:44 +01:00
jzmaddock
d468063662 Regenerate docs. 2017-04-16 09:38:33 +01:00
jzmaddock
a5ce2a0ef7 Merge pull request #133 from olk/patch-2
docu: description of BOOST_NO_CXX14_STD_EXCHANGE
2017-04-16 09:37:42 +01:00
jzmaddock
21d6c913ad Merge pull request #132 from olk/patch-1
add defect macro description to documentation
2017-04-16 09:36:56 +01:00
jzmaddock
d88c41e681 Remove unnecessary reference to deprecated std::unary/binary_function in test.
This test will only fail for obsolete versions of Metrowerks compilers which are probably no longer supported anyway.
2017-04-16 08:37:17 +01:00
jzmaddock
272ab4c69f There are no TR1 functions in C++17. 2017-04-15 19:19:46 +01:00
jzmaddock
4f4927b999 Merge pull request #130 from DanielaE/feature/enable-c++17apply
vc++ 19.10 has std::apply if enabled by /std:c++latest
2017-04-15 19:18:47 +01:00
Oliver Kowalke
517ee146c3 docu: description of BOOST_NO_CXX14_STD_EXCHANGE 2017-04-14 14:10:10 +02:00
Oliver Kowalke
af570a4679 add defect macro description to documentation 2017-04-14 14:05:20 +02:00
Daniela Engert
4c3433434f vc++ 19.10 has std::apply if enabled by /std:c++latest
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-04-07 18:00:00 +02:00
Rene Rivera
4fb2b836bc Merge pull request #128 from teeks99/use_141
Using 141 instead of 1410
2017-03-21 09:15:24 -05:00
Thomas Kent
6611d45398 Using 141 instead of 1410 2017-03-19 08:48:11 -05:00
jzmaddock
a12301d1cb Update compiler version names in visualc.hpp 2017-03-17 18:02:22 +00:00
jzmaddock
b16f6e1698 Fix library name for VC14.1 (Visual Studio 2017) 2017-03-17 18:02:22 +00:00
Rene Rivera
1260f88915 Merge pull request #126 from teeks99/autolink_vs2017
VS2017 version used in other places is vc1410
2017-03-16 21:09:15 -05:00
Thomas Kent
953114b284 VS2017 version used in other places is vc1410 2017-03-16 18:57:02 -05:00
jzmaddock
0006275ddd Update compiler version names in visualc.hpp 2017-03-13 18:59:09 +00:00
jzmaddock
d5c2dbae38 Fix library name for VC14.1 (Visual Studio 2017) 2017-03-13 18:58:28 +00:00
jzmaddock
a2f7ed40ad Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-03-13 18:57:51 +00:00
jzmaddock
86d6607582 Merge branch 'develop' of https://github.com/boostorg/config into develop
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-03-13 18:07:03 +00:00
jzmaddock
3a04c2bd20 Merge pull request #124 from pgroke-dt/z_OS_workaround_support
add _WORKAROUND_GUARD macros for BOOST_XLCPP_ZOS
2017-03-03 18:25:15 +00:00
Paul Groke
7f3e0414f0 add _WORKAROUND_GUARD macros for BOOST_XLCPP_ZOS 2017-02-28 12:52:41 +01:00
jzmaddock
083ad677b9 Merge pull request #123 from pgroke-dt/fix_z_OS_support
don't define BOOST_ALIGNMENT - explicit alignment support is broken
2017-02-28 10:06:23 +00:00
Paul Groke
ba7e1ed201 don't define BOOST_ALIGNMENT - explicit alignment support is broken (V2R1) 2017-02-28 10:32:45 +01:00
jzmaddock
62921ff58a Merge commit 2017-02-26 19:30:26 +00:00
jzmaddock
ed79ada80e Merge branch 'z_OS_support' of https://github.com/pgroke-dt/config into develop
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-02-26 18:59:19 +00:00
Paul Groke
85751bb81d added "&& defined(__MVS__)" to "IBM z/OS XL C/C++" library detection 2017-02-26 19:38:40 +01:00
jzmaddock
29c8ce027d Merge pull request #121 from glenfe/master
Synchronize master with develop
2017-02-26 16:06:12 +00:00
Paul Groke
c8cc56d678 added "&& defined(__MVS__)" to "IBM z/OS XL C/C++" compiler detection 2017-02-26 16:58:08 +01:00
Paul Groke
934c372112 don't define BOOST_DATE_TIME_NO_LOCALE in Boost.Config header 2017-02-26 15:31:38 +01:00
Paul Groke
6a89b24eed remove dependency on undocumented variables 2017-02-26 15:23:56 +01:00
jzmaddock
7a78d997d0 Fixes for various clang versions: clang-5 didn't like the comparison used for testing nl_type.h, other clang versions look for ::gets even though libstdc++ doesn't define it 2017-02-26 13:01:11 +00:00
Paul Groke
3af87f9a39 support for IBM z/OS XL C/C++ (configure script & compiler/platform/stdlib headers) 2017-02-25 23:07:30 +01:00
Paul Groke
1f57db8ab0 support for IBM z/OS XL C/C++ (configure script & compiler/platform/stdlib headers) 2017-02-22 00:41:14 +01:00
Paul Groke
a01d4996bf support for IBM z/OS XL C/C++ (configure script & compiler/platform/stdlib headers) 2017-02-21 22:03:15 +01:00
Glen Fernandes
5cce40b5fe Merge branch 'develop' 2017-02-20 16:44:44 -05:00
jzmaddock
5ff8f83739 Merge pull request #118 from glenfe/develop
Define BOOST_NO_CXX11_SFINAE_EXPR in C++98 clang
2017-02-20 17:48:37 +00:00
Glen Fernandes
041bf1ee1f Define BOOST_NO_CXX11_SFINAE_EXPR in C++98 clang
When compiling in pre-C++11 clang mode it should be defined
2017-02-20 11:30:56 -05:00
jzmaddock
3ff5ed08a2 Merge branch 'develop' 2017-02-20 09:05:52 +00:00
jzmaddock
1abc59c624 Merge pull request #116 from glenfe/develop
Update boost_no_cxx11_sfinae_expr test to fail faster
2017-02-08 18:30:48 +00:00
Glen Fernandes
45b11f1fae Update boost_no_cxx11_sfinae_expr test to fail faster
Will now compile-fail for Intel C++ 13 instead of run-fail.
2017-02-07 18:08:28 -05:00
jzmaddock
d99022e8d7 Merge pull request #115 from gongminmin/ClangC2
Fix a compiling problem under Clang/C2.
2017-02-07 18:25:19 +00:00
Minmin Gong
328f0f40c8 Fix a compiling problem under ClangC2. 2017-02-05 15:50:33 -08:00
jzmaddock
79ac4bdbeb Merge branch 'boost_no_cxx11_sfinae_expr' of https://github.com/glenfe/config into pr114
# Fixed Conflicts:
#	checks/Jamfile.v2
#	checks/test_case.cpp
#	test/all/Jamfile.v2
#	test/config_test.cpp

Also added some more documentation to tie together the various SFINAE macros.  Regenerated the docs.
2017-02-05 19:38:35 +00:00
jzmaddock
fb87ea1cbe Regenerate docs. 2017-02-05 19:01:24 +00:00
jzmaddock
438520d1fd Cygwin appears not to have sigaction all the time after all. 2017-02-05 19:00:45 +00:00
jzmaddock
329b4c17f0 Merge branch 'restrict_support' of https://github.com/jfalcou/config into restrict_keyword
Add test case for boost_no_restrict_references.
Regenerate tests.
Tested msvc-10 - 14, intel 17, gcc-5.3.0.
2017-02-05 19:00:04 +00:00
jzmaddock
2c34894d48 Merge branch 'restrict_support' of https://github.com/jfalcou/config into restrict_keyword
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-02-05 18:02:11 +00:00
Glen Fernandes
6e93ac5d72 Add BOOST_NO_CXX11_SFINAE_EXPR 2017-02-04 09:20:36 -05:00
jzmaddock
b44be22efc Merge pull request #110 from o01eg/develop
Use corrent name for libraries built with MS VS 2017 RC.
2017-02-04 13:22:16 +00:00
jzmaddock
b025db6d54 Merge pull request #113 from glenfe/develop
Support BOOST_GCC guards in BOOST_WORKAROUND
2017-02-04 13:18:53 +00:00
Glen Fernandes
c85095cf33 Support BOOST_GCC guards in BOOST_WORKAROUND 2017-02-02 13:46:39 -05:00
Edward Diener
b4628d91eb Merge pull request #112 from jwakely/patch-1
Fix name of the library
2017-01-17 18:53:25 -05:00
Jonathan Wakely
e21b1729cb Fix name of the library 2017-01-17 23:21:37 +00:00
O01eg
de5f166253 Use corrent name for libraries built with MS VS 2017 RC. 2017-01-05 21:18:31 +03:00
jzmaddock
d5d1b73638 Merge pull request #109 from mclow/patch-1
Update version.hpp to 1.64
2016-12-28 17:55:35 +00:00
Marshall Clow
b49f658332 Update version.hpp to 1.64 2016-12-27 18:10:58 -08:00
jzmaddock
c03303bdcb Merge branch 'develop' of https://github.com/boostorg/config into develop 2016-12-27 19:34:21 +00:00
jzmaddock
ab0fa3b3d7 Fix to get config_test passing with /clr or /clr pure and msvc.
See https://svn.boost.org/trac/boost/ticket/12713.
Note that /clr safe is still not supported - so much doesn't work it's hard to call it a C++ compiler in that case.
2016-12-27 19:34:05 +00:00
jzmaddock
0c45ca206a Merge pull request #108 from Lastique/patch-3
Move BOOST_NO_CXX14_CONSTEXPR to the right section
2016-12-27 19:08:37 +00:00
Andrey Semashev
ded49a9d32 Move BOOST_NO_CXX14_CONSTEXPR to the right section
- Define BOOST_NO_CXX14_CONSTEXPR only for the gcc-compatible version of Intel compiler (other versions untested). The previous definition was not in the correct preprocessor branch and the macro was not defined when it should have been.
- Increased the latest tested Intel compiler version to 17.
- Added comments to the preprocessor directives to simplify navigation in the file.
2016-12-27 20:38:05 +04:00
jzmaddock
a1a9f07e63 Merge branch 'develop'
# Fixed Conflicts:
#	include/boost/config/stdlib/libcpp.hpp
2016-12-21 19:51:54 +00:00
jzmaddock
54f108a006 MSVC compatible compilers may have __has_include but still set __cplusplus to obsolete versions numbers for MSVC compatibility (ie Intel). 2016-12-15 18:29:58 +00:00
jzmaddock
2fd39f10cb Intel appears not to support C++14 variable templates. 2016-12-15 10:37:11 +00:00
jzmaddock
25be5543ae libstdc++ has no std::exchange unless in C++14 mode. 2016-12-15 10:35:00 +00:00
jzmaddock
553dcbec96 MSVC has no std::apply. 2016-12-15 10:21:26 +00:00
jzmaddock
0a83dd7aa9 Merge pull request #107 from Lastique/patch-2
Disable C++14 constexpr for Intel compiler
2016-12-13 18:10:41 +00:00
jzmaddock
8d107ecb35 Merge pull request #106 from olk/develop
defect macro for C++17 feature `std::apply()`
2016-12-13 09:16:34 +00:00
Oliver Kowalke
13f5d9c88a defect macro for C++14 feature std::exchange() 2016-12-12 19:41:30 +01:00
Andrey Semashev
6f0c359a4e Disable C++14 constexpr for Intel compiler
Intel compiler up to version 17.0 (on Linux) makes constexpr member functions implicitly const-qualified.
2016-12-11 16:45:12 +04:00
Oliver Kowalke
68b7cc8759 defect macro for C++17 feature std::apply() 2016-12-11 12:25:53 +01:00
jzmaddock
209302a3ed Merge pull request #104 from Flast/test-updates/cxx14-constexpr
Update c++14 constexpr test.
2016-12-09 18:37:07 +00:00
jzmaddock
45c6f515b1 Merge branch 'develop' of https://github.com/boostorg/config into develop 2016-12-09 18:10:45 +00:00
jzmaddock
d1c399f971 Clang/libc++ : Tentatively enable <array> and <forward_list> in C++03 mode. 2016-12-09 18:10:32 +00:00
Kohei Takahashi
7a3fe1f874 Update c++14 constexpr test.
Compiler should allow non-const member function.
2016-12-09 01:11:53 +09:00
jzmaddock
fe55aadefd Merge pull request #102 from stevemcgf/fix-gitignore
Adds .gitignore to prevent tracking changes of binary compiled files.
2016-12-03 18:14:41 +00:00
jzmaddock
8f9f27336c Merge branch 'develop'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2016-12-03 18:09:18 +00:00
Steve Mc Gregor
0229c6e5cc Adds .gitignore to prevent tracking changes of compiled files under checks/architecture/bin 2016-12-02 00:08:16 -05:00
jzmaddock
4b111941af Merge pull request #101 from akumta/patch-6
Update sunpro_cc.hpp
2016-11-26 17:40:08 +00:00
jzmaddock
c717449aca Merge pull request #96 from liewegas/gitignore-bin
.gitignore config/checks/architecture/bin/
2016-11-26 17:39:34 +00:00
jzmaddock
780c29bf06 Merge pull request #99 from MarcelRaad/vs15p5
Update for Visual Studio 15 Preview 5
2016-11-26 17:38:47 +00:00
jzmaddock
c6e2ac028b Merge pull request #100 from mclow/patch-2
BOOST_NO_CXX17_STD_INVOKE for libc++
2016-11-26 17:38:03 +00:00
akumta
fa7121c0fe Update sunpro_cc.hpp
define BOOST_NO_CXX14_DECLTYPE_AUTO when C++14 standard is not in action
2016-11-23 08:17:25 -08:00
Marshall Clow
4fc6130781 BOOST_NO_CXX17_STD_INVOKE for libc++
Make sure that BOOST_NO_CXX17_STD_INVOKE is defined for C++03/11/14 builds.
2016-11-21 17:53:34 -08:00
Marcel Raad
4749434d47 Update for Visual Studio 15 Preview 5 and RC
- Aggregate NSDMI and relaxed constexpr are supported
- _MSC_VER is 1910
2016-11-16 23:56:36 +01:00
jzmaddock
4f974d28c1 Add missing "using testing;" 2016-11-10 10:48:32 +00:00
jzmaddock
c45ac74369 Merge branch 'develop' 2016-11-03 19:49:09 +01:00
jzmaddock
ccea02471c Update for CUDA 8.0. 2016-10-29 09:37:32 +01:00
jzmaddock
72116963c5 Correct #if code in last PR. 2016-10-20 19:41:09 +01:00
jzmaddock
ba60de800c Merge pull request #98 from olk/develop
defect macro for C++17 feature `std::invoke()`
2016-10-20 18:09:57 +01:00
Oliver Kowalke
b20d7a811e use of <experimental/memory_resource> for clang detection
use <experimental/memory_resource> instead of <experimental/filesystem> to check for libstdc++ 6.1
2016-10-20 13:52:28 +02:00
Oliver Kowalke
350cfd5d82 use <experimental/filesystem> to test for version 6.1 (clang) 2016-10-20 08:59:51 +02:00
Oliver Kowalke
9b97c79b4e Update macro_reference.qbk 2016-10-14 21:06:05 +02:00
Oliver Kowalke
b0b52d6c75 defect macro for C++17 feature std::invoke() 2016-10-14 20:49:48 +02:00
Rene Rivera
d7bb39764b Add, and update, documentation build targets. 2016-10-10 11:39:48 -05:00
Rene Rivera
10b814f19b Add, and update, documentation build targets. 2016-10-07 23:07:33 -05:00
jzmaddock
6ab00cf036 Merge pull request #97 from mclow/patch-1
Update version number to 1.63
2016-09-28 18:05:16 +01:00
Marshall Clow
eaf874e35d Update version number to 1.63 2016-09-28 09:54:03 -07:00
Sage Weil
5cb5c8e82d .gitignore config/checks/architecture/bin/ 2016-09-26 17:15:19 -04:00
jzmaddock
606cc77268 Merge branch 'develop' 2016-09-20 17:02:12 +01:00
jzmaddock
7d7c25bb26 Merge pull request #95 from akumta/patch-5
For Oracle Developer Studio
2016-09-11 18:14:43 +01:00
akumta
64780152fa For Oracle Developer Studio
__has_attribute to be used instead of __has_cpp_attribute, not remove the functionality.
2016-09-11 08:17:43 -07:00
jzmaddock
a5f23185bd Merge pull request #94 from apolukhin/better_noreturn
Fix for undefined BOOST_NORETURN
2016-09-11 11:59:53 +01:00
Antony Polukhin
d4a4885ed9 Fix for undefined BOOST_NORETURN 2016-09-10 19:45:41 +03:00
jzmaddock
a094c078ad Merge pull request #93 from akumta/patch-4
Update sunpro_cc.hpp
2016-09-09 18:00:03 +01:00
John Maddock
b457022699 Workaround for broken __has_cpp_attribute in Oracle-12.5 compiler 2016-09-09 12:25:43 +00:00
akumta
c4de2d0013 Update sunpro_cc.hpp
Update for ticket #11972
2016-09-06 10:13:11 -07:00
jzmaddock
a9e325b2e0 Merge pull request #92 from apolukhin/better_noreturn
Detect [[noreturn]] attribute
2016-09-04 17:19:05 +01:00
John Maddock
dff5971974 Merge branch 'develop' of https://github.com/boostorg/config into develop 2016-09-04 16:04:46 +00:00
John Maddock
a17bb6c8da Update for Oracle 12.5, see issue #12425 2016-09-04 16:04:08 +00:00
Antony Polukhin
830192fc35 Detect [[noreturn]] attribute 2016-09-03 12:37:06 +03:00
jzmaddock
09beda8c1a Merge branch 'develop':
Android + clang/libc++abi fixes.
2016-08-22 11:57:28 +01:00
jzmaddock
226bee3010 Older versions of libc++abi have no thread_local support. 2016-08-18 19:26:28 +01:00
jzmaddock
221f4da6d1 Try to fix constexpr test case for both C++11 and C++14 variations. 2016-08-18 18:34:51 +01:00
jzmaddock
b24ad05ffe There is no pthread_yield on Android. 2016-08-18 18:24:24 +01:00
jzmaddock
befe61c5f0 Merge branch 'develop' 2016-08-10 18:32:25 +01:00
jzmaddock
76f6cdc453 Merge branch 'develop'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2016-08-07 18:22:29 +01:00
jzmaddock
65fa2a46f2 MSVC-14up3 doesn't support 2 phase name lookup after all.
Correct previous change.
2016-07-05 18:06:57 +01:00
jzmaddock
7c7c58417b Enable constexpr support in VC14up3. 2016-07-04 18:03:05 +01:00
jzmaddock
ea80234d5f Update visual C++ config for version 14 update 3. 2016-07-03 09:18:56 +01:00
jzmaddock
4fc32ad70a Add support for C++11 thread_local. 2016-07-02 09:09:19 +01:00
jzmaddock
fb27cce043 Merge pull request #89 from danieljames/feature/1.62.0
Bump version for 1.62.0
2016-05-22 11:40:59 +01:00
Daniel
a7620c98b5 Bump version for 1.62.0 2016-05-22 11:26:30 +01:00
Beman
b9e69e9fa1 Merge branch 'develop' of github.com:boostorg/config into develop 2016-05-02 14:59:33 -04:00
Edward Diener
295fff9a10 Changed guidelines reference in html file. 2016-05-01 17:52:58 -04:00
Edward Diener
01ae016b52 Updated link to guidelines. 2016-05-01 17:44:25 -04:00
Beman
4faca9e9e7 Add undocumented BOOST_MSVC_SFINAE_EXPR and BOOST_MSVC_CXX11_CONSTEXPR macros to ease testing of MSVC compiler updates 2016-04-30 15:03:15 -04:00
jzmaddock
534ee17f3f Fix previous commit! 2016-03-31 09:08:54 +01:00
jzmaddock
743dc92612 Don't use __is_identifier unless it's actually defined. 2016-03-30 19:36:22 +01:00
jzmaddock
71214fe310 Update for VC12 and 14: allow use of native log1p/expm1. 2016-03-26 19:10:18 +00:00
jzmaddock
f84f27c366 Update for clang on Windows:
Enables __int64 when available.
Enables stdint.h when available.
Enables log1p/expm1 when available.
Enables char16_t and char32_t when available.
2016-03-26 19:09:44 +00:00
jzmaddock
733e24c081 Minor workaround for clang-win32. 2016-03-26 18:20:19 +00:00
jzmaddock
9ea6b3fb49 Merge branch 'develop' of https://github.com/boostorg/config into develop 2016-03-12 17:14:30 +00:00
jzmaddock
77d86bcf16 Change #includes to use angle brackets.
See: https://svn.boost.org/trac/boost/ticket/11516.
2016-03-12 17:14:11 +00:00
jzmaddock
1ce7d756ff Merge pull request #86 from Flast/libstdcxx/auto_ptr
Define BOOST_NO_AUTO_PTR when libstdcxx don't provide std::auto_ptr.
2016-02-29 11:26:41 +00:00
Kohei Takahashi
9018b7b58d Define BOOST_NO_AUTO_PTR when libstdcxx don't provide std::auto_ptr. 2016-02-29 19:48:49 +09:00
jzmaddock
efefba30ee Simplify runtime config check Jamfiles. 2016-02-27 19:08:25 +00:00
jzmaddock
84f2fb19d1 Merge branch 'develop' 2016-02-15 19:08:25 +00:00
jzmaddock
9dd2b3afff Add nvcc macro info. 2016-01-12 16:41:20 +00:00
jzmaddock
2090da494e Tentative fix for nvcc compiler.
See https://svn.boost.org/trac/boost/ticket/11897.
2016-01-12 16:40:54 +00:00
jzmaddock
6d46b18e3b Fix up std lib config for clang-3.8 and later 2016-01-03 14:12:01 +00:00
jzmaddock
b1df465870 Second try to get BOOST_NO_CXX11_HDR_ATOMIC set correctly.
See https://github.com/boostorg/config/pull/85#issuecomment-168313984
2016-01-01 16:01:16 +00:00
jzmaddock
af5351f42b <atomic> works in later libc++ releases.
See also https://github.com/boostorg/config/pull/85/files
2016-01-01 13:35:12 +00:00
jzmaddock
8abd28004a Merge pull request #84 from mclow/develop
Update Version number to 1.61
2015-12-21 18:17:56 +00:00
Marshall Clow
f384d058f9 Update Version number to 1.61 2015-12-21 09:58:51 -08:00
jzmaddock
95b158b454 Merge pull request #83 from ax3l/fix-nvccFloat128GCC
Fix Trac 11852: CUDA in C++03 Mode and __float128
2015-12-18 11:56:36 +00:00
Axel Huebl
73ee4f5b03 int128 & CUDA C++03: Update ICC and Clang 2015-12-18 11:41:56 +01:00
Axel Huebl
e5b21fb9b4 Refactor int/float128: NVCC -std=c++11
refactor the previous solution: nvcc with c++11 supports
__int128 and __float128
2015-12-18 11:41:33 +01:00
Axel Huebl
a332112317 Fix Trac 11852: GCC & CUDA __float128
Fix trac issue
  https://svn.boost.org/trac/boost/ticket/11852

Similar to
     https://svn.boost.org/trac/boost/ticket/8048

`__float128` is still unsupported when compiling with nvcc
(tested with `CUDA 7.5.18`). First noticed with the latest
release (`1.60.0`) and `GCC 4.8.5` but should affect all
previous releases depending on used modules.

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

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

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

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

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

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

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

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

See
http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx
and
http://blogs.msdn.com/b/somasegar/archive/2014/05/28/first-preview-of-visual-studio-quot-14-quot-available-now.aspx
2014-06-05 21:47:53 +02:00
jzmaddock
dad7bc5b30 Add new build-time configuration feature. 2014-06-05 18:55:12 +01:00
256 changed files with 10205 additions and 2840 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
checks/architecture/bin

242
.travis.yml Normal file
View File

@@ -0,0 +1,242 @@
# 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)
language: cpp
sudo: false
branches:
only:
- master
- develop
- /feature\/.*/
env:
matrix:
- BOGUS_JOB=true
matrix:
exclude:
- env: BOGUS_JOB=true
include:
- os: linux
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
- os: linux
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:
- g++-4.7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.9
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
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=03,11,14,1z
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=03,11,14,1z
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=03,11,14,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=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- os: linux
compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- os: linux
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: linux
compiler: clang++-libc++
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
addons:
apt:
packages:
- libc++-dev
- os: osx
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=03,11,14,1z
osx_image: xcode8
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode6.4
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- 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
- git submodule update --init libs/core
- git submodule update --init libs/assert
- git submodule update --init libs/type_traits
- cp -r $TRAVIS_BUILD_DIR/* libs/config
- ./bootstrap.sh
- ./b2 headers
script:
- |-
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:
on_success: always

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
)

67
appveyor.yml Normal file
View File

@@ -0,0 +1,67 @@
# Copyright 2016 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)
version: 1.0.{build}-{branch}
shallow_clone: true
branches:
only:
- master
- develop
platform:
- x64
environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64
- 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 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
- ARGS: --toolset=msvc-12.0 address-model=32
- ARGS: --toolset=msvc-14.0 address-model=32
- 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
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 ..
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\config
- git submodule update --init tools/build
- git submodule update --init libs/detail
- git submodule update --init libs/core
- git submodule update --init libs/assert
- git submodule update --init libs/type_traits
- bootstrap
- b2 headers
build: off
test_script:
- cd libs\config\test
- ..\appveyor.bat
- ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD%

205
checks/Jamfile.v2 Normal file
View File

@@ -0,0 +1,205 @@
#
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Wed Jan 03 23:31:31 2018
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
import modules ;
import path ;
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 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 ;
obj ftime : test_case.cpp : <define>TEST_BOOST_HAS_FTIME ;
obj getsystemtimeasfiletime : test_case.cpp : <define>TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME ;
obj gettimeofday : test_case.cpp : <define>TEST_BOOST_HAS_GETTIMEOFDAY ;
obj hash : test_case.cpp : <define>TEST_BOOST_HAS_HASH ;
obj int128 : test_case.cpp : <define>TEST_BOOST_HAS_INT128 ;
obj log1p : test_case.cpp : <define>TEST_BOOST_HAS_LOG1P ;
obj long_long : test_case.cpp : <define>TEST_BOOST_HAS_LONG_LONG ;
obj macro_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_MACRO_USE_FACET ;
obj ms_int64 : test_case.cpp : <define>TEST_BOOST_HAS_MS_INT64 ;
obj nanosleep : test_case.cpp : <define>TEST_BOOST_HAS_NANOSLEEP ;
obj nl_types_h : test_case.cpp : <define>TEST_BOOST_HAS_NL_TYPES_H ;
obj nrvo : test_case.cpp : <define>TEST_BOOST_HAS_NRVO ;
obj partial_std_allocator : test_case.cpp : <define>TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR ;
obj pthread_delay_np : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_DELAY_NP ;
obj pthread_mutexattr_settype : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE ;
obj pthread_yield : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_YIELD ;
obj pthreads : test_case.cpp : <define>TEST_BOOST_HAS_PTHREADS ;
obj rvalue_refs : test_case.cpp : <define>TEST_BOOST_HAS_RVALUE_REFS ;
obj sched_yield : test_case.cpp : <define>TEST_BOOST_HAS_SCHED_YIELD ;
obj sgi_type_traits : test_case.cpp : <define>TEST_BOOST_HAS_SGI_TYPE_TRAITS ;
obj sigaction : test_case.cpp : <define>TEST_BOOST_HAS_SIGACTION ;
obj slist : test_case.cpp : <define>TEST_BOOST_HAS_SLIST ;
obj static_assert : test_case.cpp : <define>TEST_BOOST_HAS_STATIC_ASSERT ;
obj stdint_h : test_case.cpp : <define>TEST_BOOST_HAS_STDINT_H ;
obj stlp_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_STLP_USE_FACET ;
obj unistd_h : test_case.cpp : <define>TEST_BOOST_HAS_UNISTD_H ;
obj variadic_tmpl : test_case.cpp : <define>TEST_BOOST_HAS_VARIADIC_TMPL ;
obj boost_msvc6_member_templates : test_case.cpp : <define>TEST_BOOST_MSVC6_MEMBER_TEMPLATES ;
obj boost_msvc_std_iterator : test_case.cpp : <define>TEST_BOOST_MSVC_STD_ITERATOR ;
obj winthreads : test_case.cpp : <define>TEST_BOOST_HAS_WINTHREADS ;
obj adl_barrier : test_case.cpp : <define>TEST_BOOST_NO_ADL_BARRIER ;
obj argument_dependent_lookup : test_case.cpp : <define>TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ;
obj array_type_specializations : test_case.cpp : <define>TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS ;
obj cxx11_auto_declarations : test_case.cpp : <define>TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS ;
obj cxx11_auto_multideclarations : test_case.cpp : <define>TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS ;
obj auto_ptr : test_case.cpp : <define>TEST_BOOST_NO_AUTO_PTR ;
obj boost_bcb_partial_specialization_bug : test_case.cpp : <define>TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG ;
obj cxx11_char16_t : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CHAR16_T ;
obj cxx11_char32_t : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CHAR32_T ;
obj complete_value_initialization : test_case.cpp : <define>TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION ;
obj cxx11_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CONSTEXPR ;
obj ctype_functions : test_case.cpp : <define>TEST_BOOST_NO_CTYPE_FUNCTIONS ;
obj cv_specializations : test_case.cpp : <define>TEST_BOOST_NO_CV_SPECIALIZATIONS ;
obj cv_void_specializations : test_case.cpp : <define>TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS ;
obj cwchar : test_case.cpp : <define>TEST_BOOST_NO_CWCHAR ;
obj cwctype : test_case.cpp : <define>TEST_BOOST_NO_CWCTYPE ;
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 ;
obj cxx11_hdr_chrono : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CHRONO ;
obj cxx11_hdr_codecvt : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CODECVT ;
obj cxx11_hdr_condition_variable : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE ;
obj cxx11_hdr_forward_list : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST ;
obj cxx11_hdr_future : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FUTURE ;
obj cxx11_hdr_initializer_list : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST ;
obj cxx11_hdr_mutex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_MUTEX ;
obj cxx11_hdr_random : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_RANDOM ;
obj cxx11_hdr_ratio : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_RATIO ;
obj cxx11_hdr_regex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_REGEX ;
obj cxx11_hdr_system_error : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR ;
obj cxx11_hdr_thread : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_THREAD ;
obj cxx11_hdr_tuple : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TUPLE ;
obj cxx11_hdr_type_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS ;
obj cxx11_hdr_typeindex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TYPEINDEX ;
obj cxx11_hdr_unordered_map : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP ;
obj cxx11_hdr_unordered_set : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET ;
obj cxx11_inline_namespaces : test_case.cpp : <define>TEST_BOOST_NO_CXX11_INLINE_NAMESPACES ;
obj cxx11_non_public_defaulted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS ;
obj cxx11_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NUMERIC_LIMITS ;
obj cxx11_pointer_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_POINTER_TRAITS ;
obj cxx11_ref_qualifiers : test_case.cpp : <define>TEST_BOOST_NO_CXX11_REF_QUALIFIERS ;
obj cxx11_sfinae_expr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SFINAE_EXPR ;
obj cxx11_smart_ptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SMART_PTR ;
obj cxx11_std_align : test_case.cpp : <define>TEST_BOOST_NO_CXX11_STD_ALIGN ;
obj cxx11_thread_local : test_case.cpp : <define>TEST_BOOST_NO_CXX11_THREAD_LOCAL ;
obj cxx11_trailing_result_types : test_case.cpp : <define>TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES ;
obj cxx11_user_defined_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS ;
obj cxx14_binary_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX14_BINARY_LITERALS ;
obj cxx14_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX14_CONSTEXPR ;
obj cxx14_decltype_auto : test_case.cpp : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO ;
obj cxx14_digit_separators : test_case.cpp : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS ;
obj cxx14_generic_lambdas : test_case.cpp : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS ;
obj cxx14_hdr_shared_mutex : test_case.cpp : <define>TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX ;
obj cxx14_initialized_lambda_captures : test_case.cpp : <define>TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES ;
obj cxx14_aggregate_nsdmi : test_case.cpp : <define>TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI ;
obj cxx14_return_type_deduction : test_case.cpp : <define>TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION ;
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_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 ;
obj cxx17_std_invoke : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STD_INVOKE ;
obj cxx17_structured_bindings : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STRUCTURED_BINDINGS ;
obj cxx98_binders : test_case.cpp : <define>TEST_BOOST_NO_CXX98_BINDERS ;
obj cxx98_function_base : test_case.cpp : <define>TEST_BOOST_NO_CXX98_FUNCTION_BASE ;
obj cxx98_random_shuffle : test_case.cpp : <define>TEST_BOOST_NO_CXX98_RANDOM_SHUFFLE ;
obj cxx11_hdr_functional : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL ;
obj cxx11_decltype : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DECLTYPE ;
obj cxx11_decltype_n3276 : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DECLTYPE_N3276 ;
obj boost_deduced_typename : test_case.cpp : <define>TEST_BOOST_DEDUCED_TYPENAME ;
obj cxx11_defaulted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS ;
obj cxx11_deleted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS ;
obj dependent_nested_derivations : test_case.cpp : <define>TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS ;
obj dependent_types_in_template_value_parameters : test_case.cpp : <define>TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS ;
obj exception_std_namespace : test_case.cpp : <define>TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE ;
obj exceptions : test_case.cpp : <define>TEST_BOOST_NO_EXCEPTIONS ;
obj explicit_function_template_arguments : test_case.cpp : <define>TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS ;
obj cxx11_explicit_conversion_operators : test_case.cpp : <define>TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ;
obj cxx11_extern_template : test_case.cpp : <define>TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE ;
obj fenv_h : test_case.cpp : <define>TEST_BOOST_NO_FENV_H ;
obj cxx11_fixed_length_variadic_template_expansion_packs : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS ;
obj function_template_ordering : test_case.cpp : <define>TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING ;
obj cxx11_function_template_default_args : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS ;
obj function_type_specializations : test_case.cpp : <define>TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS ;
obj ms_int64_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS ;
obj inclass_member_initialization : test_case.cpp : <define>TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION ;
obj integral_int64_t : test_case.cpp : <define>TEST_BOOST_NO_INTEGRAL_INT64_T ;
obj iosfwd : test_case.cpp : <define>TEST_BOOST_NO_IOSFWD ;
obj iostream : test_case.cpp : <define>TEST_BOOST_NO_IOSTREAM ;
obj is_abstract : test_case.cpp : <define>TEST_BOOST_NO_IS_ABSTRACT ;
obj templated_iterator_constructors : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS ;
obj cxx11_lambdas : test_case.cpp : <define>TEST_BOOST_NO_CXX11_LAMBDAS ;
obj limits : test_case.cpp : <define>TEST_BOOST_NO_LIMITS ;
obj limits_compile_time_constants : test_case.cpp : <define>TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS ;
obj long_long_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS ;
obj member_function_specializations : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS ;
obj member_template_keyword : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD ;
obj pointer_to_member_template_parameters : test_case.cpp : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS ;
obj member_template_friends : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS ;
obj member_templates : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATES ;
obj nested_friendship : test_case.cpp : <define>TEST_BOOST_NO_NESTED_FRIENDSHIP ;
obj cxx11_noexcept : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NOEXCEPT ;
obj cxx11_nullptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NULLPTR ;
obj operators_in_namespace : test_case.cpp : <define>TEST_BOOST_NO_OPERATORS_IN_NAMESPACE ;
obj partial_specialization_implicit_default_args : test_case.cpp : <define>TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS ;
obj template_partial_specialization : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ;
obj private_in_aggregate : test_case.cpp : <define>TEST_BOOST_NO_PRIVATE_IN_AGGREGATE ;
obj pointer_to_member_const : test_case.cpp : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_CONST ;
obj cxx11_range_based_for : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RANGE_BASED_FOR ;
obj cxx11_raw_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RAW_LITERALS ;
obj restrict_references : test_case.cpp : <define>TEST_BOOST_NO_RESTRICT_REFERENCES ;
obj unreachable_return_detection : test_case.cpp : <define>TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION ;
obj rtti : test_case.cpp : <define>TEST_BOOST_NO_RTTI ;
obj cxx11_rvalue_references : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RVALUE_REFERENCES ;
obj cxx11_scoped_enums : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SCOPED_ENUMS ;
obj sfinae : test_case.cpp : <define>TEST_BOOST_NO_SFINAE ;
obj sfinae_expr : test_case.cpp : <define>TEST_BOOST_NO_SFINAE_EXPR ;
obj stringstream : test_case.cpp : <define>TEST_BOOST_NO_STRINGSTREAM ;
obj cxx11_static_assert : test_case.cpp : <define>TEST_BOOST_NO_CXX11_STATIC_ASSERT ;
obj std_allocator : test_case.cpp : <define>TEST_BOOST_NO_STD_ALLOCATOR ;
obj std_distance : test_case.cpp : <define>TEST_BOOST_NO_STD_DISTANCE ;
obj std_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_STD_ITERATOR_TRAITS ;
obj std_iterator : test_case.cpp : <define>TEST_BOOST_NO_STD_ITERATOR ;
obj std_locale : test_case.cpp : <define>TEST_BOOST_NO_STD_LOCALE ;
obj std_messages : test_case.cpp : <define>TEST_BOOST_NO_STD_MESSAGES ;
obj std_min_max : test_case.cpp : <define>TEST_BOOST_NO_STD_MIN_MAX ;
obj std_output_iterator_assign : test_case.cpp : <define>TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN ;
obj std_typeinfo : test_case.cpp : <define>TEST_BOOST_NO_STD_TYPEINFO ;
obj std_use_facet : test_case.cpp : <define>TEST_BOOST_NO_STD_USE_FACET ;
obj std_wstreambuf : test_case.cpp : <define>TEST_BOOST_NO_STD_WSTREAMBUF ;
obj std_wstring : test_case.cpp : <define>TEST_BOOST_NO_STD_WSTRING ;
obj stdc_namespace : test_case.cpp : <define>TEST_BOOST_NO_STDC_NAMESPACE ;
obj swprintf : test_case.cpp : <define>TEST_BOOST_NO_SWPRINTF ;
obj cxx11_local_class_template_parameters : test_case.cpp : <define>TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS ;
obj cxx11_template_aliases : test_case.cpp : <define>TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES ;
obj templated_iostreams : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATED_IOSTREAMS ;
obj template_templates : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATE_TEMPLATES ;
obj two_phase_name_lookup : test_case.cpp : <define>TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP ;
obj typeid : test_case.cpp : <define>TEST_BOOST_NO_TYPEID ;
obj typename_with_ctor : test_case.cpp : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR ;
obj cxx11_unicode_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS ;
obj cxx11_unified_initialization_syntax : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX ;
obj boost_function_scope_using_declaration_breaks_adl : test_case.cpp : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL ;
obj using_declaration_overloads_from_typename_base : test_case.cpp : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE ;
obj using_template : test_case.cpp : <define>TEST_BOOST_NO_USING_TEMPLATE ;
obj cxx11_variadic_macros : test_case.cpp : <define>TEST_BOOST_NO_CXX11_VARIADIC_MACROS ;
obj cxx11_variadic_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES ;
obj void_returns : test_case.cpp : <define>TEST_BOOST_NO_VOID_RETURNS ;
obj intrinsic_wchar_t : test_case.cpp : <define>TEST_BOOST_NO_INTRINSIC_WCHAR_T ;

1
checks/architecture/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
bin

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

21
checks/config.jam Normal file
View File

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

979
checks/test_case.cpp Normal file
View File

@@ -0,0 +1,979 @@
// This file was automatically generated on Wed Jan 03 23:31:31 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$
//
#include <boost/config.hpp>
#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET
# ifndef BOOST_HAS_TWO_ARG_USE_FACET
# error "Feature macro BOOST_HAS_TWO_ARG_USE_FACET is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_BETHREADS
# ifndef BOOST_HAS_BETHREADS
# error "Feature macro BOOST_HAS_BETHREADS is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_CLOCK_GETTIME
# ifndef BOOST_HAS_CLOCK_GETTIME
# error "Feature macro BOOST_HAS_CLOCK_GETTIME 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."
# endif
#endif
#ifdef TEST_BOOST_HAS_EXPM1
# ifndef BOOST_HAS_EXPM1
# error "Feature macro BOOST_HAS_EXPM1 is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_FLOAT128
# ifndef BOOST_HAS_FLOAT128
# error "Feature macro BOOST_HAS_FLOAT128 is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_FTIME
# ifndef BOOST_HAS_FTIME
# error "Feature macro BOOST_HAS_FTIME is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME
# ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME
# error "Feature macro BOOST_HAS_GETSYSTEMTIMEASFILETIME is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_GETTIMEOFDAY
# ifndef BOOST_HAS_GETTIMEOFDAY
# error "Feature macro BOOST_HAS_GETTIMEOFDAY is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_HASH
# ifndef BOOST_HAS_HASH
# error "Feature macro BOOST_HAS_HASH is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_INT128
# ifndef BOOST_HAS_INT128
# error "Feature macro BOOST_HAS_INT128 is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_LOG1P
# ifndef BOOST_HAS_LOG1P
# error "Feature macro BOOST_HAS_LOG1P is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_LONG_LONG
# ifndef BOOST_HAS_LONG_LONG
# error "Feature macro BOOST_HAS_LONG_LONG is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_MACRO_USE_FACET
# ifndef BOOST_HAS_MACRO_USE_FACET
# error "Feature macro BOOST_HAS_MACRO_USE_FACET is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_MS_INT64
# ifndef BOOST_HAS_MS_INT64
# error "Feature macro BOOST_HAS_MS_INT64 is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_NANOSLEEP
# ifndef BOOST_HAS_NANOSLEEP
# error "Feature macro BOOST_HAS_NANOSLEEP is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_NL_TYPES_H
# ifndef BOOST_HAS_NL_TYPES_H
# error "Feature macro BOOST_HAS_NL_TYPES_H is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_NRVO
# ifndef BOOST_HAS_NRVO
# error "Feature macro BOOST_HAS_NRVO is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR
# ifndef BOOST_HAS_PARTIAL_STD_ALLOCATOR
# error "Feature macro BOOST_HAS_PARTIAL_STD_ALLOCATOR is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP
# ifndef BOOST_HAS_PTHREAD_DELAY_NP
# error "Feature macro BOOST_HAS_PTHREAD_DELAY_NP is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# error "Feature macro BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PTHREAD_YIELD
# ifndef BOOST_HAS_PTHREAD_YIELD
# error "Feature macro BOOST_HAS_PTHREAD_YIELD is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_PTHREADS
# ifndef BOOST_HAS_PTHREADS
# error "Feature macro BOOST_HAS_PTHREADS is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_RVALUE_REFS
# ifndef BOOST_HAS_RVALUE_REFS
# error "Feature macro BOOST_HAS_RVALUE_REFS is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_SCHED_YIELD
# ifndef BOOST_HAS_SCHED_YIELD
# error "Feature macro BOOST_HAS_SCHED_YIELD is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS
# ifndef BOOST_HAS_SGI_TYPE_TRAITS
# error "Feature macro BOOST_HAS_SGI_TYPE_TRAITS is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_SIGACTION
# ifndef BOOST_HAS_SIGACTION
# error "Feature macro BOOST_HAS_SIGACTION is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_SLIST
# ifndef BOOST_HAS_SLIST
# error "Feature macro BOOST_HAS_SLIST is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_STATIC_ASSERT
# ifndef BOOST_HAS_STATIC_ASSERT
# error "Feature macro BOOST_HAS_STATIC_ASSERT is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_STDINT_H
# ifndef BOOST_HAS_STDINT_H
# error "Feature macro BOOST_HAS_STDINT_H is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_STLP_USE_FACET
# ifndef BOOST_HAS_STLP_USE_FACET
# error "Feature macro BOOST_HAS_STLP_USE_FACET is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_UNISTD_H
# ifndef BOOST_HAS_UNISTD_H
# error "Feature macro BOOST_HAS_UNISTD_H is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_VARIADIC_TMPL
# ifndef BOOST_HAS_VARIADIC_TMPL
# error "Feature macro BOOST_HAS_VARIADIC_TMPL is not defined."
# endif
#endif
#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES
# ifndef BOOST_MSVC6_MEMBER_TEMPLATES
# error "Feature macro BOOST_MSVC6_MEMBER_TEMPLATES is not defined."
# endif
#endif
#ifdef TEST_BOOST_MSVC_STD_ITERATOR
# ifndef BOOST_MSVC_STD_ITERATOR
# error "Feature macro BOOST_MSVC_STD_ITERATOR is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_WINTHREADS
# ifndef BOOST_HAS_WINTHREADS
# error "Feature macro BOOST_HAS_WINTHREADS is not defined."
# endif
#endif
#ifdef TEST_BOOST_NO_ADL_BARRIER
# ifdef BOOST_NO_ADL_BARRIER
# error "Defect macro BOOST_NO_ADL_BARRIER is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# error "Defect macro BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# ifdef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# error "Defect macro BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS
# ifdef BOOST_NO_CXX11_AUTO_DECLARATIONS
# error "Defect macro BOOST_NO_CXX11_AUTO_DECLARATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# ifdef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# error "Defect macro BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_AUTO_PTR
# ifdef BOOST_NO_AUTO_PTR
# error "Defect macro BOOST_NO_AUTO_PTR is defined."
# endif
#endif
#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# ifdef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# error "Defect macro BOOST_BCB_PARTIAL_SPECIALIZATION_BUG is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_CHAR16_T
# ifdef BOOST_NO_CXX11_CHAR16_T
# error "Defect macro BOOST_NO_CXX11_CHAR16_T is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_CHAR32_T
# ifdef BOOST_NO_CXX11_CHAR32_T
# error "Defect macro BOOST_NO_CXX11_CHAR32_T is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# error "Defect macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR
# ifdef BOOST_NO_CXX11_CONSTEXPR
# error "Defect macro BOOST_NO_CXX11_CONSTEXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS
# ifdef BOOST_NO_CTYPE_FUNCTIONS
# error "Defect macro BOOST_NO_CTYPE_FUNCTIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS
# ifdef BOOST_NO_CV_SPECIALIZATIONS
# error "Defect macro BOOST_NO_CV_SPECIALIZATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS
# ifdef BOOST_NO_CV_VOID_SPECIALIZATIONS
# error "Defect macro BOOST_NO_CV_VOID_SPECIALIZATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CWCHAR
# ifdef BOOST_NO_CWCHAR
# error "Defect macro BOOST_NO_CWCHAR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CWCTYPE
# ifdef BOOST_NO_CWCTYPE
# error "Defect macro BOOST_NO_CWCTYPE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF
# ifdef BOOST_NO_CXX11_ADDRESSOF
# error "Defect macro BOOST_NO_CXX11_ADDRESSOF is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_ALIGNAS
# ifdef BOOST_NO_CXX11_ALIGNAS
# error "Defect macro BOOST_NO_CXX11_ALIGNAS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR
# ifdef BOOST_NO_CXX11_ALLOCATOR
# error "Defect macro BOOST_NO_CXX11_ALLOCATOR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR
# ifdef BOOST_NO_CXX11_ATOMIC_SMART_PTR
# 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."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY
# ifdef BOOST_NO_CXX11_HDR_ARRAY
# error "Defect macro BOOST_NO_CXX11_HDR_ARRAY is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC
# ifdef BOOST_NO_CXX11_HDR_ATOMIC
# error "Defect macro BOOST_NO_CXX11_HDR_ATOMIC is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO
# ifdef BOOST_NO_CXX11_HDR_CHRONO
# error "Defect macro BOOST_NO_CXX11_HDR_CHRONO is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT
# ifdef BOOST_NO_CXX11_HDR_CODECVT
# error "Defect macro BOOST_NO_CXX11_HDR_CODECVT is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# ifdef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# error "Defect macro BOOST_NO_CXX11_HDR_CONDITION_VARIABLE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST
# ifdef BOOST_NO_CXX11_HDR_FORWARD_LIST
# error "Defect macro BOOST_NO_CXX11_HDR_FORWARD_LIST is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE
# ifdef BOOST_NO_CXX11_HDR_FUTURE
# error "Defect macro BOOST_NO_CXX11_HDR_FUTURE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# error "Defect macro BOOST_NO_CXX11_HDR_INITIALIZER_LIST is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX
# ifdef BOOST_NO_CXX11_HDR_MUTEX
# error "Defect macro BOOST_NO_CXX11_HDR_MUTEX is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM
# ifdef BOOST_NO_CXX11_HDR_RANDOM
# error "Defect macro BOOST_NO_CXX11_HDR_RANDOM is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO
# ifdef BOOST_NO_CXX11_HDR_RATIO
# error "Defect macro BOOST_NO_CXX11_HDR_RATIO is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX
# ifdef BOOST_NO_CXX11_HDR_REGEX
# error "Defect macro BOOST_NO_CXX11_HDR_REGEX is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# ifdef BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# error "Defect macro BOOST_NO_CXX11_HDR_SYSTEM_ERROR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD
# ifdef BOOST_NO_CXX11_HDR_THREAD
# error "Defect macro BOOST_NO_CXX11_HDR_THREAD is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE
# ifdef BOOST_NO_CXX11_HDR_TUPLE
# error "Defect macro BOOST_NO_CXX11_HDR_TUPLE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS
# ifdef BOOST_NO_CXX11_HDR_TYPE_TRAITS
# error "Defect macro BOOST_NO_CXX11_HDR_TYPE_TRAITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX
# ifdef BOOST_NO_CXX11_HDR_TYPEINDEX
# error "Defect macro BOOST_NO_CXX11_HDR_TYPEINDEX is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP
# ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP
# error "Defect macro BOOST_NO_CXX11_HDR_UNORDERED_MAP is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET
# ifdef BOOST_NO_CXX11_HDR_UNORDERED_SET
# error "Defect macro BOOST_NO_CXX11_HDR_UNORDERED_SET is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES
# ifdef BOOST_NO_CXX11_INLINE_NAMESPACES
# error "Defect macro BOOST_NO_CXX11_INLINE_NAMESPACES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
# ifdef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
# error "Defect macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS
# ifdef BOOST_NO_CXX11_NUMERIC_LIMITS
# error "Defect macro BOOST_NO_CXX11_NUMERIC_LIMITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_POINTER_TRAITS
# ifdef BOOST_NO_CXX11_POINTER_TRAITS
# error "Defect macro BOOST_NO_CXX11_POINTER_TRAITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS
# ifdef BOOST_NO_CXX11_REF_QUALIFIERS
# error "Defect macro BOOST_NO_CXX11_REF_QUALIFIERS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_SFINAE_EXPR
# ifdef BOOST_NO_CXX11_SFINAE_EXPR
# error "Defect macro BOOST_NO_CXX11_SFINAE_EXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_SMART_PTR
# ifdef BOOST_NO_CXX11_SMART_PTR
# error "Defect macro BOOST_NO_CXX11_SMART_PTR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN
# ifdef BOOST_NO_CXX11_STD_ALIGN
# error "Defect macro BOOST_NO_CXX11_STD_ALIGN is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_THREAD_LOCAL
# ifdef BOOST_NO_CXX11_THREAD_LOCAL
# error "Defect macro BOOST_NO_CXX11_THREAD_LOCAL is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# ifdef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# error "Defect macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS
# ifdef BOOST_NO_CXX11_USER_DEFINED_LITERALS
# error "Defect macro BOOST_NO_CXX11_USER_DEFINED_LITERALS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_BINARY_LITERALS
# ifdef BOOST_NO_CXX14_BINARY_LITERALS
# error "Defect macro BOOST_NO_CXX14_BINARY_LITERALS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_CONSTEXPR
# ifdef BOOST_NO_CXX14_CONSTEXPR
# error "Defect macro BOOST_NO_CXX14_CONSTEXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_DECLTYPE_AUTO
# ifdef BOOST_NO_CXX14_DECLTYPE_AUTO
# error "Defect macro BOOST_NO_CXX14_DECLTYPE_AUTO is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
# ifdef BOOST_NO_CXX14_DIGIT_SEPARATORS
# error "Defect macro BOOST_NO_CXX14_DIGIT_SEPARATORS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
# ifdef BOOST_NO_CXX14_GENERIC_LAMBDAS
# error "Defect macro BOOST_NO_CXX14_GENERIC_LAMBDAS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX
# ifdef BOOST_NO_CXX14_HDR_SHARED_MUTEX
# error "Defect macro BOOST_NO_CXX14_HDR_SHARED_MUTEX is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# ifdef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# error "Defect macro BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI
# ifdef BOOST_NO_CXX14_AGGREGATE_NSDMI
# error "Defect macro BOOST_NO_CXX14_AGGREGATE_NSDMI is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# ifdef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# error "Defect macro BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_STD_EXCHANGE
# ifdef BOOST_NO_CXX14_STD_EXCHANGE
# error "Defect macro BOOST_NO_CXX14_STD_EXCHANGE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES
# ifdef BOOST_NO_CXX14_VARIABLE_TEMPLATES
# error "Defect macro BOOST_NO_CXX14_VARIABLE_TEMPLATES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS
# ifdef BOOST_NO_CXX17_FOLD_EXPRESSIONS
# error "Defect macro BOOST_NO_CXX17_FOLD_EXPRESSIONS 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."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_ITERATOR_TRAITS
# ifdef BOOST_NO_CXX17_ITERATOR_TRAITS
# error "Defect macro BOOST_NO_CXX17_ITERATOR_TRAITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_STD_APPLY
# ifdef BOOST_NO_CXX17_STD_APPLY
# error "Defect macro BOOST_NO_CXX17_STD_APPLY is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_STD_INVOKE
# ifdef BOOST_NO_CXX17_STD_INVOKE
# error "Defect macro BOOST_NO_CXX17_STD_INVOKE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_STRUCTURED_BINDINGS
# ifdef BOOST_NO_CXX17_STRUCTURED_BINDINGS
# error "Defect macro BOOST_NO_CXX17_STRUCTURED_BINDINGS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX98_BINDERS
# ifdef BOOST_NO_CXX98_BINDERS
# error "Defect macro BOOST_NO_CXX98_BINDERS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX98_FUNCTION_BASE
# ifdef BOOST_NO_CXX98_FUNCTION_BASE
# error "Defect macro BOOST_NO_CXX98_FUNCTION_BASE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX98_RANDOM_SHUFFLE
# ifdef BOOST_NO_CXX98_RANDOM_SHUFFLE
# error "Defect macro BOOST_NO_CXX98_RANDOM_SHUFFLE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL
# ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL
# error "Defect macro BOOST_NO_CXX11_HDR_FUNCTIONAL is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE
# ifdef BOOST_NO_CXX11_DECLTYPE
# error "Defect macro BOOST_NO_CXX11_DECLTYPE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276
# ifdef BOOST_NO_CXX11_DECLTYPE_N3276
# error "Defect macro BOOST_NO_CXX11_DECLTYPE_N3276 is defined."
# endif
#endif
#ifdef TEST_BOOST_DEDUCED_TYPENAME
# ifdef BOOST_DEDUCED_TYPENAME
# error "Defect macro BOOST_DEDUCED_TYPENAME is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# ifdef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# error "Defect macro BOOST_NO_CXX11_DEFAULTED_FUNCTIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS
# ifdef BOOST_NO_CXX11_DELETED_FUNCTIONS
# error "Defect macro BOOST_NO_CXX11_DELETED_FUNCTIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# ifdef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# error "Defect macro BOOST_NO_DEPENDENT_NESTED_DERIVATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# error "Defect macro BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE
# ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
# error "Defect macro BOOST_NO_EXCEPTION_STD_NAMESPACE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_EXCEPTIONS
# ifdef BOOST_NO_EXCEPTIONS
# error "Defect macro BOOST_NO_EXCEPTIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# error "Defect macro BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# ifdef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# error "Defect macro BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE
# ifdef BOOST_NO_CXX11_EXTERN_TEMPLATE
# error "Defect macro BOOST_NO_CXX11_EXTERN_TEMPLATE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_FENV_H
# ifdef BOOST_NO_FENV_H
# error "Defect macro BOOST_NO_FENV_H is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
# ifdef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
# error "Defect macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# error "Defect macro BOOST_NO_FUNCTION_TEMPLATE_ORDERING is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# ifdef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# error "Defect macro BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
# ifdef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
# error "Defect macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS
# ifdef BOOST_NO_MS_INT64_NUMERIC_LIMITS
# error "Defect macro BOOST_NO_MS_INT64_NUMERIC_LIMITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# error "Defect macro BOOST_NO_INCLASS_MEMBER_INITIALIZATION is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T
# ifdef BOOST_NO_INTEGRAL_INT64_T
# error "Defect macro BOOST_NO_INTEGRAL_INT64_T is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_IOSFWD
# ifdef BOOST_NO_IOSFWD
# error "Defect macro BOOST_NO_IOSFWD is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_IOSTREAM
# ifdef BOOST_NO_IOSTREAM
# error "Defect macro BOOST_NO_IOSTREAM is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_IS_ABSTRACT
# ifdef BOOST_NO_IS_ABSTRACT
# error "Defect macro BOOST_NO_IS_ABSTRACT is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# ifdef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# error "Defect macro BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_LAMBDAS
# ifdef BOOST_NO_CXX11_LAMBDAS
# error "Defect macro BOOST_NO_CXX11_LAMBDAS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_LIMITS
# ifdef BOOST_NO_LIMITS
# error "Defect macro BOOST_NO_LIMITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# error "Defect macro BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS
# ifdef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
# error "Defect macro BOOST_NO_LONG_LONG_NUMERIC_LIMITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_LONG_LONG
# ifdef BOOST_NO_LONG_LONG
# error "Defect macro BOOST_NO_LONG_LONG is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# ifdef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# error "Defect macro BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD
# ifdef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
# error "Defect macro BOOST_NO_MEMBER_TEMPLATE_KEYWORD is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# ifdef BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# error "Defect macro BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# error "Defect macro BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES
# ifdef BOOST_NO_MEMBER_TEMPLATES
# error "Defect macro BOOST_NO_MEMBER_TEMPLATES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP
# ifdef BOOST_NO_NESTED_FRIENDSHIP
# error "Defect macro BOOST_NO_NESTED_FRIENDSHIP is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT
# ifdef BOOST_NO_CXX11_NOEXCEPT
# error "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_NULLPTR
# ifdef BOOST_NO_CXX11_NULLPTR
# error "Defect macro BOOST_NO_CXX11_NULLPTR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE
# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
# error "Defect macro BOOST_NO_OPERATORS_IN_NAMESPACE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
# ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
# error "Defect macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# error "Defect macro BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE
# ifdef BOOST_NO_PRIVATE_IN_AGGREGATE
# error "Defect macro BOOST_NO_PRIVATE_IN_AGGREGATE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST
# ifdef BOOST_NO_POINTER_TO_MEMBER_CONST
# error "Defect macro BOOST_NO_POINTER_TO_MEMBER_CONST is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR
# ifdef BOOST_NO_CXX11_RANGE_BASED_FOR
# error "Defect macro BOOST_NO_CXX11_RANGE_BASED_FOR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS
# ifdef BOOST_NO_CXX11_RAW_LITERALS
# error "Defect macro BOOST_NO_CXX11_RAW_LITERALS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_RESTRICT_REFERENCES
# ifdef BOOST_NO_RESTRICT_REFERENCES
# error "Defect macro BOOST_NO_RESTRICT_REFERENCES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION
# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
# error "Defect macro BOOST_NO_UNREACHABLE_RETURN_DETECTION is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_RTTI
# ifdef BOOST_NO_RTTI
# error "Defect macro BOOST_NO_RTTI is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES
# ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
# error "Defect macro BOOST_NO_CXX11_RVALUE_REFERENCES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS
# ifdef BOOST_NO_CXX11_SCOPED_ENUMS
# error "Defect macro BOOST_NO_CXX11_SCOPED_ENUMS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_SFINAE
# ifdef BOOST_NO_SFINAE
# error "Defect macro BOOST_NO_SFINAE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_SFINAE_EXPR
# ifdef BOOST_NO_SFINAE_EXPR
# error "Defect macro BOOST_NO_SFINAE_EXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STRINGSTREAM
# ifdef BOOST_NO_STRINGSTREAM
# error "Defect macro BOOST_NO_STRINGSTREAM is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT
# ifdef BOOST_NO_CXX11_STATIC_ASSERT
# error "Defect macro BOOST_NO_CXX11_STATIC_ASSERT is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_ALLOCATOR
# ifdef BOOST_NO_STD_ALLOCATOR
# error "Defect macro BOOST_NO_STD_ALLOCATOR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_DISTANCE
# ifdef BOOST_NO_STD_DISTANCE
# error "Defect macro BOOST_NO_STD_DISTANCE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS
# ifdef BOOST_NO_STD_ITERATOR_TRAITS
# error "Defect macro BOOST_NO_STD_ITERATOR_TRAITS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_ITERATOR
# ifdef BOOST_NO_STD_ITERATOR
# error "Defect macro BOOST_NO_STD_ITERATOR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_LOCALE
# ifdef BOOST_NO_STD_LOCALE
# error "Defect macro BOOST_NO_STD_LOCALE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_MESSAGES
# ifdef BOOST_NO_STD_MESSAGES
# error "Defect macro BOOST_NO_STD_MESSAGES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_MIN_MAX
# ifdef BOOST_NO_STD_MIN_MAX
# error "Defect macro BOOST_NO_STD_MIN_MAX is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
# ifdef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
# error "Defect macro BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_TYPEINFO
# ifdef BOOST_NO_STD_TYPEINFO
# error "Defect macro BOOST_NO_STD_TYPEINFO is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_USE_FACET
# ifdef BOOST_NO_STD_USE_FACET
# error "Defect macro BOOST_NO_STD_USE_FACET is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_WSTREAMBUF
# ifdef BOOST_NO_STD_WSTREAMBUF
# error "Defect macro BOOST_NO_STD_WSTREAMBUF is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STD_WSTRING
# ifdef BOOST_NO_STD_WSTRING
# error "Defect macro BOOST_NO_STD_WSTRING is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_STDC_NAMESPACE
# ifdef BOOST_NO_STDC_NAMESPACE
# error "Defect macro BOOST_NO_STDC_NAMESPACE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_SWPRINTF
# ifdef BOOST_NO_SWPRINTF
# error "Defect macro BOOST_NO_SWPRINTF is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# ifdef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# error "Defect macro BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES
# ifdef BOOST_NO_CXX11_TEMPLATE_ALIASES
# error "Defect macro BOOST_NO_CXX11_TEMPLATE_ALIASES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS
# ifdef BOOST_NO_TEMPLATED_IOSTREAMS
# error "Defect macro BOOST_NO_TEMPLATED_IOSTREAMS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES
# ifdef BOOST_NO_TEMPLATE_TEMPLATES
# error "Defect macro BOOST_NO_TEMPLATE_TEMPLATES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP
# ifdef BOOST_NO_TWO_PHASE_NAME_LOOKUP
# error "Defect macro BOOST_NO_TWO_PHASE_NAME_LOOKUP is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TYPEID
# ifdef BOOST_NO_TYPEID
# error "Defect macro BOOST_NO_TYPEID is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR
# ifdef BOOST_NO_TYPENAME_WITH_CTOR
# error "Defect macro BOOST_NO_TYPENAME_WITH_CTOR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS
# ifdef BOOST_NO_CXX11_UNICODE_LITERALS
# error "Defect macro BOOST_NO_CXX11_UNICODE_LITERALS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# ifdef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# error "Defect macro BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX is defined."
# endif
#endif
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# ifdef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# error "Defect macro BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# ifdef BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# error "Defect macro BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_USING_TEMPLATE
# ifdef BOOST_NO_USING_TEMPLATE
# error "Defect macro BOOST_NO_USING_TEMPLATE is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS
# ifdef BOOST_NO_CXX11_VARIADIC_MACROS
# error "Defect macro BOOST_NO_CXX11_VARIADIC_MACROS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES
# ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
# error "Defect macro BOOST_NO_CXX11_VARIADIC_TEMPLATES is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_VOID_RETURNS
# ifdef BOOST_NO_VOID_RETURNS
# error "Defect macro BOOST_NO_VOID_RETURNS is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T
# ifdef BOOST_NO_INTRINSIC_WCHAR_T
# error "Defect macro BOOST_NO_INTRINSIC_WCHAR_T is defined."
# endif
#endif
int main( int, char *[] )
{
return 0;
}

4
configure vendored
View File

@@ -2614,7 +2614,7 @@ for file in $boost_base/libs/config/test/boost_no*.ipp; do
basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
namespace=`echo $macroname | tr [A-Z] [a-z]`
namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
#echo file = $file
#echo basename = $basename
@@ -2777,7 +2777,7 @@ for file in $boost_base/libs/config/test/boost_has*.ipp; do
basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
namespace=`echo $macroname | tr [A-Z] [a-z]`
namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
# echo $file
# echo $basename

View File

@@ -59,4 +59,8 @@ boostbook standalone
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ;
explicit pdfinstall ;
###############################################################################
alias boostdoc ;
explicit boostdoc ;
alias boostrelease : standalone ;
explicit boostrelease ;

65
doc/build_time.qbk Normal file
View File

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

View File

@@ -22,7 +22,7 @@ Distributed under the Boost Software License, Version 1.0.
[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../tools/regression/doc/index.html boost regression test driver]]
[def __BOOST_CONFIG_HEADER__ [@../../../../boost/config.hpp <boost/config.hpp>]]
[def __BOOST_CONFIG_USER_HEADER__ [@../../../../boost/config/user.hpp <boost/config/user.hpp>]]
[def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/user.hpp <boost/config/suffix.hpp>]]
[def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/detail/suffix.hpp <boost/config/detail/suffix.hpp>]]
[def __BOOST_CONFIG_DIR__ ['<boost-root>]`/boost/config/`]
@@ -50,6 +50,7 @@ Distributed under the Boost Software License, Version 1.0.
[include configuring_boost.qbk]
[include macro_reference.qbk]
[include build_time.qbk]
[include cstdint.qbk]
[include guidelines.qbk]
[include rationale.qbk]

View File

@@ -271,6 +271,12 @@ feature off.
Causes the auto-linking code to output diagnostic messages indicating the
name of the library that is selected for linking.
]]
[[`BOOST_LIB_BUILDID`][
If you built Boost using the `--buildid` option then set this macro to the same value
as you passed to bjam. For example if you built using `bjam address-model=64 --buildid=amd64`
then compile your code with `-DBOOST_LIB_BUILDID=amd64` to ensure the correct libraries
are selected at link time.
]]
[[`BOOST_LIB_TOOLSET`][
Overrides the name of the toolset part of the name of library being linked
to; note if defined this must be defined to a quoted string literal, for

View File

@@ -191,9 +191,9 @@ modifying this file as it breaks dependencies for everyone. This file should
include only "boilerplate" configuration code, and generally should change
only when new macros are added.
[@../../../../boost/config/select_compiler_config.hpp <boost/config/select_compiler_config.hpp>],
[@../../../../boost/config/select_platform_config.hpp <boost/config/select_platform_config.hpp>] and
[@../../../../boost/config/select_stdlib_config.hpp <boost/config/select_stdlib_config.hpp>]
[@../../../../boost/config/detail/select_compiler_config.hpp <boost/config/detail/select_compiler_config.hpp>],
[@../../../../boost/config/detail/select_platform_config.hpp <boost/config/detail/select_platform_config.hpp>] and
[@../../../../boost/config/detail/select_stdlib_config.hpp <boost/config/detail/select_stdlib_config.hpp>]
are included by default and should change only if support for a new
compiler/standard library/platform is added.

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<link rel="prev" href="build_config.html" title="Build Time Configuration">
<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -283,7 +283,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -302,7 +302,7 @@
one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
rather than <code class="computeroutput"><span class="identifier">BOOST_HAS_CATOPEN</span></code>).
If the macro describes a POSIX feature group, then add boilerplate code to
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
<a href="../../../../../boost/config/detail/suffix.hpp" target="_top">&lt;boost/config/detail/suffix.hpp&gt;</a>
to auto-detect the feature where possible (if you are wondering why we can't
use POSIX feature test macro directly, remember that many of these features
can be added by third party libraries, and are not therefore identified inside
@@ -333,15 +333,15 @@
as well.
</p>
<p>
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
<a href="../../../../../boost/config/detail/suffix.hpp" target="_top">&lt;boost/config/detail/suffix.hpp&gt;</a>
is always included so be careful about modifying this file as it breaks dependencies
for everyone. This file should include only "boilerplate" configuration
code, and generally should change only when new macros are added.
</p>
<p>
<a href="../../../../../boost/config/select_compiler_config.hpp" target="_top">&lt;boost/config/select_compiler_config.hpp&gt;</a>,
<a href="../../../../../boost/config/select_platform_config.hpp" target="_top">&lt;boost/config/select_platform_config.hpp&gt;</a>
and <a href="../../../../../boost/config/select_stdlib_config.hpp" target="_top">&lt;boost/config/select_stdlib_config.hpp&gt;</a>
<a href="../../../../../boost/config/detail/select_compiler_config.hpp" target="_top">&lt;boost/config/detail/select_compiler_config.hpp&gt;</a>,
<a href="../../../../../boost/config/detail/select_platform_config.hpp" target="_top">&lt;boost/config/detail/select_platform_config.hpp&gt;</a>
and <a href="../../../../../boost/config/detail/select_stdlib_config.hpp" target="_top">&lt;boost/config/detail/select_stdlib_config.hpp&gt;</a>
are included by default and should change only if support for a new compiler/standard
library/platform is added.
</p>

View File

@@ -68,6 +68,14 @@
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
that allow use of C++11 features with C++03 compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported">Macros
that describe C++14 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers">Macros
that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__17_features_not_supported">Macros
that describe C++17 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_features_that_have_been_removed_from_the_standard_">Macros
that describe features that have been removed from the standard.</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -77,6 +85,7 @@
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/build_config.html">Build Time Configuration</a></span></dt>
<dt><span class="section"><a href="boost_config/cstdint.html">Standard Integer Types</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
@@ -679,6 +688,22 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_BUILDID</span></code>
</p>
</td>
<td>
<p>
If you built Boost using the <code class="computeroutput"><span class="special">--</span><span class="identifier">buildid</span></code> option then set this
macro to the same value as you passed to bjam. For example if you
built using <code class="computeroutput"><span class="identifier">bjam</span> <span class="identifier">address</span><span class="special">-</span><span class="identifier">model</span><span class="special">=</span><span class="number">64</span> <span class="special">--</span><span class="identifier">buildid</span><span class="special">=</span><span class="identifier">amd64</span></code> then compile your code
with <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_LIB_BUILDID</span><span class="special">=</span><span class="identifier">amd64</span></code>
to ensure the correct libraries are selected at link time.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
@@ -732,7 +757,7 @@
user settable macros</a>).
</p>
<p>
Finally the boost configuration header, includes <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>;
Finally the boost configuration header, includes <a href="../../../../boost/config/detail/suffix.hpp" target="_top">&lt;boost/config/detail/suffix.hpp&gt;</a>;
this header contains any boiler plate configuration code - for example where
one boost macro being set implies that another must be set also.
</p>
@@ -967,7 +992,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: June 01, 2014 at 09:50:01 GMT</small></p></td>
<td align="left"><p><small>Last revised: December 22, 2017 at 23:49:22 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -138,7 +138,7 @@ The standard library lacks `<iostream>`, `<istream>` or `<ostream>`.
[[`BOOST_NO_IS_ABSTRACT`][Compiler][
The C++ compiler does not support SFINAE with abstract types, this is covered
by __CORE_LANGUAGE_DR337__, but is not part of the current standard. Fortunately
most compilers that support SFINAE also support this DR.
most compilers that support SFINAE also support this DR. See also BOOST_NO_SFINAE and BOOST_NO_SFINAE_EXPR
]]
[[`BOOST_NO_LIMITS`][Standard library][
The C++ implementation does not provide the `<limits>` header. Never check for
@@ -209,16 +209,20 @@ Pointers to members don't work when used as template parameters.
The compiler misreads 8.5.1, treating classes as non-aggregate if they
contain private or protected member functions.
]]
[[`BOOST_NO_RESTRICT_REFERENCES`][Compiler][
Compiler-specific `restrict` keyword can not be applied to references.
]]
[[`BOOST_NO_RTTI`][Compiler][
The compiler may (or may not) have the typeid operator, but RTTI on the dynamic type
of an object is not supported.
]]
[[`BOOST_NO_SFINAE`][Compiler][
The compiler does not support the "Substitution Failure Is Not An Error"
meta-programming idiom.
meta-programming idiom. This is the lightweight pre-C++11 version of SFINAE.
]]
[[`BOOST_NO_SFINAE_EXPR`][Compiler][
The compiler does not support usage of SFINAE with arbitrary expressions.
The compiler does not support usage of SFINAE with arbitrary expressions. This is the
post-C++11 SFINAE, but excludes a few specific corner cases, see also BOOST_NO_CXX11_SFINAE_EXPR.
]]
[[`BOOST_NO_STD_ALLOCATOR`][Standard library][
The C++ standard library does not provide a standards conforming
@@ -228,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
@@ -348,6 +353,9 @@ The platform has the POSIX header `<dirent.h>`.
[[`BOOST_HAS_EXPM1`][Platform][
The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
]]
[[`BOOST_HAS_FLOAT128`][Compiler][
The compiler has `__float128` as a native type which is distinct
from all the regular C++ floating point types.]]
[[`BOOST_HAS_FTIME`][Platform][
The platform has the Win32 API type FTIME.
]]
@@ -399,6 +407,13 @@ containing header should be included only once while preprocessing the
current translation unit. The pragma may improve compile times of large projects
with some compilers.
]]
[[`BOOST_HAS_PRAGMA_DETECT_MISMATCH`][Compiler][
The compiler recognizes the `#pragma detect_mismatch("name", "value")` directive which tells that the
link stage should be terminated with error if values for provided `"name"` missmatch.
This pragma may be a help in preventing ODR violations and ensuring that different modules
are compiled with same flags.
]]
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
The platform has the POSIX API `pthread_delay_np`.
]]
@@ -582,6 +597,51 @@ that are not yet supported by a particular compiler or library.
[[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]]
[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
[[`BOOST_NO_CXX11_ATOMIC_SMART_PTR`][The standard library <memory> does not support atomic smart pointer operations.]]
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
]]
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
]]
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
]]
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
accepted in Madrid, March 2011.
]]
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_CXX11_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()`).
]]
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
[[`BOOST_NO_CXX11_FINAL`][The compiler does not support the C++ class-virt-specifier final.
]]
[[`BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS`][The compiler does not support
expanding a variadic template parameter pack into a template containing one or more
fixed arguments]]
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates.
]]
[[`BOOST_NO_CXX11_HDR_ATOMIC`][The standard library does not provide header <atomic>.]]
[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
[[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
@@ -602,49 +662,8 @@ that are not yet supported by a particular compiler or library.
[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
]]
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
]]
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
]]
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
accepted in Madrid, March 2011.
]]
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
explicit conversion operators (`explicit operator T()`).
]]
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates.
]]
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
]]
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
@@ -652,12 +671,21 @@ pass local classes as template parameters (this macro intentionally does not
control passing of unnamed types as template parameters, see also
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
]]
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
[[`BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions in access control sections other than `public`. Public defaulted
functions may still be supported, as indicated by `BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`. Some
compilers implementing an early draft of the C++11 standard (in particular, incorporating
[@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906 DR906]) are susceptible to this problem.
]]
[[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`.
]]
[[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`.
]]
[[`BOOST_NO_CXX11_NUMERIC_LIMITS`][The standard library `<limits>` header does
not support the C++11 version of `numeric_limits`.
]]
[[`BOOST_NO_CXX11_POINTER_TRAITS`][The standard library does not provide a
C++11 version of `std::pointer_traits` in <memory>.]]
[[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support
range-based for statements.
]]
@@ -674,12 +702,23 @@ r-value references.
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
scoped enumerations (`enum class`).
]]
[[`BOOST_NO_CXX11_SFINAE_EXPR`][The compiler does not support
usage of C++11 SFINAE with arbitrary expressions. Use this macro only if you
are using all of the features of SFINAE including substitution-failure-on-private-member-access.
Otherwise use BOOST_NO_SFINAE_EXPR or BOOST_NO_SFINAE which get defined for fewer compilers.
]]
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
[[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support
`static_assert`.
]]
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
[[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support
<unordered_map> and <unordered_set>.
]]
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CXX11_THREAD_LOCAL`][The compiler does not support the `thread_local` storage specifier.
]]
[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type
specification syntax (e.g. `auto foo(T) -> T;`).]]
[[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support
@@ -696,6 +735,8 @@ variadic templates.
[[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support
variadic macros.
]]
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
]]
]
[endsect]
@@ -852,6 +893,81 @@ release supports the CTP features.
[endsect]
[section Macros that describe C++14 features not supported]
The following macros describe features in the 2014 ISO C++ standard, formerly known as C++0y,
that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
[[`BOOST_NO_CXX14_AGGREGATE_NSDMI`][The compiler does not support member initializer for aggregates as in the following example:
[:
``
struct Foo
{
int x, y = 42;
};
Foo foo = { 0 };
``
]
]]
[[`BOOST_NO_CXX14_BINARY_LITERALS`][The compiler does not binary literals (e.g. `0b1010`).]]
[[`BOOST_NO_CXX14_CONSTEXPR`][The compiler does not support relaxed `constexpr`.]]
[[`BOOST_NO_CXX14_DECLTYPE_AUTO`][The compiler does not support `decltype(auto)`.]]
[[`BOOST_NO_CXX14_DIGIT_SEPARATORS`][The compiler does not support digit separators (e.g. `1'000'000`).]]
[[`BOOST_NO_CXX14_STD_EXCHANGE`][The compiler does not support `std::exchange()`.]]
[[`BOOST_NO_CXX14_GENERIC_LAMBDAS`][The compiler does not support generic lambda (e.g. `[](auto v){ }`).]]
[[`BOOST_NO_CXX14_HDR_SHARED_MUTEX`][The standard library does not provide header <shared_mutex>.]]
[[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]]
[[`BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION`][The compiler does not support return type deduction for normal functions (e.g. `auto f() { return val; }`).]]
[[`BOOST_NO_CXX14_VARIABLE_TEMPLATES`][The compiler does not support variable template (e.g. `template <class T> T kibi = T(1024);`).]]
]
[endsect]
[#config_14_for_11]
[section Macros that allow use of C++14 features with C++11 or earlier compilers]
The following macros allow use of C++14 features even with compilers that do not yet
provide compliant C++14 support.
[table
[[Macro ][ Description ]]
[[`BOOST_CXX14_CONSTEXPR`][This macro works similar to BOOST_CONSTEXPR, but expands to `constexpr` only if the C++14 "relaxed" `constexpr` is available.]]
]
[endsect]
[section Macros that describe C++17 features not supported]
The following macros describe features in the 2017 ISO C++ standard, formerly known as C++1z,
that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
[[`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`.]]
]
[endsect]
[section Macros that describe features that have been removed from the standard.]
The following macros describe features which were required by one version of the standard, but have been removed by later versions.
[table
[[Macro ][Description ]]
[[`BOOST_NO_CXX98_RANDOM_SHUFFLE`][The standard library no longer supports `std::random_shuffle()`. It was deprecated in C++11 and is removed from C++14.]]
[[`BOOST_NO_AUTO_PTR`][The standard library no longer supports `std::auto_ptr`. It was deprecated in C++11 and is removed from C++14.]]
[[`BOOST_NO_CXX98_FUNCTION_BASE`][The standard library no longer supports `std::unary_function` and `std::binary_function`. They were deprecated in C++11 and is removed from C++14.]]
[[`BOOST_NO_CXX98_BINDERS`][The standard library no longer supports `std::bind1st`, `std::bind2nd`, `std::ptr_fun` and `std::mem_fun`. They were deprecated in C++11 and is removed from C++14.]]
]
[endsect]
[#config_helpers]
[section Boost Helper Macros]
@@ -867,7 +983,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:
``
@@ -889,7 +1005,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"
@@ -983,8 +1099,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.
@@ -1066,6 +1185,21 @@ the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
used to create a mangled name in combination with a predefined macro such a
\_\_LINE__.
]]
[[`BOOST_RESTRICT`][
This macro can be used in place of the compiler specific variant of the C99 `restrict` keyword to
notify the compiler that, for the lifetime of the qualified pointer variable, only it and its
derivative value will be used to gain access to the object it references. This limits the effect of
pointer aliasing and helps the optimizers in generating better code. However, i this condition is
violated, undefined behavior may occurs.
Usage example:
``
void perform_computation( float* BOOST_RESTRICT in, float* BOOST_RESTRICT out )
{
*out = *in * 0.5f;
}
``
]]
[[`BOOST_FORCEINLINE`][
This macro can be used in place of the `inline` keyword to instruct the compiler
that the function should always be inlined.
@@ -1120,6 +1254,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.
@@ -1134,6 +1269,37 @@ Usage example:
handle_error("ptr is NULL");
``
]]
[[`BOOST_ATTRIBUTE_UNUSED`][Expands to `__attribute__((unused))` when this is available -
can be used to disable compiler warnings relating to unused types or variables.]]
[[`BOOST_MAY_ALIAS`, `BOOST_NO_MAY_ALIAS`][
`BOOST_MAY_ALIAS` expands to a type attribute that can be used to mark types that may
alias other types. Pointers or references to such marked types can be used to access objects
of other types. If the compiler supports this feature `BOOST_NO_MAY_ALIAS` is not defined.
Otherwise `BOOST_MAY_ALIAS` expands to nothing and `BOOST_NO_MAY_ALIAS` is defined.
Usage example:
``
struct BOOST_MAY_ALIAS aliasing_struct;
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]
@@ -1288,7 +1454,7 @@ include separate source code, and are intended to address several issues:
* Fixing the ABI of the compiled library
* Selecting which compiled library to link against based upon the compilers settings
See [@http://svn.boost.org/trac/boost/wiki/Guidelines/Separate Guidelines for Authors of Boost Libraries Containing Separate Source]
See [@http://www.boost.org/development/separate_compilation.html Guidelines for Authors of Boost Libraries Containing Separate Source]
[section Macros controlling shared library symbol visibility]

View File

@@ -32,7 +32,7 @@
// if we don't have a compiler config set, try and find one:
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
# include <boost/config/select_compiler_config.hpp>
# include <boost/config/detail/select_compiler_config.hpp>
#endif
// if we have a compiler config, include it now:
#ifdef BOOST_COMPILER_CONFIG
@@ -41,7 +41,7 @@
// if we don't have a std library config set, try and find one:
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
# include <boost/config/select_stdlib_config.hpp>
# include <boost/config/detail/select_stdlib_config.hpp>
#endif
// if we have a std library config, include it now:
#ifdef BOOST_STDLIB_CONFIG
@@ -50,7 +50,7 @@
// if we don't have a platform config set, try and find one:
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
# include <boost/config/select_platform_config.hpp>
# include <boost/config/detail/select_platform_config.hpp>
#endif
// if we have a platform config, include it now:
#ifdef BOOST_PLATFORM_CONFIG
@@ -58,7 +58,7 @@
#endif
// get config suffix code:
#include <boost/config/suffix.hpp>
#include <boost/config/detail/suffix.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once

View File

@@ -45,6 +45,7 @@ BOOST_LIB_PREFIX
+ BOOST_LIB_TOOLSET
+ BOOST_LIB_THREAD_OPT
+ BOOST_LIB_RT_OPT
+ BOOST_LIB_ARCH_AND_MODEL_OPT
"-"
+ BOOST_LIB_VERSION
@@ -69,6 +70,9 @@ BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
p STLport build.
n STLport build without its IOStreams.
BOOST_LIB_ARCH_AND_MODEL_OPT: The architecture and address model
(-x32 or -x64 for x86/32 and x86/64 respectively)
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
@@ -156,11 +160,21 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC)
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
// vc12:
# define BOOST_LIB_TOOLSET "vc120"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1910)
// vc14:
# define BOOST_LIB_TOOLSET "vc140"
# elif defined(BOOST_MSVC)
// vc14.1:
# define BOOST_LIB_TOOLSET "vc141"
# elif defined(__BORLANDC__)
// CBuilder 6:
@@ -351,6 +365,20 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#endif
//
// BOOST_LIB_ARCH_AND_MODEL_OPT
//
#if defined( _M_IX86 )
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x32"
#elif defined( _M_X64 )
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x64"
#elif defined( _M_ARM )
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a32"
#elif defined( _M_ARM64 )
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a64"
#endif
//
// select linkage opt:
//
@@ -370,6 +398,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
&& defined(BOOST_LIB_TOOLSET) \
&& defined(BOOST_LIB_THREAD_OPT) \
&& defined(BOOST_LIB_RT_OPT) \
&& defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \
&& defined(BOOST_LIB_VERSION)
#ifdef BOOST_AUTO_LINK_TAGGED
@@ -382,10 +411,15 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#else
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
#elif defined(BOOST_LIB_BUILDID)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
# endif
#else
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib")
# endif
#endif
@@ -416,6 +450,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#if defined(BOOST_LIB_RT_OPT)
# undef BOOST_LIB_RT_OPT
#endif
#if defined(BOOST_LIB_ARCH_AND_MODEL_OPT)
# undef BOOST_LIB_ARCH_AND_MODEL_OPT
#endif
#if defined(BOOST_LIB_LINK_OPT)
# undef BOOST_LIB_LINK_OPT
#endif

View File

@@ -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
@@ -185,6 +186,7 @@
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
@@ -195,6 +197,48 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH

View File

@@ -10,6 +10,11 @@
#define BOOST_HAS_PRAGMA_ONCE
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
// When compiling with clang before __has_extension was defined,
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
// clang reports a compiler error. So the only workaround found is:
@@ -18,6 +23,14 @@
#define __has_extension __has_feature
#endif
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
#define __has_cpp_attribute(x) 0
#endif
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -30,14 +43,25 @@
# define BOOST_NO_TYPEID
#endif
#if defined(__int64) && !defined(__GNUC__)
#if !__has_feature(cxx_thread_local)
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#ifdef __is_identifier
#if !__is_identifier(__int64) && !defined(__GNUC__)
# define BOOST_HAS_MS_INT64
#endif
#endif
#if __has_include(<stdint.h>)
# define BOOST_HAS_STDINT_H
#endif
#define BOOST_HAS_NRVO
// Branch prediction hints
#if defined(__has_builtin)
#if !defined (__c2__) && defined(__has_builtin)
#if __has_builtin(__builtin_expect)
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
@@ -47,7 +71,26 @@
// Clang supports "long long" in all compilation modes.
#define BOOST_HAS_LONG_LONG
#if defined(__SIZEOF_INT128__)
//
// We disable this if the compiler is really nvcc with C++03 as it
// doesn't actually support __int128 as of CUDA_VERSION=7500
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/10418
// https://svn.boost.org/trac/boost/ticket/11852
// Only re-enable this for nvcc if you're absolutely sure
// of the circumstances under which it's supported.
// Similarly __SIZEOF_INT128__ is defined when targetting msvc
// compatibility even though the required support functions are absent.
//
#if defined(__CUDACC__)
# if defined(BOOST_GCC_CXX11)
# define BOOST_NVCC_CXX11
# else
# define BOOST_NVCC_CXX03
# endif
#endif
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) && !defined(_MSC_VER)
# define BOOST_HAS_INT128
#endif
@@ -55,11 +98,15 @@
//
// 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")))
#endif
#define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
//
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
@@ -79,11 +126,16 @@
//
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
//
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1800) && !defined(__GNUC__)
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#endif
#if !__has_feature(cxx_constexpr)
# define BOOST_NO_CXX11_CONSTEXPR
#endif
@@ -176,7 +228,7 @@
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas))
#if !__has_feature(cxx_alignas)
# define BOOST_NO_CXX11_ALIGNAS
#endif
@@ -188,8 +240,92 @@
# define BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
// Clang always supports variadic macros
// Clang always supports extern templates
#if !__has_feature(cxx_override_control)
# define BOOST_NO_CXX11_FINAL
#endif
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !__has_feature(__cxx_decltype_auto__)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if !__has_feature(__cxx_aggregate_nsdmi__)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !__has_feature(__cxx_init_captures__)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !__has_feature(__cxx_generic_lambdas__)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
// clang < 3.5 has a defect with dependent type, like following.
//
// template <class T>
// constexpr typename enable_if<pred<T> >::type foo(T &)
// { } // error: no return statement in constexpr function
//
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
// Therefore we don't care such case.
//
// Note that we can't check Clang version directly as the numbering system changes depending who's
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
// so instead verify that we have a feature that was introduced at the same time as working C++14
// constexpr (generic lambda's in this case):
//
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !__has_feature(__cxx_return_type_deduction__)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !__has_feature(__cxx_variable_templates__)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
// Clang 3.9+ in c++1z
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
# define BOOST_NO_CXX17_INLINE_VARIABLES
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if __cplusplus < 201103L
#define BOOST_NO_CXX11_SFINAE_EXPR
#endif
#if __cplusplus < 201400
// All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
//
// __builtin_unreachable:
#if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
#if (__clang_major__ == 3) && (__clang_minor__ == 0)
// Apparently a clang bug:
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// Clang has supported the 'unused' attribute since the first release.
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
// Type aliasing hint.
#if __has_attribute(__may_alias__)
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__

View File

@@ -112,6 +112,7 @@
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
@@ -121,6 +122,50 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
//
// TR1 macros:

View File

@@ -12,7 +12,7 @@
// Comeau C++ compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
#if (__COMO_VERSION__ <= 4245)

View File

@@ -95,6 +95,7 @@
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
@@ -105,6 +106,48 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#ifdef c_plusplus
// EDG has "long long" in non-strict mode

View File

@@ -9,7 +9,7 @@
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
//
// versions check:

View File

@@ -10,7 +10,7 @@
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
#if _RELEASE < 8
#if _RELEASE_MAJOR < 8
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
#endif
@@ -21,8 +21,8 @@
# error "Unsupported Cray compiler, please try running the configure script."
#endif
#include "boost/config/compiler/common_edg.hpp"
#if _RELEASE_MINOR < 5 || __cplusplus < 201100
#include <boost/config/compiler/common_edg.hpp>
//
//
@@ -39,6 +39,7 @@
#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
@@ -59,6 +60,10 @@
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
//#define BOOST_HAS_FPCLASSIFY
@@ -85,5 +90,35 @@
#define __ATOMIC_SEQ_CST 5
#endif
#else /* _RELEASE_MINOR */
#define BOOST_HAS_VARIADIC_TMPL
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
#define BOOST_HAS_TR1_COMPLEX_OVERLOADS
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_STATIC_ASSERT
#define BOOST_HAS_SIGACTION
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_RVALUE_REFS
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_PTHREAD_YIELD
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#define BOOST_HAS_NRVO
#define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_NANOSLEEP
#define BOOST_NO_CXX11_SMART_PTR
#define BOOST_NO_CXX11_HDR_FUNCTIONAL
#define BOOST_NO_CXX14_CONSTEXPR
#define BOOST_HAS_LONG_LONG
#define BOOST_HAS_FLOAT128
#if __cplusplus < 201400
#define BOOST_NO_CXX11_DECLTYPE_N3276
#endif /* __cpluspus */
#endif /* _RELEASE_MINOR */

View File

@@ -0,0 +1,26 @@
// (C) Copyright 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)
// Check this is a recent EDG based compiler, otherwise we don't support it here:
#ifndef __EDG_VERSION__
# error "Unknown Diab compiler version - please run the configure tests and report the results"
#endif
#include "boost/config/compiler/common_edg.hpp"
#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

@@ -71,6 +71,7 @@
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
@@ -81,6 +82,48 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if (__DMC__ <= 0x840)
#error "Compiler not supported or configured - please reconfigure"

View File

@@ -16,8 +16,13 @@
//
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
//
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#if !defined(__CUDACC__)
#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#define BOOST_GCC BOOST_GCC_VERSION
#endif
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
# define BOOST_GCC_CXX11
#endif
#if __GNUC__ == 3
@@ -42,11 +47,11 @@
#endif
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#if BOOST_GCC_VERSION >= 30400
#define BOOST_HAS_PRAGMA_ONCE
#endif
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
#if BOOST_GCC_VERSION < 40400
// Previous versions of GCC did not completely implement value-initialization:
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
// members", reported by Jonathan Wakely in 2006,
@@ -94,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__))
@@ -114,7 +119,7 @@
//
// RTTI and typeinfo detection is possible post gcc-4.3:
//
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
#if BOOST_GCC_VERSION > 40300
# ifndef __GXX_RTTI
# ifndef BOOST_NO_TYPEID
# define BOOST_NO_TYPEID
@@ -128,20 +133,46 @@
//
// Recent GCC versions have __int128 when in 64-bit mode.
//
// We disable this if the compiler is really nvcc as it
// doesn't actually support __int128 as of CUDA_VERSION=5000
// We disable this if the compiler is really nvcc with C++03 as it
// doesn't actually support __int128 as of CUDA_VERSION=7500
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/8048
// https://svn.boost.org/trac/boost/ticket/11852
// Only re-enable this for nvcc if you're absolutely sure
// of the circumstances under which it's supported:
//
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
#if defined(__CUDACC__)
# if defined(BOOST_GCC_CXX11)
# define BOOST_NVCC_CXX11
# else
# define BOOST_NVCC_CXX03
# endif
#endif
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03)
# define BOOST_HAS_INT128
#endif
//
// Recent GCC versions have a __float128 native type, we need to
// include a std lib header to detect this - not ideal, but we'll
// be including <cstddef> later anyway when we select the std lib.
//
// Nevertheless, as of CUDA 7.5, using __float128 with the host
// compiler in pre-C++11 mode is still not supported.
// See https://svn.boost.org/trac/boost/ticket/11852
//
#ifdef __cplusplus
#include <cstddef>
#else
#include <stddef.h>
#endif
#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(BOOST_NVCC_CXX03)
# define BOOST_HAS_FLOAT128
#endif
// C++0x features in 4.3.n and later
//
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11)
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
// passed on the command line, which in turn defines
// __GXX_EXPERIMENTAL_CXX0X__.
@@ -154,19 +185,11 @@
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
// Variadic templates compiler:
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
# define BOOST_HAS_VARIADIC_TMPL
# else
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# endif
#endif
// C++0x features in 4.4.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_CHAR16_T
@@ -176,20 +199,21 @@
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
#if BOOST_GCC_VERSION < 40500
# define BOOST_NO_SFINAE_EXPR
#endif
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// C++0x features in 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
@@ -199,7 +223,7 @@
// C++0x features in 4.5.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11)
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
# define BOOST_NO_CXX11_SCOPED_ENUMS
@@ -207,8 +231,9 @@
// C++0x features in 4.6.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
@@ -217,22 +242,88 @@
// C++0x features in 4.7.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// C++0x features in 4.8.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_THREAD_LOCAL
# define BOOST_NO_CXX11_SFINAE_EXPR
#endif
// C++0x features in 4.8.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
// C++14 features in 4.9.0 and later
//
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# endif
#endif
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if (BOOST_GCC_VERSION < 50200) || !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#if __GNUC__ >= 7
# define BOOST_FALLTHROUGH __attribute__((fallthrough))
#endif
#ifdef __MINGW32__
// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see
// https://sourceforge.net/p/mingw-w64/bugs/527/
// Not setting this causes program termination on thread exit.
#define BOOST_NO_CXX11_THREAD_LOCAL
#endif
//
// Unused attribute:
#if __GNUC__ >= 4
# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
#endif
// Type aliasing hint. Supported since gcc 3.3.
#define BOOST_MAY_ALIAS __attribute__((__may_alias__))
//
// __builtin_unreachable:
#if BOOST_GCC_VERSION >= 40800
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
#ifndef BOOST_COMPILER
@@ -248,14 +339,14 @@
// versions check:
// we don't know gcc prior to version 3.30:
#if (__GNUC__ < 3) || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))
#if (BOOST_GCC_VERSION< 30300)
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 4.6 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
// last known and checked version is 7.1:
#if (BOOST_GCC_VERSION > 70100)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# 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...
@@ -263,4 +354,3 @@
# endif
#endif

View File

@@ -46,6 +46,7 @@
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_CXX11_SFINAE_EXPR
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
@@ -59,6 +60,48 @@
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__

View File

@@ -9,7 +9,7 @@
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
//
// versions check:

View File

@@ -13,7 +13,7 @@
// HP aCC C++ compiler setup:
#if defined(__EDG__)
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
#endif
#if (__HP_aCC <= 33100)
@@ -114,6 +114,7 @@
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
@@ -123,6 +124,7 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_THREAD_LOCAL
/*
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and

View File

@@ -14,10 +14,54 @@
// Intel compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
#ifdef _MSC_VER
#include <boost/config/compiler/visualc.hpp>
#undef BOOST_MSVC
#undef BOOST_MSVC_FULL_VER
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
//
// These appear to be supported, even though VC++ may not support them:
//
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#undef BOOST_NO_CXX14_BINARY_LITERALS
// This one may be a little risky to enable??
#undef BOOST_NO_SFINAE_EXPR
#endif
#if (__INTEL_COMPILER <= 1600) && !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#else // defined(_MSC_VER)
#include <boost/config/compiler/gcc.hpp>
#undef BOOST_GCC_VERSION
#undef BOOST_GCC_CXX11
#undef BOOST_GCC
// 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
#endif // defined(_MSC_VER)
#undef BOOST_COMPILER
#if defined(__INTEL_COMPILER)
#if __INTEL_COMPILER == 9999
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
#else
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC)
@@ -34,11 +78,64 @@
# define BOOST_INTEL_STDCXX0X
#endif
#ifdef BOOST_INTEL_STDCXX0X
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
#else
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
#ifdef __GNUC__
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if !defined(BOOST_COMPILER)
# if defined(BOOST_INTEL_STDCXX0X)
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# endif
#endif
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64)
# define BOOST_INTEL_WIN BOOST_INTEL
#else
# define BOOST_INTEL_LINUX BOOST_INTEL
#endif
#else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
#include <boost/config/compiler/common_edg.hpp>
#if defined(__INTEL_COMPILER)
#if __INTEL_COMPILER == 9999
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
#else
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC)
# define BOOST_INTEL_CXX_VERSION __ICC
#elif defined(__ECC)
# define BOOST_INTEL_CXX_VERSION __ECC
#endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_INTEL_STDCXX0X
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_INTEL_STDCXX0X
#endif
#ifdef __GNUC__
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if !defined(BOOST_COMPILER)
# if defined(BOOST_INTEL_STDCXX0X)
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# endif
#endif
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64)
@@ -157,6 +254,24 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
#endif
// RTTI
// __RTTI is the EDG macro
// __INTEL_RTTI__ is the Intel macro
// __GXX_RTTI is the g++ macro
// _CPPRTTI is the MSVC++ macro
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
#if !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
// in MS mode, static typeid works even when RTTI is off
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
# define BOOST_NO_TYPEID
#endif
#endif
//
// versions check:
// we don't support Intel prior to version 6.0:
@@ -184,7 +299,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
// (Niels Dekker, LKEB, May 2010)
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
#if defined(__INTEL_COMPILER)
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
#endif
@@ -197,77 +312,200 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
#endif
// Type aliasing hint
#if defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1300)
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
#endif
//
// C++0x features
// - ICC added static_assert in 11.0 (first version with C++0x support)
// For each feature we need to check both the Intel compiler version,
// and the version of MSVC or GCC that we are emulating.
// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
// for a list of which features were implemented in which Intel releases.
//
#if defined(BOOST_INTEL_STDCXX0X)
# undef BOOST_NO_CXX11_STATIC_ASSERT
//
// These pass our test cases, but aren't officially supported according to:
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
//
//# undef BOOST_NO_CXX11_LAMBDAS
//# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
//# undef BOOST_NO_CXX11_DECLTYPE
//# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
//# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
// BOOST_NO_CXX11_CONSTEXPR:
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
// Available in earlier Intel versions, but fail our tests:
# undef BOOST_NO_CXX11_CONSTEXPR
#endif
// BOOST_NO_CXX11_NULLPTR:
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_NULLPTR
#endif
// BOOST_NO_CXX11_TEMPLATE_ALIASES
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
//# undef BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
//# undef BOOST_NO_CXX11_SCOPED_ENUMS // doesn't really work!!
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# undef BOOST_NO_CXX11_LAMBDAS
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# undef BOOST_NO_CXX11_DECLTYPE
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
// BOOST_NO_CXX11_DECLTYPE
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_DECLTYPE
#endif
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# undef BOOST_NO_CXX11_NULLPTR
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
# undef BOOST_NO_SFINAE_EXPR
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
// continues to list scoped enum support as "Partial"
//# undef BOOST_NO_CXX11_SCOPED_ENUMS
// BOOST_NO_CXX11_DECLTYPE_N3276
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DECLTYPE_N3276
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(_MSC_VER)
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
// This one generates internal compiler errors in multiprecision, disabled for now:
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
//# undef BOOST_NO_CXX11_NOEXCEPT
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
#endif
// BOOST_NO_CXX11_RVALUE_REFERENCES
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
// BOOST_NO_CXX11_STATIC_ASSERT
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_STATIC_ASSERT
#endif
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// BOOST_NO_CXX11_VARIADIC_MACROS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
# undef BOOST_NO_CXX11_VARIADIC_MACROS
#endif
// BOOST_NO_CXX11_AUTO_DECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
#endif
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
// BOOST_NO_CXX11_CHAR16_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR16_T
#endif
// BOOST_NO_CXX11_CHAR32_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR32_T
#endif
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#endif
// BOOST_NO_CXX11_DELETED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
// BOOST_NO_CXX11_SCOPED_ENUMS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
// This is available but broken in earlier Intel releases.
# undef BOOST_NO_CXX11_SCOPED_ENUMS
#endif
// BOOST_NO_SFINAE_EXPR
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_SFINAE_EXPR
#endif
// BOOST_NO_CXX11_SFINAE_EXPR
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && !defined(_MSC_VER)
# undef BOOST_NO_CXX11_SFINAE_EXPR
#endif
// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
// This is available in earlier Intel releases, but breaks Multiprecision:
# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
// BOOST_NO_CXX11_LAMBDAS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_LAMBDAS
#endif
// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
// BOOST_NO_CXX11_RANGE_BASED_FOR
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
#endif
// BOOST_NO_CXX11_RAW_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_RAW_LITERALS
#endif
// BOOST_NO_CXX11_UNICODE_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_UNICODE_LITERALS
#endif
// BOOST_NO_CXX11_NOEXCEPT
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
// Available in earlier Intel release, but generates errors when used with
// conditional exception specifications, for example in multiprecision:
# undef BOOST_NO_CXX11_NOEXCEPT
#endif
// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
#if (BOOST_INTEL_CXX_VERSION >= 1310)
# undef BOOST_NO_SFINAE_EXPR
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1400) && !defined(_MSC_VER)
# undef BOOST_NO_CXX11_UNICODE_LITERALS
# undef BOOST_NO_CXX11_RAW_LITERALS
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
//# undef BOOST_NO_CXX11_NOEXCEPT
// This breaks multiprecision:
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# undef BOOST_NO_CXX11_HDR_THREAD
# undef BOOST_NO_CXX11_CHAR32_T
# undef BOOST_NO_CXX11_CHAR16_T
// BOOST_NO_CXX11_ALIGNAS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_ALIGNAS
#endif
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
// BOOST_NO_CXX11_INLINE_NAMESPACES
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
// BOOST_NO_CXX11_REF_QUALIFIERS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_REF_QUALIFIERS
#endif
// BOOST_NO_CXX11_FINAL
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_FINAL
#endif
#endif // defined(BOOST_INTEL_STDCXX0X)
//
// Broken in all versions up to 15:
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
@@ -279,20 +517,6 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
//
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
//
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# if(BOOST_INTEL_CXX_VERSION < 1310)
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# endif
#endif
#if (BOOST_INTEL_CXX_VERSION < 1200)
//
// fenv.h appears not to work with Intel prior to 12.0:
@@ -300,19 +524,35 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_NO_FENV_H
#endif
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
// producing the following errors:
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
#if (BOOST_INTEL_CXX_VERSION <= 1310)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_HAS_STDINT_H
#endif
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310)
#if defined(__CUDACC__)
# if defined(BOOST_GCC_CXX11)
# define BOOST_NVCC_CXX11
# else
# define BOOST_NVCC_CXX03
# endif
#endif
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(BOOST_NVCC_CXX03)
# define BOOST_HAS_INT128
#endif
#endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
//
// last known and checked version:
#if (BOOST_INTEL_CXX_VERSION > 1310)
#if (BOOST_INTEL_CXX_VERSION > 1700)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
# elif defined(_MSC_VER)
//
// We don't emit this warning any more, since we have so few

View File

@@ -9,7 +9,7 @@
// Kai C++ compiler setup:
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
// at least on Sun, the contents of <cwchar> is not in namespace std

View File

@@ -113,6 +113,7 @@
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
@@ -124,6 +125,48 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)

View File

@@ -62,6 +62,7 @@
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
@@ -73,6 +74,49 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
//
// versions check:
// we don't support MPW prior to version 8.9:

View File

@@ -11,6 +11,48 @@
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
#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__
#else
// We don't really know what the CUDA version is, but it's definitely before 7.5:
# define BOOST_CUDA_VERSION 7000000
#endif
// NVIDIA Specific support
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
#define BOOST_GPU_ENABLED __host__ __device__
// A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions
// https://svn.boost.org/trac/boost/ticket/11897
// This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
// check is enough to detect versions < 7.5
#if BOOST_CUDA_VERSION < 7050000
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// The same bug is back again in 8.0:
#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)
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#ifdef __CUDACC__
//
// When compiing .cu files, there's a bunch of stuff that doesn't work with msvc:
//
#if defined(_MSC_VER)
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX11_UNICODE_LITERALS
#endif
//
// And this one effects the NVCC front end,
// See https://svn.boost.org/trac/boost/ticket/13049
//
#if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000)
# define BOOST_NO_CXX11_NOEXCEPT
#endif
#endif

View File

@@ -12,7 +12,12 @@
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
#endif
#if __PATHCC__ >= 4
#if __PATHCC__ >= 6
// PathCC is based on clang, and supports the __has_*() builtins used
// to detect features in clang.hpp. Since the clang toolset is much
// better maintained, it is more convenient to reuse its definitions.
# include "boost/config/compiler/clang.hpp"
#elif __PATHCC__ >= 4
# define BOOST_MSVC6_MEMBER_TEMPLATES
# define BOOST_HAS_UNISTD_H
# define BOOST_HAS_STDINT_H
@@ -37,6 +42,7 @@
# 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
@@ -81,4 +87,46 @@
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
#endif

View File

@@ -1,4 +1,5 @@
// (C) Copyright Noel Belcourt 2007.
// Copyright 2017, NVIDIA CORPORATION.
// 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)
@@ -10,117 +11,13 @@
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
//
// Threading support:
// Turn this on unconditionally here, it will get turned off again later
// if no threading API is detected.
//
// PGI is mostly GNU compatible. So start with that.
#include <boost/config/compiler/gcc.hpp>
#if __PGIC__ >= 11
// Now adjust for things that are different.
// options requested by configure --enable-test
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_THREADS
#define BOOST_HAS_PTHREAD_YIELD
#define BOOST_HAS_NRVO
#define BOOST_HAS_LONG_LONG
// options --enable-test wants undefined
#undef BOOST_NO_STDC_NAMESPACE
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
#undef BOOST_DEDUCED_TYPENAME
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#elif __PGIC__ >= 10
// options requested by configure --enable-test
#define BOOST_HAS_THREADS
#define BOOST_HAS_NRVO
#define BOOST_HAS_LONG_LONG
#if defined(linux) || defined(__linux) || defined(__linux__)
# define BOOST_HAS_STDINT_H
#endif
// options --enable-test wants undefined
#undef BOOST_NO_STDC_NAMESPACE
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
#undef BOOST_DEDUCED_TYPENAME
#elif __PGIC__ >= 7
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SWPRINTF
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#else
# error "Pgi compiler not configured - please reconfigure"
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_NUMERIC_LIMITS
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_SWPRINTF
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
#define BOOST_NO_CXX11_HDR_TYPEINDEX
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
#define BOOST_NO_CXX11_HDR_TUPLE
#define BOOST_NO_CXX11_HDR_THREAD
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
#define BOOST_NO_CXX11_HDR_REGEX
#define BOOST_NO_CXX11_HDR_RATIO
#define BOOST_NO_CXX11_HDR_RANDOM
#define BOOST_NO_CXX11_HDR_MUTEX
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
#define BOOST_NO_CXX11_HDR_CODECVT
#define BOOST_NO_CXX11_HDR_CHRONO
#define BOOST_NO_CXX11_HDR_ARRAY
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
//
// version check:
// probably nothing to do here?
// __float128 is a typedef, not a distinct type.
#undef BOOST_HAS_FLOAT128
// __int128 is not supported.
#undef BOOST_HAS_INT128

View File

@@ -9,7 +9,7 @@
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
#include "boost/config/compiler/common_edg.hpp"
#include <boost/config/compiler/common_edg.hpp>
//
// Threading support:

View File

@@ -86,26 +86,22 @@
# define BOOST_SYMBOL_VISIBLE __global
#endif
//
// Issues that effect all known versions:
//
#if (__SUNPRO_CC < 0x5130)
// C++03 features in 12.4:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_ADL_BARRIER
#define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
//
// C++0x features
//
# define BOOST_HAS_LONG_LONG
#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
// C++11 only featuires in 12.4:
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
@@ -120,18 +116,78 @@
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_FINAL
#endif
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++0x features
//
# define BOOST_HAS_LONG_LONG
#define BOOST_NO_CXX11_SFINAE_EXPR
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
// Turn on threading support for Solaris 12.
// Ticket #11972
#if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS)
# define BOOST_HAS_THREADS
#endif
//
// Version
@@ -146,9 +202,9 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0x590:
#if (__SUNPRO_CC > 0x590)
// last known and checked version:
#if (__SUNPRO_CC > 0x5150)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
# endif
#endif

View File

@@ -65,6 +65,11 @@
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
#endif
// Type aliasing hint. Supported since XL C++ 13.1
#if (__IBMCPP__ >= 1310)
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
#endif
//
// C++0x features
//
@@ -114,6 +119,7 @@
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#if ! __IBMCPP_STATIC_ASSERT
# define BOOST_NO_CXX11_STATIC_ASSERT
@@ -130,3 +136,45 @@
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_THREAD_LOCAL
// C++ 14:
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
// C++17
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
# define BOOST_NO_CXX17_INLINE_VARIABLES
#endif
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif

View File

@@ -55,6 +55,7 @@
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
// Variadic macros do not exist for VC7.1 and lower
# define BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if _MSC_VER < 1500 // 140X == VC++ 8.0
@@ -67,21 +68,6 @@
#endif
// MSVC (including the latest checked version) has not yet completely
// implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp:
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
// "Presence of copy constructor breaks member class initialization",
// reported in 2009 by Alex Vakulenko:
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
// "Value-initialization in new-expression", reported in 2005 by
// Pavel Kuznetsov (MetaCommunications Engineering):
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
@@ -104,6 +90,9 @@
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
# define BOOST_HAS_NRVO
#endif
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
//
// disable Win32 API's if compiler extensions are
// turned off:
@@ -118,7 +107,7 @@
//
// TR1 features:
//
#if _MSC_VER >= 1700
#if (_MSC_VER >= 1700) && defined(_HAS_CXX17) && (_HAS_CXX17 > 0)
// # define BOOST_HAS_TR1_HASH // don't know if this is true yet.
// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet.
# define BOOST_HAS_TR1_UNORDERED_MAP
@@ -149,6 +138,7 @@
// C++11 features supported by VC++ 11 (aka 2012)
//
#if _MSC_VER < 1700
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif // _MSC_VER < 1700
@@ -168,18 +158,109 @@
# define BOOST_NO_CXX11_DECLTYPE_N3276
#endif
// C++11 features not supported by any versions
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#if _MSC_FULL_VER >= 180020827
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#endif
// C++11 features supported by VC++ 14 (aka 2015)
//
#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
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_BINARY_LITERALS
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
// C++11 features supported by VC++ 14 update 3 (aka 2015)
//
#if (_MSC_FULL_VER < 190024210)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_CXX11_CONSTEXPR
#endif
// C++14 features supported by VC++ 14.1 (Visual Studio 2017)
//
#if (_MSC_VER < 1910)
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
#endif
// C++17 features supported by VC++ 14.1 (Visual Studio 2017) Update 3
//
#if (_MSC_VER < 1911) || (_MSVC_LANG < 201703)
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#endif
// MSVC including version 14 has not yet completely
// implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp:
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
// "Presence of copy constructor breaks member class initialization",
// reported in 2009 by Alex Vakulenko:
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
// "Value-initialization in new-expression", reported in 2005 by
// Pavel Kuznetsov (MetaCommunications Engineering):
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
// Reported again by John Maddock in 2015 for VC14:
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
// Still present in VC15.5, Dec 2017.
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++ 11:
//
// 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
// C++ 14:
// Still gives internal compiler error for msvc-15.5:
# define BOOST_NO_CXX14_CONSTEXPR
// 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:
//
#ifdef _M_CEE
#ifndef BOOST_NO_CXX11_THREAD_LOCAL
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#ifndef BOOST_NO_SFINAE_EXPR
# define BOOST_NO_SFINAE_EXPR
#endif
#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_REF_QUALIFIERS
#endif
#endif
#ifdef _M_CEE_PURE
#ifndef BOOST_NO_CXX11_CONSTEXPR
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#endif
//
// prefix and suffix headers:
@@ -216,6 +297,8 @@
# define BOOST_COMPILER_VERSION evc11
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION evc12
# elif _MSC_VER < 2000
# define BOOST_COMPILER_VERSION evc14
# else
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
@@ -224,7 +307,7 @@
# endif
# endif
# else
# if _MSC_VER < 1310
# if _MSC_VER < 1200
// Note: Versions up to 7.0 aren't supported.
# define BOOST_COMPILER_VERSION 5.0
# elif _MSC_VER < 1300
@@ -243,6 +326,10 @@
# define BOOST_COMPILER_VERSION 11.0
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION 12.0
# elif _MSC_VER < 1910
# define BOOST_COMPILER_VERSION 14.0
# elif _MSC_VER < 1920
# define BOOST_COMPILER_VERSION 14.1
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
@@ -251,12 +338,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 18.00.20827.3 (VC12 RC, aka 2013 RC):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 180020827)
// last known and checked version is 19.12.25830.2 (VC++ 2017.3):
#if (_MSC_VER > 1912)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# error "Boost.Config is older than your current compiler version."
# elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_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

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

View File

@@ -0,0 +1,169 @@
// Copyright (c) 2017 Dynatrace
//
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt
// See http://www.boost.org for most recent version.
// Compiler setup for IBM z/OS XL C/C++ compiler.
// Oldest compiler version currently supported is 2.1 (V2R1)
#if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000
# error "Compiler not supported or configured - please reconfigure"
#endif
#if __COMPILER_VER__ > 0x42010000
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif
#define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__)
#define BOOST_XLCPP_ZOS __COMPILER_VER__
// -------------------------------------
#include <features.h> // For __UU, __C99, __TR1, ...
#if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS)
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// -------------------------------------
#if defined(__UU) || defined(__C99) || defined(__TR1)
# define BOOST_HAS_LOG1P
# define BOOST_HAS_EXPM1
#endif
#if defined(__C99) || defined(__TR1)
# define BOOST_HAS_STDINT_H
#else
# define BOOST_NO_FENV_H
#endif
// -------------------------------------
#define BOOST_HAS_NRVO
#if !defined(__RTTI_ALL__)
# define BOOST_NO_RTTI
#endif
#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL)
# define BOOST_HAS_LONG_LONG
#else
# define BOOST_NO_LONG_LONG
#endif
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64)
# define BOOST_HAS_MS_INT64
#endif
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#if defined(__IBMCPP_VARIADIC_TEMPLATES)
# define BOOST_HAS_VARIADIC_TMPL
#else
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#if defined(__IBMCPP_STATIC_ASSERT)
# define BOOST_HAS_STATIC_ASSERT
#else
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
#if defined(__IBMCPP_RVALUE_REFERENCES)
# define BOOST_HAS_RVALUE_REFS
#else
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#if !defined(__IBMCPP_SCOPED_ENUM)
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if !defined(__IBMCPP_DECLTYPE)
# define BOOST_NO_CXX11_DECLTYPE
#else
# define BOOST_HAS_DECLTYPE
#endif
#define BOOST_NO_CXX11_DECLTYPE_N3276
#if !defined(__IBMCPP_INLINE_NAMESPACE)
# define BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
#if !defined(__IBMCPP_AUTO_TYPEDEDUCTION)
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
#if !defined(__IBM_CHAR32_T__)
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if !defined(__IBM_CHAR16_T__)
# define BOOST_NO_CXX11_CHAR16_T
#endif
#if !defined(__IBMCPP_CONSTEXPR)
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_THREAD_LOCAL
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#define BOOST_NO_CXX14_AGGREGATE_NSDMI
#define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#define BOOST_NO_CXX14_GENERIC_LAMBDAS
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
#define BOOST_NO_CXX14_DECLTYPE_AUTO
#define BOOST_NO_CXX14_CONSTEXPR
#define BOOST_NO_CXX14_BINARY_LITERALS
#define BOOST_NO_CXX17_STRUCTURED_BINDINGS
#define BOOST_NO_CXX17_INLINE_VARIABLES
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
// -------------------------------------
#if defined(__IBM_ATTRIBUTES)
# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
# define BOOST_NOINLINE __attribute__ ((__noinline__))
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
// No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1).
#endif
extern "builtin" long __builtin_expect(long, long);
#define BOOST_LIKELY(x) __builtin_expect((x) && true, 1)
#define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)

View File

@@ -39,7 +39,8 @@
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__
#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__)
// when using clang and cuda at same time, you want to appear as gcc
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
@@ -47,7 +48,15 @@
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
# elif defined __GNUC__
#elif defined __DCC__
// Wind River Diab C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/diab.hpp"
#elif defined(__PGI)
// Portland Group Inc.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
# elif defined(__GNUC__) && !defined(__ibmxl__)
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
@@ -91,13 +100,17 @@
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
#elif defined(__IBMCPP__)
// IBM Visual Age
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
// IBM z/OS XL C/C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp_zos.hpp"
#elif defined(__PGI)
// Portland Group Inc.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
#elif defined(__ibmxl__)
// IBM XL C/C++ for Linux (Little Endian)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp"
#elif defined(__IBMCPP__)
// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined _MSC_VER
// Microsoft Visual C++
@@ -117,27 +130,29 @@
//
// This section allows dependency scanners to find all the headers we *might* include:
//
#include "boost/config/compiler/gcc_xml.hpp"
#include "boost/config/compiler/cray.hpp"
#include "boost/config/compiler/comeau.hpp"
#include "boost/config/compiler/pathscale.hpp"
#include "boost/config/compiler/intel.hpp"
#include "boost/config/compiler/clang.hpp"
#include "boost/config/compiler/digitalmars.hpp"
#include "boost/config/compiler/gcc.hpp"
#include "boost/config/compiler/kai.hpp"
#include "boost/config/compiler/sgi_mipspro.hpp"
#include "boost/config/compiler/compaq_cxx.hpp"
#include "boost/config/compiler/greenhills.hpp"
#include "boost/config/compiler/codegear.hpp"
#include "boost/config/compiler/borland.hpp"
#include "boost/config/compiler/metrowerks.hpp"
#include "boost/config/compiler/sunpro_cc.hpp"
#include "boost/config/compiler/hp_acc.hpp"
#include "boost/config/compiler/mpw.hpp"
#include "boost/config/compiler/vacpp.hpp"
#include "boost/config/compiler/pgi.hpp"
#include "boost/config/compiler/visualc.hpp"
#include <boost/config/compiler/gcc_xml.hpp>
#include <boost/config/compiler/cray.hpp>
#include <boost/config/compiler/comeau.hpp>
#include <boost/config/compiler/pathscale.hpp>
#include <boost/config/compiler/intel.hpp>
#include <boost/config/compiler/clang.hpp>
#include <boost/config/compiler/digitalmars.hpp>
#include <boost/config/compiler/gcc.hpp>
#include <boost/config/compiler/kai.hpp>
#include <boost/config/compiler/sgi_mipspro.hpp>
#include <boost/config/compiler/compaq_cxx.hpp>
#include <boost/config/compiler/greenhills.hpp>
#include <boost/config/compiler/codegear.hpp>
#include <boost/config/compiler/borland.hpp>
#include <boost/config/compiler/metrowerks.hpp>
#include <boost/config/compiler/sunpro_cc.hpp>
#include <boost/config/compiler/hp_acc.hpp>
#include <boost/config/compiler/mpw.hpp>
#include <boost/config/compiler/xlcpp_zos.hpp>
#include <boost/config/compiler/xlcpp.hpp>
#include <boost/config/compiler/vacpp.hpp>
#include <boost/config/compiler/pgi.hpp>
#include <boost/config/compiler/visualc.hpp>
#endif

View File

@@ -41,6 +41,10 @@
// win32:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
#elif defined(__HAIKU__)
// Haiku
# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp"
#elif defined(__BEOS__)
// BeOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
@@ -49,8 +53,12 @@
// MacOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
#elif defined(__TOS_MVS__)
// IBM z/OS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/zos.hpp"
#elif defined(__IBMCPP__) || defined(_AIX)
// IBM
// IBM AIX
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
#elif defined(__amigaos__)
@@ -76,6 +84,10 @@
#elif defined(__VMS)
// VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
#elif defined(__CloudABI__)
// Nuxi CloudABI:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
#else
# if defined(unix) \
@@ -89,7 +101,7 @@
# define BOOST_HAS_UNISTD_H
# endif
# include <boost/config/posix_features.hpp>
# include <boost/config/detail/posix_features.hpp>
# endif
@@ -114,6 +126,7 @@
# include "boost/config/platform/win32.hpp"
# include "boost/config/platform/beos.hpp"
# include "boost/config/platform/macos.hpp"
# include "boost/config/platform/zos.hpp"
# include "boost/config/platform/aix.hpp"
# include "boost/config/platform/amigaos.hpp"
# include "boost/config/platform/qnxnto.hpp"
@@ -121,7 +134,7 @@
# include "boost/config/platform/symbian.hpp"
# include "boost/config/platform/cray.hpp"
# include "boost/config/platform/vms.hpp"
# include <boost/config/posix_features.hpp>
# include <boost/config/detail/posix_features.hpp>

View File

@@ -28,13 +28,19 @@
#else
// If our std lib was not some version of STLport, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
// include their C++-related macros in <cstddef> so this additional include makes sure
// we get those definitions)
// (again do not rely on this header being included since users can short-circuit this
// header if they know whose std lib they are using.)
#include <boost/config/no_tr1/utility.hpp>
// If our std lib was not some version of STLport, and has not otherwise
// been detected, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff.
// Some std libs do not include their C++-related macros in <cstddef>
// so this additional include makes sure we get those definitions.
// Note: do not rely on this header being included since users can short-circuit this
// #include if they know whose std lib they are using.
#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
&& !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
&& !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
&& !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
#include <utility>
#endif
#if defined(__LIBCOMO__)
// Comeau STL:
@@ -60,6 +66,10 @@
// MSL standard lib:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
// IBM z/OS XL C/C++
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/xlcpp_zos.hpp"
#elif defined(__IBMCPP__)
// take the default VACPP std lib
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
@@ -92,6 +102,7 @@
# include "boost/config/stdlib/libstdcpp3.hpp"
# include "boost/config/stdlib/sgi.hpp"
# include "boost/config/stdlib/msl.hpp"
# include "boost/config/stdlib/xlcpp_zos.hpp"
# include "boost/config/stdlib/vacpp.hpp"
# include "boost/config/stdlib/modena.hpp"
# include "boost/config/stdlib/dinkumware.hpp"

View File

@@ -1,5 +1,5 @@
// Boost config.hpp configuration header file ------------------------------//
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
// Copyright (c) 2001-2003 John Maddock
// Copyright (c) 2001 Darin Adler
@@ -444,10 +444,12 @@ namespace std {
// is defined, in which case it evaluates to return x; Use when you have a return
// statement that can never be reached.
#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_UNREACHABLE_RETURN(x) return x;
#else
# define BOOST_UNREACHABLE_RETURN(x)
#ifndef BOOST_UNREACHABLE_RETURN
# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_UNREACHABLE_RETURN(x) return x;
# else
# define BOOST_UNREACHABLE_RETURN(x)
# endif
#endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
@@ -501,6 +503,16 @@ namespace boost{
# endif
}
#endif
// same again for __float128:
#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
namespace boost {
# ifdef __GNUC__
__extension__ typedef __float128 float128_type;
# else
typedef __float128 float128_type;
# endif
}
#endif
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
@@ -525,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.
@@ -571,6 +568,33 @@ namespace std{ using ::type_info; }
# define BOOST_GPU_ENABLED
# endif
// BOOST_RESTRICT ---------------------------------------------//
// Macro to use in place of 'restrict' keyword variants
#if !defined(BOOST_RESTRICT)
# if defined(_MSC_VER)
# define BOOST_RESTRICT __restrict
# if !defined(BOOST_NO_RESTRICT_REFERENCES) && (_MSC_FULL_VER < 190023026)
# define BOOST_NO_RESTRICT_REFERENCES
# endif
# elif defined(__GNUC__) && __GNUC__ > 3
// Clang also defines __GNUC__ (as 4)
# define BOOST_RESTRICT __restrict__
# else
# define BOOST_RESTRICT
# if !defined(BOOST_NO_RESTRICT_REFERENCES)
# define BOOST_NO_RESTRICT_REFERENCES
# endif
# endif
#endif
// BOOST_MAY_ALIAS -----------------------------------------------//
// The macro expands to an attribute to mark a type that is allowed to alias other types.
// The macro is defined in the compiler-specific headers.
#if !defined(BOOST_MAY_ALIAS)
# define BOOST_NO_MAY_ALIAS
# define BOOST_MAY_ALIAS
#endif
// BOOST_FORCEINLINE ---------------------------------------------//
// Macro to use in place of 'inline' to force a function to be inline
#if !defined(BOOST_FORCEINLINE)
@@ -592,7 +616,7 @@ namespace std{ using ::type_info; }
# elif defined(__GNUC__) && __GNUC__ > 3
// Clang also defines __GNUC__ (as 4)
# if defined(__CUDACC__)
// nvcc doesn't always parse __noinline__,
// nvcc doesn't always parse __noinline__,
// see: https://svn.boost.org/trac/boost/ticket/9392
# define BOOST_NOINLINE __attribute__ ((noinline))
# else
@@ -612,12 +636,22 @@ namespace std{ using ::type_info; }
# define BOOST_NORETURN __declspec(noreturn)
# elif defined(__GNUC__)
# define BOOST_NORETURN __attribute__ ((__noreturn__))
# else
# define BOOST_NO_NORETURN
# define BOOST_NORETURN
# elif defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130)
# if __has_attribute(noreturn)
# define BOOST_NORETURN [[noreturn]]
# endif
# elif defined(__has_cpp_attribute)
# if __has_cpp_attribute(noreturn)
# define BOOST_NORETURN [[noreturn]]
# endif
# endif
#endif
#if !defined(BOOST_NORETURN)
# define BOOST_NO_NORETURN
# define BOOST_NORETURN
#endif
// Branch prediction hints
// These macros are intended to wrap conditional expressions that yield true or false
//
@@ -635,15 +669,27 @@ namespace std{ using ::type_info; }
// Type and data alignment specification
//
#if !defined(BOOST_NO_CXX11_ALIGNAS)
# define BOOST_ALIGNMENT(x) alignas(x)
#elif defined(_MSC_VER)
# define BOOST_ALIGNMENT(x) __declspec(align(x))
#elif defined(__GNUC__)
# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
#else
# define BOOST_NO_ALIGNMENT
# define BOOST_ALIGNMENT(x)
#if !defined(BOOST_ALIGNMENT)
# if !defined(BOOST_NO_CXX11_ALIGNAS)
# define BOOST_ALIGNMENT(x) alignas(x)
# elif defined(_MSC_VER)
# define BOOST_ALIGNMENT(x) __declspec(align(x))
# elif defined(__GNUC__)
# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
# else
# define BOOST_NO_ALIGNMENT
# define BOOST_ALIGNMENT(x)
# endif
#endif
// Lack of non-public defaulted functions is implied by the lack of any defaulted functions
#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// 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
@@ -681,7 +727,7 @@ namespace std{ using ::type_info; }
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
//
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
#endif
// -------------------- Deprecated macros for 1.50 ---------------------------
@@ -934,6 +980,18 @@ namespace std{ using ::type_info; }
#define BOOST_CONSTEXPR constexpr
#define BOOST_CONSTEXPR_OR_CONST constexpr
#endif
#if defined(BOOST_NO_CXX14_CONSTEXPR)
#define BOOST_CXX14_CONSTEXPR
#else
#define BOOST_CXX14_CONSTEXPR constexpr
#endif
//
// Unused variable/typedef workarounds:
//
#ifndef BOOST_ATTRIBUTE_UNUSED
# define BOOST_ATTRIBUTE_UNUSED
#endif
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
@@ -957,6 +1015,13 @@ namespace std{ using ::type_info; }
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
#define BOOST_HAS_VARIADIC_TMPL
#endif
//
// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when
// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set:
//
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
//
// Finish off with checks for macros that are depricated / no longer supported,

View File

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

@@ -26,7 +26,7 @@
//#define BOOST_HAS_PTHREAD_YIELD
// boilerplate code:
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>

View File

@@ -20,7 +20,7 @@
#endif
// boilerplate code:
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>

View File

@@ -77,7 +77,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>

View File

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

View File

@@ -12,7 +12,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>

View File

@@ -23,7 +23,7 @@
# define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_SIGACTION
//# define BOOST_HAS_SIGACTION
#else
# if !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_WINTHREADS
@@ -38,12 +38,23 @@
#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/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
//
// Cygwin lies about XSI conformance, there is no nl_types.h:
@@ -51,7 +62,6 @@
#ifdef BOOST_HAS_NL_TYPES_H
# undef BOOST_HAS_NL_TYPES_H
#endif

View File

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

View File

@@ -43,7 +43,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
// the following are always available:
#ifndef BOOST_HAS_GETTIMEOFDAY

View File

@@ -25,7 +25,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>

View File

@@ -24,8 +24,9 @@
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
// only when using GCC.
# if defined __GNUC__
// only when using GCC. Update 2017: this appears not to be the case for
// recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045
# if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5)))
# define BOOST_HAS_STDINT_H
# endif
#endif
@@ -71,8 +72,10 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
#define BOOST_HAS_PTHREAD_YIELD
#endif
#ifndef __GNUC__
//

View File

@@ -25,7 +25,7 @@
// to replace the platform-native BSD one. G++ users
// should also always be able to do this on MaxOS X.
//
# include <boost/config/posix_features.hpp>
# include <boost/config/detail/posix_features.hpp>
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
# endif
@@ -47,7 +47,7 @@
# define BOOST_NO_STDC_NAMESPACE
# endif
# if (__GNUC__ == 4)
# if (__GNUC__ >= 4)
// Both gcc and intel require these.
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE

View File

@@ -10,7 +10,7 @@
#define BOOST_PLATFORM "QNX"
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
// or log1p and expm1:

View File

@@ -14,7 +14,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
//
// pthreads don't actually work with gcc unless _PTHREADS is defined:
@@ -23,6 +23,9 @@
# undef BOOST_HAS_PTHREADS
#endif
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1

View File

@@ -24,7 +24,7 @@
#include <stdlib.h>
#endif// boilerplate code:
# define BOOST_HAS_UNISTD_H
# include <boost/config/posix_features.hpp>
# include <boost/config/detail/posix_features.hpp>
// S60 SDK defines _POSIX_VERSION as POSIX.1
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H

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
@@ -180,7 +161,7 @@
// Luckily, at the moment there seems to be none!
#endif
// These #defines allow posix_features to work, since vxWorks doesn't
// These #defines allow detail/posix_features to work, since vxWorks doesn't
// #define them itself for DKMs (for RTPs on the contrary it does):
#ifdef _WRS_KERNEL
# ifndef _POSIX_TIMERS
@@ -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,23 +252,27 @@ 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;
}
// vxWorks claims to implement gettimeofday in sys/time.h
// but nevertheless does not provide it! See
// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
// We implement a surrogate version here via clock_gettime:
#if (_WRS_VXWORKS_MAJOR < 7)
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -297,8 +280,20 @@ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
tv->tv_usec = ts.tv_nsec / 1000;
return 0;
}
#endif
// vxWorks does provide neither struct tms nor function times()!
#ifdef __cplusplus
} // extern "C"
#endif
/*
* 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,7 +323,16 @@ inline clock_t times(struct tms *t){
return ticks;
}
} // 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 {
@@ -338,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
@@ -348,22 +355,79 @@ namespace std {
// Include signal.h which might contain a typo to be corrected here
#include <signal.h>
#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
#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks!
#ifndef FPE_FLTINV
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
#endif
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
#endif
//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks!
typedef int locale_t; // locale_t is a POSIX-extension, currently not present in vxWorks!
// #include boilerplate code:
#include <boost/config/posix_features.hpp>
#include <boost/config/detail/posix_features.hpp>
// vxWorks lies about XSI conformance, there is no nl_types.h:
#undef BOOST_HAS_NL_TYPES_H
// vxWorks 7 adds C++11 support
// however it is optional, and does not match exactly the support determined
// 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_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
#else
#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

@@ -41,8 +41,10 @@
#endif
#if defined(__MINGW32__) && (__GNUC__ >= 4)
# define BOOST_HAS_EXPM1
# define BOOST_HAS_LOG1P
// Mingw has these functions but there are persistent problems
// with calls to these crashing, so disable for now:
//# define BOOST_HAS_EXPM1
//# define BOOST_HAS_LOG1P
# define BOOST_HAS_GETTIMEOFDAY
#endif
//
@@ -72,6 +74,14 @@
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
//
// Windows Runtime
//
#if defined(WINAPI_FAMILY) && \
(WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
# define BOOST_NO_ANSI_APIS
#endif
#ifndef BOOST_DISABLE_WIN32
// WEK: Added
#define BOOST_HAS_FTIME

View File

@@ -0,0 +1,32 @@
// Copyright (c) 2017 Dynatrace
//
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt
// See http://www.boost.org for most recent version.
// Platform setup for IBM z/OS.
#define BOOST_PLATFORM "IBM z/OS"
#include <features.h> // For __UU, __C99, __TR1, ...
#if defined(__UU)
# define BOOST_HAS_GETTIMEOFDAY
#endif
#if defined(_OPEN_THREADS) || defined(__SUSV3_THR)
# define BOOST_HAS_PTHREADS
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_THREADS
#endif
#if defined(__SUSV3) || defined(__SUSV3_THR)
# define BOOST_HAS_SCHED_YIELD
#endif
#define BOOST_HAS_SIGACTION
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_NL_TYPES_H

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__)
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \
&& !defined(__VXWORKS__)
# define BOOST_NO_STD_TYPEINFO
#endif
@@ -147,9 +148,102 @@
# define BOOST_NO_CXX11_STD_ALIGN
#endif
// Before 650 std::pointer_traits has a broken rebind template
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
# define BOOST_NO_CXX11_POINTER_TRAITS
#elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
# define BOOST_NO_CXX11_POINTER_TRAITS
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif (__cplusplus < 201402) && !defined(_MSC_VER)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# define BOOST_NO_CXX14_STD_EXCHANGE
#endif
// 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
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#endif
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# 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:
# define BOOST_NO_CXX11_HDR_ATOMIC
#endif
// 520..610 have std::addressof, but it doesn't support functions
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
# define BOOST_NO_CXX11_ADDRESSOF
#endif
// Bug specific to VC14,
// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
# define BOOST_NO_CXX11_HDR_CODECVT
#endif
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available.
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
# define BOOST_NO_AUTO_PTR
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
# define BOOST_NO_CXX98_FUNCTION_BASE
# define BOOST_NO_CXX98_BINDERS
# endif
#endif
//
// Things not supported by the CLR:
#ifdef _M_CEE
#ifndef BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_MUTEX
#endif
#ifndef BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_ATOMIC
#endif
#ifndef BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_FUTURE
#endif
#ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
#endif
#ifndef BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_THREAD
#endif
#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#ifndef BOOST_NO_CXX14_STD_EXCHANGE
# define BOOST_NO_CXX14_STD_EXCHANGE
#endif
#ifndef BOOST_NO_FENV_H
# define BOOST_NO_FENV_H
#endif
#endif
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER

View File

@@ -55,6 +55,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -62,6 +63,24 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
//
// Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which
@@ -71,5 +90,3 @@
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)

View File

@@ -29,18 +29,105 @@
// aliases since members rebind_alloc and rebind_traits require it.
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
#endif
#if __cplusplus < 201103
//
// These two appear to be somewhat useable in C++03 mode, there may be others...
//
//# define BOOST_NO_CXX11_HDR_ARRAY
//# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_FUTURE
#elif _LIBCPP_VERSION < 3700
//
// These appear to be unusable/incomplete so far:
//
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_FUTURE
#endif
#if _LIBCPP_VERSION < 3700
// libc++ uses a non-standard messages_base
#define BOOST_NO_STD_MESSAGES
#endif
// C++14 features
#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX14_STD_EXCHANGE
#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
#endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
# define BOOST_NO_AUTO_PTR
#endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE)
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
#endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
# define BOOST_NO_CXX98_BINDERS
#endif
#define BOOST_NO_CXX17_ITERATOR_TRAITS
#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
// support for thread_local, leading to linker errors such as
// "undefined reference to `__cxa_thread_atexit'". It is fixed in the
// most recent releases of libc++abi though...
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#if defined(__linux__) && !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`.
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus <= 201103
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// --- end ---

View File

@@ -36,7 +36,8 @@
|| defined(_GLIBCXX__PTHREADS) \
|| defined(_GLIBCXX_HAS_GTHREADS) \
|| defined(_WIN32) \
|| defined(_AIX)
|| defined(_AIX) \
|| defined(__HAIKU__)
//
// If the std lib has thread support turned on, then turn it on in Boost
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
@@ -77,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
@@ -90,9 +92,19 @@
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
# endif
#endif
#endif
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
//
// Decide whether we have C++11 support turned on:
//
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103)
# define BOOST_LIBSTDCXX11
#endif
//
// Decide which version of libstdc++ we have, normally
// libstdc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the libstdc++
// developers. He also commented:
//
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
@@ -100,12 +112,108 @@
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
// than any release in the 4.2 series."
//
// Another resource for understanding stdlibc++ features is:
// Another resource for understanding libstdc++ features is:
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
//
// However, using the GCC version number fails when the compiler is clang since this
// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473
// for a long discussion on this issue. What we can do though is use clang's __has_include
// to detect the presence of a C++11 header that was introduced with a specific GCC release.
// We still have to be careful though as many such headers were buggy and/or incomplete when
// first introduced, so we only check for headers that were fully featured from day 1, and then
// use that to infer the underlying GCC version:
//
#ifdef __clang__
#if __has_include(<experimental/memory_resource>)
# define BOOST_LIBSTDCXX_VERSION 60100
#elif __has_include(<experimental/any>)
# define BOOST_LIBSTDCXX_VERSION 50100
#elif __has_include(<shared_mutex>)
# define BOOST_LIBSTDCXX_VERSION 40900
#elif __has_include(<ext/cmath>)
# define BOOST_LIBSTDCXX_VERSION 40800
#elif __has_include(<scoped_allocator>)
# define BOOST_LIBSTDCXX_VERSION 40700
#elif __has_include(<typeindex>)
# define BOOST_LIBSTDCXX_VERSION 40600
#elif __has_include(<future>)
# define BOOST_LIBSTDCXX_VERSION 40500
#elif __has_include(<ratio>)
# define BOOST_LIBSTDCXX_VERSION 40400
#elif __has_include(<array>)
# define BOOST_LIBSTDCXX_VERSION 40300
#endif
#if (BOOST_LIBSTDCXX_VERSION < 50100)
// libstdc++ does not define this function as it's deprecated in C++11, but clang still looks for it,
// defining it here is a terrible cludge, but should get things working:
extern "C" char *gets (char *__s);
#endif
//
// clang is unable to parse some GCC headers, add those workarounds here:
//
#if BOOST_LIBSTDCXX_VERSION < 50000
# define BOOST_NO_CXX11_HDR_REGEX
#endif
//
// GCC 4.7.x has no __cxa_thread_atexit which
// thread_local objects require for cleanup:
//
#if BOOST_LIBSTDCXX_VERSION < 40800
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
//
// Early clang versions can handle <chrono>, not exactly sure which versions
// but certainly up to clang-3.8 and gcc-4.6:
//
#if (__clang_major__ < 5)
# if BOOST_LIBSTDCXX_VERSION < 40800
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CHRONO
# endif
#endif
//
// GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively.
// However, we have no test for these as the headers were present but broken
// in early GCC versions.
//
#endif
#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L)
//
// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't
// set __GNUC__
//
#if __SUNPRO_CC >= 0x5140
#define BOOST_LIBSTDCXX_VERSION 50100
#else
#define BOOST_LIBSTDCXX_VERSION 40800
#endif
#endif
#if !defined(BOOST_LIBSTDCXX_VERSION)
# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
// std::auto_ptr isn't provided with _GLIBCXX_DEPRECATED=0 (GCC 4.5 and earlier)
// or _GLIBCXX_USE_DEPRECATED=0 (GCC 4.6 and later).
#if defined(BOOST_LIBSTDCXX11)
# if BOOST_LIBSTDCXX_VERSION < 40600
# if !_GLIBCXX_DEPRECATED
# define BOOST_NO_AUTO_PTR
# endif
# elif !_GLIBCXX_USE_DEPRECATED
# define BOOST_NO_AUTO_PTR
# endif
#endif
// C++0x headers in GCC 4.3.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
@@ -115,7 +223,7 @@
// C++0x headers in GCC 4.4.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
@@ -128,14 +236,9 @@
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_MUTEX
#endif
// C++0x features in GCC 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_RANDOM
@@ -143,36 +246,104 @@
// C++0x features in GCC 4.6.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_ADDRESSOF
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#endif
// C++0x features in GCC 4.7.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11)
// Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock"
// so 4.7.0 is the first truely conforming one.
// so 4.7.0 is the first truly conforming one.
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
#endif
// C++0x features in GCC 4.7.0 and later
// C++0x features in GCC 4.8.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11)
// Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types:
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_THREAD
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
// C++0x features in GCC 4.9.0 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
// Although <regex> is present and compilable against, the actual implementation is not functional
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
# define BOOST_NO_CXX11_HDR_REGEX
#endif
// C++0x headers not yet (fully!) implemented
#if (BOOST_LIBSTDCXX_VERSION < 40900) || (__cplusplus <= 201103)
# define BOOST_NO_CXX14_STD_EXCHANGE
#endif
#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7)))
// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang:
# define BOOST_NO_CXX11_HDR_ATOMIC
#endif
//
# define BOOST_NO_CXX11_HDR_THREAD
// C++0x features in GCC 5.1 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_STD_ALIGN
#endif
//
// C++17 features in GCC 6.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_APPLY
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus <= 201103
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
//
// Headers not present on Solaris with the Oracle compiler:
#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140)
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_ATOMIC
// shared_ptr is present, but is not convertible to bool
// which causes all kinds of problems especially in Boost.Thread
// but probably elsewhere as well.
#define BOOST_NO_CXX11_SMART_PTR
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
// Headers not always available:
# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# endif
# ifndef BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_MUTEX
# endif
# ifndef BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_THREAD
# endif
# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
# endif
#endif
#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX)
// Timed mutexes are not always available:
# define BOOST_NO_CXX11_HDR_MUTEX
#endif
// --- end ---

View File

@@ -44,6 +44,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -51,6 +52,24 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_STDLIB "Modena C++ standard library"

View File

@@ -34,7 +34,7 @@
# define BOOST_HAS_UNISTD_H
# endif
// boilerplate code:
# include <boost/config/posix_features.hpp>
# include <boost/config/detail/posix_features.hpp>
#endif
#if defined(_MWMT) || _MSL_THREADSAFE
@@ -68,6 +68,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -75,13 +76,22 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)

View File

@@ -180,6 +180,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -187,3 +188,20 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS

View File

@@ -138,6 +138,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -145,7 +146,22 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_STDLIB "SGI standard library"

View File

@@ -228,6 +228,7 @@ namespace boost { using std::min; using std::max; }
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -235,12 +236,22 @@ namespace boost { using std::min; using std::max; }
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)

View File

@@ -44,6 +44,7 @@
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
@@ -51,7 +52,22 @@
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// C++14 features
# define BOOST_NO_CXX14_STD_EXCHANGE
// C++17 features
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_STD_INVOKE
# define BOOST_NO_CXX17_ITERATOR_TRAITS
#define BOOST_STDLIB "Visual Age default standard library"

View File

@@ -0,0 +1,60 @@
// Copyright (c) 2017 Dynatrace
//
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt
// See http://www.boost.org for most recent version.
// Standard library setup for IBM z/OS XL C/C++ compiler.
// Oldest library version currently supported is 2.1 (V2R1)
#if __TARGET_LIB__ < 0x42010000
# error "Library version not supported or configured - please reconfigure"
#endif
#if __TARGET_LIB__ > 0x42010000
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown library version - please run the configure tests and report the results"
# endif
#endif
#define BOOST_STDLIB "IBM z/OS XL C/C++ standard library"
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_ADDRESSOF
#define BOOST_NO_CXX11_SMART_PTR
#define BOOST_NO_CXX11_ATOMIC_SMART_PTR
#define BOOST_NO_CXX11_NUMERIC_LIMITS
#define BOOST_NO_CXX11_ALLOCATOR
#define BOOST_NO_CXX11_POINTER_TRAITS
#define BOOST_NO_CXX11_HDR_FUNCTIONAL
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
#define BOOST_NO_CXX11_HDR_TYPEINDEX
#define BOOST_NO_CXX11_HDR_TUPLE
#define BOOST_NO_CXX11_HDR_THREAD
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
#define BOOST_NO_CXX11_HDR_REGEX
#define BOOST_NO_CXX11_HDR_RATIO
#define BOOST_NO_CXX11_HDR_RANDOM
#define BOOST_NO_CXX11_HDR_MUTEX
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
#define BOOST_NO_CXX11_HDR_CODECVT
#define BOOST_NO_CXX11_HDR_CHRONO
#define BOOST_NO_CXX11_HDR_ATOMIC
#define BOOST_NO_CXX11_HDR_ARRAY
#define BOOST_NO_CXX11_STD_ALIGN
#define BOOST_NO_CXX14_STD_EXCHANGE
#define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#define BOOST_NO_CXX17_STD_INVOKE
#define BOOST_NO_CXX17_STD_APPLY
#define BOOST_NO_CXX17_ITERATOR_TRAITS

View File

@@ -119,5 +119,15 @@
// that feature off.
// #define BOOST_WHATEVER_NO_LIB
// BOOST_LIB_BUILDID: Set to the same value as the value passed to Boost.Build's
// --buildid command line option. For example if you built using:
//
// bjam address-model=64 --buildid=amd64
//
// then compile your code with:
//
// -DBOOST_LIB_BUILDID = amd64
//
// to ensure the correct libraries are selected at link time.
// #define BOOST_LIB_BUILDID amd64

View File

@@ -0,0 +1,279 @@
// Copyright David Abrahams 2002.
// 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)
#ifndef BOOST_CONFIG_WORKAROUND_HPP
#define BOOST_CONFIG_WORKAROUND_HPP
// Compiler/library version workaround macro
//
// Usage:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
// // workaround for eVC4 and VC6
// ... // workaround code here
// #endif
//
// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
// first argument must be undefined or expand to a numeric
// value. The above expands to:
//
// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
//
// When used for workarounds that apply to the latest known version
// and all earlier versions of a compiler, the following convention
// should be observed:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
//
// The version number in this case corresponds to the last version in
// which the workaround was known to have been required. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
// the workaround for any version of the compiler. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
// error will be issued if the compiler version exceeds the argument
// to BOOST_TESTED_AT(). This can be used to locate workarounds which
// may be obsoleted by newer versions.
#ifndef BOOST_STRICT_CONFIG
#include <boost/config.hpp>
#ifndef __BORLANDC__
#define __BORLANDC___WORKAROUND_GUARD 1
#else
#define __BORLANDC___WORKAROUND_GUARD 0
#endif
#ifndef __CODEGEARC__
#define __CODEGEARC___WORKAROUND_GUARD 1
#else
#define __CODEGEARC___WORKAROUND_GUARD 0
#endif
#ifndef _MSC_VER
#define _MSC_VER_WORKAROUND_GUARD 1
#else
#define _MSC_VER_WORKAROUND_GUARD 0
#endif
#ifndef _MSC_FULL_VER
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
#else
#define _MSC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC
#define BOOST_MSVC_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC_FULL_VER
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GNUC__
#define __GNUC___WORKAROUND_GUARD 1
#else
#define __GNUC___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_MINOR__
#define __GNUC_MINOR___WORKAROUND_GUARD 1
#else
#define __GNUC_MINOR___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_PATCHLEVEL__
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
#else
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
#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
#else
#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 0
#endif
#ifndef __IBMCPP__
#define __IBMCPP___WORKAROUND_GUARD 1
#else
#define __IBMCPP___WORKAROUND_GUARD 0
#endif
#ifndef __SUNPRO_CC
#define __SUNPRO_CC_WORKAROUND_GUARD 1
#else
#define __SUNPRO_CC_WORKAROUND_GUARD 0
#endif
#ifndef __DECCXX_VER
#define __DECCXX_VER_WORKAROUND_GUARD 1
#else
#define __DECCXX_VER_WORKAROUND_GUARD 0
#endif
#ifndef __MWERKS__
#define __MWERKS___WORKAROUND_GUARD 1
#else
#define __MWERKS___WORKAROUND_GUARD 0
#endif
#ifndef __EDG__
#define __EDG___WORKAROUND_GUARD 1
#else
#define __EDG___WORKAROUND_GUARD 0
#endif
#ifndef __EDG_VERSION__
#define __EDG_VERSION___WORKAROUND_GUARD 1
#else
#define __EDG_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __HP_aCC
#define __HP_aCC_WORKAROUND_GUARD 1
#else
#define __HP_aCC_WORKAROUND_GUARD 0
#endif
#ifndef __hpxstd98
#define __hpxstd98_WORKAROUND_GUARD 1
#else
#define __hpxstd98_WORKAROUND_GUARD 0
#endif
#ifndef _CRAYC
#define _CRAYC_WORKAROUND_GUARD 1
#else
#define _CRAYC_WORKAROUND_GUARD 0
#endif
#ifndef __DMC__
#define __DMC___WORKAROUND_GUARD 1
#else
#define __DMC___WORKAROUND_GUARD 0
#endif
#ifndef MPW_CPLUS
#define MPW_CPLUS_WORKAROUND_GUARD 1
#else
#define MPW_CPLUS_WORKAROUND_GUARD 0
#endif
#ifndef __COMO__
#define __COMO___WORKAROUND_GUARD 1
#else
#define __COMO___WORKAROUND_GUARD 0
#endif
#ifndef __COMO_VERSION__
#define __COMO_VERSION___WORKAROUND_GUARD 1
#else
#define __COMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __INTEL_COMPILER
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
#else
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
#endif
#ifndef __ICL
#define __ICL_WORKAROUND_GUARD 1
#else
#define __ICL_WORKAROUND_GUARD 0
#endif
#ifndef _COMPILER_VERSION
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
#else
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef _RWSTD_VER
#define _RWSTD_VER_WORKAROUND_GUARD 1
#else
#define _RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_RWSTD_VER
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
#else
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GLIBCPP__
#define __GLIBCPP___WORKAROUND_GUARD 1
#else
#define __GLIBCPP___WORKAROUND_GUARD 0
#endif
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
#else
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
#endif
#ifndef __SGI_STL_PORT
#define __SGI_STL_PORT_WORKAROUND_GUARD 1
#else
#define __SGI_STL_PORT_WORKAROUND_GUARD 0
#endif
#ifndef _STLPORT_VERSION
#define _STLPORT_VERSION_WORKAROUND_GUARD 1
#else
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef __LIBCOMO_VERSION__
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
#else
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef _CPPLIB_VER
#define _CPPLIB_VER_WORKAROUND_GUARD 1
#else
#define _CPPLIB_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_CXX_VERSION
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_WIN
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_DINKUMWARE_STDLIB
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
#else
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL
#define BOOST_INTEL_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WORKAROUND_GUARD 0
#endif
// Always define to zero, if it's used it'll be defined my MPL:
#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
#define BOOST_WORKAROUND(symbol, test) \
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
(symbol != 0) && (1 % (( (symbol test) ) + 1)))
// ^ ^ ^ ^
// The extra level of parenthesis nesting above, along with the
// BOOST_OPEN_PAREN indirection below, is required to satisfy the
// broken preprocessor in MWCW 8.3 and earlier.
//
// The basic mechanism works as follows:
// (symbol test) + 1 => if (symbol test) then 2 else 1
// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
//
// The complication with % is for cooperation with BOOST_TESTED_AT().
// When "test" is BOOST_TESTED_AT(x) and
// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
//
// symbol test => if (symbol <= x) then 1 else -1
// (symbol test) + 1 => if (symbol <= x) then 2 else 0
// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
//
#ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
# define BOOST_OPEN_PAREN (
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
#else
# define BOOST_TESTED_AT(value) != ((value)-(value))
#endif
#else
#define BOOST_WORKAROUND(symbol, test) 0
#endif
#endif // BOOST_CONFIG_WORKAROUND_HPP

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
@@ -69,7 +80,7 @@
# endif
#ifdef __QNX__
#if defined(__QNX__) && defined(__EXT_QNX)
// QNX (Dinkumware stdlib) defines these as non-standard names.
// Reflect to the standard names.
@@ -140,7 +151,7 @@ namespace boost
} // namespace boost
#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS)
#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__)
// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
# include <inttypes.h>
@@ -367,14 +378,11 @@ namespace boost
#include <stddef.h>
#endif
// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
#if !defined(__PGIC__)
#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
|| (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
|| defined(__CYGWIN__) \
|| defined(__CYGWIN__) || defined(__VXWORKS__) \
|| defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
|| defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|| defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || (defined(sun) && !defined(BOOST_HAS_STDINT_H)) || defined(INTPTR_MAX)
namespace boost {
using ::intptr_t;
@@ -393,8 +401,6 @@ namespace boost {
#endif
#endif // !defined(__PGIC__)
#endif // BOOST_CSTDINT_HPP
@@ -413,15 +419,19 @@ 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:
// 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
//
// 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 INT8_C
#undef INT16_C
#undef INT32_C
#undef INT64_C
#undef INTMAX_C
#undef UINT8_C
#undef UINT16_C
#undef UINT32_C
#undef UINT64_C
#undef UINTMAX_C
#include <limits.h>
# define BOOST__STDC_CONSTANT_MACROS_DEFINED
@@ -492,7 +502,7 @@ INT#_C macros if they're not already defined (John Maddock).
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
#ifndef INT64_C
# if defined(BOOST_HAS_LONG_LONG) && \
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX))
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX))
# if defined(__hpux)
// HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
@@ -501,7 +511,8 @@ INT#_C macros if they're not already defined (John Maddock).
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
(defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
(defined(_LLONG_MAX) && _LLONG_MAX == 18446744073709551615ULL)
(defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \
(defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL)
# define INT64_C(value) value##LL
# define UINT64_C(value) value##uLL

View File

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

View File

@@ -3,265 +3,8 @@
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef WORKAROUND_DWA2002126_HPP
# define WORKAROUND_DWA2002126_HPP
#define WORKAROUND_DWA2002126_HPP
// Compiler/library version workaround macro
//
// Usage:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
// // workaround for eVC4 and VC6
// ... // workaround code here
// #endif
//
// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
// first argument must be undefined or expand to a numeric
// value. The above expands to:
//
// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
//
// When used for workarounds that apply to the latest known version
// and all earlier versions of a compiler, the following convention
// should be observed:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
//
// The version number in this case corresponds to the last version in
// which the workaround was known to have been required. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
// the workaround for any version of the compiler. When
// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
// error will be issued if the compiler version exceeds the argument
// to BOOST_TESTED_AT(). This can be used to locate workarounds which
// may be obsoleted by newer versions.
# ifndef BOOST_STRICT_CONFIG
#include <boost/config.hpp>
#ifndef __BORLANDC__
#define __BORLANDC___WORKAROUND_GUARD 1
#else
#define __BORLANDC___WORKAROUND_GUARD 0
#endif
#ifndef __CODEGEARC__
#define __CODEGEARC___WORKAROUND_GUARD 1
#else
#define __CODEGEARC___WORKAROUND_GUARD 0
#endif
#ifndef _MSC_VER
#define _MSC_VER_WORKAROUND_GUARD 1
#else
#define _MSC_VER_WORKAROUND_GUARD 0
#endif
#ifndef _MSC_FULL_VER
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
#else
#define _MSC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC
#define BOOST_MSVC_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC_FULL_VER
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GNUC__
#define __GNUC___WORKAROUND_GUARD 1
#else
#define __GNUC___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_MINOR__
#define __GNUC_MINOR___WORKAROUND_GUARD 1
#else
#define __GNUC_MINOR___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_PATCHLEVEL__
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
#else
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
#endif
#ifndef __IBMCPP__
#define __IBMCPP___WORKAROUND_GUARD 1
#else
#define __IBMCPP___WORKAROUND_GUARD 0
#endif
#ifndef __SUNPRO_CC
#define __SUNPRO_CC_WORKAROUND_GUARD 1
#else
#define __SUNPRO_CC_WORKAROUND_GUARD 0
#endif
#ifndef __DECCXX_VER
#define __DECCXX_VER_WORKAROUND_GUARD 1
#else
#define __DECCXX_VER_WORKAROUND_GUARD 0
#endif
#ifndef __MWERKS__
#define __MWERKS___WORKAROUND_GUARD 1
#else
#define __MWERKS___WORKAROUND_GUARD 0
#endif
#ifndef __EDG__
#define __EDG___WORKAROUND_GUARD 1
#else
#define __EDG___WORKAROUND_GUARD 0
#endif
#ifndef __EDG_VERSION__
#define __EDG_VERSION___WORKAROUND_GUARD 1
#else
#define __EDG_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __HP_aCC
#define __HP_aCC_WORKAROUND_GUARD 1
#else
#define __HP_aCC_WORKAROUND_GUARD 0
#endif
#ifndef __hpxstd98
#define __hpxstd98_WORKAROUND_GUARD 1
#else
#define __hpxstd98_WORKAROUND_GUARD 0
#endif
#ifndef _CRAYC
#define _CRAYC_WORKAROUND_GUARD 1
#else
#define _CRAYC_WORKAROUND_GUARD 0
#endif
#ifndef __DMC__
#define __DMC___WORKAROUND_GUARD 1
#else
#define __DMC___WORKAROUND_GUARD 0
#endif
#ifndef MPW_CPLUS
#define MPW_CPLUS_WORKAROUND_GUARD 1
#else
#define MPW_CPLUS_WORKAROUND_GUARD 0
#endif
#ifndef __COMO__
#define __COMO___WORKAROUND_GUARD 1
#else
#define __COMO___WORKAROUND_GUARD 0
#endif
#ifndef __COMO_VERSION__
#define __COMO_VERSION___WORKAROUND_GUARD 1
#else
#define __COMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __INTEL_COMPILER
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
#else
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
#endif
#ifndef __ICL
#define __ICL_WORKAROUND_GUARD 1
#else
#define __ICL_WORKAROUND_GUARD 0
#endif
#ifndef _COMPILER_VERSION
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
#else
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef _RWSTD_VER
#define _RWSTD_VER_WORKAROUND_GUARD 1
#else
#define _RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_RWSTD_VER
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
#else
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GLIBCPP__
#define __GLIBCPP___WORKAROUND_GUARD 1
#else
#define __GLIBCPP___WORKAROUND_GUARD 0
#endif
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
#else
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
#endif
#ifndef __SGI_STL_PORT
#define __SGI_STL_PORT_WORKAROUND_GUARD 1
#else
#define __SGI_STL_PORT_WORKAROUND_GUARD 0
#endif
#ifndef _STLPORT_VERSION
#define _STLPORT_VERSION_WORKAROUND_GUARD 1
#else
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef __LIBCOMO_VERSION__
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
#else
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef _CPPLIB_VER
#define _CPPLIB_VER_WORKAROUND_GUARD 1
#else
#define _CPPLIB_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_CXX_VERSION
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_WIN
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_DINKUMWARE_STDLIB
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
#else
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL
#define BOOST_INTEL_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WORKAROUND_GUARD 0
#endif
// Always define to zero, if it's used it'll be defined my MPL:
#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
# define BOOST_WORKAROUND(symbol, test) \
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
(symbol != 0) && (1 % (( (symbol test) ) + 1)))
// ^ ^ ^ ^
// The extra level of parenthesis nesting above, along with the
// BOOST_OPEN_PAREN indirection below, is required to satisfy the
// broken preprocessor in MWCW 8.3 and earlier.
//
// The basic mechanism works as follows:
// (symbol test) + 1 => if (symbol test) then 2 else 1
// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
//
// The complication with % is for cooperation with BOOST_TESTED_AT().
// When "test" is BOOST_TESTED_AT(x) and
// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
//
// symbol test => if (symbol <= x) then 1 else -1
// (symbol test) + 1 => if (symbol <= x) then 2 else 0
// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
//
# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
# define BOOST_OPEN_PAREN (
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
# else
# define BOOST_TESTED_AT(value) != ((value)-(value))
# endif
# else
# define BOOST_WORKAROUND(symbol, test) 0
# endif
#include <boost/config/workaround.hpp>
#endif // WORKAROUND_DWA2002126_HPP

View File

@@ -10,16 +10,16 @@
#define BOOST_VERSION_HPP
//
// Caution, this is the only boost header that is guarenteed
// to change with every boost release, including this header
// will cause a recompile every time a new boost version is
// released.
// Caution: this is the only Boost header that is guaranteed
// to change with every Boost release. Including this header
// will cause a recompile every time a new Boost version is
// used.
//
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 105600
#define BOOST_VERSION 106700
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,6 +27,6 @@
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_56"
#define BOOST_LIB_VERSION "1_67"
#endif

13
meta/libraries.json Normal file
View File

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

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