Compare commits

...

1538 Commits

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

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

Also, for clang on Windows, use dllimport/dllexport even beyond Cygwin.
The compiler does support these attributes, and it should for
compatibility with Windows headers.
2018-03-11 17:37:13 +03:00
jzmaddock 5ad0730630 visualc.hpp: Disable warning about outdated config. 2018-03-07 18:02:01 +00:00
Zach Laine 15d78e548f Add BOOST_NO_CXX17_IF_CONSTEXPR. 2018-03-06 17:44:52 -06:00
Nikita Kniazev 51f1178921 BOOST_STATIC_CONSTANT should use constexpr 2018-02-24 20:17:36 +03:00
jzmaddock f68542269a config_info: add more architecture specific macros. 2018-02-22 12:50:48 +00:00
jzmaddock bfd85ac978 Merge pull request #212 from glenfe/develop
Variable templates are somewhat unusable in GCC 5.1 (bug 65719)
2018-02-10 11:59:13 +00:00
Glen Fernandes db4ebfca6f Variable templates are somewhat unusable in GCC 5.1 (bug 65719) 2018-02-09 07:58:30 -05:00
jzmaddock 0275380f32 Appveyor: try to fix quoting in batch script. 2018-01-30 17:58:24 +00:00
jzmaddock 29dbea1b5a Appveyor: yet another attempt to print config_info for each build config. 2018-01-30 09:17:01 +00:00
jzmaddock 2de7d27bfd Appveyor: correct ^ typo. 2018-01-28 19:43:33 +00:00
jzmaddock bc99a449c1 Appveyor: give up trying to loop through cxxstd options for now... 2018-01-28 19:40:28 +00:00
jzmaddock d566c119a7 Appveyor: yet another command line escaping attempt... 2018-01-28 19:37:10 +00:00
jzmaddock 8e14096bf3 appveyor: yet another try at command for loop. 2018-01-28 19:31:25 +00:00
jzmaddock 81b7dfb728 Appveyor: try again with FOR loop. 2018-01-28 19:23:20 +00:00
jzmaddock 5ac217aa3f Config: correct appveyor.yml multi-config builds. 2018-01-28 19:07:22 +00:00
jzmaddock d0b3e9d59e Config: Fix up cygwin support as follows:
* Define BOOST_HAS_STDINT_H in more situations.
* Disable BOOST_NO_CXX14_HDR_SHARED_MUTEX in -std=c++XX mode as the std header doesn't compile (cygwin bug).
* Add more tests to CI.
2018-01-28 18:37:04 +00:00
jzmaddock bb095bf0e7 Merge pull request #210 from boostorg/feature/travis-libc++
Add clang++-libc++, g++ 4.4, g++ 4.6 to Travis
2018-01-25 10:15:04 +00:00
jzmaddock 73cff8ec7c Merge pull request #209 from boostorg/pr/pragma-message-intel
Add file/line to BOOST_PRAGMA_MESSAGE on Intel C++
2018-01-25 10:13:35 +00:00
jzmaddock e87ea67c61 Merge pull request #205 from akrzemi1/develop
Added macro BOOST_NO_CXX11_DEFAULTED_MOVES
2018-01-25 10:12:08 +00:00
jzmaddock f04e129c05 Merge pull request #206 from danieljames/feature/deprecated-macros
Update deprecated macros
2018-01-21 10:19:58 +00:00
jzmaddock 611d428a37 Merge pull request #204 from boostorg/feature/header-deprecated
Add BOOST_HEADER_DEPRECATED
2018-01-21 10:18:58 +00:00
Peter Dimov 2ec8f0fc73 Add file/line to BOOST_PRAGMA_MESSAGE on Intel C++ 2018-01-19 05:01:39 +02:00
Peter Dimov 9d3cef6dba Define BOOST_NO_CXX11_THREAD_LOCAL for libc++ on Linux 2018-01-18 21:45:06 +02:00
Peter Dimov 2617671fd2 Use full g++ 4.4 version (4.4.7) 2018-01-18 00:47:00 +02:00
Peter Dimov 3143e185c6 Disable config_test_no_rtti on g++ 4.4 -std=c++0x 2018-01-17 19:27:38 +02:00
Peter Dimov 0ac815ed21 Add clang++-libc++, g++ 4.4, g++ 4.6 to Travis 2018-01-16 19:01:36 +02:00
Andrzej Krzemieński cb2b706bf2 comment/whitespace fixes 2018-01-11 21:22:59 +01:00
Andrzej Krzemieński 0d0211e4d5 comment typeo fix 2018-01-11 21:21:20 +01:00
Daniel James 95fe1c03ac Update deprecated macros 2018-01-10 15:27:31 +00:00
akrzemi1 3ec5a2b573 Added macro BOOST_NO_CXX11_DEFAULTED_MOVES 2018-01-04 00:58:32 +01:00
Peter Dimov da9f4d062b Add BOOST_HEADER_DEPRECATED 2017-12-23 01:52:52 +02:00
jzmaddock 24a2cc623d Merge pull request #202 from danieljames/feature/1.67.0
Bump to 1.67.0
2017-12-22 18:56:40 +00:00
Daniel James a28e9c6c1c Bump to 1.67.0 2017-12-18 17:04:53 +00:00
jzmaddock b95595517e Merge pull request #201 from boostorg/pr/more-gcc-macros
Print a few more g++/libstdc++ macros, notably _GLIBCXX_RELEASE
2017-12-17 09:15:51 +00:00
jzmaddock cc5a67a18d Merge pull request #200 from boostorg/pr/more-ms-macros
Print more MS macros, taken from VS2017 15.5 yvals.h
2017-12-17 09:15:29 +00:00
Peter Dimov d70e6fcc85 Print a few more g++/libstdc++ macros, notably _GLIBCXX_RELEASE 2017-12-17 03:15:08 +02:00
Peter Dimov d5986d697c Print more MS macros, taken from VS2017 15.5 yvals.h 2017-12-15 19:25:13 +02:00
jzmaddock 08212107cb Merge pull request #199 from bitsrules/patch-1
Update to newest Visual Studio 2017
2017-12-13 12:11:18 +00:00
bitsrules f6296c0495 Update to newest Visual Studio 2017 2017-12-13 14:58:09 +09:00
jzmaddock 4ba6b9d545 Config: Add file and line number info to visualc.hpp #pragma message. 2017-12-12 18:20:27 +00:00
jzmaddock 5fa3b7d00c Merge branch 'feature/pragma-message' into develop
# Fixed Conflicts:
#	doc/html/index.html
2017-12-12 18:15:37 +00:00
jzmaddock ae3c914e70 Merge pull request #198 from boostorg/msvc_15_5
Apply changes required by MSVC-15.5.
2017-12-12 10:00:24 +00:00
jzmaddock 884133ef7f Config.MSVC-15.5: Fix macro spelling. 2017-12-11 20:02:32 +00:00
jzmaddock baeb8cd550 Config.MSVC-15.5: Update docs. 2017-12-11 19:32:29 +00:00
jzmaddock 90466c9d32 Config.MSVC-15.5: Document changes to meaning of BOOST_NO_STD_ITERATOR. 2017-12-11 19:31:31 +00:00
jzmaddock f060bb1eca Config.MSVC-15.5: Update list of predefined macros printed in config_info.cpp. 2017-12-11 19:27:43 +00:00
jzmaddock 1f86d51030 Config.MSVC-15.5: We still need to define BOOST_NO_TWO_PHASE_NAME_LOOKUP as we can't tell if /permissive- is in effect or not. 2017-12-11 19:27:07 +00:00
jzmaddock 464f30fe36 Config.MSVC-14.5: complete changes required, update appveyor.yml to test /permissive-. 2017-12-09 18:08:39 +00:00
jzmaddock 44e0d3ec75 Config.MSVC-14.5: complete configuration of new compiler features. 2017-12-09 18:02:33 +00:00
jzmaddock 280ebb9129 Config.msvc-15.5: Fix test case for BOOST_NO_CXX17_ITERATOR_TRAITS. 2017-12-09 17:45:26 +00:00
jzmaddock e376809717 Config.msvc-15.5: enable some initial C++17 features. 2017-12-09 12:44:38 +00:00
jzmaddock 305f5a58ef Config.msvc-15.5: Fix tests that can't pass in C++17. 2017-12-09 12:42:47 +00:00
jzmaddock ac0cc94982 Config.MSVC-15.5: BOOST_NO_CXX11_SFINAE_EXPR no longer required in C++14 or later mode. 2017-12-08 20:01:39 +00:00
jzmaddock 4ca03928e9 Merge pull request #191 from boostorg/pr/config-info-sd6
Print SD-6 macros and a few more VC STL ones
2017-12-04 19:59:23 +00:00
jzmaddock f841c990c9 Merge pull request #194 from boostorg/pr/more-travis-configs
Update .travis.yml with more configurations, feature branch support
2017-12-04 19:58:26 +00:00
Peter Dimov 23327d6d01 Suppress BOOST_PRAGMA_MESSAGE messages when BOOST_DISABLE_PRAGMA_MESSAGE is defined 2017-12-04 19:15:36 +02:00
Peter Dimov 08bd1dbe71 Move BOOST_STRINGIZE, BOOST_JOIN to config/helper_macros.hpp; use BOOST_STRINGIZE in BOOST_PRAGMA_MESSAGE 2017-12-04 18:05:05 +02:00
Peter Dimov 77c6a915db Document BOOST_PRAGMA_MESSAGE header; fix mentions of detail/workaround.hpp 2017-12-04 01:24:39 +02:00
Peter Dimov 025db91843 Add BOOST_PRAGMA_MESSAGE 2017-12-04 00:55:14 +02:00
Peter Dimov aa6193c839 Add cxxstd=11 to default g++ on Travis 2017-12-04 00:03:58 +02:00
Peter Dimov 3c00cb8760 Update .travis.yml 2017-12-03 23:30:13 +02:00
jzmaddock aecc402971 Merge pull request #192 from OlafvdSpek/patch-1
Typo in visualc.hpp
2017-11-17 12:15:17 +00:00
Olaf van der Spek 9efa768e30 Typo in visualc.hpp 2017-11-17 11:18:48 +01:00
Peter Dimov 6e8df4186f Print SD-6 macros and a few more VC STL ones 2017-11-06 23:40:06 +02:00
jzmaddock 74ef9af25a Merge branch 'develop' of https://github.com/boostorg/config into develop 2017-10-29 17:13:55 +00:00
jzmaddock 8a6d83ce29 Travis: simplify travis.yml to reduce testing load. 2017-10-29 17:13:34 +00:00
jzmaddock 644073bcf7 Merge pull request #187 from eldiener/develop
A number of places use BOOST_GCC_VERSION rather than just BOOST_GCC w…
2017-10-25 18:31:14 +01:00
jzmaddock 907cb7ca8b Merge pull request #185 from kuhlenough/develop
Update config for VxWorks 7
2017-10-25 18:30:04 +01:00
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 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
Richard Dale 4c372d8807 Merge branch 'cray-updates' 2014-06-02 10:06:28 -05:00
Richard Dale 23cf56a53f Add BOOST_NO_CX11_REF_QUALIFIERS 2014-06-02 06:58:37 -05:00
jzmaddock 9eb1e6aefe Merge pull request #20 from glenfe/develop
Move cstdint into Boost.Config (develop)
2014-06-01 18:01:40 +01:00
jzmaddock 5493717a9f Merge pull request #19 from glenfe/master
Move cstdint into Boost.Config
2014-06-01 18:00:59 +01:00
Glen Fernandes a335429d5c Merge branch 'master' into develop 2014-06-01 09:22:34 -07:00
Glen Fernandes e008ddb971 Fix clang error and some warnings 2014-06-01 09:22:27 -07:00
Glen Fernandes ce67ff8eb6 Merge branch 'master' into develop 2014-06-01 02:54:05 -07:00
Glen Fernandes 498b17520a Move cstdint docs to this module 2014-06-01 02:53:15 -07:00
Glen Fernandes 98194c6309 Move cstdint tests to this module 2014-06-01 00:29:04 -07:00
Glen Fernandes d98fbdc66b Merge branch 'master' into develop 2014-05-31 21:57:38 -07:00
Glen Fernandes acd12c5578 Merge branch 'develop' 2014-05-31 21:57:23 -07:00
John Maddock 2bab1f37ff Patch for recent versions of glibc which always assume int64_t support. Fixes #8731.
[SVN r84950]
2014-05-31 21:57:03 -07:00
Andrey Semashev e17e4fe621 Extracted intptr_t and uintptr_t types to cstdint.hpp. Refs #7823.
[SVN r84805]
2014-05-31 21:57:03 -07:00
John Maddock cb470782cf Change logic so that int32_t etc is an int rather than a long where possible.
[SVN r65299]
2014-05-31 21:57:03 -07:00
John Maddock 059715dda1 Add VMS support. Fixes #4474.
[SVN r64750]
2014-05-31 21:57:03 -07:00
John Maddock 373e516ff5 Change code to check individually for the INT#_C macros before defining them - this correctly handles cases where they are partially defined by other other headers (for example ICU). Also declare this a gcc system header - seems to be the only way to really suppress the warnings - fixes #3889.
[SVN r59430]
2014-05-31 21:57:03 -07:00
John Maddock 89481ebd34 Commit alternative warning suppression code.
[SVN r59264]
2014-05-31 21:57:03 -07:00
Daniel James 2a14f482e6 Disable warnings when defining INT#_C macros for gcc.
[SVN r58948]
2014-05-31 21:57:03 -07:00
John Maddock 080cd5d4cb Update cstdint.hpp to always define the INT#_C macros. Try again with Codegear workaround.
[SVN r58292]
2014-05-31 21:57:03 -07:00
John Maddock d6ada0eb0c Fix for Comeau compiler - does not define __GLIBC_HAVE_LONG_LONG which in turn causes GLIBC's stdint.h to misbehave. Fixes #3548.
[SVN r57858]
2014-05-31 21:57:03 -07:00
John Maddock e50fa7d4ee Fixes #3180.
[SVN r57845]
2014-05-31 21:57:03 -07:00
John Maddock e68c78a3c4 Fixes #2654.
[SVN r50572]
2014-05-31 21:57:03 -07:00
John Maddock 628cb70df7 Apparently we forgot to include <limits.h>
[SVN r32397]
2014-05-31 21:57:03 -07:00
Rene Rivera a8b414ef67 Merge from RC_1_33_0.
[SVN r31703]
2014-05-31 21:57:03 -07:00
Beman Dawes 5eb02cba79 Replace buggy Cygwin INTMAX_C and UINTMAX_C macros
[SVN r29276]
2014-05-31 21:57:03 -07:00
Markus Schöpflin 2f3debf876 Better support for Tru64.
[SVN r25689]
2014-05-31 21:57:03 -07:00
John Maddock 0b75c06eee Added new types boost::long_long_type and boost::ulong_long_type in boost/config.hpp and applied these types in place of "long long" throughout. As a result, almost all of boost now compiles cleanly with -ansi -pedantic with gcc. Changes tested with gcc 3.3, 2.95, VC7.1 and Intel 8.
[SVN r24899]
2014-05-31 21:57:03 -07:00
John Maddock 920a41ee54 Removed Boost.org copyrights and replaced with originating authors copyright instead.
[SVN r24372]
2014-05-31 21:57:02 -07:00
John Maddock a8616a783b Patches for cstdint support:
cygwin and mingw now use native stdint headers.
default header now compiles in -pedantic -ansi mode with gcc.

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

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

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

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

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

This allows the removal of lots of workaround code:

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

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

is now clean.

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

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

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

(from Stephen Kelly)

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

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

(from Stephen Kelly)

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

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

(from Stephen Kelly)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[SVN r74917]
2011-10-11 17:24:22 +00:00
Beman Dawes 2c19eb21d6 Add BOOST_NOEXCEPT and allies. Apply to Boost.Timer. Correct several Boost.timer boo boos detected while testing BOOST_NOEXCEPT.
[SVN r74895]
2011-10-10 14:48:39 +00:00
John Maddock e7dd982de7 Merge Boost.Config changes from Trunk - numerous small bug fixes plus a new Cray C++ config.
Fixes #5607.
Fixes #5941.
Fixes #5878.

[SVN r74889]
2011-10-10 11:50:55 +00:00
John Maddock 17dcf6492b Apply preliminary VC11 support.
Fixes #5923.

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

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

[SVN r73955]
2011-08-20 16:08:10 +00:00
John Maddock ffece3e93c Add Cray compiler options.
[SVN r73331]
2011-07-24 16:09:20 +00:00
Eric Niebler 18be7dcf00 merge [72327] from trunk
[SVN r73153]
2011-07-16 20:12:46 +00:00
John Maddock 2b7da15387 Document BOOST_HAS_GETSYSTEMTIMEASFILETIME, add test case, and change test for BOOST_HAS_FTIME.
Refs #2881.

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

[SVN r72953]
2011-07-07 10:37:15 +00:00
John Maddock 72e2d4c24f Merge missing changes from Trunk.
Authorized by Daniel James.

[SVN r72800]
2011-06-29 18:00:59 +00:00
Eric Niebler 1c37e1a994 add BOOST_NO_DECLTYPE_N3276 config macro
[SVN r72327]
2011-06-01 14:51:03 +00:00
Daniel James a4c133c6ce Merge config typo fix. Fixes #5581.
[SVN r72282]
2011-05-30 15:01:59 +00:00
Daniel James c897810096 Fix typo in config documentation. Fixes #5581
[SVN r72281]
2011-05-30 14:40:05 +00:00
John Maddock 8dd107358b Merge changes from Trunk.
Adds new macros BOOST_NO_NOEXCEPT and BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX.
Fixes #4867.
Fixes #5571.

[SVN r72217]
2011-05-27 16:56:00 +00:00
John Maddock c68266c486 Apply fix for Dinkumware on GHS. Refs #5571.
[SVN r72214]
2011-05-27 16:00:44 +00:00
John Maddock 07e1c7cda5 Add needed missing files.
[SVN r72043]
2011-05-19 09:32:31 +00:00
John Maddock 37b4152dc5 Add new config macro: BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX.
Fixes #4867.

[SVN r71840]
2011-05-09 11:36:39 +00:00
John Maddock c5a77c1521 Apply BOOST_NO_NOEXCEPT patch from Takaya Saito.
[SVN r71737]
2011-05-05 11:55:46 +00:00
Marshall Clow 20a331cd0e Merge fixes to release; Fixes #1988
[SVN r71676]
2011-05-02 20:56:53 +00:00
Marshall Clow 81e3542d70 Renamed BOOST_NO_THREADEX -> BOOST_HAS_THREADEX and BOOST_NO_GETSYSTEMTIMEASFILETIME --> BOOST_HAS_GETSYSTEMTIMEASFILETIME - Refs #1988
[SVN r71533]
2011-04-27 15:51:07 +00:00
John Maddock dd3ebc8776 Merge Boost.Config changes to release.
[SVN r71480]
2011-04-25 12:10:48 +00:00
John Maddock 4c07c44225 Revert unnecessary changes.
[SVN r71036]
2011-04-06 17:21:44 +00:00
John Maddock 371171ef97 Add BOOST_PREVENT_MACRO_SUBSTITUTION and regenerate docs.
Fixes #5349.

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

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

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


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

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

[SVN r68566]
2011-01-30 12:47:47 +00:00
Steven Watanabe ed7120adb8 Restore [66804], [66833], and [66834]. (fenv fixes.) I mistakenly reverted them in [68201] because [66804] was mislabeled.
[SVN r68554]
2011-01-30 06:24:30 +00:00
John Maddock 1efc29c864 Fix pathscale config.
[SVN r68542]
2011-01-29 12:09:03 +00:00
John Maddock 7b3a8ec37e Merge doc changes from Trunk so that BOOST*NIX macros are no longer defined.
[SVN r68482]
2011-01-27 18:29:26 +00:00
John Maddock 69e5377957 Fix up Intel C++0x features.
Fixes #5112.

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

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

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



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



[SVN r68140]
2011-01-14 02:35:58 +00:00
John Maddock 547d713ef7 Remove old dead code.
[SVN r68097]
2011-01-13 13:43:08 +00:00
Hartmut Kaiser 1614645b5c Spirit: merge from trunk
[SVN r68078]
2011-01-13 02:11:19 +00:00
Hartmut Kaiser a29c3edc9b Wave: merging from trunk
[SVN r68004]
2011-01-11 23:19:22 +00:00
Bryce Adelstein-Lelbach fb93903c02 Re-added Qi numeric literals as they no longer break Qi auto-magic.
[SVN r67902]
2011-01-10 03:04:31 +00:00
Bryce Adelstein-Lelbach bbb4a34504 Support for PathScale EKOPath Compiler Suite, version 4.0.0.
[SVN r67707]
2011-01-06 02:38:20 +00:00
John Maddock 3ce24d6389 Merge Boost.Config changes from Trunk.
[SVN r67522]
2010-12-31 17:08:07 +00:00
Daniel James bb3e68b516 Merge 1.46.0 prep.
[SVN r66993]
2010-12-03 23:50:44 +00:00
Daniel James 7535b8d150 1.45.0 prep
[SVN r66992]
2010-12-03 23:36:56 +00:00
John Maddock 4423219649 Don't undef BOOST_AUTO_LINK_NOMANGLE.
Refs #4902.

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



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



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



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

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

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

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

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

[SVN r64749]
2010-08-12 12:27:35 +00:00
Niels Dekker 71fb00764a Merged [63583] (removal of BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER)
[SVN r63587]
2010-07-04 11:37:42 +00:00
Niels Dekker 906168561a Removed temporary option to skip ptr-to-member initializations, BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER.
[SVN r63583]
2010-07-04 10:19:10 +00:00
Daniel James 648508cb89 Merge documentation update.
[SVN r63517]
2010-07-02 08:27:42 +00:00
Daniel James 4dc7205bd6 Rebuild config documentation.
[SVN r63504]
2010-07-01 22:11:07 +00:00
John Maddock ceeb9d5366 Merge a few minor config tweaks from Trunk
[SVN r63470]
2010-07-01 11:59:21 +00:00
John Maddock e65ec6d169 Patch for macro redefinitions.
Fixes #4385.

[SVN r63439]
2010-06-29 16:02:13 +00:00
Niels Dekker 345c804440 Assumption that Apple build 5659 of GNU 4.2.1 patched all value-initialization compiler bugs appears wrong, according to minion-clang-boost-bin-v2-libs-config-test-config_test-test-darwin-4-2-1-debug.html. Reverted [63249], see #4080.
[SVN r63379]
2010-06-27 11:14:54 +00:00
Daniel James fbb893adf0 Merge documentation fixes.
* Use `doc/src/*.css` instead of `doc/html/*.css`.
* Remove wiki and people directories.
* Some documentation fixes.
* Left out `minimal.css` changes and boostbook changes because of clashes.


[SVN r63347]
2010-06-26 12:30:09 +00:00
Niels Dekker e5ab506c4c Removed BOOST_NO_COMPLETE_VALUE_INITIALIZATION from Apple build of GCC (trunk), based on test results and feedback from Chris Jefferson. see #4080.
[SVN r63249]
2010-06-22 21:49:44 +00:00
Daniel James fc0159a81b Update various libraries' documentation build.
Mostly to use the images and css files under doc/src instead of
doc/html, usually be deleting the settings in order to use the defaults.
Also add 'boost.root' to some builds in order to fix links which rely on
it.

[SVN r63146]
2010-06-20 18:00:48 +00:00
Douglas Gregor 9a30ee0146 Clang passes all value-initialization tests now
[SVN r62950]
2010-06-14 21:18:57 +00:00
Beman Dawes 8a4e26e378 Remove macros better handled by config/stdlib/libstdcp3
[SVN r62800]
2010-06-11 14:16:38 +00:00
John Maddock ff9a447c71 Add BOOST_NO_0X_HDR_TYPEINDEX.
[SVN r62795]
2010-06-11 11:51:24 +00:00
John Maddock 3f189bf191 Add BOOST_NO_0X_HDR_TYPEINDEX.
[SVN r62793]
2010-06-11 11:21:42 +00:00
John Maddock e5b586dc02 Merge changes from Trunk - mostly new macro for <typeindex>.
[SVN r62792]
2010-06-11 11:16:34 +00:00
John Maddock f3cefbd8a3 Disable all C++0x features in GCC-XML for now.
Fixes #4324.

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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



[SVN r55159]
2009-07-26 00:49:56 +00:00
Beman Dawes 714548f437 gcc 4.4.1 fixed scoped enum bug so don't define BOOST_NO_SCOPED_ENUMS (François Barel)
[SVN r55145]
2009-07-24 15:46:01 +00:00
Troy D. Straszheim 10f2b7c60e Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
John Maddock 960f3b5e8e Fix last known version.
[SVN r54706]
2009-07-06 08:36:57 +00:00
John Maddock a04de07542 Fix last known version number.
[SVN r54705]
2009-07-06 08:35:54 +00:00
John Maddock ae3c247f55 Fixes #3214.
[SVN r54301]
2009-06-24 12:17:22 +00:00
John Maddock 2a9759c96b Fixes #3214.
[SVN r54300]
2009-06-24 12:16:31 +00:00
David Dean ab378931aa borland/codegear configuration patch to set BOOST_SP_NO_SP_CONVERTIBLE
[SVN r53797]
2009-06-11 22:03:07 +00:00
David Dean bb695e41e1 updating codegear.hpp with defines for newest compiler
[SVN r53775]
2009-06-09 15:55:05 +00:00
David Dean 6bb6198486 updating borland.hpp with defines for newest compiler
[SVN r53760]
2009-06-08 20:31:39 +00:00
Daniel James 62a577dbec Fix BOOST_NO_INITIALIZER_LISTS when the compiler supports them, but the standard library doesn't.
Merged revisions 53524,53526 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r53524 | danieljames | 2009-06-01 07:50:25 +0100 (Mon, 01 Jun 2009) | 1 line
  
  Define BOOST_NO_INITIALIZER_LISTS if library support isn't available.
........
  r53526 | danieljames | 2009-06-01 07:52:36 +0100 (Mon, 01 Jun 2009) | 1 line
  
  Fix typo.
........


[SVN r53685]
2009-06-06 13:48:57 +00:00
Daniel James 21ad7ad74d Fix typo.
[SVN r53526]
2009-06-01 06:52:36 +00:00
Daniel James 8894fa22f3 Define BOOST_NO_INITIALIZER_LISTS if library support isn't available.
[SVN r53524]
2009-06-01 06:50:25 +00:00
Beman Dawes cf37052edd Merge from trunk
[SVN r53445]
2009-05-30 11:22:59 +00:00
Beman Dawes d1e645c524 Merge from trunk
[SVN r53444]
2009-05-30 11:16:25 +00:00
Beman Dawes d46a6d5ec8 set up config for VC++ 2010 beta 1
[SVN r53155]
2009-05-21 15:16:39 +00:00
Jeremiah Willcock b03d5829b5 Fixed most tab and min/max issues from trunk inspection report
[SVN r53141]
2009-05-20 19:19:00 +00:00
Beman Dawes 6695277f1a Aways define BOOST_NO_SCOPED_ENUMS until GCC Bugzilla Bug 38064 gets fixed.
[SVN r53108]
2009-05-19 13:34:04 +00:00
John Maddock e1d9c0281a Fixes #3047.
[SVN r53107]
2009-05-19 11:39:24 +00:00
Beman Dawes f814c8fef1 Refine glibc++ feature tests based on feedback from Jonathan Wakely
[SVN r53057]
2009-05-16 18:41:33 +00:00
Daniel James 5de0a5bc43 Merge in inspect checks for links in CSS files and external content. And fix a few of these issues.
Merged revisions 52663-52664,52666-52668,52712 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r52663 | danieljames | 2009-04-29 22:12:08 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Check for invalid css links in html files as well as css files.
........
  r52664 | danieljames | 2009-04-29 22:12:32 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Check for external links.
........
  r52666 | danieljames | 2009-04-29 22:19:12 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Use local copies of the boost logo.
........
  r52667 | danieljames | 2009-04-29 22:19:40 +0100 (Wed, 29 Apr 2009) | 1 line
  
  Remove unused copy of boostbook.css
........
  r52668 | danieljames | 2009-04-29 22:19:56 +0100 (Wed, 29 Apr 2009) | 3 lines
  
  Fix a link to a header on trac.
  
  IMO it would be better to link to the local copy.
........
  r52712 | danieljames | 2009-05-01 21:51:10 +0100 (Fri, 01 May 2009) | 1 line
  
  Better inspect error for external content.
........


[SVN r53044]
2009-05-16 13:45:21 +00:00
Beman Dawes 8c5aee782e Add C++0x feature detection and header detection macros
[SVN r53031]
2009-05-15 17:08:26 +00:00
Beman Dawes 82f0426fa5 Add support for GCC 4.4.0's C++0x features
[SVN r52903]
2009-05-11 14:11:27 +00:00
Beman Dawes cc61ff79fe Prep for 1.40.0
[SVN r52888]
2009-05-11 01:08:45 +00:00
Beman Dawes 83dfbd9ec5 Prep for 1.40.0
[SVN r52887]
2009-05-11 00:59:37 +00:00
Beman Dawes 57de4bc62a Add __GXX_EXPERIMENTAL_CXX0X__
[SVN r52725]
2009-05-02 12:25:14 +00:00
Daniel James 8bbfd9629a Remove unused copy of boostbook.css
[SVN r52667]
2009-04-29 21:19:40 +00:00
John Maddock 5d7d4d94f5 Added support for vxworks.hpp.
Fixes #2959.

[SVN r52504]
2009-04-20 11:27:04 +00:00
Daniel James 628fbc53bd Merged revisions 52381 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r52381 | danieljames | 2009-04-14 10:03:13 +0100 (Tue, 14 Apr 2009) | 1 line
  
  Fix variadic template detection for mainline gcc. Fixes #2943
........


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

Fixes #2924.

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

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

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

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

[SVN r52104]
2009-04-01 14:42:11 +00:00
Andrey Semashev 115746bced Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS.
[SVN r51992]
2009-03-26 19:00:00 +00:00
Andrey Semashev 383a8b2094 Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS (take two). The C++0x features were disabled for MSVC 2010 as it is too far from release now. The macros are also defined for Borland and Codegear as these features are not announced in the release notes.
[SVN r51990]
2009-03-26 18:19:33 +00:00
Daniel James 52cb492090 Merged revisions 45283,48266 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r45283 | danieljames | 2008-05-11 14:49:20 +0100 (Sun, 11 May 2008) | 1 line
  
  Quote href values - our tools don't support unquoted values.
........
  r48266 | danieljames | 2008-08-20 20:32:23 +0100 (Wed, 20 Aug 2008) | 1 line
  
  Fix the link to the limits documentation.
........


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

[SVN r51284]
2009-02-17 10:05:58 +00:00
Beman Dawes a8d816422c Merge version 1.39.0 setup from trunk
[SVN r51186]
2009-02-10 15:51:25 +00:00
Beman Dawes 6e576ea56b Update version number to 1.38.0
[SVN r51179]
2009-02-10 13:59:38 +00:00
John Maddock c87dcc8481 Fix up PDF generation options.
[SVN r50910]
2009-01-30 18:20:49 +00:00
John Maddock 00b6864bd2 Try and fix *BSD linking errors.
[SVN r50760]
2009-01-25 10:39:29 +00:00
Troy D. Straszheim bc97209574 merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
John Maddock d379865f42 Intel's emulation of gcc's two phase name lookup is buggy, this is Intel issue 532807, tracking number DPD200111849.
[SVN r50740]
2009-01-23 09:57:28 +00:00
John Maddock e12af45eb2 Intel's emulation of gcc's two phase name lookup is buggy, this is Intel issue 532807, tracking number DPD200111849.
[SVN r50739]
2009-01-23 09:56:49 +00:00
John Maddock b3d88665a5 Add linux linker options.
[SVN r50722]
2009-01-22 09:57:28 +00:00
John Maddock 5bd10f3a39 Try and fix linux regressions
[SVN r50687]
2009-01-20 17:22:47 +00:00
John Maddock 010ceb0da2 Fixes #2653.
[SVN r50574]
2009-01-14 10:36:14 +00:00
John Maddock 40c8299a25 Merge changes from Trunk.
[SVN r50531]
2009-01-10 11:18:42 +00:00
Daniel James 63ec21a0d6 Merge latest hash and unordered developments, and add support for initialiser
lists to config.

Merged revisions 49338,49924-49927,49955,50029,50118 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r49338 | danieljames | 2008-10-15 10:44:41 +0100 (Wed, 15 Oct 2008) | 2 lines
  
  Revert [49229], it fixes the same problem as [48674].
........
  r49924 | danieljames | 2008-11-24 22:55:14 +0000 (Mon, 24 Nov 2008) | 1 line
  
  Extra tests for equality with different hash functions.
........
  r49925 | danieljames | 2008-11-24 22:55:47 +0000 (Mon, 24 Nov 2008) | 1 line
  
  Document operator==/operator!= as undefined if the equality predicates aren't equivalent.
........
  r49926 | danieljames | 2008-11-24 22:56:04 +0000 (Mon, 24 Nov 2008) | 1 line
  
  Use a larger prime number list.
........
  r49927 | danieljames | 2008-11-24 23:15:55 +0000 (Mon, 24 Nov 2008) | 1 line
  
  Use aligned storage for the value.
........
  r49955 | danieljames | 2008-11-27 11:42:13 +0000 (Thu, 27 Nov 2008) | 1 line
  
  Wild stab at getting destruction working on more compilers.
........
  r50029 | danieljames | 2008-11-29 21:47:55 +0000 (Sat, 29 Nov 2008) | 1 line
  
  Workaround another in-place destruction.
........
  r50118 | danieljames | 2008-12-04 21:30:19 +0000 (Thu, 04 Dec 2008) | 1 line
  
  Add support for initializer lists to config and the unordered containers.
........


[SVN r50451]
2009-01-03 23:18:33 +00:00
John Maddock 8fd1d95cc7 Fixes #2624.
[SVN r50423]
2009-01-01 10:30:51 +00:00
John Maddock 167b63bd33 Added BOOST_NO_STD_UNORDERED config macro.
[SVN r50362]
2008-12-22 09:45:31 +00:00
Daniel James d0b83d60af Define BOOST_NO_INITIALIZER_LISTS for codegear.
[SVN r50157]
2008-12-06 13:48:38 +00:00
Daniel James ad90956a3a Add support for initializer lists to config and the unordered containers.
[SVN r50118]
2008-12-04 21:30:19 +00:00
John Maddock 0d470a6123 Merge warning suppressions from Trunk.
[SVN r50063]
2008-12-02 10:08:02 +00:00
John Maddock cb59854bd7 Suppressed a couple more -Wundef warnings.
[SVN r50062]
2008-12-02 10:06:10 +00:00
John Maddock f6afca0da2 Fix typos in docs and regenerate.
[SVN r49850]
2008-11-20 16:55:12 +00:00
John Maddock 31395bd98f Added __CODEGEARC__ warning suppression.
[SVN r49822]
2008-11-18 08:51:43 +00:00
Michael A. Jackson 99052817e2 Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
K. Noel Belcourt e4d4157b5a Both Sun and Pgi on Linux correctly put typeinfo into the std
namespace, but function_base keys off the
BOOST_NO_EXCEPTION_STD_NAMESPACE macro instead of the
BOOST_NO_STD_TYPEINFO macro.  The attached patch changes
function_base to use the typeinfo macro.  Because eVC 4.2 doesn't
put typeinfo into the std namespace, I need to define
BOOST_NO_STD_TYPEINFO only for this eVC version.



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

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



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

[SVN r48893]
2008-09-19 12:00:14 +00:00
John Maddock b47cfe8c7b Merge Boost.Config changes ready for 1.37.
[SVN r48892]
2008-09-19 11:24:09 +00:00
John Maddock 5194a3bad7 Fixes #2328.
[SVN r48795]
2008-09-16 11:13:16 +00:00
John Maddock c05026a644 Added patches from issue #2327 but without the new config macros or test changes yet.
[SVN r48794]
2008-09-16 11:04:52 +00:00
Gennaro Prota fbef3e88e5 Ported *all* my trunk changes not yet merged so far, i.e. revisions 48251-48252,48280,48290,48350,48478,48496,48663-48664,48695,48729-48730; besides dynamic_bitset, these include fixes to setup_boostbook.sh and setup_boostbook.py, and changes to config/suffix.hpp [So: the affected "elements" are: a) the two setup_boostbook scripts, config/suffix.hpp and dynamic_bitset --note: yes, the list is exhaustive: all and only]
[SVN r48773]
2008-09-14 10:46:28 +00:00
K. Noel Belcourt 3b7f078746 Patch pgi so it is open-coded to work for any PGI
compiler version 7 or greater.



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

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

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



[SVN r47512]
2008-07-17 19:19:27 +00:00
John Maddock 3e36b54b88 Merge Boost.Config changes from Trunk.
[SVN r47435]
2008-07-15 10:41:52 +00:00
Douglas Gregor 10d20f476a Merge fix for hash_set/has_map headers on GCC 4.3
[SVN r47425]
2008-07-14 18:45:05 +00:00
Douglas Gregor 2442c44175 Detect the presence of backward/hash_set and backward/hash_map appropriately. Fixes #1462 (again)
[SVN r47424]
2008-07-14 18:43:58 +00:00
John Maddock 06f3a2ebd7 Remove offending "typename".
[SVN r47415]
2008-07-14 08:39:02 +00:00
John Maddock b526ab9386 Updated Config/TR1 tests so they include the needed headers.
Added new TR1 tests to catch some cyclic dependency errors.

[SVN r47351]
2008-07-12 12:41:52 +00:00
Douglas Gregor e37e2cb408 Fix hash_set and hash_map headers for GCC 4.3, from Ralf W. Grosse-Kunstleve. Fixes #1462
[SVN r47265]
2008-07-09 14:26:27 +00:00
Douglas Gregor 71ac171bed Fix hash_set and hash_map headers for GCC 4.3, from Ralf W. Grosse-Kunstleve. Fixes #1462
[SVN r47264]
2008-07-09 14:25:40 +00:00
John Maddock 1e661e3941 Fix some more inspection report issues: mostly non-ASCII characters in peoples names (sorry folks!).
[SVN r46840]
2008-06-29 09:10:46 +00:00
Beman Dawes 7264ef8ac1 Merge changes from trunk root + boost/version.hpp
[SVN r46719]
2008-06-26 15:57:12 +00:00
Beman Dawes cc9211e494 Update version number for 1.36.0
[SVN r46718]
2008-06-26 15:34:49 +00:00
Beman Dawes f598e24025 Update version to 1.36.0
[SVN r46712]
2008-06-26 11:25:24 +00:00
Hartmut Kaiser 365c54860b Merged from trunk
[SVN r46671]
2008-06-25 02:27:32 +00:00
Beman Dawes 9b34e89b62 Tweak Adding New Defect Macros updating configuration test system wording.
[SVN r46534]
2008-06-20 00:23:58 +00:00
John Maddock 2b3583277f Reverted changeset 45393.
[SVN r46158]
2008-06-05 08:36:39 +00:00
John Maddock 342f67a562 Fix namespace typo.
[SVN r46045]
2008-06-02 15:33:13 +00:00
John Maddock 2045854fde Disable hash and slist support when _STLP_NO_EXTENSIONS is defined.
[SVN r46044]
2008-06-02 15:15:16 +00:00
John Maddock 6c321feebf Fixed a couple of typos.
[SVN r45813]
2008-05-27 16:09:09 +00:00
John Maddock cb26255e3c Updated guidelines to account for new Jamfile locations.
[SVN r45812]
2008-05-27 12:11:56 +00:00
Vladimir Prus 725c43c501 Fix comment
[SVN r45446]
2008-05-17 06:33:09 +00:00
John Maddock 89f16cfbc0 Disable BOOST_HAS_FTIME on WinCE.
[SVN r45393]
2008-05-15 15:55:00 +00:00
John Maddock 186abf9110 Fix typo.
[SVN r45257]
2008-05-10 08:10:09 +00:00
K. Noel Belcourt 239f2b758b Enable macros BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE and
BOOST_HAS_NANOSLEEP.



[SVN r44764]
2008-04-25 15:38:26 +00:00
K. Noel Belcourt 1f2864b3ae Added no two phase name lookup for intel-darwin
compilers.



[SVN r44758]
2008-04-24 23:05:16 +00:00
John Maddock 047d11cf66 Added new files.
[SVN r44715]
2008-04-22 08:34:43 +00:00
John Maddock b4eaf1eb50 Changed macro BOOST_PARTIAL_SPECIALIZATION_EXPLICIT_ARGS to BOOST_NO_PARTIAL_SPECIALIZATION_DEFAULT_ARGS.
Changed <utility> to <boost/config/no_tr1/utility.hpp> in order to prevent cyclic dependencies between Fusion Tuples and TR1.

[SVN r44692]
2008-04-21 12:06:02 +00:00
John Maddock 5bad377e04 Added new macro BOOST_NO_TEMPLATED_IOSTREAMS in response to issue #1765.
[SVN r44689]
2008-04-21 09:19:30 +00:00
John Maddock 6feb703b7e Oops fix typo.
[SVN r44687]
2008-04-21 08:46:18 +00:00
John Maddock 4819b3b321 Added new warning_disable.hpp header.
[SVN r44621]
2008-04-20 12:54:21 +00:00
John Maddock 9f1b6471d9 Added docs for new warning_disable.hpp header.
[SVN r44620]
2008-04-20 12:53:37 +00:00
John Maddock 37698ba3cf Apply BOOST_NO_ADL_BARRIER to more Sunpro versions.
[SVN r44535]
2008-04-18 10:15:09 +00:00
John Maddock 2cac8cf454 Update thread tests: allow thread creation to fail at runtime.
[SVN r44534]
2008-04-18 10:14:23 +00:00
Markus Schöpflin f4ea4c2def The thread start routine needs C linkage. This fixes a compilation error on Tru64/cxx.
[SVN r44427]
2008-04-15 07:58:48 +00:00
John Maddock 6fac146f52 Move Boost.Config build rules into libs/config/test and fix the serialization build rules accordingly.
[SVN r44422]
2008-04-14 18:06:59 +00:00
Douglas Gregor 9f206cde8a The release branch will eventually become Boost 1.35.1
[SVN r44413]
2008-04-14 14:01:59 +00:00
John Maddock 80b0407338 Hopefully fix gcc/solaris single threading mode.
[SVN r44171]
2008-04-11 09:22:31 +00:00
John Maddock 0dcc2aeffb Beefed up pthreads test cases.
[SVN r44170]
2008-04-11 09:21:08 +00:00
John Maddock b62d7ccb27 Update for bug report #1790.
[SVN r44127]
2008-04-09 15:31:33 +00:00
John Maddock 9c70289360 Run config_info and config_test in both single and multi-thread modes.
[SVN r44121]
2008-04-09 11:34:20 +00:00
John Maddock 1ce5a784ae Oops, fix mangled docs.
[SVN r44029]
2008-04-04 09:07:48 +00:00
Marshall Clow 20818b6411 Replaced all occurrences of non-ASCII copyright symbol with '(c)' for people using non-ASCII code pages
[SVN r43992]
2008-04-02 01:42:32 +00:00
Vladimir Prus 6f2afd458c Add 'import testing'.
This is necessary so that things work when Boost.Serialization Jamfiles
directly depend on some of the config tests.


[SVN r43985]
2008-04-01 17:16:04 +00:00
John Maddock da6e707602 Added missing files: from addition of new config macro BOOST_NO_ADL_BARRIER.
[SVN r43927]
2008-03-29 16:27:34 +00:00
John Maddock 24c158f324 Added new macro BOOST_NO_ADL_BARRIER to address issue #1712.
[SVN r43914]
2008-03-28 17:03:42 +00:00
K. Noel Belcourt a593af70bb pgi-7.1 has testable version macros, yeah!
[SVN r43781]
2008-03-21 21:04:36 +00:00
Daniel James e4c0571465 Rebuild a lot of documentation.
[SVN r43650]
2008-03-16 11:38:32 +00:00
John Maddock 1ac4393feb Merge regenerated docs from Trunk.
[SVN r43360]
2008-02-21 17:03:11 +00:00
John Maddock db33faa680 Regenerated docs to fix links.
[SVN r43359]
2008-02-21 17:01:26 +00:00
Daniel James 37658f5f8a Merged revisions 43206,43208-43213 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r43206 | danieljames | 2008-02-10 09:55:03 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Fix some broken links.
........
  r43209 | danieljames | 2008-02-10 14:56:22 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Link to people pages on the website, as they've been removed from the download.
........
  r43210 | danieljames | 2008-02-10 15:02:17 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Point links to the pages that used to be in 'more' to the site.
........
  r43212 | danieljames | 2008-02-10 16:10:16 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Fix links on the home page as well.
........
  r43213 | danieljames | 2008-02-10 16:21:22 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Generated documentation which is no longer generated.
........


[SVN r43214]
2008-02-10 16:39:38 +00:00
Daniel James 5f70565f29 Fix some broken links.
[SVN r43206]
2008-02-10 09:55:03 +00:00
John Maddock f7d34f0317 Merge sunpro update from Trunk.
[SVN r43142]
2008-02-07 09:57:48 +00:00
John Maddock 6f1384143e Fix last checked version.
[SVN r43141]
2008-02-07 09:55:41 +00:00
John Maddock d4a4685c73 Only disable wide character support for HP aCC: for gcc the logic is already taken care of in libstdcpp3.hpp.
[SVN r42890]
2008-01-21 09:41:17 +00:00
Nicola Musatti a7b5a1f17e Increased the latest supported version to 5.9.3, corresponding to the December 2007 update (merge from trunk).
[SVN r42795]
2008-01-15 19:21:28 +00:00
John Maddock 0167ee763d Merge Intel-10.1 update from main branch.
[SVN r42678]
2008-01-11 13:51:17 +00:00
John Maddock b78e4903e1 Update for Intel-10.1.
[SVN r42677]
2008-01-11 13:48:57 +00:00
Markus Schöpflin 08e7e7512f Modified spelling of my surname to avoid problems with non-ASCII characters.
[SVN r42436]
2008-01-03 10:04:39 +00:00
Nicola Musatti 6b514abf06 Increased the latest supported version to 5.9.3, corresponding to the December 2007 update.
[SVN r42227]
2007-12-21 07:03:44 +00:00
Beman Dawes d4ff48c646 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Beman Dawes 36f2f49773 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
David Deakins 91b9fa5748 Define the BOOST_NO_SWPRINTF macro for WinCE. WinCE's CRT does not have a conforming swprintf signature.
[SVN r41344]
2007-11-24 20:30:50 +00:00
John Maddock db614f7ac2 Apply patches for building regex on WinCE see: http://lists.boost.org/Archives/boost/2007/11/130839.php
[SVN r41327]
2007-11-24 12:25:25 +00:00
Beman Dawes 81a1bb0395 config, detail, filesystem, system, tools, at 41278.
[SVN r41316]
2007-11-23 17:03:14 +00:00
John Maddock 637204e660 Regenerated docs to add license info.
[SVN r40895]
2007-11-07 17:21:41 +00:00
John Maddock 66b6cae557 Added support for VC9.
[SVN r40894]
2007-11-07 17:17:39 +00:00
Beman Dawes 3c76ba7f5c Add missing copyright and license
[SVN r40835]
2007-11-06 13:41:19 +00:00
Joel de Guzman bc8b26e563 Workarounds for Fusion on IBM xlc
[SVN r40766]
2007-11-05 02:10:42 +00:00
John Maddock 39c3bcc227 Strengthened admonishment and rebuilt docs.
[SVN r40656]
2007-11-01 18:26:07 +00:00
John Maddock 2c9e75db4e Added support for _WIN32_WCE.
[SVN r40293]
2007-10-22 17:46:40 +00:00
John Maddock ce659fb919 Skip some "impossible" vc8 targets.
[SVN r40278]
2007-10-22 08:43:52 +00:00
John Maddock cb5b1ef22f Update configure files with revision Id and some compiler specific fixes.
[SVN r40184]
2007-10-19 12:46:54 +00:00
John Maddock bd482d4f9f Added revision ID.
[SVN r40183]
2007-10-19 12:30:46 +00:00
John Maddock b13e704ba5 Add needed config options.
[SVN r40181]
2007-10-19 12:03:54 +00:00
John Maddock fb9f31ff36 Added expm1 and lop1p support.
[SVN r39757]
2007-10-07 11:10:24 +00:00
John Maddock 494cd37654 math_info doesn't link with Borland unless built against the static runtime.
[SVN r39756]
2007-10-07 11:09:45 +00:00
John Maddock 6ae066f68c Update Jamfiles to make PDF generation easier.
[SVN r39714]
2007-10-05 17:49:12 +00:00
Beman Dawes d9de80031d Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
John Maddock 8cc610fe31 Touched file to force regressions runners to rebuild the test.
[SVN r39621]
2007-09-30 17:35:14 +00:00
John Maddock 0fc3d2f4ad Fix for failing Borland test results.
[SVN r39619]
2007-09-30 17:29:54 +00:00
K. Noel Belcourt 3bd4d0b6ae Add macros to gcc.hpp to support pathscale toolset.
Added an optimization to the -lx unix timeout code.  I
compute the amount of time the select call should sleep
until the "oldest" process times out.  This ensures that
all processes that timeout will be killed within one
second of their expiration.



[SVN r39534]
2007-09-25 23:11:12 +00:00
K. Noel Belcourt 97ff1659be Add pgi.hpp configuration file for the Portland Group.
Fixed problems with threading, pic code, missing math
library, etc. to get mipspro toolset working better.

Updated pgi toolset to fix various problems with the
link line.



[SVN r39531]
2007-09-25 20:34:36 +00:00
Nicola Musatti fdfdbdf8de Updated to support C++Builder 2007 Update 3 (bcc32 5.9.2)
[SVN r39485]
2007-09-23 12:47:52 +00:00
John Maddock c578de9653 Updated license declaration.
[SVN r39475]
2007-09-22 11:27:25 +00:00
John Maddock a1835d5794 Fix for gcc -Wundef warnings. See http://svn.boost.org/trac/boost/ticket/1130.
[SVN r39473]
2007-09-22 09:24:05 +00:00
Boris Gubenko 010ef1711a check that on HP-UX, the Standard RW library is used
[SVN r39418]
2007-09-20 16:59:45 +00:00
Boris Gubenko 4dea4b5959 more conditionalization for PA-RISC
[SVN r39417]
2007-09-20 16:34:31 +00:00
K. Noel Belcourt b6b6559f4b Update the mipspro.jam file so have the compiler
emit each referenced template in the object file
where referenced and then rely on the linker to
remove duplicates.

Added some missing macros to sgi_mipspro.hpp.



[SVN r39382]
2007-09-19 02:59:00 +00:00
John Maddock e6501538a2 Touched header to force rebuild of config tests.
[SVN r39259]
2007-09-14 09:20:37 +00:00
John Maddock 9cf08f8043 Fix for broken limits_test build.
[SVN r39231]
2007-09-13 09:04:12 +00:00
Boris Gubenko 551c8c1f55 make sure HP-UX-specific macros are not redefined
[SVN r39198]
2007-09-11 19:54:59 +00:00
Boris Gubenko d46d34a869 define macros specific to RW V2.2 on HP-UX
[SVN r39196]
2007-09-11 19:31:55 +00:00
Boris Gubenko ef7a510e86 base detection of EDG-based compiler on __EDG__ macro
[SVN r39193]
2007-09-11 18:54:50 +00:00
John Maddock 668757a216 Added new macros def's that are needed by the various additions that have been added to Boost.Config.
[SVN r39183]
2007-09-10 17:18:16 +00:00
Boris Gubenko 6ed14ed5e1 conditionalization for PA-RISC
[SVN r39158]
2007-09-07 18:40:47 +00:00
John Maddock b2acba7499 Fixes for http://svn.boost.org/trac/boost/ticket/1104, http://svn.boost.org/trac/boost/ticket/1102, http://svn.boost.org/trac/boost/ticket/1103 and http://svn.boost.org/trac/boost/ticket/1105.
Also updated tests for some previous macro additions.

[SVN r38934]
2007-08-25 12:26:25 +00:00
John Maddock 83f250a5d6 Added needed include: see http://article.gmane.org/gmane.comp.lib.boost.devel/163941.
[SVN r38814]
2007-08-21 09:04:39 +00:00
Vladimir Prus bed705da59 Remove V1 Jamfiles
[SVN r38516]
2007-08-08 19:02:26 +00:00
Douglas Gregor 87bc2fd4ca Decltype support is in GCC 4.3
[SVN r38294]
2007-07-27 18:27:23 +00:00
nobody 05b7c1402c This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
Douglas Gregor 4c11df6feb Fix compiler information for C++0x
[SVN r38170]
2007-07-09 14:14:38 +00:00
Boris Gubenko 66dfa52613 add conditionalization for VAJRA compiler on PA-RISC
[SVN r38095]
2007-06-26 14:19:37 +00:00
John Maddock ec02089d75 Applied fix for http://svn.boost.org/trac/boost/ticket/972.
[SVN r37993]
2007-06-15 09:24:35 +00:00
John Maddock 4bec7e0f66 Fix for http://svn.boost.org/trac/boost/ticket/972.
[SVN r37975]
2007-06-12 08:46:36 +00:00
John Maddock 0948a9ccc2 Fixed typo in web address.
[SVN r37941]
2007-06-08 08:35:05 +00:00
John Maddock 1b4e28cbae Tweeked Jamfile settings.
[SVN r37926]
2007-06-07 17:45:10 +00:00
John Maddock 73379d34b4 Changed old docs to point at the new quickbook versions.
Applies a few patches to the quickbook source and regenerated docs.
Changed image location to boost-root/doc/images.


[SVN r37915]
2007-06-06 11:49:57 +00:00
Boris Gubenko f8b1046731 define BOOST_NO_TWO_PHASE_NAME_LOOKUP macro
[SVN r37903]
2007-06-05 19:31:04 +00:00
Rene Rivera b457855f90 Fix the version number string to match the libraries we build. Adjusted instructions on version string to match what the format really is. Fixes issue #986.
[SVN r37838]
2007-05-31 22:38:40 +00:00
Matias Capeletto 898841e640 quickbook config docs
[SVN r37818]
2007-05-30 04:49:28 +00:00
Thomas Witt f7964243d6 Prepare version number for 1.34.1 release.
[SVN r37813]
2007-05-29 16:46:37 +00:00
Peter Dimov 0f6f5f8d65 Define BOOST_HAS_RVALUE_REFS for ConceptGCC and OSL5-gcc
[SVN r37636]
2007-05-08 19:56:40 +00:00
John Maddock 7d6a6b771e Added note about configure not effecting the build process.
[SVN r37635]
2007-05-08 16:59:24 +00:00
John Maddock ec4827dea7 Fix as per issue 1693857.
[SVN r37356]
2007-04-04 10:19:14 +00:00
Douglas Gregor 4a7fd6f09f Only check rvalue_refs option in CodeWarrior releases after 9.5
[SVN r37193]
2007-03-15 19:51:39 +00:00
Douglas Gregor c204461f16 Sort C++0x list
[SVN r37180]
2007-03-14 09:25:53 +00:00
Douglas Gregor d7d7441e35 Move BOOST_HAS_LONG_LONG to the C++0x category
[SVN r37179]
2007-03-14 09:23:48 +00:00
Douglas Gregor cce1a4370b Fix C++0x helper macros
[SVN r37178]
2007-03-14 09:20:38 +00:00
Daniel James 405a113698 Change STLport links to point to the sourceforge home page, which is the home
page for more recent releases.


[SVN r37110]
2007-02-28 00:01:33 +00:00
Alisdair Meredith b1a5420f4d Clear ABI warnings on Borland compiler, when headers included further headers
[SVN r36880]
2007-02-03 17:07:44 +00:00
John Maddock 79994e01c5 Fixes for new macro.
[SVN r36780]
2007-01-25 11:08:37 +00:00
John Maddock 9763463b96 Fix limits_test so it does actually build now.
[SVN r36779]
2007-01-25 11:08:03 +00:00
John Maddock 6fc2d361aa Updated new macro guide.
[SVN r36558]
2007-01-01 13:00:10 +00:00
John Maddock 23e87f9712 Renamed two phase lookup test to make filename shorter.
[SVN r36557]
2007-01-01 12:41:24 +00:00
John Maddock 06351de064 Added AlisdairM's new macros.
[SVN r36547]
2006-12-31 16:38:06 +00:00
Douglas Gregor b9714083dd Fix dumb error. Thanks Alisdair
[SVN r36461]
2006-12-19 20:14:43 +00:00
Andreas Huber 8edf64db19 Corrected wrong order in copyright notices.
[SVN r36240]
2006-12-02 10:04:37 +00:00
Andreas Huber dcbf16e6a6 Fixed license & copyright issues.
[SVN r36224]
2006-12-01 10:29:49 +00:00
John Maddock 698936447b Oops, wrong version, added more targets in this one.
[SVN r36195]
2006-11-28 10:04:11 +00:00
John Maddock dab246947a Initial commit.
[SVN r36194]
2006-11-28 09:53:44 +00:00
Douglas Gregor 3e83b97f92 CodeWarrior optionally supports rvalue references
[SVN r36151]
2006-11-22 17:52:52 +00:00
Douglas Gregor 2001e370c0 Preliminary C++0x support
[SVN r36149]
2006-11-22 15:58:39 +00:00
Aleksey Gurtovoy 15b2a4515d Merge vacpp MPL asserts config fixes from RC_1_34_0
[SVN r35929]
2006-11-09 00:13:22 +00:00
John Maddock 54b470c987 Update HP aCC config and move header include outside namespace declarations (with thanks to Boris Gubenko for providing and testing these).
[SVN r35807]
2006-11-02 10:39:11 +00:00
John Maddock b9e514c5be Removed aCC workarounds that are no longer necessary.
Updated aCC config.


[SVN r34937]
2006-08-24 10:59:16 +00:00
John Maddock 2d2242e7fb Added aCC macro.
[SVN r34936]
2006-08-24 10:58:01 +00:00
Gennaro Prota 3f7a60a1ca removed - prefix code is now in select_compiler_config
[SVN r34649]
2006-07-20 23:44:55 +00:00
Gennaro Prota 13c8a4759c added "prefix" section for the new compiler identification macros
[SVN r34648]
2006-07-20 23:40:39 +00:00
John Maddock 36a4261fda Added license info.
[SVN r34557]
2006-07-16 15:42:19 +00:00
Daniel James 89fec50253 Balance the '#if's and '#endif's at the end.
[SVN r34508]
2006-07-11 20:08:56 +00:00
Gennaro Prota d544a55259 fixed typo: "True64" -> "Tru64"
[SVN r34498]
2006-07-10 11:57:36 +00:00
Gennaro Prota a279a52fc4 Applied name changes suggested on the list for Intel C++, Tru64 and HP aC++
[SVN r34497]
2006-07-10 11:38:12 +00:00
Gennaro Prota 139138f018 new BOOST_CXX_(compiler) macros (see http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostConfig)
[SVN r34482]
2006-07-08 18:31:09 +00:00
John Maddock 99a62a621b Fix error check at the end.
[SVN r34378]
2006-06-23 09:33:09 +00:00
John Maddock 1a841a3e84 Oops didn't add BOOST_HAS_THREADS to the right section... done now.
[SVN r34371]
2006-06-22 12:38:49 +00:00
John Maddock 7b4db900ad Added BOOST_HAS_THREADS printing.
[SVN r34370]
2006-06-22 12:34:28 +00:00
John Maddock 1241a29828 Adjusted options from last commit.
[SVN r34369]
2006-06-22 12:33:53 +00:00
John Maddock 55524c5108 Updates for namespace issues, plus a few more supported features.
[SVN r34368]
2006-06-22 12:05:23 +00:00
Douglas Gregor 2d0879e400 Bump version number on trunk
[SVN r34128]
2006-05-31 12:55:12 +00:00
Nicola Musatti 37dfdf81d4 Updated to support bcc32 5.8.2
[SVN r33685]
2006-04-13 07:13:32 +00:00
538 changed files with 41949 additions and 7389 deletions
+1
View File
@@ -0,0 +1 @@
checks/architecture/bin
+286
View File
@@ -0,0 +1,286 @@
# 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=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-8
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
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: linux
compiler: clang++-6.0
env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-6.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: linux
compiler: clang++-libc++
env: TOOLSET=clang COMPILER="clang++-6.0 -stdlib=libc++" CXXSTD=03,11,14
addons:
apt:
packages:
- clang-6.0
- libc++-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=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
- os: linux
env: CMAKE_TEST_PROJECT=1
install: true
script:
- mkdir __build__ && cd __build__
- cmake ../test/cmake_test_project
- cmake --build .
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $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
+21
View File
@@ -0,0 +1,21 @@
# Copyright 2018 Mike Dev
# Distributed under the Boost Software License, Version 1.0.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
#
# CAUTION!!!!
#
# This addition to Boost.Config should be considered experimental and is part
# of an ongoing effort to add CMake support Boost-wide.
#
# IT IS HIGHLY LIKELY THAT THIS FILE WILL CHANGE WITHOUT NOTICE!!!
#
# DO NOT REPLY ON THE CONTENTS OF THIS FILE!!!
#
cmake_minimum_required(VERSION 3.5)
project(BoostConfig LANGUAGES CXX)
add_library(boost_config INTERFACE)
add_library(Boost::config ALIAS boost_config)
target_include_directories(boost_config INTERFACE include)
+12
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
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%
+209
View File
@@ -0,0 +1,209 @@
#
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Thu Aug 16 11:20:17 2018
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
# 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 pragma_detect_mismatch : test_case.cpp : <define>TEST_BOOST_HAS_PRAGMA_DETECT_MISMATCH ;
obj dirent_h : test_case.cpp : <define>TEST_BOOST_HAS_DIRENT_H ;
obj expm1 : test_case.cpp : <define>TEST_BOOST_HAS_EXPM1 ;
obj float128 : test_case.cpp : <define>TEST_BOOST_HAS_FLOAT128 ;
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_hdr_optional : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_OPTIONAL ;
obj cxx17_hdr_string_view : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_STRING_VIEW ;
obj cxx17_if_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX17_IF_CONSTEXPR ;
obj cxx17_inline_variables : test_case.cpp : <define>TEST_BOOST_NO_CXX17_INLINE_VARIABLES ;
obj cxx17_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX17_ITERATOR_TRAITS ;
obj cxx17_std_apply : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STD_APPLY ;
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
View File
@@ -0,0 +1 @@
bin
+9
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];
+9
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];
+23
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 ;
+15
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
+21
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
+11
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
+14
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
+11
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
+16
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
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) ;
}
+999
View File
@@ -0,0 +1,999 @@
// This file was automatically generated on Thu Aug 16 11:20:17 2018
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
// Revision $Id$
//
#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_PRAGMA_DETECT_MISMATCH
# ifndef BOOST_HAS_PRAGMA_DETECT_MISMATCH
# error "Feature macro BOOST_HAS_PRAGMA_DETECT_MISMATCH is not defined."
# endif
#endif
#ifdef TEST_BOOST_HAS_DIRENT_H
# ifndef BOOST_HAS_DIRENT_H
# error "Feature macro BOOST_HAS_DIRENT_H is not defined."
# 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_HDR_OPTIONAL
# ifdef BOOST_NO_CXX17_HDR_OPTIONAL
# error "Defect macro BOOST_NO_CXX17_HDR_OPTIONAL is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_HDR_STRING_VIEW
# ifdef BOOST_NO_CXX17_HDR_STRING_VIEW
# error "Defect macro BOOST_NO_CXX17_HDR_STRING_VIEW is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_IF_CONSTEXPR
# ifdef BOOST_NO_CXX17_IF_CONSTEXPR
# error "Defect macro BOOST_NO_CXX17_IF_CONSTEXPR is defined."
# endif
#endif
#ifdef TEST_BOOST_NO_CXX17_INLINE_VARIABLES
# ifdef BOOST_NO_CXX17_INLINE_VARIABLES
# error "Defect macro BOOST_NO_CXX17_INLINE_VARIABLES is defined."
# 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;
}
+9 -1677
View File
File diff suppressed because it is too large Load Diff
Vendored
+1698 -1160
View File
File diff suppressed because it is too large Load Diff
+66
View File
@@ -0,0 +1,66 @@
# Boost.Config
#
# Copyright (c) 2001 Beman Dawes
# Copyright (c) 2001 Vesa Karvonen
# Copyright (c) 2001 John Maddock
#
# 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)
# Quickbook
# -----------------------------------------------------------------------------
import quickbook ;
path-constant boost-images : ../../../doc/src/images ;
xml config
:
config.qbk
;
boostbook standalone
:
config
:
<xsl:param>toc.max.depth=2
<xsl:param>toc.section.depth=2
<xsl:param>chunk.section.depth=1
<xsl:param>boost.root=../../../..
# PDF Options:
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
<format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
<format>pdf:<xsl:param>page.margin.inner=0.5in
# Margin size:
<format>pdf:<xsl:param>page.margin.outer=0.5in
# Paper type = A4
<format>pdf:<xsl:param>paper.type=A4
# Yes, we want graphics for admonishments:
<xsl:param>admon.graphics=1
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
<format>pdf:<xsl:param>admon.graphics.extension=".svg"
<format>pdf:<xsl:param>use.role.for.mediaobject=1
<format>pdf:<xsl:param>preferred.mediaobject.role=print
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/config/doc/html
;
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ;
explicit pdfinstall ;
###############################################################################
alias boostdoc ;
explicit boostdoc ;
alias boostrelease : standalone ;
explicit boostrelease ;
+32
View File
@@ -0,0 +1,32 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Acknowledgements]
Beman Dawes provided the original `config.hpp` and part of this document.
Vesa Karvonen provided a description of the principles (see
[link boost_config.rationale rationale]) and put together an early version of
the current configuration setup.
John Maddock put together the configuration current code, the test
programs, the configuration script and the reference section of this
document.
Matias Capeletto converted the docs to quickbook format.
Numerous boost members, past and present, have contributed fixes to boost's
configuration.
[endsect]
+65
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]
+62
View File
@@ -0,0 +1,62 @@
[article Boost.Config
[quickbook 1.4]
[authors [Beman Dawes, Vesa Karvonen, John Maddock] ]
[copyright 2001-2007 Beman Dawes, Vesa Karvonen, John Maddock]
[category broken compiler workarounds]
[id config]
[dirname config]
[purpose
Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
]
[source-mode c++]
[license
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])
]
]
[/ Cited Boost resources ]
[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/detail/suffix.hpp <boost/config/detail/suffix.hpp>]]
[def __BOOST_CONFIG_DIR__ ['<boost-root>]`/boost/config/`]
[/ Other web resources ]
[def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
[def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
[def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
[/ Icons ]
[def __NOTE__ [$images/note.png]]
[def __ALERT__ [$images/caution.png]]
[def __DETAIL__ [$images/note.png]]
[def __TIP__ [$images/tip.png]]
[def __QUESTION_MARK__ [$images/question.png]]
[def __SPACE__ [$images/space.png]]
[def __GO_TO__ [$images/callouts/R.png]]
[/ Document files ]
[include configuring_boost.qbk]
[include macro_reference.qbk]
[include build_time.qbk]
[include cstdint.qbk]
[include guidelines.qbk]
[include rationale.qbk]
[include acknowledgements.qbk]
+440
View File
@@ -0,0 +1,440 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Configuring Boost for Your Platform]
[section Using the default boost configuration]
Boost comes already configured for most common compilers and platforms; you
should be able to use boost "as is". Since the compiler is configured
separately from the standard library, the default configuration should work
even if you replace the compiler's standard library with a third-party
standard library (like __STL_PORT__).
Using boost "as is" without trying to reconfigure is the recommended method
for using boost. You can, however, run the configure script if you want to,
and there are regression tests provided that allow you to test the current
boost configuration with your particular compiler setup.
Boost library users can request support for additional compilers or platforms
by visiting our __BOOST_TRACKER__ and submitting a support request.
[endsect]
[section The <boost/config.hpp> header]
Boost library implementations access configuration macros via
#include ``__BOOST_CONFIG_HEADER__``
While Boost library users are not required to include that file directly, or
use those configuration macros, such use is acceptable. The configuration
macros are documented as to their purpose, usage, and limitations which makes
them usable by both Boost library and user code.
Boost [link config_info_macros informational] or [link config_helpers helper]
macros are designed for use by Boost users as well as for our own internal use.
Note however, that the [link config_features feature test] and
[link config_defects defect test] macros were designed for internal use by
Boost libraries, not user code, so they can change at any time (though no
gratuitous changes are made to them). Boost library problems resulting from
changes to the configuration macros are caught by the Boost regression tests,
so the Boost libraries are updated to account for those changes. By contrast,
Boost library user code can be adversely affected by changes to the macros
without warning. The best way to keep abreast of changes to the macros used in
user code is to monitor the discussions on the Boost developers list.
[endsect]
[#config_config_script]
[section Using the configure script]
[important
This configure script only sets up the Boost headers for use with a particular
compiler. It has no effect on Boost.Build, or how the libraries are built.
]
If you know that boost is incorrectly configured for your particular setup, and
you are on a UNIX like platform, then you may want to try and improve things by
running the boost configure script. From a shell command prompt you will need to
cd into ['<boost-root>]`/libs/config/` and type:
[: `sh ./configure` ]
you will see a list of the items being checked as the script works its way
through the regression tests. Note that the configure script only really
auto-detects your compiler if it's called g++, c++ or CC. If you are using
some other compiler you will need to set one or more of the following
environment variables:
[table
[[Variable][Description ]]
[[CXX ][The name of the compiler, for example `c++`. ]]
[[CXXFLAGS][The compiler flags to use, for example `-O2`. ]]
[[LDFLAGS ][The linker flags to use, for example `-L/mypath`. ]]
[[LIBS ][Any libraries to link in, for example `-lpthread`.]]
]
For example to run the configure script with HP aCC, you might use something
like:
export CXX="aCC"
export CXXFLAGS="-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"
export LDFLAGS="-DAportable"
export LIBS="-lpthread"
sh ./configure
However you run the configure script, when it finishes you will find a
new header -`user.hpp`- located in the ['<boost-root>]`/libs/config/`
directory. [*Note that configure does not install this header into your
boost include path by default]. This header contains all the options
generated by the configure script, plus a header-section that contains
the user settable options from the default version of
__BOOST_CONFIG_USER_HEADER__ (located under __BOOST_CONFIG_DIR__).
There are two ways you can use this header:
* [*Option 1:] copy the header into __BOOST_CONFIG_DIR__ so that it replaces
the default user.hpp provided by boost. This option allows only one
configure-generated setup; boost developers should avoid this option,
as it incurs the danger of accidentally committing a configure-modified
__BOOST_CONFIG_USER_HEADER__ to the svn repository (something you will not
be thanked for!).
* [*Option 2:] give the header a more memorable name, and place it somewhere
convenient; then, define the macro `BOOST_USER_CONFIG` to point to it. For
example create a new sub-directory __BOOST_CONFIG_DIR__ `user/`, and copy
the header there; for example as `multithread-gcc-config.hpp`. Then, when
compiling add the command line option:
`-DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>"`, and
boost will use the new configuration header. This option allows you to
generate more than one configuration header, and to keep them separate
from the boost source - so that updates to the source do not interfere
with your configuration.
[endsect]
[#config_user_settable]
[section User settable options]
There are some configuration-options that represent user choices, rather
than compiler defects or platform specific options. These are listed in
`<boost/config/user.hpp>` and at the start of a configure-generated `user.hpp`
header. You can define these on the command line, or by editing
`<boost/config/user.hpp>`, they are listed in the following table:
[table
[[Macro ][Description ]]
[[`BOOST_USER_CONFIG`][
When defined, it should point to the name of the user configuration file
to include prior to any boost configuration files. When not defined,
defaults to [@../../../../boost/config/user.hpp `<boost/config/user.hpp>`].
]]
[[`BOOST_COMPILER_CONFIG`][
When defined, it should point to the name of the compiler configuration
file to use. Defining this cuts out the compiler selection logic, and
eliminates the dependency on the header containing that logic. For
example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
to [@../../../../boost/config/compiler/gcc.hpp `<boost/config/compiler/gcc.hpp>`].
]]
[[`BOOST_STDLIB_CONFIG`][
When defined, it should point to the name of the standard library
configuration file to use. Defining this cuts out the standard library
selection logic, and eliminates the dependency on the header containing
that logic. For example if you are using STLport, then you could define
`BOOST_STDLIB_CONFIG` to
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`].
]]
[[`BOOST_PLATFORM_CONFIG`][
When defined, it should point to the name of the platform configuration
file to use. Defining this cuts out the platform selection logic, and
eliminates the dependency on the header containing that logic. For example
if you are compiling on linux, then you could define `BOOST_PLATFORM_CONFIG`
to [@../../../../boost/config/platform/linux.hpp `<boost/config/platform/linux.hpp>`].
]]
[[`BOOST_NO_COMPILER_CONFIG`][
When defined, no compiler configuration file is selected or included,
define when the compiler is fully conformant with the standard, or where
the user header (see `BOOST_USER_CONFIG`), has had any options necessary
added to it, for example by an autoconf generated configure script.
]]
[[`BOOST_NO_STDLIB_CONFIG` ][
When defined, no standard library configuration file is selected or included,
define when the standard library is fully conformant with the standard, or
where the user header (see `BOOST_USER_CONFIG`), has had any options necessary
added to it, for example by an autoconf generated configure script.
]]
[[`BOOST_NO_PLATFORM_CONFIG` ][
When defined, no platform configuration file is selected or included,
define when the platform is fully conformant with the standard (and has
no useful extra features), or where the user header (see
`BOOST_USER_CONFIG`), has had any options necessary added to it, for example
by an autoconf generated configure script.
]]
[[`BOOST_NO_CONFIG` ][
Equivalent to defining all of `BOOST_NO_COMPILER_CONFIG`,
`BOOST_NO_STDLIB_CONFIG` and `BOOST_NO_PLATFORM_CONFIG`.
]]
[[`BOOST_STRICT_CONFIG` ][
The normal behavior for compiler versions that are newer than the last
known version, is to assume that they have all the same defects as the
last known version. By setting this define, then compiler versions that
are newer than the last known version are assumed to be fully conforming
with the standard. This is probably most useful for boost developers or
testers, and for those who want to use boost to test beta compiler versions.
]]
[[`BOOST_ASSERT_CONFIG` ][
When this flag is set, if the config finds anything unknown, then it will
stop with a #error rather than continue. Boost regression testers should
set this define, as should anyone who wants to quickly check whether boost
is supported on their platform.
]]
[[`BOOST_DISABLE_THREADS` ][
When defined, disables threading support, even if the compiler in its
current translation mode supports multiple threads.
]]
[[`BOOST_DISABLE_WIN32` ][
When defined, disables the use of Win32 specific API's, even when these
are available. Also has the effect of setting `BOOST_DISABLE_THREADS` unless
`BOOST_HAS_PTHREADS` is set. This option may be set automatically by the
config system when it detects that the compiler is in "strict mode".
]]
[[`BOOST_DISABLE_ABI_HEADERS`][
Stops boost headers from including any prefix/suffix headers that normally
control things like struct packing and alignment.
]]
[[`BOOST_ABI_PREFIX`][
A prefix header to include in place of whatever boost.config would normally
select, any replacement should set up struct packing and alignment options
as required.
]]
[[`BOOST_ABI_SUFFIX` ][
A suffix header to include in place of whatever boost.config would normally
select, any replacement should undo the effects of the prefix header.
]]
[[`BOOST_ALL_DYN_LINK`][
Forces all libraries that have separate source, to be linked as dll's rather
than static libraries on Microsoft Windows (this macro is used to turn on
`__declspec(dllimport)` modifiers, so that the compiler knows which symbols
to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Thread for example), in these cases this macro has no effect.
]]
[[`BOOST_`['WHATEVER]`_DYN_LINK`][
Forces library "whatever" to be linked as a dll rather than a static library
on Microsoft Windows: replace the ['WHATEVER] part of the macro name with the
name of the library that you want to dynamically link to, for example use
`BOOST_DATE_TIME_DYN_LINK` or `BOOST_REGEX_DYN_LINK` etc (this macro is used
to turn on `__declspec(dllimport)` modifiers, so that the compiler knows
which symbols to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Thread for example), in these cases this macro is unsupported.
]]
[[`BOOST_ALL_NO_LIB`][
Tells the config system not to automatically select which libraries to link
against.
Normally if a compiler supports #pragma lib, then the correct library build
variant will be automatically selected and linked against, simply by the act
of including one of that library's headers. This macro turns that
feature off.
]]
[[`BOOST_`['WHATEVER]`_NO_LIB`][
Tells the config system not to automatically select which library to link
against for library "whatever", replace ['WHATEVER] in the macro name with the
name of the library; for example `BOOST_DATE_TIME_NO_LIB` or `BOOST_REGEX_NO_LIB`.
Normally if a compiler supports `#pragma lib`, then the correct library build
variant will be automatically selected and linked against, simply by the
act of including one of that library's headers. This macro turns that
feature off.
]]
[[`BOOST_LIB_DIAGNOSTIC`][
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
example "abc".
]]
]
[endsect]
[section Advanced configuration usage]
By setting various macros on the compiler command line or by editing
__BOOST_CONFIG_USER_HEADER__, the boost configuration setup can be optimised
in a variety of ways.
Boost's configuration is structured so that the user-configuration is
included first (defaulting to __BOOST_CONFIG_USER_HEADER__ if `BOOST_USER_CONFIG`
is not defined). This sets up any user-defined policies, and gives the
user-configuration a chance to influence what happens next.
Next the compiler, standard library, and platform configuration files are
included. These are included via macros (`BOOST_COMPILER_CONFIG` etc,
[link config_user_settable see user settable macros]), and if the corresponding
macro is undefined then a separate header that detects which compiler/standard
library/platform is in use is included in order to set these. The config
can be told to ignore these headers altogether if the corresponding
`BOOST_NO_XXX` macro is set (for example `BOOST_NO_COMPILER_CONFIG` to
disable including any compiler configuration file -
[link config_user_settable see user settable macros]).
Finally the boost configuration header, includes __BOOST_CONFIG_SUFFIX_HEADER__;
this header contains any boiler plate configuration code - for example where one
boost macro being set implies that another must be set also.
The following usage examples represent just a few of the possibilities:
[section Example 1: creating our own frozen configuration]
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0. Lets
suppose also that we don't intend to update our compiler or standard library
any time soon. In order to avoid breaking dependencies when we update boost,
we may want to "freeze" our configuration headers, so that we only have to
rebuild our project if the boost code itself has changed, and not because the
boost config has been updated for more recent versions of Visual C++ or STLport.
We'll start by realising that the configuration files in use are:
[@../../../../boost/config/compiler/visualc.hpp `<boost/config/compiler/visualc.hpp>`]
for the compiler,
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`]
for the standard library, and
[@../../../../boost/config/platform/win32.hpp `<boost/config/platform/win32.hpp>`]
for the platform. Next we'll create our own private configuration directory:
`boost/config/mysetup/`, and copy the configuration files into there. Finally,
open up __BOOST_CONFIG_USER_HEADER__ and edit the following defines:
#define BOOST_COMPILER_CONFIG "boost/config/mysetup/visualc.hpp"
#define BOOST_STDLIB_CONFIG "boost/config/mysetup/stlport.hpp"
#define BOOST_USER_CONFIG "boost/config/mysetup/win32.hpp"
Now when you use boost, its configuration header will go straight to our "frozen"
versions, and ignore the default versions, you will now be insulated from any
configuration changes when you update boost. This technique is also useful if
you want to modify some of the boost configuration files; for example if you are
working with a beta compiler release not yet supported by boost.
[endsect]
[section Example 2: skipping files that you don't need]
Lets suppose that you're using boost with a compiler that is fully conformant with
the standard; you're not interested in the fact that older versions of your compiler
may have had bugs, because you know that your current version does not need any
configuration macros setting. In a case like this, you can define
`BOOST_NO_COMPILER_CONFIG` either on the command line, or in __BOOST_CONFIG_USER_HEADER__,
and miss out the compiler configuration header altogether (actually you miss out
two headers, one which works out what the compiler is, and one that configures
boost for it). This has two consequences: the first is that less code has to be
compiled, and the second that you have removed a dependency on two boost headers.
[endsect]
[section Example 3: using configure script to freeze the boost configuration]
If you are working on a unix-like platform then you can use the configure script to
generate a "frozen" configuration based on your current compiler setup -
[link config_config_script see using the configure script for more details].
[endsect]
[endsect]
[section Testing the boost configuration]
The boost configuration library provides a full set of regression test programs
under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
[table
[[File][Description]]
[[`config_info.cpp`][
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided by this
program is useful in setting up the boost configuration files. If you report that
boost is incorrectly configured for your compiler/library/platform then please
include the output from this program when reporting the changes required.
]]
[[`config_test.cpp`][
A monolithic test program that includes most of the individual test cases.
This provides a quick check to see if boost is correctly configured for your
compiler/library/platform.
]]
[[`limits_test.cpp`][
Tests your standard library's `std::numeric_limits` implementation (or its boost
provided replacement if `BOOST_NO_LIMITS` is defined). This test file fails with
most versions of numeric_limits, mainly due to the way that some compilers
treat NAN's and infinity.
]]
[[`no_*pass.cpp`][
Individual compiler defect test files. Each of these should compile, if one
does not then the corresponding `BOOST_NO_XXX` macro needs to be defined - see
each test file for specific details.
]]
[[`no_*fail.cpp`][
Individual compiler defect test files. Each of these should not compile, if
one does then the corresponding `BOOST_NO_XXX` macro is defined when it need
not be - see each test file for specific details.
]]
[[`has_*pass.cpp`][
Individual feature test files. If one of these does not compile then the
corresponding `BOOST_HAS_XXX` macro is defined when it should not be - see
each test file for specific details.
]]
[[`has_*fail.cpp`][
Individual feature test files. If one of these does compile then the
corresponding `BOOST_HAS_XXX` macro can be safely defined - see each test
file for specific details.
]]
]
Although you can run the configuration regression tests as individual test
files, there are rather a lot of them, so there are a couple of shortcuts to
help you out:
If you have built the __BOOST_REGRESSION_TEST_DRIVER__, then you can use this to
produce a nice html formatted report of the results using the supplied test file.
Alternatively you can run the configure script like this:
[: `./configure --enable-test`]
in which case the script will test the current configuration rather than
creating a new one from scratch.
If you are reporting the results of these tests for a new
platform/library/compiler then please include a log of the full compiler output,
the output from `config_info.cpp`, and the pass/fail test results.
[endsect]
[endsect]
+146
View File
@@ -0,0 +1,146 @@
[section:cstdint Standard Integer Types]
[section Overview]
The header [^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]] provides the typedef's useful
for writing portable code that requires certain integer widths. All typedef's are in namespace boost.
The specifications for these types are based on the ISO/IEC 9899:1999 C Language standard header <stdint.h>.
The 64-bit types required by the C standard are ['not required] in the boost header,
and may not be supplied for all platforms/compilers, because [^long long] is not [yet] included in the C++ standard.
See [@../../test/cstdint_test.cpp cstdint_test.cpp] for a test program.
[endsect]
[section:rationale Rationale]
The organization of the Boost.Integer headers and classes is designed to take advantage of <stdint.h> types from the
1999 C standard without causing undefined behavior in terms of the 1998 C++ standard.
The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace [^boost]
without placing any names in namespace [^std]. The intension is to complement rather than compete
with the C++ Standard Library. Should some future C++ standard include <stdint.h> and <cstdint>,
then <boost/cstdint.hpp> will continue to function, but will become redundant and may be safely deprecated.
Because these are boost headers, their names conform to boost header naming conventions rather than
C++ Standard Library header naming conventions.
[endsect]
[section:ce ['Caveat emptor]]
As an implementation artifact, certain C <limits.h> macro names may possibly be
visible to users of <boost/cstdint.hpp>. Don't use these macros; they are not part of
any Boost-specified interface. Use [^boost::integer_traits<>] or [^std::numeric_limits<>] instead.
As another implementation artifact, certain C <stdint.h> typedef names may possibly be visible
in the global namespace to users of <boost/cstdint.hpp>. Don't use these names, they are not part of
any Boost-specified interface. Use the respective names in namespace [^boost] instead.
[endsect]
[section Exact-width integer types]
The typedef [^int#_t], with # replaced by the width, designates a signed integer type of exactly # bits;
for example [^int8_t] denotes an 8-bit signed integer type. Similarly, the typedef [^uint#_t] designates an unsigned
integer type of exactly # bits.
These types are optional. However, if a platform supports integer types with widths of
8, 16, 32, 64, or any combination thereof, then <boost/cstdint.hpp> does provide the
corresponding typedefs.
The absence of int64_t and uint64_t is indicated by the macro `BOOST_NO_INT64_T`.
[endsect]
[section Minimum-width integer types]
The typedef [^int_least#_t], with # replaced by the width, designates a signed integer type with a width
of at least # bits, such that no signed integer type with lesser size has at least the specified width.
Thus, [^int_least32_t] denotes the smallest signed integer type with a width of at least 32 bits.
Similarly, the typedef name [^uint_least#_t] designates an unsigned integer type with a width of at least # bits,
such that no unsigned integer type with lesser size has at least the specified width.
The following minimum-width integer types are provided for all platforms:
* [^int_least8_t]
* [^int_least16_t]
* [^int_least32_t]
* [^uint_least8_t]
* [^uint_least16_t]
* [^uint_least32_t]
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
* [^int_least64_t]
* [^uint_least64_t]
All other minimum-width integer types are optional.
[endsect]
[section Fastest minimum-width integer types]
The typedef [^int_fast#_t], with # replaced by the width, designates the fastest signed integer type
with a width of at least # bits. Similarly, the typedef name [^uint_fast#_t] designates the fastest
unsigned integer type with a width of at least # bits.
There is no guarantee that these types are fastest for all purposes. In any case, however, they satisfy
the signedness and width requirements.
The following fastest minimum-width integer types are provided for all platforms:
* [^int_fast8_t]
* [^int_fast16_t]
* [^int_fast32_t]
* [^uint_fast8_t]
* [^uint_fast16_t]
* [^uint_fast32_t]
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
* [^int_fast64_t]
* [^uint_fast64_t]
All other fastest minimum-width integer types are optional.
[endsect]
[section Greatest-width integer types]
The typedef [^intmax_t ]designates a signed integer type capable of representing any value of any signed integer type.
The typedef [^uintmax_t] designates an unsigned integer type capable of representing any value of any unsigned integer type.
These types are provided for all platforms.
[endsect]
[section Integer Constant Macros]
The following macros are always defined after inclusion of this header, these allow
integer constants of at least the specified width to be declared:
INT8_C, UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T is not defined.
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the implementation.
For example:
#include <boost/cstdint.hpp>
// Here the constant 0x1FFFFFFFF has the correct suffix applied:
static const boost::uint64_t c = INT64_C(0x1FFFFFFFF);
[endsect]
[section:intptr Integers for Storing Pointers]
The typedefs [^intptr_t] and [^uintptr_t] defined signed and unsigned integers respectively each capable of storing a pointer. The macro [^BOOST_HAS_INTPTR_T] is set when these types are available.
[endsect]
[endsect]
+219
View File
@@ -0,0 +1,219 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Guidelines for Boost Authors]
The __BOOST_CONFIG_HEADER__ header is used to pass configuration information
to other boost files, allowing them to cope with platform dependencies such
as arithmetic byte ordering, compiler pragmas, or compiler shortcomings.
Without such configuration information, many current compilers would not work
with the Boost libraries.
Centralizing configuration information in this header reduces the number of
files that must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.
Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem.
In other words, configuration headers are a necessary evil rather than a
desirable feature. The boost config.hpp policy is designed to minimize the
problems and maximize the benefits of a configuration header.
Note that:
* Boost library implementers are not required to "`#include <boost/config.hpp>`",
and are not required in any way to support compilers that do not comply
with the C++ Standard (ISO/IEC 14882).
* If a library implementer wishes to support some non-conforming compiler,
or to support some platform specific feature, "`#include <boost/config.hpp>`"
is the preferred way to obtain configuration information not available from
the standard headers such as `<climits>`, etc.
* If configuration information can be deduced from standard headers such as
`<climits>`, use those standard headers rather than `<boost/config.hpp>`.
* Boost files that use macros defined in `<boost/config.hpp>` should have
sensible, standard conforming, default behavior if the macro is not defined.
This means that the starting point for porting `<boost/config.hpp>` to a new
platform is simply to define nothing at all specific to that platform. In
the rare case where there is no sensible default behavior, an #error message
should describe the problem.
* If a Boost library implementer wants something added to `config.hpp`, post
a request on the Boost mailing list. There is no guarantee such a request
will be honored; the intent is to limit the complexity of config.hpp.
* The intent is to support only compilers which appear on their way to
becoming C++ Standard compliant, and only recent releases of those compilers
at that.
* The intent is not to disable mainstream features now well-supported by the
majority of compilers, such as namespaces, exceptions, RTTI, or templates.
[section:warnings Disabling Compiler Warnings]
The header `<boost/config/warning_disable.hpp>` can be used to disable
certain compiler warnings that are hard or impossible to otherwise remove.
Note that:
* This header [*['should never be included by another Boost header]], it should
only ever be used by a library source file or a test case.
* The header should be included [*['before you include any other header]].
* This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or
in one compilers own standard library headers.
Currently it disables the following warnings:
[table
[[Compiler][Warning]]
[[Visual C++ 8 and later][[@http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx C4996]: Error 'function': was declared deprecated]]
[[Intel C++][Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.]]
]
[endsect]
[section Adding New Defect Macros]
When you need to add a new defect macro - either to fix a problem with an
existing library, or when adding a new library - distil the issue down to
a simple test case; often, at this point other (possibly better) workarounds
may become apparent. Secondly always post the test case code to the boost
mailing list and invite comments; remember that C++ is complex and that
sometimes what may appear a defect, may in fact turn out to be a problem
with the authors understanding of the standard.
When you name the macro, follow the `BOOST_NO_`['SOMETHING] naming
convention, so that it's obvious that this is a macro reporting a defect.
Finally, add the test program to the regression tests. You will need to
place the test case in a `.ipp` file with the following comments near the top:
// MACRO: BOOST_NO_FOO
// TITLE: foo
// DESCRIPTION: If the compiler fails to support foo
These comments are processed by the autoconf script, so make sure the format
follows the one given. The file should be named "`boost_no_foo.ipp`", where foo
is the defect description - try and keep the file name under the Mac 30 character
filename limit though. You will also need to provide a function prototype
"`int test()`" that is declared in a namespace with the same name as the macro,
but in all lower case, and which returns zero on success:
namespace boost_no_foo {
int test()
{
// test code goes here:
//
return 0;
}
}
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
file test cases from the `.ipp` file, updates the
libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
compilers to test with.[br][br]
The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br]
* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
`config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
while `config_test` should fail for those that have the defect, and pass for those
that do not.
Then you should:
* Define the defect macro in those config headers that require it.
* Document the macro in this documentation (please do not forget this step!!)
* Commit everything.
* Keep an eye on the regression tests for new failures in Boost.Config caused by
the addition.
* Start using the macro.
[endsect]
[section Adding New Feature Test Macros]
When you need to add a macro that describes a feature that the standard does
not require, follow the convention for adding a new defect macro (above), but
call the macro `BOOST_HAS_FOO`, and name the test file "`boost_has_foo.ipp`".
Try not to add feature test macros unnecessarily, if there is a platform
specific macro that can already be used (for example `_WIN32`, `__BEOS__`, or
`__linux`) to identify the feature then use that. Try to keep the macro to a
feature group, or header name, rather than one specific API (for example
`BOOST_HAS_NL_TYPES_H` rather than `BOOST_HAS_CATOPEN`). If the macro
describes a POSIX feature group, then add boilerplate code to
__BOOST_CONFIG_SUFFIX_HEADER__ 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 `<unistd.h>`).
[endsect]
[section Modifying the Boost Configuration Headers]
The aim of boost's configuration setup is that the configuration headers should
be relatively stable - a boost user should not have to recompile their code
just because the configuration for some compiler that they're not interested
in has changed. Separating the configuration into separate compiler/standard
library/platform sections provides for part of this stability, but boost
authors require some amount of restraint as well, in particular:
__BOOST_CONFIG_HEADER__ should never change, don't alter this file.
__BOOST_CONFIG_USER_HEADER__ is included by default, don't add extra code to
this file unless you have to. If you do, please remember to update
[@../../tools/configure.in libs/config/tools/configure.in] as well.
__BOOST_CONFIG_SUFFIX_HEADER__ 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.
[@../../../../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.
The compiler/platform/standard library selection code is set up so that unknown
platforms are ignored and assumed to be fully standards compliant - this gives
unknown platforms a "sporting chance" of working "as is" even without running
the configure script.
When adding or modifying the individual mini-configs, assume that future, as
yet unreleased versions of compilers, have all the defects of the current
version. Although this is perhaps unnecessarily pessimistic, it cuts down on
the maintenance of these files, and experience suggests that pessimism is
better placed than optimism here!
[endsect]
[endsect]
+5
View File
@@ -0,0 +1,5 @@
index.html
boost_config/boost_macro_reference.html
boost_config/guidelines_for_boost_authors.html
boost_config/rationale.html
boost_config/acknowledgements.html
@@ -0,0 +1,62 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">
</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="rationale.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>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
<p>
Beman Dawes provided the original <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> and
part of this document.
</p>
<p>
Vesa Karvonen provided a description of the principles (see <a class="link" href="rationale.html" title="Rationale">rationale</a>)
and put together an early version of the current configuration setup.
</p>
<p>
John Maddock put together the configuration current code, the test programs,
the configuration script and the reference section of this document.
</p>
<p>
Matias Capeletto converted the docs to quickbook format.
</p>
<p>
Numerous boost members, past and present, have contributed fixes to boost's
configuration.
</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="rationale.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>
</div>
</body>
</html>
File diff suppressed because it is too large Load Diff
+144
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.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<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>
+301
View File
@@ -0,0 +1,301 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Standard Integer Types</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="build_config.html" title="Build Time Configuration">
<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types">Standard Integer Types</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
minimum-width integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
integer types</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt>
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.intptr">Integers for Storing Pointers</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.overview"></a><a class="link" href="cstdint.html#boost_config.cstdint.overview" title="Overview">Overview</a>
</h3></div></div></div>
<p>
The header <code class="literal"><a href="../../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a></code>
provides the typedef's useful for writing portable code that requires certain
integer widths. All typedef's are in namespace boost.
</p>
<p>
The specifications for these types are based on the ISO/IEC 9899:1999 C Language
standard header &lt;stdint.h&gt;. The 64-bit types required by the C standard
are <span class="emphasis"><em>not required</em></span> in the boost header, and may not be
supplied for all platforms/compilers, because <code class="literal">long long</code>
is not [yet] included in the C++ standard.
</p>
<p>
See <a href="../../../test/cstdint_test.cpp" target="_top">cstdint_test.cpp</a> for
a test program.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_config.cstdint.rationale" title="Rationale">Rationale</a>
</h3></div></div></div>
<p>
The organization of the Boost.Integer headers and classes is designed to
take advantage of &lt;stdint.h&gt; types from the 1999 C standard without
causing undefined behavior in terms of the 1998 C++ standard. The header
&lt;boost/cstdint.hpp&gt; makes the standard integer types safely available
in namespace <code class="literal">boost</code> without placing any names in namespace
<code class="literal">std</code>. The intension is to complement rather than compete
with the C++ Standard Library. Should some future C++ standard include &lt;stdint.h&gt;
and &lt;cstdint&gt;, then &lt;boost/cstdint.hpp&gt; will continue to function,
but will become redundant and may be safely deprecated.
</p>
<p>
Because these are boost headers, their names conform to boost header naming
conventions rather than C++ Standard Library header naming conventions.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.ce"></a><a class="link" href="cstdint.html#boost_config.cstdint.ce" title="Caveat emptor"><span class="emphasis"><em>Caveat emptor</em></span></a>
</h3></div></div></div>
<p>
As an implementation artifact, certain C &lt;limits.h&gt; macro names may
possibly be visible to users of &lt;boost/cstdint.hpp&gt;. Don't use these
macros; they are not part of any Boost-specified interface. Use <code class="literal">boost::integer_traits&lt;&gt;</code>
or <code class="literal">std::numeric_limits&lt;&gt;</code> instead.
</p>
<p>
As another implementation artifact, certain C &lt;stdint.h&gt; typedef names
may possibly be visible in the global namespace to users of &lt;boost/cstdint.hpp&gt;.
Don't use these names, they are not part of any Boost-specified interface.
Use the respective names in namespace <code class="literal">boost</code> instead.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int#_t</code>, with # replaced by the width, designates
a signed integer type of exactly # bits; for example <code class="literal">int8_t</code>
denotes an 8-bit signed integer type. Similarly, the typedef <code class="literal">uint#_t</code>
designates an unsigned integer type of exactly # bits.
</p>
<p>
These types are optional. However, if a platform supports integer types with
widths of 8, 16, 32, 64, or any combination thereof, then &lt;boost/cstdint.hpp&gt;
does provide the corresponding typedefs.
</p>
<p>
The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int_least#_t</code>, with # replaced by the width,
designates a signed integer type with a width of at least # bits, such that
no signed integer type with lesser size has at least the specified width.
Thus, <code class="literal">int_least32_t</code> denotes the smallest signed integer
type with a width of at least 32 bits. Similarly, the typedef name <code class="literal">uint_least#_t</code>
designates an unsigned integer type with a width of at least # bits, such
that no unsigned integer type with lesser size has at least the specified
width.
</p>
<p>
The following minimum-width integer types are provided for all platforms:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_least8_t</code>
</li>
<li class="listitem">
<code class="literal">int_least16_t</code>
</li>
<li class="listitem">
<code class="literal">int_least32_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least8_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least16_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least32_t</code>
</li>
</ul></div>
<p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_least64_t</code>
</li>
<li class="listitem">
<code class="literal">uint_least64_t</code>
</li>
</ul></div>
<p>
All other minimum-width integer types are optional.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest
minimum-width integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">int_fast#_t</code>, with # replaced by the width,
designates the fastest signed integer type with a width of at least # bits.
Similarly, the typedef name <code class="literal">uint_fast#_t</code> designates the
fastest unsigned integer type with a width of at least # bits.
</p>
<p>
There is no guarantee that these types are fastest for all purposes. In any
case, however, they satisfy the signedness and width requirements.
</p>
<p>
The following fastest minimum-width integer types are provided for all platforms:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_fast8_t</code>
</li>
<li class="listitem">
<code class="literal">int_fast16_t</code>
</li>
<li class="listitem">
<code class="literal">int_fast32_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast8_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast16_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast32_t</code>
</li>
</ul></div>
<p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">int_fast64_t</code>
</li>
<li class="listitem">
<code class="literal">uint_fast64_t</code>
</li>
</ul></div>
<p>
All other fastest minimum-width integer types are optional.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width
integer types</a>
</h3></div></div></div>
<p>
The typedef <code class="literal">intmax_t </code>designates a signed integer type
capable of representing any value of any signed integer type.
</p>
<p>
The typedef <code class="literal">uintmax_t</code> designates an unsigned integer type
capable of representing any value of any unsigned integer type.
</p>
<p>
These types are provided for all platforms.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_config.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer
Constant Macros</a>
</h3></div></div></div>
<p>
The following macros are always defined after inclusion of this header, these
allow integer constants of at least the specified width to be declared: INT8_C,
UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
</p>
<p>
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T
is not defined.
</p>
<p>
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the
implementation.
</p>
<p>
For example:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="comment">// Here the constant 0x1FFFFFFFF has the correct suffix applied:</span>
<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">INT64_C</span><span class="special">(</span><span class="number">0</span><span class="identifier">x1FFFFFFFF</span><span class="special">);</span>
</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.cstdint.intptr"></a><a class="link" href="cstdint.html#boost_config.cstdint.intptr" title="Integers for Storing Pointers">Integers for Storing Pointers</a>
</h3></div></div></div>
<p>
The typedefs <code class="literal">intptr_t</code> and <code class="literal">uintptr_t</code>
defined signed and unsigned integers respectively each capable of storing
a pointer. The macro <code class="literal">BOOST_HAS_INTPTR_T</code> is set when these
types are available.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
@@ -0,0 +1,377 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="cstdint.html" title="Standard Integer Types">
<link rel="next" href="rationale.html" title="Rationale">
</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="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
Compiler Warnings</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
New Defect Macros</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
New Feature Test Macros</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
the Boost Configuration Headers</a></span></dt>
</dl></div>
<p>
The <a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
header is used to pass configuration information to other boost files, allowing
them to cope with platform dependencies such as arithmetic byte ordering, compiler
pragmas, or compiler shortcomings. Without such configuration information,
many current compilers would not work with the Boost libraries.
</p>
<p>
Centralizing configuration information in this header reduces the number of
files that must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.
</p>
<p>
Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem.
In other words, configuration headers are a necessary evil rather than a desirable
feature. The boost config.hpp policy is designed to minimize the problems and
maximize the benefits of a configuration header.
</p>
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
way to support compilers that do not comply with the C++ Standard (ISO/IEC
14882).
</li>
<li class="listitem">
If a library implementer wishes to support some non-conforming compiler,
or to support some platform specific feature, "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>" is the preferred way to obtain
configuration information not available from the standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, etc.
</li>
<li class="listitem">
If configuration information can be deduced from standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather
than <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</li>
<li class="listitem">
Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
should have sensible, standard conforming, default behavior if the macro
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to a new platform is simply to define
nothing at all specific to that platform. In the rare case where there
is no sensible default behavior, an #error message should describe the
problem.
</li>
<li class="listitem">
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
post a request on the Boost mailing list. There is no guarantee such a
request will be honored; the intent is to limit the complexity of config.hpp.
</li>
<li class="listitem">
The intent is to support only compilers which appear on their way to becoming
C++ Standard compliant, and only recent releases of those compilers at
that.
</li>
<li class="listitem">
The intent is not to disable mainstream features now well-supported by
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li>
</ul></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">Disabling
Compiler Warnings</a>
</h3></div></div></div>
<p>
The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
can be used to disable certain compiler warnings that are hard or impossible
to otherwise remove.
</p>
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
by another Boost header</em></span></strong></span>, it should only ever be
used by a library source file or a test case.
</li>
<li class="listitem">
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
you include any other header</em></span></strong></span>.
</li>
<li class="listitem">
This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or in
one compilers own standard library headers.
</li>
</ul></div>
<p>
Currently it disables the following warnings:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Compiler
</p>
</th>
<th>
<p>
Warning
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
Visual C++ 8 and later
</p>
</td>
<td>
<p>
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
Error 'function': was declared deprecated
</p>
</td>
</tr>
<tr>
<td>
<p>
Intel C++
</p>
</td>
<td>
<p>
Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a>
</h3></div></div></div>
<p>
When you need to add a new defect macro - either to fix a problem with an
existing library, or when adding a new library - distil the issue down to
a simple test case; often, at this point other (possibly better) workarounds
may become apparent. Secondly always post the test case code to the boost
mailing list and invite comments; remember that C++ is complex and that sometimes
what may appear a defect, may in fact turn out to be a problem with the authors
understanding of the standard.
</p>
<p>
When you name the macro, follow the <code class="computeroutput"><span class="identifier">BOOST_NO_</span></code><span class="emphasis"><em>SOMETHING</em></span>
naming convention, so that it's obvious that this is a macro reporting a
defect.
</p>
<p>
Finally, add the test program to the regression tests. You will need to place
the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
file with the following comments near the top:
</p>
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO</span>
<span class="comment">// TITLE: foo</span>
<span class="comment">// DESCRIPTION: If the compiler fails to support foo</span>
</pre>
<p>
These comments are processed by the autoconf script, so make sure the format
follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
where foo is the defect description - try and keep the file name under the
Mac 30 character filename limit though. You will also need to provide a function
prototype "<code class="computeroutput"><span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span></code>" that is declared in a namespace with
the same name as the macro, but in all lower case, and which returns zero
on success:
</p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
<span class="special">{</span>
<span class="comment">// test code goes here:</span>
<span class="comment">//</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
</pre>
<p>
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br>
<br>
</li>
<li class="listitem">
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
</code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
<span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
list of compilers to test with.<br> <br> The xxx_pass_test and the
xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br> <br> If <span class="emphasis"><em>MACRONAME</em></span>
is not defined when it should be defined, xxx_pass_test will not report
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. If <span class="emphasis"><em>MACRONAME</em></span>
is defined when it should not be defined, xxx_fail_test will not report
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
</li>
<li class="listitem">
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
<span class="identifier">config_info</span> <span class="identifier">config_test</span>
</code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
<code class="computeroutput"><span class="identifier">config_info</span></code> should build
and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
while <code class="computeroutput"><span class="identifier">config_test</span></code> should
fail for those that have the defect, and pass for those that do not.
</li>
</ul></div>
<p>
Then you should:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Define the defect macro in those config headers that require it.
</li>
<li class="listitem">
Document the macro in this documentation (please do not forget this step!!)
</li>
<li class="listitem">
Commit everything.
</li>
<li class="listitem">
Keep an eye on the regression tests for new failures in Boost.Config
caused by the addition.
</li>
<li class="listitem">
Start using the macro.
</li>
</ul></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
New Feature Test Macros</a>
</h3></div></div></div>
<p>
When you need to add a macro that describes a feature that the standard does
not require, follow the convention for adding a new defect macro (above),
but call the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_FOO</span></code>,
and name the test file "<code class="computeroutput"><span class="identifier">boost_has_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>".
Try not to add feature test macros unnecessarily, if there is a platform
specific macro that can already be used (for example <code class="computeroutput"><span class="identifier">_WIN32</span></code>,
<code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux</span></code>) to identify the feature then use
that. Try to keep the macro to a feature group, or header name, rather than
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/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
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
the Boost Configuration Headers</a>
</h3></div></div></div>
<p>
The aim of boost's configuration setup is that the configuration headers
should be relatively stable - a boost user should not have to recompile their
code just because the configuration for some compiler that they're not interested
in has changed. Separating the configuration into separate compiler/standard
library/platform sections provides for part of this stability, but boost
authors require some amount of restraint as well, in particular:
</p>
<p>
<a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
should never change, don't alter this file.
</p>
<p>
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
is included by default, don't add extra code to this file unless you have
to. If you do, please remember to update <a href="../../../tools/configure.in" target="_top">libs/config/tools/configure.in</a>
as well.
</p>
<p>
<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/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>
<p>
The compiler/platform/standard library selection code is set up so that unknown
platforms are ignored and assumed to be fully standards compliant - this
gives unknown platforms a "sporting chance" of working "as
is" even without running the configure script.
</p>
<p>
When adding or modifying the individual mini-configs, assume that future,
as yet unreleased versions of compilers, have all the defects of the current
version. Although this is perhaps unnecessarily pessimistic, it cuts down
on the maintenance of these files, and experience suggests that pessimism
is better placed than optimism here!
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
+124
View File
@@ -0,0 +1,124 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
</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="guidelines_for_boost_authors.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="acknowledgements.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.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
</dl></div>
<p>
The problem with many traditional "textbook" implementations of configuration
headers (where all the configuration options are in a single "monolithic"
header) is that they violate certain fundamental software engineering principles
which would have the effect of making boost more fragile, more difficult to
maintain and more difficult to use safely. You can find a description of the
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
article</a>.
</p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
</h3></div></div></div>
<p>
Consider a situation in which you are concurrently developing on multiple
platforms. Then consider adding a new platform or changing the platform definitions
of an existing platform. What happens? Everything, and this does literally
mean everything, recompiles. Isn't it quite absurd that adding a new platform,
which has absolutely nothing to do with previously existing platforms, means
that all code on all existing platforms needs to be recompiled?
</p>
<p>
Effectively, there is an imposed physical dependency between platforms that
have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed Principle:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"A module should be open for extension but closed
for modification."</strong></span>
</p></blockquote></div>
<p>
Extending a traditional configuration header implies modifying existing code.
</p>
<p>
Furthermore, consider the complexity and fragility of the platform detection
code. What if a simple change breaks the detection on some minor platform?
What if someone accidentally or on purpose (as a workaround for some other
problem) defines some platform dependent macros that are used by the detection
code? A traditional configuration header is one of the most volatile headers
of the entire library, and more stable elements of Boost would depend on
it. This violates the Stable Dependencies Principle:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p></blockquote></div>
<p>
After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow
sound software engineering practice.
</p>
<p>
Another important issue is that it is not always possible to submit changes
to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
Some boost users are currently working on platforms using tools and libraries
that are under strict Non-Disclosure Agreements. In this situation it is
impossible to submit changes to a traditional monolithic configuration header,
instead some method by which the user can insert their own configuration
code must be provided.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
</h3></div></div></div>
<p>
The approach taken by boost's configuration headers is to separate configuration
into three orthogonal parts: the compiler, the standard library and the platform.
Each compiler/standard library/platform gets its own mini-configuration header,
so that changes to one compiler's configuration (for example) does not affect
other compilers. In addition there are measures that can be taken both to
omit the compiler/standard library/platform detection code (so that adding
support to a new platform does not break dependencies), or to freeze the
configuration completely; providing almost complete protection against dependency
changes.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.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="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
+1002
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+80
View File
@@ -0,0 +1,80 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Rationale]
The problem with many traditional "textbook" implementations of configuration
headers (where all the configuration options are in a single "monolithic"
header) is that they violate certain fundamental software engineering
principles which would have the effect of making boost more fragile, more
difficult to maintain and more difficult to use safely. You can find a
description of the principles from the __PRINCIPLES_AND_PATTERNS_ARTICLE__.
[section The problem]
Consider a situation in which you are concurrently developing on multiple
platforms. Then consider adding a new platform or changing the platform
definitions of an existing platform. What happens? Everything, and this does
literally mean everything, recompiles. Isn't it quite absurd that adding a
new platform, which has absolutely nothing to do with previously existing
platforms, means that all code on all existing platforms needs to be
recompiled?
Effectively, there is an imposed physical dependency between platforms that
have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed
Principle:
[: [*"A module should be open for extension but closed for modification."]]
Extending a traditional configuration header implies modifying existing code.
Furthermore, consider the complexity and fragility of the platform detection
code. What if a simple change breaks the detection on some minor platform?
What if someone accidentally or on purpose (as a workaround for some other
problem) defines some platform dependent macros that are used by the
detection code? A traditional configuration header is one of the most
volatile headers of the entire library, and more stable elements of
Boost would depend on it. This violates the Stable Dependencies Principle:
[: [*"Depend in the direction of stability."]]
After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow
sound software engineering practice.
Another important issue is that it is not always possible to submit changes
to `<boost/config.hpp>`. Some boost users are currently working on platforms
using tools and libraries that are under strict Non-Disclosure Agreements.
In this situation it is impossible to submit changes to a traditional
monolithic configuration header, instead some method by which the user
can insert their own configuration code must be provided.
[endsect]
[section The solution]
The approach taken by boost's configuration headers is to separate
configuration into three orthogonal parts: the compiler, the standard
library and the platform. Each compiler/standard library/platform gets
its own mini-configuration header, so that changes to one compiler's
configuration (for example) does not affect other compilers. In addition
there are measures that can be taken both to omit the compiler/standard
library/platform detection code (so that adding support to a new platform
does not break dependencies), or to freeze the configuration completely;
providing almost complete protection against dependency changes.
[endsect]
[endsect]
+14 -17
View File
@@ -1,6 +1,6 @@
// Boost config.hpp configuration header file ------------------------------// // Boost config.hpp configuration header file ------------------------------//
// (C) Copyright John Maddock 2002. // (C) Copyright John Maddock 2002.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,10 @@
// if we don't have a user config, then use the default location: // if we don't have a user config, then use the default location:
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) #if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
# define BOOST_USER_CONFIG <boost/config/user.hpp> # define BOOST_USER_CONFIG <boost/config/user.hpp>
#if 0
// For dependency trackers:
# include <boost/config/user.hpp>
#endif
#endif #endif
// include it first: // include it first:
#ifdef BOOST_USER_CONFIG #ifdef BOOST_USER_CONFIG
@@ -28,7 +32,7 @@
// if we don't have a compiler config set, try and find one: // 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) #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 #endif
// if we have a compiler config, include it now: // if we have a compiler config, include it now:
#ifdef BOOST_COMPILER_CONFIG #ifdef BOOST_COMPILER_CONFIG
@@ -36,8 +40,8 @@
#endif #endif
// if we don't have a std library config set, try and find one: // 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) #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 #endif
// if we have a std library config, include it now: // if we have a std library config, include it now:
#ifdef BOOST_STDLIB_CONFIG #ifdef BOOST_STDLIB_CONFIG
@@ -46,7 +50,7 @@
// if we don't have a platform config set, try and find one: // 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) #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 #endif
// if we have a platform config, include it now: // if we have a platform config, include it now:
#ifdef BOOST_PLATFORM_CONFIG #ifdef BOOST_PLATFORM_CONFIG
@@ -54,17 +58,10 @@
#endif #endif
// get config suffix code: // get config suffix code:
#include <boost/config/suffix.hpp> #include <boost/config/detail/suffix.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
#endif
#endif // BOOST_CONFIG_HPP #endif // BOOST_CONFIG_HPP
+1 -1
View File
@@ -21,7 +21,7 @@
// 8026 - functions taking class by value arguments are not expanded inline // 8026 - functions taking class by value arguments are not expanded inline
#pragma nopushoptwarn #pragma nopushoptwarn
# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026 # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
+15 -1
View File
@@ -3,6 +3,20 @@
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#pragma pack(push,8) //
// Boost binaries are built with the compiler's default ABI settings,
// if the user changes their default alignment in the VS IDE then their
// code will no longer be binary compatible with the bjam built binaries
// unless this header is included to force Boost code into a consistent ABI.
//
// Note that inclusion of this header is only necessary for libraries with
// separate source, header only libraries DO NOT need this as long as all
// translation units are built with the same options.
//
#if defined(_M_X64)
# pragma pack(push,16)
#else
# pragma pack(push,8)
#endif
+6 -1
View File
@@ -1,6 +1,6 @@
// abi_prefix header -------------------------------------------------------// // abi_prefix header -------------------------------------------------------//
// © Copyright John Maddock 2003 // (c) Copyright John Maddock 2003
// Use, modification and distribution are subject to the Boost Software License, // Use, modification and distribution are subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -18,3 +18,8 @@
#ifdef BOOST_HAS_ABI_HEADERS #ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX # include BOOST_ABI_PREFIX
#endif #endif
#if defined( __BORLANDC__ )
#pragma nopushoptwarn
#endif
+6 -2
View File
@@ -1,6 +1,6 @@
// abi_sufffix header -------------------------------------------------------// // abi_sufffix header -------------------------------------------------------//
// © Copyright John Maddock 2003 // (c) Copyright John Maddock 2003
// Use, modification and distribution are subject to the Boost Software License, // Use, modification and distribution are subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -10,7 +10,7 @@
// <boost/config/abi_prefix.hpp>. // <boost/config/abi_prefix.hpp>.
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP #ifndef BOOST_CONFIG_ABI_PREFIX_HPP
# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
#else #else
# undef BOOST_CONFIG_ABI_PREFIX_HPP # undef BOOST_CONFIG_ABI_PREFIX_HPP
#endif #endif
@@ -20,4 +20,8 @@
# include BOOST_ABI_SUFFIX # include BOOST_ABI_SUFFIX
#endif #endif
#if defined( __BORLANDC__ )
#pragma nopushoptwarn
#endif
+188 -77
View File
@@ -25,6 +25,12 @@ BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
of the library selected (useful for debugging). of the library selected (useful for debugging).
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
rather than a mangled-name version. rather than a mangled-name version.
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
This is essentially the same as the default name-mangled version, but without
the compiler name and version, or the Boost version. Just the build options.
BOOST_AUTO_LINK_SYSTEM: Specifies that we link to libraries built with the --layout=system option.
This is essentially the same as the non-name-mangled version, but with
the prefix to differentiate static and dll builds
These macros will be undef'ed at the end of the header, further this header These macros will be undef'ed at the end of the header, further this header
has no include guards - so be sure to include it only once from your library! has no include guards - so be sure to include it only once from your library!
@@ -42,6 +48,7 @@ BOOST_LIB_PREFIX
+ BOOST_LIB_TOOLSET + BOOST_LIB_TOOLSET
+ BOOST_LIB_THREAD_OPT + BOOST_LIB_THREAD_OPT
+ BOOST_LIB_RT_OPT + BOOST_LIB_RT_OPT
+ BOOST_LIB_ARCH_AND_MODEL_OPT
"-" "-"
+ BOOST_LIB_VERSION + BOOST_LIB_VERSION
@@ -57,12 +64,17 @@ BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
contains one or more of the following letters after contains one or more of the following letters after
a hiphen: a hyphen:
s static runtime (dynamic if not present). s static runtime (dynamic if not present).
d debug build (release if not present).
g debug/diagnostic runtime (release if not present). g debug/diagnostic runtime (release if not present).
p STLPort Build. y Python debug/diagnostic runtime (release if not present).
d debug build (release if not present).
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. BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
@@ -109,53 +121,84 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// select toolset if not defined already: // select toolset if not defined already:
// //
#ifndef BOOST_LIB_TOOLSET #ifndef BOOST_LIB_TOOLSET
// Note: no compilers before 1200 are supported # if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) // Note: no compilers before 1200 are supported
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# ifdef UNDER_CE
// eVC4:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
// vc7:
# define BOOST_LIB_TOOLSET "vc7"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
// vc12:
# define BOOST_LIB_TOOLSET "vc120"
# elif defined(BOOST_MSVC) && (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:
# define BOOST_LIB_TOOLSET "bcb"
# elif defined(__ICL)
// Intel C++, no version number:
# define BOOST_LIB_TOOLSET "iw"
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x
# define BOOST_LIB_TOOLSET "cw8"
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x
# define BOOST_LIB_TOOLSET "cw9"
# ifdef UNDER_CE
// vc6:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif # endif
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
// vc7:
# define BOOST_LIB_TOOLSET "vc7"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
#elif defined(__BORLANDC__)
// CBuilder 6:
# define BOOST_LIB_TOOLSET "bcb"
#elif defined(__ICL)
// Intel C++, no version number:
# define BOOST_LIB_TOOLSET "iw"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x
# define BOOST_LIB_TOOLSET "cw8"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x
# define BOOST_LIB_TOOLSET "cw9"
#endif
#endif // BOOST_LIB_TOOLSET #endif // BOOST_LIB_TOOLSET
// //
@@ -173,11 +216,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydp"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-gdp" # define BOOST_LIB_RT_OPT "-gdp"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydp"
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdp" # define BOOST_LIB_RT_OPT "-gdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define BOOST_LIB_RT_OPT "-p" # define BOOST_LIB_RT_OPT "-p"
@@ -185,11 +236,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydpn"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-gdpn" # define BOOST_LIB_RT_OPT "-gdpn"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydpn"
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdpn" # define BOOST_LIB_RT_OPT "-gdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define BOOST_LIB_RT_OPT "-pn" # define BOOST_LIB_RT_OPT "-pn"
@@ -197,7 +256,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# else # else
# if defined(_DEBUG) # if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gyd"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gd" # define BOOST_LIB_RT_OPT "-gd"
# else # else
# define BOOST_LIB_RT_OPT # define BOOST_LIB_RT_OPT
@@ -209,11 +270,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydp"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-sgdp" # define BOOST_LIB_RT_OPT "-sgdp"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydp"
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdp" # define BOOST_LIB_RT_OPT "-sgdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define BOOST_LIB_RT_OPT "-sp" # define BOOST_LIB_RT_OPT "-sp"
@@ -221,11 +290,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydpn"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-sgdpn" # define BOOST_LIB_RT_OPT "-sgdpn"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydpn"
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdpn" # define BOOST_LIB_RT_OPT "-sgdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define BOOST_LIB_RT_OPT "-spn" # define BOOST_LIB_RT_OPT "-spn"
@@ -233,7 +310,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# else # else
# if defined(_DEBUG) # if defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgyd"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgd" # define BOOST_LIB_RT_OPT "-sgd"
# else # else
# define BOOST_LIB_RT_OPT "-s" # define BOOST_LIB_RT_OPT "-s"
@@ -255,21 +335,31 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// sanity check: // sanity check:
// //
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) #if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form" #error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
#endif #endif
# ifdef _RTLDLL # ifdef _RTLDLL
# ifdef BOOST_BORLAND_DEBUG # if defined(BOOST_BORLAND_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-yd"
# elif defined(BOOST_BORLAND_DEBUG)
# define BOOST_LIB_RT_OPT "-d" # define BOOST_LIB_RT_OPT "-d"
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT -y
# else # else
# define BOOST_LIB_RT_OPT # define BOOST_LIB_RT_OPT
# endif # endif
# else # else
# ifdef BOOST_BORLAND_DEBUG # if defined(BOOST_BORLAND_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-syd"
# elif defined(BOOST_BORLAND_DEBUG)
# define BOOST_LIB_RT_OPT "-sd" # define BOOST_LIB_RT_OPT "-sd"
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sy"
# else # else
# define BOOST_LIB_RT_OPT "-s" # define BOOST_LIB_RT_OPT "-s"
# endif # endif
@@ -278,6 +368,20 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#endif #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: // select linkage opt:
// //
@@ -297,18 +401,34 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
&& defined(BOOST_LIB_TOOLSET) \ && defined(BOOST_LIB_TOOLSET) \
&& defined(BOOST_LIB_THREAD_OPT) \ && defined(BOOST_LIB_THREAD_OPT) \
&& defined(BOOST_LIB_RT_OPT) \ && defined(BOOST_LIB_RT_OPT) \
&& defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \
&& defined(BOOST_LIB_VERSION) && defined(BOOST_LIB_VERSION)
#ifndef BOOST_AUTO_LINK_NOMANGLE #ifdef BOOST_AUTO_LINK_TAGGED
# 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") # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC # 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_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# endif # endif
#else #elif defined(BOOST_AUTO_LINK_SYSTEM)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") # pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC # ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") # pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif # endif
#elif defined(BOOST_LIB_BUILDID)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_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_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 #endif
#else #else
@@ -338,6 +458,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#if defined(BOOST_LIB_RT_OPT) #if defined(BOOST_LIB_RT_OPT)
# undef BOOST_LIB_RT_OPT # undef BOOST_LIB_RT_OPT
#endif #endif
#if defined(BOOST_LIB_ARCH_AND_MODEL_OPT)
# undef BOOST_LIB_ARCH_AND_MODEL_OPT
#endif
#if defined(BOOST_LIB_LINK_OPT) #if defined(BOOST_LIB_LINK_OPT)
# undef BOOST_LIB_LINK_OPT # undef BOOST_LIB_LINK_OPT
#endif #endif
@@ -347,17 +470,5 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#if defined(BOOST_DYN_LINK) #if defined(BOOST_DYN_LINK)
# undef BOOST_DYN_LINK # undef BOOST_DYN_LINK
#endif #endif
#if defined(BOOST_AUTO_LINK_NOMANGLE)
# undef BOOST_AUTO_LINK_NOMANGLE
#endif
+179 -34
View File
@@ -14,18 +14,17 @@
// we don't support Borland prior to version 5.4: // we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540 #if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure" # error "Compiler not supported or configured - please reconfigure"
#elif __BORLANDC__ < 0x581
# pragma message( "Support for Borland compilers older than BCB2006 is deprecated in Boost 1.34" )
#endif #endif
// last known and checked version is 0x600 (Builder X preview) // last known compiler version:
// Or 0x582 (Borland C++ Builder 2006 Update 1): #if (__BORLANDC__ > 0x613)
#if (__BORLANDC__ > 0x582) && (__BORLANDC__ != 0x600) //# if defined(BOOST_ASSERT_CONFIG)
# if defined(BOOST_ASSERT_CONFIG) # error "boost: Unknown compiler version - please run the configure tests and report the results"
# error "Unknown compiler version - please run the configure tests and report the results" //# else
# else //# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")
# pragma message( "Unknown compiler version - please run the configure tests and report the results") //# endif
# endif #elif (__BORLANDC__ == 0x600)
# error "CBuilderX preview compiler is no longer supported"
#endif #endif
// //
@@ -38,7 +37,6 @@
# define BOOST_BCB_WITH_DINKUMWARE # define BOOST_BCB_WITH_DINKUMWARE
#endif #endif
// //
// Version 5.0 and below: // Version 5.0 and below:
# if __BORLANDC__ <= 0x0550 # if __BORLANDC__ <= 0x0550
@@ -48,17 +46,23 @@
// Borland C++Builder 5, command-line compiler 5.5: // Borland C++Builder 5, command-line compiler 5.5:
# define BOOST_NO_OPERATORS_IN_NAMESPACE # define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif # endif
// Variadic macros do not exist for C++ Builder versions 5 and below
#define BOOST_NO_CXX11_VARIADIC_MACROS
# endif # endif
// Version 5.51 and below: // Version 5.51 and below:
#if (__BORLANDC__ <= 0x551) #if (__BORLANDC__ <= 0x551)
# define BOOST_NO_CV_SPECIALIZATIONS # define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS # define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_DEDUCED_TYPENAME # define BOOST_NO_DEDUCED_TYPENAME
// workaround for missing WCHAR_MAX/WCHAR_MIN: // workaround for missing WCHAR_MAX/WCHAR_MIN:
#ifdef __cplusplus
#include <climits> #include <climits>
#include <cwchar> #include <cwchar>
#else
#include <limits.h>
#include <wchar.h>
#endif // __cplusplus
#ifndef WCHAR_MAX #ifndef WCHAR_MAX
# define WCHAR_MAX 0xffff # define WCHAR_MAX 0xffff
#endif #endif
@@ -67,24 +71,10 @@
#endif #endif
#endif #endif
// Borland C++ Builder 2006 Update 2 and below: // Borland C++ Builder 6 and below:
#if (__BORLANDC__ <= 0x582) #if (__BORLANDC__ <= 0x564)
# define BOOST_NO_SFINAE
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_USING_TEMPLATE
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
# ifdef NDEBUG # if defined(NDEBUG) && defined(__cplusplus)
// fix broken <cstring> so that Boost.test works: // fix broken <cstring> so that Boost.test works:
# include <cstring> # include <cstring>
# undef strcmp # undef strcmp
@@ -95,6 +85,8 @@
# define errno errno # define errno errno
# endif # endif
#endif
// //
// new bug in 5.61: // new bug in 5.61:
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
@@ -102,6 +94,14 @@
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif #endif
// Borland C++ Builder 2006 Update 2 and below:
#if (__BORLANDC__ <= 0x582)
# define BOOST_NO_SFINAE
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# ifdef _WIN32 # ifdef _WIN32
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
# elif defined(linux) || defined(__linux__) || defined(__linux) # elif defined(linux) || defined(__linux__) || defined(__linux)
@@ -113,11 +113,149 @@
# endif # endif
#endif #endif
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
# define BOOST_NO_USING_TEMPLATE
# define BOOST_SP_NO_SP_CONVERTIBLE
// Temporary workaround
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
#endif
// Borland C++ Builder 2008 and below:
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_NO_NESTED_FRIENDSHIP
# define BOOST_NO_TYPENAME_WITH_CTOR
#if (__BORLANDC__ < 0x600)
# define BOOST_ILLEGAL_CV_REFERENCES
#endif
//
// Positive Feature detection
//
// Borland C++ Builder 2008 and below:
#if (__BORLANDC__ >= 0x599)
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
#endif
//
// C++0x Macros:
//
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_CXX11_STATIC_ASSERT
#else
# define BOOST_HAS_ALIGNOF
# define BOOST_HAS_CHAR16_T
# define BOOST_HAS_CHAR32_T
# define BOOST_HAS_DECLTYPE
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
# define BOOST_HAS_REF_QUALIFIER
# define BOOST_HAS_RVALUE_REFS
# define BOOST_HAS_STATIC_ASSERT
#endif
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_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
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH
# define BOOST_HAS_MACRO_USE_FACET
#endif
// //
// Post 0x561 we have long long and stdint.h: // Post 0x561 we have long long and stdint.h:
#if __BORLANDC__ >= 0x561 #if __BORLANDC__ >= 0x561
# ifndef __NO_LONG_LONG # ifndef __NO_LONG_LONG
# define BOOST_HAS_LONG_LONG # define BOOST_HAS_LONG_LONG
# else
# define BOOST_NO_LONG_LONG
# endif # endif
// On non-Win32 platforms let the platform config figure this out: // On non-Win32 platforms let the platform config figure this out:
# ifdef _WIN32 # ifdef _WIN32
@@ -143,7 +281,7 @@
// //
// check for exception handling support: // check for exception handling support:
// //
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
// //
@@ -155,13 +293,14 @@
// //
// all versions support __declspec: // all versions support __declspec:
// //
#ifndef __STRICT_ANSI__ #if defined(__STRICT_ANSI__)
# define BOOST_HAS_DECLSPEC // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif #endif
// //
// ABI fixing headers: // ABI fixing headers:
// //
#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet #if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
#ifndef BOOST_ABI_PREFIX #ifndef BOOST_ABI_PREFIX
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" # define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
#endif #endif
@@ -186,5 +325,11 @@
# define BOOST_NO_VOID_RETURNS # define BOOST_NO_VOID_RETURNS
#endif #endif
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) // Borland did not implement value-initialization completely, as I reported
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, April 2010)
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
+340
View File
@@ -0,0 +1,340 @@
// (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.
// Clang compiler setup.
#define BOOST_HAS_PRAGMA_ONCE
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
// When compiling with clang before __has_extension was defined,
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
// clang reports a compiler error. So the only workaround found is:
#ifndef __has_extension
#define __has_extension __has_feature
#endif
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
#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 !__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 (__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)
#endif
#endif
// Clang supports "long long" in all compilation modes.
#define BOOST_HAS_LONG_LONG
//
// 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
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#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_VISIBLE __attribute__((__visibility__("default")))
# define BOOST_SYMBOL_IMPORT
#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) && (_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
#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
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Clang 3.9+ in c++1z
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
# define BOOST_NO_CXX17_INLINE_VARIABLES
# 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__
#endif
// Macro used to identify the Clang compiler.
#define BOOST_CLANG 1
+239
View File
@@ -0,0 +1,239 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// CodeGear C++ compiler setup:
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
// these warnings occur frequently in optimized template code
# pragma warn -8004 // var assigned value, but never used
# pragma warn -8008 // condition always true/false
# pragma warn -8066 // dead code can never execute
# pragma warn -8104 // static members with ctors not threadsafe
# pragma warn -8105 // reference member in class without ctors
#endif
//
// versions check:
// last known and checked version is 0x621
#if (__CODEGEARC__ > 0x621)
# if defined(BOOST_ASSERT_CONFIG)
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
// CodeGear C++ Builder 2009
#if (__CODEGEARC__ <= 0x613)
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_SP_NO_SP_CONVERTIBLE
#endif
// CodeGear C++ Builder 2010
#if (__CODEGEARC__ <= 0x621)
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
# define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
// Temporary hack, until specific MPL preprocessed headers are generated
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
// CodeGear has not yet completely implemented value-initialization, for
// example for array types, as I reported in 2010: Embarcadero Report 83751,
// "Value-initialization: arrays should have each element value-initialized",
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
// Last checked version: Embarcadero C++ 6.21
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, April 2010)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# if defined(NDEBUG) && defined(__cplusplus)
// fix broken <cstring> so that Boost.test works:
# include <cstring>
# undef strcmp
# endif
// fix broken errno declaration:
# include <errno.h>
# ifndef errno
# define errno errno
# endif
#endif
// Reportedly, #pragma once is supported since C++ Builder 2010
#if (__CODEGEARC__ >= 0x620)
# define BOOST_HAS_PRAGMA_ONCE
#endif
//
// C++0x macros:
//
#if (__CODEGEARC__ <= 0x620)
#define BOOST_NO_CXX11_STATIC_ASSERT
#else
#define BOOST_HAS_STATIC_ASSERT
#endif
#define BOOST_HAS_CHAR16_T
#define BOOST_HAS_CHAR32_T
#define BOOST_HAS_LONG_LONG
// #define BOOST_HAS_ALIGNOF
#define BOOST_HAS_DECLTYPE
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
// #define BOOST_HAS_RVALUE_REFS
#define BOOST_HAS_SCOPED_ENUM
// #define BOOST_HAS_STATIC_ASSERT
#define BOOST_HAS_STD_TYPE_TRAITS
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
//
// TR1 macros:
//
#define BOOST_HAS_TR1_HASH
#define BOOST_HAS_TR1_TYPE_TRAITS
#define BOOST_HAS_TR1_UNORDERED_MAP
#define BOOST_HAS_TR1_UNORDERED_SET
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
// On non-Win32 platforms let the platform config figure this out:
#ifdef _WIN32
# define BOOST_HAS_STDINT_H
#endif
//
// __int64:
//
#if !defined(__STRICT_ANSI__)
# define BOOST_HAS_MS_INT64
#endif
//
// check for exception handling support:
//
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
//
// all versions have a <dirent.h>:
//
#if !defined(__STRICT_ANSI__)
# define BOOST_HAS_DIRENT_H
#endif
//
// all versions support __declspec:
//
#if defined(__STRICT_ANSI__)
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
// ABI fixing headers:
//
#ifndef BOOST_ABI_PREFIX
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
#endif
#ifndef BOOST_ABI_SUFFIX
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
#endif
//
// Disable Win32 support in ANSI mode:
//
# pragma defineonoption BOOST_DISABLE_WIN32 -A
//
// MSVC compatibility mode does some nasty things:
// TODO: look up if this doesn't apply to the whole 12xx range
//
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_VOID_RETURNS
#endif
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
+2 -2
View File
@@ -12,7 +12,7 @@
// Comeau C++ compiler setup: // Comeau C++ compiler setup:
#include "boost/config/compiler/common_edg.hpp" #include <boost/config/compiler/common_edg.hpp>
#if (__COMO_VERSION__ <= 4245) #if (__COMO_VERSION__ <= 4245)
@@ -50,7 +50,7 @@
// last known and checked version is 4245: // last known and checked version is 4245:
#if (__COMO_VERSION__ > 4245) #if (__COMO_VERSION__ > 4245)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+111 -13
View File
@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001 - 2002. // (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Jens Maurer 2001. // (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002. // (C) Copyright David Abrahams 2002.
// (C) Copyright Aleksey Gurtovoy 2002. // (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright Markus Schoepflin 2005. // (C) Copyright Markus Schoepflin 2005.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -33,30 +33,128 @@
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) #if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
# define BOOST_NO_TEMPLATE_TEMPLATES # define BOOST_NO_TEMPLATE_TEMPLATES
#endif #endif
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) #if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
# define BOOST_NO_IS_ABSTRACT # define BOOST_NO_IS_ABSTRACT
#endif #endif
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) #if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#endif #endif
// See also kai.hpp which checks a Kai-specific symbol for EH // See also kai.hpp which checks a Kai-specific symbol for EH
# if !defined(__KCC) && !defined(__EXCEPTIONS) # if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
# endif # endif
# if !defined(__NO_LONG_LONG) # if !defined(__NO_LONG_LONG)
# define BOOST_HAS_LONG_LONG # define BOOST_HAS_LONG_LONG
# else
# define BOOST_NO_LONG_LONG
# endif # endif
// Not sure what version was the first to support #pragma once, but
// different EDG-based compilers (e.g. Intel) supported it for ages.
// Add a proper version check if it causes problems.
#define BOOST_HAS_PRAGMA_ONCE
//
// C++0x features
//
// See above for BOOST_NO_LONG_LONG
//
#if (__EDG_VERSION__ < 310)
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if (__EDG_VERSION__ <= 310)
// No support for initializer lists
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#if (__EDG_VERSION__ < 400)
# define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_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_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#ifdef c_plusplus #ifdef c_plusplus
// EDG has "long long" in non-strict mode // EDG has "long long" in non-strict mode
// However, some libraries have insufficient "long long" support // However, some libraries have insufficient "long long" support
// #define BOOST_HAS_LONG_LONG // #define BOOST_HAS_LONG_LONG
#endif #endif
+3 -3
View File
@@ -5,11 +5,11 @@
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
// Dec Alpha True64 C++ compiler setup: // Tru64 C++ compiler setup (now HP):
#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER) #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: // versions check:
+440
View File
@@ -0,0 +1,440 @@
// Copyright 2011 John Maddock
// Copyright 2013, 2017-2018 Cray, Inc.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// Cray C++ compiler setup.
//
// There are a few parameters that affect the macros defined in this file:
//
// - What version of CCE (Cray Compiling Environment) are we running? This
// comes from the '_RELEASE_MAJOR', '_RELEASE_MINOR', and
// '_RELEASE_PATCHLEVEL' macros.
// - What C++ standards conformance level are we using (e.g. '-h
// std=c++14')? This comes from the '__cplusplus' macro.
// - Are we using GCC extensions ('-h gnu' or '-h nognu')? If we have '-h
// gnu' then CCE emulates GCC, and the macros '__GNUC__',
// '__GNUC_MINOR__', and '__GNUC_PATCHLEVEL__' are defined.
//
// This file is organized as follows:
//
// - Verify that the combination of parameters listed above is supported.
// If we have an unsupported combination, we abort with '#error'.
// - Establish baseline values for all Boost macros.
// - Apply changes to the baseline macros based on compiler version. These
// changes are cummulative so each version section only describes the
// changes since the previous version.
// - Within each version section, we may also apply changes based on
// other parameters (i.e. C++ standards conformance level and GCC
// extensions).
//
// To test changes to this file:
//
// ```
// module load cce/8.6.5 # Pick the version you want to test.
// cd boost/libs/config/test/all
// b2 -j 8 toolset=cray cxxstd=03 cxxstd=11 cxxstd=14 cxxstd-dialect=gnu linkflags=-lrt
// ```
// Note: Using 'cxxstd-dialect=iso' is not supported at this time (the
// tests run, but many tests fail).
//
// Note: 'linkflags=-lrt' is needed in Cray Linux Environment. Otherwise
// you get an 'undefined reference to clock_gettime' error.
//
// Note: If a test '*_fail.cpp' file compiles, but fails to run, then it is
// reported as a defect. However, this is not actually a defect. This is an
// area where the test system is somewhat broken. Tests that are failing
// because of this problem are noted in the comments.
//
// Pay attention to the macro definitions for the macros you wish to
// modify. For example, only macros categorized as compiler macros should
// appear in this file; platform macros should not appear in this file.
// Also, some macros have to be defined to specific values; it is not
// always enough to define or undefine a macro.
//
// Macro definitions are available in the source code at:
//
// `boost/libs/config/doc/html/boost_config/boost_macro_reference.html`
//
// Macro definitions are also available online at:
//
// http://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html
//
// Typically, if you enable a feature, and the tests pass, then you have
// nothing to worry about. However, it's sometimes hard to figure out if a
// disabled feature needs to stay disabled. To get a list of disabled
// features, run 'b2' in 'boost/libs/config/checks'. These are the macros
// you should pay attention to (in addition to macros that cause test
// failures).
////
//// Front matter
////
// In a developer build of the Cray compiler (i.e. a compiler built by a
// Cray employee), the release patch level is reported as "x". This gives
// versions that look like e.g. "8.6.x".
//
// To accomplish this, the the Cray compiler preprocessor inserts:
//
// #define _RELEASE_PATCHLEVEL x
//
// If we are using a developer build of the compiler, we want to use the
// configuration macros for the most recent patch level of the release. To
// accomplish this, we'll pretend that _RELEASE_PATCHLEVEL is 99.
//
// However, it's difficult to detect if _RELEASE_PATCHLEVEL is x. We must
// consider that the x will be expanded if x is defined as a macro
// elsewhere. For example, imagine if someone put "-D x=3" on the command
// line, and _RELEASE_PATCHLEVEL is x. Then _RELEASE_PATCHLEVEL would
// expand to 3, and we could not distinguish it from an actual
// _RELEASE_PATCHLEVEL of 3. This problem only affects developer builds; in
// production builds, _RELEASE_PATCHLEVEL is always an integer.
//
// IMPORTANT: In developer builds, if x is defined as a macro, you will get
// an incorrect configuration. The behavior in this case is undefined.
//
// Even if x is not defined, we have to use some trickery to detect if
// _RELEASE_PATCHLEVEL is x. First we define BOOST_CRAY_x to some arbitrary
// magic value, 9867657. Then we use BOOST_CRAY_APPEND to append the
// expanded value of _RELEASE_PATCHLEVEL to the string "BOOST_CRAY_".
//
// - If _RELEASE_PATCHLEVEL is undefined, we get "BOOST_CRAY_".
// - If _RELEASE_PATCHLEVEL is 5, we get "BOOST_CRAY_5".
// - If _RELEASE_PATCHLEVEL is x (and x is not defined) we get
// "BOOST_CRAY_x":
//
// Then we check if BOOST_CRAY_x is equal to the output of
// BOOST_CRAY_APPEND. In other words, the output of BOOST_CRAY_APPEND is
// treated as a macro name, and expanded again. If we can safely assume
// that BOOST_CRAY_ is not a macro defined as our magic number, and
// BOOST_CRAY_5 is not a macro defined as our magic number, then the only
// way the equality test can pass is if _RELEASE_PATCHLEVEL expands to x.
//
// So, that is how we detect if we are using a developer build of the Cray
// compiler.
#define BOOST_CRAY_x 9867657 // Arbitrary number
#define BOOST_CRAY_APPEND(MACRO) BOOST_CRAY_APPEND_INTERNAL(MACRO)
#define BOOST_CRAY_APPEND_INTERNAL(MACRO) BOOST_CRAY_##MACRO
#if BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
// This is a developer build.
//
// - _RELEASE_PATCHLEVEL is defined as x, and x is not defined as a macro.
// Pretend _RELEASE_PATCHLEVEL is 99, so we get the configuration for the
// most recent patch level in this release.
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + 99)
#else
// This is a production build.
//
// _RELEASE_PATCHLEVEL is not defined as x, or x is defined as a macro.
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + _RELEASE_PATCHLEVEL)
#endif // BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
#undef BOOST_CRAY_APPEND_INTERNAL
#undef BOOST_CRAY_APPEND
#undef BOOST_CRAY_x
#ifdef __GNUC__
# define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Cray C++ version " BOOST_STRINGIZE(_RELEASE_MAJOR) "." BOOST_STRINGIZE(_RELEASE_MINOR) "." BOOST_STRINGIZE(_RELEASE_PATCHLEVEL)
#endif
// Since the Cray compiler defines '__GNUC__', we have to emulate some
// additional GCC macros in order to make everything work.
//
// FIXME: Perhaps Cray should fix the compiler to define these additional
// macros for GCC emulation?
#if __cplusplus >= 201103L && defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define __GXX_EXPERIMENTAL_CXX0X__ 1
#endif
////
//// Parameter validation
////
// FIXME: Do we really need to support compilers before 8.5? Do they pass
// the Boost.Config tests?
#if BOOST_CRAY_VERSION < 80000
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
#endif
// We only support recent EDG based compilers.
#ifndef __EDG__
# error "Unsupported Cray compiler, please try running the configure script."
#endif
////
//// Baseline values
////
#include <boost/config/compiler/common_edg.hpp>
#define BOOST_HAS_NRVO
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_FINAL
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_THREAD_LOCAL
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
//#define BOOST_HAS_FPCLASSIFY
#define BOOST_SP_USE_PTHREADS
#define BOOST_AC_USE_PTHREADS
//
// Everything that follows is working around what are thought to be
// compiler shortcomings. Revist all of these regularly.
//
//#define BOOST_USE_ENUM_STATIC_ASSERT
//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define
// These constants should be provided by the compiler.
#ifndef __ATOMIC_RELAXED
#define __ATOMIC_RELAXED 0
#define __ATOMIC_CONSUME 1
#define __ATOMIC_ACQUIRE 2
#define __ATOMIC_RELEASE 3
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_SEQ_CST 5
#endif
////
//// Version changes
////
//
// 8.5.0
//
#if BOOST_CRAY_VERSION >= 80500
#if __cplusplus >= 201103L
#undef BOOST_HAS_NRVO
#undef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#undef BOOST_NO_CXX11_CHAR16_T
#undef BOOST_NO_CXX11_CHAR32_T
#undef BOOST_NO_CXX11_CONSTEXPR
#undef BOOST_NO_CXX11_DECLTYPE
#undef BOOST_NO_CXX11_DECLTYPE_N3276
#undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#undef BOOST_NO_CXX11_DELETED_FUNCTIONS
#undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#undef BOOST_NO_CXX11_FINAL
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#undef BOOST_NO_CXX11_LAMBDAS
#undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#undef BOOST_NO_CXX11_NOEXCEPT
#undef BOOST_NO_CXX11_NULLPTR
#undef BOOST_NO_CXX11_RANGE_BASED_FOR
#undef BOOST_NO_CXX11_RAW_LITERALS
#undef BOOST_NO_CXX11_REF_QUALIFIERS
#undef BOOST_NO_CXX11_RVALUE_REFERENCES
#undef BOOST_NO_CXX11_SCOPED_ENUMS
#undef BOOST_NO_CXX11_SFINAE_EXPR
#undef BOOST_NO_CXX11_STATIC_ASSERT
#undef BOOST_NO_CXX11_TEMPLATE_ALIASES
#undef BOOST_NO_CXX11_THREAD_LOCAL
#undef BOOST_NO_CXX11_UNICODE_LITERALS
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
#undef BOOST_NO_CXX11_VARIADIC_MACROS
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#undef BOOST_NO_SFINAE_EXPR
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY
#undef BOOST_SP_USE_PTHREADS
#undef BOOST_AC_USE_PTHREADS
#define BOOST_HAS_VARIADIC_TMPL
#define BOOST_HAS_UNISTD_H
#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 < 201402L
#define BOOST_NO_CXX11_DECLTYPE_N3276
#endif // __cplusplus < 201402L
#endif // __cplusplus >= 201103L
#endif // BOOST_CRAY_VERSION >= 80500
//
// 8.6.4
// (versions prior to 8.6.5 do not define _RELEASE_PATCHLEVEL)
//
#if BOOST_CRAY_VERSION >= 80600
#if __cplusplus >= 199711L
#define BOOST_HAS_FLOAT128
#define BOOST_HAS_PTHREAD_YIELD // This is a platform macro, but it improves test results.
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION // This is correct. Test compiles, but fails to run.
#undef BOOST_NO_CXX11_CHAR16_T
#undef BOOST_NO_CXX11_CHAR32_T
#undef BOOST_NO_CXX11_INLINE_NAMESPACES
#undef BOOST_NO_CXX11_FINAL
#undef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails.
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#undef BOOST_NO_CXX11_VARIADIC_MACROS
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
// 'BOOST_NO_DEDUCED_TYPENAME' test is broken. The test files are enabled /
// disabled with an '#ifdef BOOST_DEDUCED_TYPENAME'. However,
// 'boost/libs/config/include/boost/config/detail/suffix.hpp' ensures that
// 'BOOST_DEDUCED_TYPENAME' is always defined (the value it is defined as
// depends on 'BOOST_NO_DEDUCED_TYPENAME'). So, modifying
// 'BOOST_NO_DEDUCED_TYPENAME' has no effect on which tests are run.
//
// The 'no_ded_typename_pass.cpp' test should always compile and run
// successfully, because 'BOOST_DEDUCED_TYPENAME' must always have an
// appropriate value (it's not just something that you turn on or off).
// Therefore, if you wish to test changes to 'BOOST_NO_DEDUCED_TYPENAME',
// you have to modify 'no_ded_typename_pass.cpp' to unconditionally include
// 'boost_no_ded_typename.ipp'.
#undef BOOST_NO_DEDUCED_TYPENAME // This is correct. Test is broken.
#undef BOOST_NO_SFINAE_EXPR
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#undef BOOST_NO_CXX11_ALIGNAS
#undef BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_HDR_ATOMIC
#undef BOOST_NO_CXX11_HDR_FUNCTIONAL
#define BOOST_NO_CXX11_HDR_REGEX // This is correct. Test compiles, but fails to run.
#undef BOOST_NO_CXX11_SFINAE_EXPR
#undef BOOST_NO_CXX11_SMART_PTR
#undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#undef BOOST_NO_CXX14_CONSTEXPR
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION >= 80600
//
// 8.6.5
// (no change from 8.6.4)
//
//
// 8.7.0
//
#if BOOST_CRAY_VERSION >= 80700
#if __cplusplus >= 199711L
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#undef BOOST_NO_CXX11_HDR_ATOMIC
#undef BOOST_NO_CXX11_HDR_REGEX
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION >= 80700
//
// Next release
//
#if BOOST_CRAY_VERSION > 80799
#if __cplusplus >= 199711L
#endif // __cplusplus >= 199711L
#if __cplusplus >= 201103L
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201402L
#endif // __cplusplus == 201402L
#endif // BOOST_CRAY_VERSION > 80799
////
//// Remove temporary macros
////
// I've commented out some '#undef' statements to signify that we purposely
// want to keep certain macros.
//#undef __GXX_EXPERIMENTAL_CXX0X__
//#undef BOOST_COMPILER
#undef BOOST_GCC_VERSION
#undef BOOST_CRAY_VERSION
+26
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__)
+106 -15
View File
@@ -1,8 +1,8 @@
// Copyright (C) Christof Meerwald 2003 // Copyright (C) Christof Meerwald 2003
// Copyright (C) Dan Watkins 2003 // Copyright (C) Dan Watkins 2003
// //
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// Digital Mars C++ compiler setup: // Digital Mars C++ compiler setup:
@@ -11,15 +11,7 @@
#define BOOST_HAS_LONG_LONG #define BOOST_HAS_LONG_LONG
#define BOOST_HAS_PRAGMA_ONCE #define BOOST_HAS_PRAGMA_ONCE
#if (__DMC__ <= 0x833) #if !defined(BOOST_STRICT_CONFIG)
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TEMPLATE_TEMPLATES
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#endif
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS #define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#define BOOST_NO_OPERATORS_IN_NAMESPACE #define BOOST_NO_OPERATORS_IN_NAMESPACE
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION #define BOOST_NO_UNREACHABLE_RETURN_DETECTION
@@ -30,20 +22,119 @@
// //
// has macros: // has macros:
#if (__DMC__ >= 0x840)
#define BOOST_HAS_DIRENT_H #define BOOST_HAS_DIRENT_H
#define BOOST_HAS_STDINT_H #define BOOST_HAS_STDINT_H
#define BOOST_HAS_WINTHREADS #define BOOST_HAS_WINTHREADS
#if (__DMC__ >= 0x847)
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#endif
//
// Is this really the best way to detect whether the std lib is in namespace std?
//
#ifdef __cplusplus
#include <cstddef>
#endif
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
# define BOOST_NO_STDC_NAMESPACE
#endif #endif
// check for exception handling support: // check for exception handling support:
#ifndef _CPPUNWIND #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
#if (__DMC__ < 0x840) //
// C++0x features
//
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_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_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#if (__DMC__ <= 0x840)
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is ...:
#if (__DMC__ > 0x848)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+317 -63
View File
@@ -1,62 +1,69 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002. // (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Jens Maurer 2001 - 2002. // (C) Copyright Jens Maurer 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003. // (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Douglas Gregor 2002. // (C) Copyright Douglas Gregor 2002.
// (C) Copyright David Abrahams 2002 - 2003. // (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Synge Todo 2003. // (C) Copyright Synge Todo 2003.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
// GNU C++ compiler setup: // GNU C++ compiler setup.
#if __GNUC__ < 3 //
# if __GNUC_MINOR__ == 91 // Define BOOST_GCC so we know this is "real" GCC and not some pretender:
// egcs 1.1 won't parse shared_ptr.hpp without this: //
# define BOOST_NO_AUTO_PTR #define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
# endif #if !defined(__CUDACC__)
# if __GNUC_MINOR__ < 95 #define BOOST_GCC BOOST_GCC_VERSION
// #endif
// Prior to gcc 2.95 member templates only partly
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
// instead since inline member templates mostly work.
//
# define BOOST_NO_MEMBER_TEMPLATES
# if __GNUC_MINOR__ >= 9
# define BOOST_MSVC6_MEMBER_TEMPLATES
# endif
# endif
# if __GNUC_MINOR__ < 96 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
# define BOOST_NO_SFINAE # define BOOST_GCC_CXX11
# endif #endif
# if __GNUC_MINOR__ <= 97 #if __GNUC__ == 3
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # if defined (__PATHSCALE__)
# define BOOST_NO_OPERATORS_IN_NAMESPACE # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# endif # define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
#elif __GNUC__ == 3
//
// gcc-3.x problems:
//
// Bug specific to gcc 3.1 and 3.2:
//
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# endif # endif
# if __GNUC_MINOR__ < 4 # if __GNUC_MINOR__ < 4
# define BOOST_NO_IS_ABSTRACT # define BOOST_NO_IS_ABSTRACT
# endif # endif
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if __GNUC__ < 4
//
// All problems to gcc-3.x and earlier here:
//
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# ifdef __OPEN64__
# define BOOST_NO_IS_ABSTRACT
# endif
#endif #endif
#ifndef __EXCEPTIONS // GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
#if BOOST_GCC_VERSION >= 30400
#define BOOST_HAS_PRAGMA_ONCE
#endif
#if BOOST_GCC_VERSION < 40400
// Previous versions of GCC did not completely implement value-initialization:
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
// members", reported by Jonathan Wakely in 2006,
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
// GCC Bug 33916, "Default constructor fails to initialize array members",
// reported by Michael Elizabeth Chastain in 2007,
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
@@ -68,38 +75,285 @@
// //
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) #if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS # define BOOST_HAS_THREADS
#endif #endif
// //
// gcc has "long long" // gcc has "long long"
// Except on Darwin with standard compliance enabled (-pedantic)
// Apple gcc helpfully defines this macro we can query
// //
#define BOOST_HAS_LONG_LONG #if !defined(__DARWIN_NO_LONG_LONG)
# define BOOST_HAS_LONG_LONG
#endif
// //
// gcc implements the named return value optimization since version 3.1 // gcc implements the named return value optimization since version 3.1
// //
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
#define BOOST_HAS_NRVO #define BOOST_HAS_NRVO
#endif
#define BOOST_COMPILER "GNU C++ version " __VERSION__ // Branch prediction hints
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
// //
// versions check: // Dynamic shared object (DSO) and dynamic-link library (DLL) support
// we don't know gcc prior to version 2.90:
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
# error "Compiler not configured - please reconfigure"
#endif
// //
// last known and checked version is 4.0 (Pre-release): #if __GNUC__ >= 4
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0)) # if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)
# if defined(BOOST_ASSERT_CONFIG) // All Win32 development environments, including 64-bit Windows and MinGW, define
# error "Unknown compiler version - please run the configure tests and report the results" // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
// 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__))
# else # else
// we don't emit warnings here anymore since there are no defect macros defined for # define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
// gcc post 3.4, so any failures are gcc regressions... # define BOOST_SYMBOL_IMPORT
//# warning "Unknown compiler version - please run the configure tests and report the results" # endif
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
#else
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
// RTTI and typeinfo detection is possible post gcc-4.3:
//
#if BOOST_GCC_VERSION > 40300
# ifndef __GXX_RTTI
# ifndef BOOST_NO_TYPEID
# define BOOST_NO_TYPEID
# endif
# ifndef BOOST_NO_RTTI
# define BOOST_NO_RTTI
# endif
# endif
#endif
//
// Recent GCC versions have __int128 when in 64-bit mode.
//
// 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(__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 (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__.
# define BOOST_HAS_DECLTYPE
# define BOOST_HAS_RVALUE_REFS
# define BOOST_HAS_STATIC_ASSERT
# define BOOST_HAS_VARIADIC_TMPL
#else
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
#endif
// C++0x features in 4.4.n and later
//
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if BOOST_GCC_VERSION < 40500
# define BOOST_NO_SFINAE_EXPR
#endif
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
#endif
// C++0x features in 4.5.0 and later
//
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_UNICODE_LITERALS
#endif
// C++0x features in 4.5.1 and later
//
#if (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
#endif
// C++0x features in 4.6.n and later
//
#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
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
// C++0x features in 4.7.n and later
//
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// C++0x features in 4.8.n and later
//
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_THREAD_LOCAL
# define BOOST_NO_CXX11_SFINAE_EXPR
#endif
// C++0x features in 4.8.1 and later
//
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
// C++14 features in 4.9.0 and later
//
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# endif # endif
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#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
# define BOOST_COMPILER "GNU C++ version " __VERSION__
#endif
// ConceptGCC compiler:
// http://www.generic-programming.org/software/ConceptGCC/
#ifdef __GXX_CONCEPTS__
# define BOOST_HAS_CONCEPTS
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
#endif
// versions check:
// we don't know gcc prior to version 3.30:
#if (BOOST_GCC_VERSION< 30300)
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 8.1:
#if (BOOST_GCC_VERSION > 80100)
# if defined(BOOST_ASSERT_CONFIG)
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
# else
// we don't emit warnings here anymore since there are no defect macros defined for
// gcc post 3.4, so any failures are gcc regressions...
//# warning "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif
+85 -4
View File
@@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2006. // (C) Copyright John Maddock 2006.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -18,13 +18,94 @@
// //
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__) #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS # define BOOST_HAS_THREADS
#endif #endif
// //
// gcc has "long long" // gcc has "long long"
// //
#define BOOST_HAS_LONG_LONG #define BOOST_HAS_LONG_LONG
// C++0x features:
//
# define BOOST_NO_CXX11_CONSTEXPR
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_CXX11_SFINAE_EXPR
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_FINAL
# 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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
+2 -2
View File
@@ -9,7 +9,7 @@
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) #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: // versions check:
@@ -21,7 +21,7 @@
// last known and checked version is 0: // last known and checked version is 0:
#if (__ghs > 0) #if (__ghs > 0)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+94 -19
View File
@@ -1,21 +1,19 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002. // (C) Copyright Toon Knapen 2003.
// (C) Copyright David Abrahams 2002 - 2003. // (C) Copyright Boris Gubenko 2006 - 2007.
// (C) Copyright Toon Knapen 2003. // Use, modification and distribution are subject to the
// (C) Copyright Boris Gubenko 2006. // Boost Software License, Version 1.0. (See accompanying file
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
// HP aCC C++ compiler setup: // HP aCC C++ compiler setup:
#if (__HP_aCC >= 61200) && defined(__EDG__) #if defined(__EDG__)
#include "boost/config/compiler/common_edg.hpp" #include <boost/config/compiler/common_edg.hpp>
#endif #endif
#if (__HP_aCC <= 33100) #if (__HP_aCC <= 33100)
@@ -34,14 +32,18 @@
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
#endif #endif
#if (__HP_aCC < 60000) #if (__HP_aCC <= 38000)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION # define BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_NO_TEMPLATE_TEMPLATES # define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT # define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif #endif
// optional features rather than defects: // optional features rather than defects:
#if (__HP_aCC >= 33900) #if (__HP_aCC >= 33900)
@@ -53,6 +55,15 @@
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD # define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#endif #endif
// This macro should not be defined when compiling in strict ansi
// mode, but, currently, we don't have the ability to determine
// what standard mode we are compiling with. Some future version
// of aCC6 compiler will provide predefined macros reflecting the
// compilation options, including the standard mode.
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC) #define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
// //
@@ -61,12 +72,76 @@
#if __HP_aCC < 33000 #if __HP_aCC < 33000
# error "Compiler not supported or configured - please reconfigure" # error "Compiler not supported or configured - please reconfigure"
#endif #endif
// //
// last known and checked version is 61300: // Extended checks for supporting aCC on PA-RISC
#if (__HP_aCC > 61300) #if __HP_aCC > 30000 && __HP_aCC < 50000
# if defined(BOOST_ASSERT_CONFIG) # if __HP_aCC < 38000
# error "Unknown compiler version - please run the configure tests and report the results" // versions prior to version A.03.80 not supported
# endif # error "Compiler version not supported - version A.03.80 or higher is required"
# elif !defined(__hpxstd98)
// must compile using the option +hpxstd98 with version A.03.80 and above
# error "Compiler option '+hpxstd98' is required for proper support"
# endif //PA-RISC
#endif #endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if !defined(__EDG__)
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_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_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_THREAD_LOCAL
/*
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
*/
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
#define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#endif
//
// last known and checked version for HP-UX/ia64 is 61300
// last known and checked version for PA-RISC is 38000
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
# if defined(BOOST_ASSERT_CONFIG)
# error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif
#endif
+427 -16
View File
@@ -1,4 +1,4 @@
// (C) Copyright John Maddock 2001. // (C) Copyright John Maddock 2001-8.
// (C) Copyright Peter Dimov 2001. // (C) Copyright Peter Dimov 2001.
// (C) Copyright Jens Maurer 2001. // (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002 - 2003. // (C) Copyright David Abrahams 2002 - 2003.
@@ -14,10 +14,59 @@
// Intel compiler setup: // 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
#undef BOOST_FALLTHROUGH
// Broken in all versions up to 17 (newer versions not tested)
#if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703)
# define BOOST_FALLTHROUGH [[fallthrough]]
#endif
#endif // defined(_MSC_VER)
#undef BOOST_COMPILER
#if defined(__INTEL_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 # define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL) #elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL # define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC) #elif defined(__ICC)
@@ -26,7 +75,26 @@
# define BOOST_INTEL_CXX_VERSION __ECC # define BOOST_INTEL_CXX_VERSION __ECC
#endif #endif
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) // 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 #define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64) #if defined(_WIN32) || defined(_WIN64)
@@ -35,9 +103,50 @@
# define BOOST_INTEL_LINUX BOOST_INTEL # define BOOST_INTEL_LINUX BOOST_INTEL
#endif #endif
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER) #else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_TEMPLATE_TEMPLATES #include <boost/config/compiler/common_edg.hpp>
#if defined(__INTEL_COMPILER)
#if __INTEL_COMPILER == 9999
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
#else
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
#endif
#elif defined(__ICL)
# define BOOST_INTEL_CXX_VERSION __ICL
#elif defined(__ICC)
# define BOOST_INTEL_CXX_VERSION __ICC
#elif defined(__ECC)
# define BOOST_INTEL_CXX_VERSION __ECC
#endif
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_INTEL_STDCXX0X
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# define BOOST_INTEL_STDCXX0X
#endif
#ifdef __GNUC__
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if !defined(BOOST_COMPILER)
# if defined(BOOST_INTEL_STDCXX0X)
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# else
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
# endif
#endif
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
#if defined(_WIN32) || defined(_WIN64)
# define BOOST_INTEL_WIN BOOST_INTEL
#else
# define BOOST_INTEL_LINUX BOOST_INTEL
#endif #endif
#if (BOOST_INTEL_CXX_VERSION <= 600) #if (BOOST_INTEL_CXX_VERSION <= 600)
@@ -99,13 +208,17 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# endif # endif
#endif #endif
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
// GCC or VC emulation:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
// //
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T // Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
// set correctly, if we don't do this now, we will get errors later // set correctly, if we don't do this now, we will get errors later
// in type_traits code among other things, getting this correct // in type_traits code among other things, getting this correct
// for the Intel compiler is actually remarkably fragile and tricky: // for the Intel compiler is actually remarkably fragile and tricky:
// //
#ifdef __cplusplus
#if defined(BOOST_NO_INTRINSIC_WCHAR_T) #if defined(BOOST_NO_INTRINSIC_WCHAR_T)
#include <cwchar> #include <cwchar>
template< typename T > struct assert_no_intrinsic_wchar_t; template< typename T > struct assert_no_intrinsic_wchar_t;
@@ -119,12 +232,14 @@ template<> struct assert_intrinsic_wchar_t<wchar_t> {};
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line: // if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
template<> struct assert_intrinsic_wchar_t<unsigned short> {}; template<> struct assert_intrinsic_wchar_t<unsigned short> {};
#endif #endif
#endif
#if _MSC_VER+0 >= 1000 #if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
# if _MSC_VER >= 1200 # if _MSC_VER >= 1200
# define BOOST_HAS_MS_INT64 # define BOOST_HAS_MS_INT64
# endif # endif
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#elif defined(_WIN32) #elif defined(_WIN32)
# define BOOST_DISABLE_WIN32 # define BOOST_DISABLE_WIN32
#endif #endif
@@ -136,23 +251,319 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_HAS_NRVO # define BOOST_HAS_NRVO
#endif #endif
// Branch prediction hints
// I'm not sure 8.0 was the first version to support these builtins,
// update the condition if the version is not accurate. (Andrey Semashev)
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
#endif
// RTTI
// __RTTI is the EDG macro
// __INTEL_RTTI__ is the Intel macro
// __GXX_RTTI is the g++ macro
// _CPPRTTI is the MSVC++ macro
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
#if !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
// in MS mode, static typeid works even when RTTI is off
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
# define BOOST_NO_TYPEID
#endif
#endif
// //
// versions check: // versions check:
// we don't support Intel prior to version 5.0: // we don't support Intel prior to version 6.0:
#if BOOST_INTEL_CXX_VERSION < 500 #if BOOST_INTEL_CXX_VERSION < 600
# error "Compiler not supported or configured - please reconfigure" # error "Compiler not supported or configured - please reconfigure"
#endif #endif
// Intel on MacOS requires
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
// Intel on Altix Itanium
#if defined(__itanium__) && defined(__INTEL_COMPILER)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
// //
// last known and checked version: // An attempt to value-initialize a pointer-to-member may trigger an
#if (BOOST_INTEL_CXX_VERSION > 910) // internal error on Intel <= 11.1 (last checked version), as was
# if defined(BOOST_ASSERT_CONFIG) // reported by John Maddock, Intel support issue 589832, May 2010.
# error "Unknown compiler version - please run the configure tests and report the results" // Moreover, according to test results from Huang-Vista-x86_32_intel,
# elif defined(_MSC_VER) // intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
# pragma message("Unknown compiler version - please run the configure tests and report the results") // cases when it should be value-initialized.
// (Niels Dekker, LKEB, May 2010)
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
#if defined(__INTEL_COMPILER)
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif # endif
#endif #endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
# 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
// 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)
// 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
// BOOST_NO_CXX11_DECLTYPE
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_DECLTYPE
#endif
// BOOST_NO_CXX11_DECLTYPE_N3276
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DECLTYPE_N3276
#endif
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
// BOOST_NO_CXX11_RVALUE_REFERENCES
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
// BOOST_NO_CXX11_STATIC_ASSERT
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_STATIC_ASSERT
#endif
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// BOOST_NO_CXX11_VARIADIC_MACROS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
# undef BOOST_NO_CXX11_VARIADIC_MACROS
#endif
// BOOST_NO_CXX11_AUTO_DECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
#endif
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
// BOOST_NO_CXX11_CHAR16_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR16_T
#endif
// BOOST_NO_CXX11_CHAR32_T
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_CXX11_CHAR32_T
#endif
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#endif
// BOOST_NO_CXX11_DELETED_FUNCTIONS
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
// BOOST_NO_CXX11_SCOPED_ENUMS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
// This is available but broken in earlier Intel releases.
# undef BOOST_NO_CXX11_SCOPED_ENUMS
#endif
// BOOST_NO_SFINAE_EXPR
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
# undef BOOST_NO_SFINAE_EXPR
#endif
// BOOST_NO_CXX11_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
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
#endif
// BOOST_NO_CXX11_ALIGNAS
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_ALIGNAS
#endif
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#endif
// BOOST_NO_CXX11_INLINE_NAMESPACES
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
#endif
// BOOST_NO_CXX11_REF_QUALIFIERS
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
# undef BOOST_NO_CXX11_REF_QUALIFIERS
#endif
// BOOST_NO_CXX11_FINAL
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
# undef BOOST_NO_CXX11_FINAL
#endif
#endif // 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
#endif
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
#if (BOOST_INTEL_CXX_VERSION < 1200)
//
// fenv.h appears not to work with Intel prior to 12.0:
//
# 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(__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 > 1700)
# if defined(BOOST_ASSERT_CONFIG)
# 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
// defect macros set anyway (just the one).
//
//# pragma message("boost: Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
+3 -5
View File
@@ -9,7 +9,7 @@
// Kai C++ compiler setup: // 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) # if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
// at least on Sun, the contents of <cwchar> is not in namespace std // at least on Sun, the contents of <cwchar> is not in namespace std
@@ -17,17 +17,15 @@
# endif # endif
// see also common_edg.hpp which needs a special check for __KCC // see also common_edg.hpp which needs a special check for __KCC
# if !defined(_EXCEPTIONS) # if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
# endif # endif
#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
// //
// last known and checked version is 4001: // last known and checked version is 4001:
#if (__KCC_VERSION > 4001) #if (__KCC_VERSION > 4001)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+103 -12
View File
@@ -1,11 +1,11 @@
// (C) Copyright John Maddock 2001. // (C) Copyright John Maddock 2001.
// (C) Copyright Darin Adler 2001. // (C) Copyright Darin Adler 2001.
// (C) Copyright Peter Dimov 2001. // (C) Copyright Peter Dimov 2001.
// (C) Copyright David Abrahams 2001 - 2002. // (C) Copyright David Abrahams 2001 - 2002.
// (C) Copyright Beman Dawes 2001 - 2003. // (C) Copyright Beman Dawes 2001 - 2003.
// (C) Copyright Stefan Slapeta 2004. // (C) Copyright Stefan Slapeta 2004.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -15,7 +15,7 @@
// locale support is disabled when linking with the dynamic runtime // locale support is disabled when linking with the dynamic runtime
# ifdef _MSL_NO_LOCALE # ifdef _MSL_NO_LOCALE
# define BOOST_NO_STD_LOCALE # define BOOST_NO_STD_LOCALE
# endif # endif
# if __MWERKS__ <= 0x2301 // 5.3 # if __MWERKS__ <= 0x2301 // 5.3
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
@@ -39,7 +39,7 @@
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last // the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
// tested version *only*: // tested version *only*:
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5 # if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_IS_ABSTRACT # define BOOST_NO_IS_ABSTRACT
# endif # endif
@@ -48,7 +48,7 @@
# define BOOST_NO_INTRINSIC_WCHAR_T # define BOOST_NO_INTRINSIC_WCHAR_T
#endif #endif
#if !__option(exceptions) #if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
@@ -73,6 +73,8 @@
# define BOOST_COMPILER_VERSION 9.4 # define BOOST_COMPILER_VERSION 9.4
# elif __MWERKS__ == 0x3206 # elif __MWERKS__ == 0x3206
# define BOOST_COMPILER_VERSION 9.5 # define BOOST_COMPILER_VERSION 9.5
# elif __MWERKS__ == 0x3207
# define BOOST_COMPILER_VERSION 9.6
# else # else
# define BOOST_COMPILER_VERSION __MWERKS__ # define BOOST_COMPILER_VERSION __MWERKS__
# endif # endif
@@ -80,6 +82,95 @@
# define BOOST_COMPILER_VERSION __MWERKS__ # define BOOST_COMPILER_VERSION __MWERKS__
#endif #endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
# define BOOST_HAS_RVALUE_REFS
#else
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
// //
@@ -92,7 +183,7 @@
// last known and checked version: // last known and checked version:
#if (__MWERKS__ > 0x3205) #if (__MWERKS__ > 0x3205)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+91 -5
View File
@@ -1,7 +1,7 @@
// (C) Copyright John Maddock 2001 - 2002. // (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Aleksey Gurtovoy 2002. // (C) Copyright Aleksey Gurtovoy 2002.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -32,6 +32,92 @@
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */ # define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_CXX11_SFINAE_EXPR
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_VARIADIC_MACROS
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif #endif
// //
@@ -44,7 +130,7 @@
// last known and checked version is 0x890: // last known and checked version is 0x890:
#if (MPW_CPLUS > 0x890) #if (MPW_CPLUS > 0x890)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
+58
View File
@@ -0,0 +1,58 @@
// (C) Copyright Eric Jourdanneau, Joel Falcou 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.
// NVIDIA CUDA C++ compiler setup
#ifndef BOOST_COMPILER
# 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
// CUDA (8.0) has no constexpr support in msvc mode:
#if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)
# 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
+135
View File
@@ -0,0 +1,135 @@
// (C) Copyright Bryce Lelbach 2011
// 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.
// PathScale EKOPath C++ Compiler
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
#endif
#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
# define BOOST_HAS_SIGACTION
# define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_THREADS
# 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_HAS_LONG_LONG
# define BOOST_HAS_LOG1P
# define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_EXPM1
# define BOOST_HAS_DIRENT_H
# define BOOST_HAS_CLOCK_GETTIME
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_UNICODE_LITERALS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_CXX11_SFINAE_EXPR
# define BOOST_NO_CXX11_SCOPED_ENUMS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE_N3276
# define BOOST_NO_CXX11_CONSTEXPR
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# define BOOST_NO_CXX11_CHAR32_T
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_FINAL
# 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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
#endif
+23
View File
@@ -0,0 +1,23 @@
// (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)
// See http://www.boost.org for most recent version.
// PGI C++ compiler setup:
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
// PGI is mostly GNU compatible. So start with that.
#include <boost/config/compiler/gcc.hpp>
// Now adjust for things that are different.
// __float128 is a typedef, not a distinct type.
#undef BOOST_HAS_FLOAT128
// __int128 is not supported.
#undef BOOST_HAS_INT128
@@ -9,7 +9,7 @@
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) #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: // Threading support:
@@ -17,6 +17,11 @@
// if no threading API is detected. // if no threading API is detected.
// //
#define BOOST_HAS_THREADS #define BOOST_HAS_THREADS
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#undef BOOST_NO_SWPRINTF
#undef BOOST_DEDUCED_TYPENAME
// //
// version check: // version check:
// probably nothing to do here? // probably nothing to do here?
+141 -20
View File
@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001. // (C) Copyright John Maddock 2001.
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Peter Dimov 2002. // (C) Copyright Peter Dimov 2002.
// (C) Copyright Aleksey Gurtovoy 2002 - 2003. // (C) Copyright Aleksey Gurtovoy 2002 - 2003.
// (C) Copyright David Abrahams 2002. // (C) Copyright David Abrahams 2002.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -34,13 +34,13 @@
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION # define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif # endif
# if (__SUNPRO_CC <= 0x530) # if (__SUNPRO_CC <= 0x530)
// Requesting debug info (-g) with Boost.Python results // Requesting debug info (-g) with Boost.Python results
// in an internal compiler error for "static const" // in an internal compiler error for "static const"
// initialized in-class. // initialized in-class.
// >> Assertion: (../links/dbg_cstabs.cc, line 611) // >> Assertion: (../links/dbg_cstabs.cc, line 611)
// while processing ../test.cpp at line 0. // while processing ../test.cpp at line 0.
// (Jens Maurer according to Gottfried Ganßauge 04 Mar 2002) // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
// SunPro 5.3 has better support for partial specialization, // SunPro 5.3 has better support for partial specialization,
@@ -57,7 +57,7 @@
# define BOOST_NO_INTEGRAL_INT64_T # define BOOST_NO_INTEGRAL_INT64_T
# endif # endif
# if (__SUNPRO_CC < 0x570) # if (__SUNPRO_CC < 0x570)
# define BOOST_NO_TEMPLATE_TEMPLATES # define BOOST_NO_TEMPLATE_TEMPLATES
// see http://lists.boost.org/MailArchives/boost/msg47184.php // see http://lists.boost.org/MailArchives/boost/msg47184.php
// and http://lists.boost.org/MailArchives/boost/msg47220.php // and http://lists.boost.org/MailArchives/boost/msg47220.php
@@ -65,10 +65,137 @@
# define BOOST_NO_SFINAE # define BOOST_NO_SFINAE
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS # define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# endif # endif
# if (__SUNPRO_CC <= 0x580) # if (__SUNPRO_CC <= 0x580)
# define BOOST_NO_IS_ABSTRACT # define BOOST_NO_IS_ABSTRACT
# endif # endif
# if (__SUNPRO_CC <= 0x5100)
// Sun 5.10 may not correctly value-initialize objects of
// some user defined types, as was reported in April 2010
// (CR 6947016), and confirmed by Steve Clamage.
// (Niels Dekker, LKEB, May 2010).
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __SUNPRO_CC > 0x500
# define BOOST_SYMBOL_EXPORT __global
# define BOOST_SYMBOL_IMPORT __global
# define BOOST_SYMBOL_VISIBLE __global
#endif
#if (__SUNPRO_CC < 0x5130)
// C++03 features in 12.4:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_ADL_BARRIER
#define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
// C++11 only featuires in 12.4:
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_RVALUE_REFERENCES
#define BOOST_NO_CXX11_SCOPED_ENUMS
#define BOOST_NO_CXX11_STATIC_ASSERT
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_FINAL
#endif
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
#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
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Turn on threading support for Solaris 12.
// Ticket #11972
#if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS)
# define BOOST_HAS_THREADS
#endif
//
// Version
//
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) #define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
// //
@@ -78,15 +205,9 @@
#error "Compiler not supported or configured - please reconfigure" #error "Compiler not supported or configured - please reconfigure"
#endif #endif
// //
// last known and checked version is 0x570: // last known and checked version:
#if (__SUNPRO_CC > 0x580) #if (__SUNPRO_CC > 0x5150)
# if defined(BOOST_ASSERT_CONFIG) # 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
#endif #endif
+137 -11
View File
@@ -1,10 +1,10 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Toon Knapen 2001 - 2003. // (C) Copyright Toon Knapen 2001 - 2003.
// (C) Copyright Lie-Quan Lee 2001. // (C) Copyright Lie-Quan Lee 2001.
// (C) Copyright Markus Schöpflin 2002 - 2003. // (C) Copyright Markus Schoepflin 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003. // (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
@@ -16,7 +16,7 @@
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif #endif
#if (__IBMCPP__ <= 502) #if (__IBMCPP__ <= 502)
// Actually the compiler supports inclass member initialization but it // Actually the compiler supports inclass member initialization but it
// requires a definition for the class member and it doesn't recognize // requires a definition for the class member and it doesn't recognize
// it as an integral constant expression when used as a template argument. // it as an integral constant expression when used as a template argument.
@@ -29,6 +29,14 @@
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS # define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
#endif #endif
#if (__IBMCPP__ <= 1110)
// XL C++ V11.1 and earlier versions may not always value-initialize
// a temporary object T(), when T is a non-POD aggregate class type.
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
// high priority. -- Niels Dekker (LKEB), May 2010.
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
// //
// On AIX thread support seems to be indicated by _THREAD_SAFE: // On AIX thread support seems to be indicated by _THREAD_SAFE:
// //
@@ -45,13 +53,131 @@
#error "Compiler not supported or configured - please reconfigure" #error "Compiler not supported or configured - please reconfigure"
#endif #endif
// //
// last known and checked version is 600: // last known and checked version is 1210:
#if (__IBMCPP__ > 600) #if (__IBMCPP__ > 1210)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "boost: Unknown compiler version - please run the configure tests and report the results"
# endif # endif
#endif #endif
// Some versions of the compiler have issues with default arguments on partial specializations
#if __IBMCPP__ <= 1010
#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
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#endif
#if ! __IBMCPP_UTF_LITERAL__
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if ! __IBMCPP_CONSTEXPR
# define BOOST_NO_CXX11_CONSTEXPR
#endif
#if ! __IBMCPP_DECLTYPE
# define BOOST_NO_CXX11_DECLTYPE
#else
# define BOOST_HAS_DECLTYPE
#endif
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if ! __IBMCPP_EXTERN_TEMPLATE
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
#endif
#if ! __IBMCPP_VARIADIC_TEMPLATES
// not enabled separately at this time
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_LAMBDAS
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#if ! __IBMCPP_RVALUE_REFERENCES
# define BOOST_NO_CXX11_RVALUE_REFERENCES
#endif
#if ! __IBMCPP_SCOPED_ENUM
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif
#define BOOST_NO_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
#endif
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#if ! __IBMCPP_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
#if ! __C99_MACRO_WITH_VA_ARGS
# define BOOST_NO_CXX11_VARIADIC_MACROS
#endif
#define BOOST_NO_CXX11_ALIGNAS
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#define BOOST_NO_CXX11_INLINE_NAMESPACES
#define BOOST_NO_CXX11_REF_QUALIFIERS
#define BOOST_NO_CXX11_FINAL
#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 !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
+277 -96
View File
@@ -1,117 +1,272 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002. // (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Peter Dimov 2001. // (C) Copyright Peter Dimov 2001.
// (C) Copyright Aleksey Gurtovoy 2002. // (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003. // (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003. // (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version. // See http://www.boost.org for most recent version.
//
// Microsoft Visual C++ compiler setup: // Microsoft Visual C++ compiler setup:
//
// We need to be careful with the checks in this file, as contrary
// to popular belief there are versions with _MSC_VER with the final
// digit non-zero (mainly the MIPS cross compiler).
//
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
// No other comparisons (==, >, or <=) are safe.
//
#define BOOST_MSVC _MSC_VER #define BOOST_MSVC _MSC_VER
// turn off the warnings before we #include anything //
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
//
#if _MSC_FULL_VER > 100000000
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
#else
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
#endif
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4 #define BOOST_HAS_PRAGMA_ONCE
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS //
# define BOOST_NO_VOID_RETURNS // versions check:
# define BOOST_NO_EXCEPTION_STD_NAMESPACE // we don't support Visual C++ prior to version 7.1:
// disable min/max macro defines on vc6: #if _MSC_VER < 1310
// # error "Compiler not supported or configured - please reconfigure"
#endif #endif
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0 #if _MSC_FULL_VER < 180020827
# define BOOST_NO_FENV_H
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# endif
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEDUCED_TYPENAME
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
// VC++ 6/7 has member templates but they have numerous problems including
// cases of silent failure, so for safety we define:
# define BOOST_NO_MEMBER_TEMPLATES
// For VC++ experts wishing to attempt workarounds, we define:
# define BOOST_MSVC6_MEMBER_TEMPLATES
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
# define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_SWPRINTF
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_SFINAE
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
# if (_MSC_VER > 1200)
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# endif
#endif #endif
#if _MSC_VER < 1400 #if _MSC_VER < 1400
// although a conforming signature for swprint exists in VC7.1 // although a conforming signature for swprint exists in VC7.1
// it appears not to actually work: // it appears not to actually work:
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
// Our extern template tests also fail for this compiler:
# 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 #endif
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0 #if _MSC_VER < 1500 // 140X == VC++ 8.0
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif #endif
#if _MSC_VER < 1600 // 150X == VC++ 9.0
// A bug in VC9:
# define BOOST_NO_ADL_BARRIER
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED #ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T # define BOOST_NO_INTRINSIC_WCHAR_T
#endif #endif
#ifdef _WIN32_WCE //
# define BOOST_NO_THREADEX // check for exception handling support:
# define BOOST_NO_GETSYSTEMTIMEASFILETIME #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif #endif
//
// check for exception handling support:
#ifndef _CPPUNWIND
# define BOOST_NO_EXCEPTIONS
#endif
// //
// __int64 support: // __int64 support:
// //
#if (_MSC_VER >= 1200) #define BOOST_HAS_MS_INT64
# define BOOST_HAS_MS_INT64 #if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
#endif
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
# define BOOST_HAS_LONG_LONG # define BOOST_HAS_LONG_LONG
#else
# define BOOST_NO_LONG_LONG
#endif #endif
#if (_MSC_VER >= 1400) && !defined(_DEBUG) #if (_MSC_VER >= 1400) && !defined(_DEBUG)
# define BOOST_HAS_NRVO # define BOOST_HAS_NRVO
#endif #endif
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
#endif
// //
// disable Win32 API's if compiler extentions are // disable Win32 API's if compiler extensions are
// turned off: // turned off:
// //
#ifndef _MSC_EXTENSIONS #if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
# define BOOST_DISABLE_WIN32 # define BOOST_DISABLE_WIN32
#endif #endif
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
// //
// all versions support __declspec: // TR1 features:
// //
#define BOOST_HAS_DECLSPEC #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
# define BOOST_HAS_TR1_UNORDERED_SET
#endif
//
// C++0x features
//
// See above for BOOST_NO_LONG_LONG
// C++ features supported by VC++ 10 (aka 2010)
//
#if _MSC_VER < 1600
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CXX11_LAMBDAS
# define BOOST_NO_CXX11_RVALUE_REFERENCES
# define BOOST_NO_CXX11_STATIC_ASSERT
# define BOOST_NO_CXX11_NULLPTR
# define BOOST_NO_CXX11_DECLTYPE
#endif // _MSC_VER < 1600
#if _MSC_VER >= 1600
# define BOOST_HAS_STDINT_H
#endif
// C++11 features supported by VC++ 11 (aka 2012)
//
#if _MSC_VER < 1700
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_RANGE_BASED_FOR
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif // _MSC_VER < 1700
// C++11 features supported by VC++ 12 (aka 2013).
//
#if _MSC_FULL_VER < 180020827
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
# define BOOST_NO_CXX11_DECLTYPE_N3276
#endif
#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
# define BOOST_NO_CXX17_IF_CONSTEXPR
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
// MSVC including version 14 has not yet completely
// 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
#if (_MSC_VER < 1915) || (_MSVC_LANG < 201402)
// C++ 14:
// Still gives internal compiler error for msvc-15.5:
# define BOOST_NO_CXX14_CONSTEXPR
#endif
// C++ 17:
#if (_MSC_VER < 1912) || (_MSVC_LANG < 201703)
#define BOOST_NO_CXX17_INLINE_VARIABLES
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
#endif
//
// Things that don't work in clr mode:
//
#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: // prefix and suffix headers:
// //
@@ -122,57 +277,83 @@
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" # define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
#endif #endif
#ifndef BOOST_COMPILER
// TODO: // TODO:
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The // these things are mostly bogus. 1200 means version 12.0 of the compiler. The
// artificial versions assigned to them only refer to the versions of some IDE // artificial versions assigned to them only refer to the versions of some IDE
// these compilers have been shipped with, and even that is not all of it. Some // these compilers have been shipped with, and even that is not all of it. Some
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC. // were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
// IOW, you can't use these 'versions' in any sensible way. Sorry. // IOW, you can't use these 'versions' in any sensible way. Sorry.
# if defined(UNDER_CE) # if defined(UNDER_CE)
# if _MSC_VER < 1200 # if _MSC_VER < 1400
// Note: these are so far off, they are not really supported // Note: I'm not aware of any CE compiler with version 13xx
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202 # if defined(BOOST_ASSERT_CONFIG)
# define BOOST_COMPILER_VERSION evc4.0 # error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
# elif _MSC_VER == 1400 # else
# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif
# elif _MSC_VER < 1500
# define BOOST_COMPILER_VERSION evc8 # define BOOST_COMPILER_VERSION evc8
# elif _MSC_VER < 1600
# define BOOST_COMPILER_VERSION evc9
# elif _MSC_VER < 1700
# define BOOST_COMPILER_VERSION evc10
# elif _MSC_VER < 1800
# define BOOST_COMPILER_VERSION evc11
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION evc12
# elif _MSC_VER < 2000
# define BOOST_COMPILER_VERSION evc14
# else # else
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results" # error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
# else # else
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") # pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif # endif
# endif # endif
# else # else
# if _MSC_VER < 1200 # if _MSC_VER < 1200
// Note: these are so far off, they are not really supported // Note: Versions up to 7.0 aren't supported.
# define BOOST_COMPILER_VERSION 5.0 # define BOOST_COMPILER_VERSION 5.0
# elif _MSC_VER < 1300 # elif _MSC_VER < 1300
# define BOOST_COMPILER_VERSION 6.0 # define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER == 1300 # elif _MSC_VER < 1310
# define BOOST_COMPILER_VERSION 7.0 # define BOOST_COMPILER_VERSION 7.0
# elif _MSC_VER == 1310 # elif _MSC_VER < 1400
# define BOOST_COMPILER_VERSION 7.1 # define BOOST_COMPILER_VERSION 7.1
# elif _MSC_VER == 1400 # elif _MSC_VER < 1500
# define BOOST_COMPILER_VERSION 8.0 # define BOOST_COMPILER_VERSION 8.0
# elif _MSC_VER < 1600
# define BOOST_COMPILER_VERSION 9.0
# elif _MSC_VER < 1700
# define BOOST_COMPILER_VERSION 10.0
# elif _MSC_VER < 1800
# define BOOST_COMPILER_VERSION 11.0
# elif _MSC_VER < 1900
# define BOOST_COMPILER_VERSION 12.0
# elif _MSC_VER < 1910
# define BOOST_COMPILER_VERSION 14.0
# elif _MSC_VER < 1920
# define BOOST_COMPILER_VERSION 14.1
# else # else
# define BOOST_COMPILER_VERSION _MSC_VER # define BOOST_COMPILER_VERSION _MSC_VER
# endif # endif
# endif # endif
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) # define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
#endif
#include <boost/config/pragma_message.hpp>
// //
// versions check: // last known and checked version is 19.12.25830.2 (VC++ 2017.3):
// we don't support Visual C++ prior to version 6: #if (_MSC_VER > 1912)
#if _MSC_VER < 1200
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1400 (VC8):
#if (_MSC_VER > 1400)
# if defined(BOOST_ASSERT_CONFIG) # 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 current compiler version."
# else # elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
# pragma message("Unknown compiler version - please run the configure tests and report the results") //
// 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
#endif #endif
+285
View File
@@ -0,0 +1,285 @@
// (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
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
# define BOOST_NO_CXX17_IF_CONSTEXPR
#endif
// Clang 3.9+ in c++1z
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
# define BOOST_NO_CXX17_INLINE_VARIABLES
# 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
+170
View File
@@ -0,0 +1,170 @@
// 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
#define BOOST_NO_CXX17_IF_CONSTEXPR
// -------------------------------------
#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)
@@ -0,0 +1,157 @@
// Boost compiler configuration selection header file
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Martin Wille 2003.
// (C) Copyright Guillaume Melquiond 2003.
//
// 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.
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
#if defined __CUDACC__
// NVIDIA CUDA C++ compiler for GPU
# include "boost/config/compiler/nvcc.hpp"
#endif
#if defined(__GCCXML__)
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
#elif defined(_CRAYC)
// EDG based Cray compiler:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
#elif defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
// PathScale EKOPath compiler (has to come before clang and gcc)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__ && !defined(__ibmxl__)
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
#elif defined __DMC__
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
#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"
#elif defined __KCC
// Kai C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
#elif defined __sgi
// SGI MIPSpro C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
#elif defined __DECCXX
// Compaq Tru64 Unix cxx
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
#elif defined __ghs
// Greenhills C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
#elif defined __CODEGEARC__
// CodeGear - must be checked for before Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
#elif defined __BORLANDC__
// Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
#elif defined __MWERKS__
// Metrowerks CodeWarrior
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
#elif defined __SUNPRO_CC
// Sun Workshop Compiler C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
#elif defined __HP_aCC
// HP aCC
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
#elif defined(__MRC__) || defined(__SC__)
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
// IBM z/OS XL C/C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp_zos.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++
//
// Must remain the last #elif since some other vendors (Metrowerks, for
// example) also #define _MSC_VER
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
#elif defined (BOOST_ASSERT_CONFIG)
// this must come last - generate an error if we don't
// recognise the compiler:
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
#endif
#if 0
//
// This section allows dependency scanners to find all the headers we *might* include:
//
#include <boost/config/compiler/gcc_xml.hpp>
#include <boost/config/compiler/cray.hpp>
#include <boost/config/compiler/comeau.hpp>
#include <boost/config/compiler/pathscale.hpp>
#include <boost/config/compiler/intel.hpp>
#include <boost/config/compiler/clang.hpp>
#include <boost/config/compiler/digitalmars.hpp>
#include <boost/config/compiler/gcc.hpp>
#include <boost/config/compiler/kai.hpp>
#include <boost/config/compiler/sgi_mipspro.hpp>
#include <boost/config/compiler/compaq_cxx.hpp>
#include <boost/config/compiler/greenhills.hpp>
#include <boost/config/compiler/codegear.hpp>
#include <boost/config/compiler/borland.hpp>
#include <boost/config/compiler/metrowerks.hpp>
#include <boost/config/compiler/sunpro_cc.hpp>
#include <boost/config/compiler/hp_acc.hpp>
#include <boost/config/compiler/mpw.hpp>
#include <boost/config/compiler/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
@@ -13,8 +13,8 @@
// <header_name> in order to prevent macro expansion within the header // <header_name> in order to prevent macro expansion within the header
// name (for example "linux" is a macro on linux systems). // name (for example "linux" is a macro on linux systems).
#if defined(linux) || defined(__linux) || defined(__linux__) #if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
// linux: // linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" # define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
@@ -41,6 +41,10 @@
// win32: // win32:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" # 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__) #elif defined(__BEOS__)
// BeOS // BeOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" # define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
@@ -49,8 +53,12 @@
// MacOS // MacOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" # 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) #elif defined(__IBMCPP__) || defined(_AIX)
// IBM // IBM AIX
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" # define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
#elif defined(__amigaos__) #elif defined(__amigaos__)
@@ -61,6 +69,25 @@
// QNX: // QNX:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp" # define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
#elif defined(__VXWORKS__)
// vxWorks:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
#elif defined(__SYMBIAN32__)
// Symbian:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
#elif defined(_CRAYC)
// Cray:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
#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 #else
# if defined(unix) \ # if defined(unix) \
@@ -74,7 +101,7 @@
# define BOOST_HAS_UNISTD_H # define BOOST_HAS_UNISTD_H
# endif # endif
# include <boost/config/posix_features.hpp> # include <boost/config/detail/posix_features.hpp>
# endif # endif
@@ -86,5 +113,30 @@
#endif #endif
#if 0
//
// This section allows dependency scanners to find all the files we *might* include:
//
# include "boost/config/platform/linux.hpp"
# include "boost/config/platform/bsd.hpp"
# include "boost/config/platform/solaris.hpp"
# include "boost/config/platform/irix.hpp"
# include "boost/config/platform/hpux.hpp"
# include "boost/config/platform/cygwin.hpp"
# include "boost/config/platform/win32.hpp"
# include "boost/config/platform/beos.hpp"
# include "boost/config/platform/macos.hpp"
# include "boost/config/platform/zos.hpp"
# include "boost/config/platform/aix.hpp"
# include "boost/config/platform/amigaos.hpp"
# include "boost/config/platform/qnxnto.hpp"
# include "boost/config/platform/vxworks.hpp"
# include "boost/config/platform/symbian.hpp"
# include "boost/config/platform/cray.hpp"
# include "boost/config/platform/vms.hpp"
# include <boost/config/detail/posix_features.hpp>
#endif
@@ -11,13 +11,14 @@
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: // locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
// we need to include a std lib header here in order to detect which // First include <cstddef> to determine if some version of STLport is in use as the std lib
// library is in use, use <utility> as it's about the smallest // (do not rely on this header being included since users can short-circuit this header
// of the std lib headers - do not rely on this header being included - // if they know whose std lib they are using.)
// users can short-circuit this header if they know whose std lib #ifdef __cplusplus
// they are using. # include <cstddef>
#else
#include <boost/config/no_tr1/utility.hpp> # include <stddef.h>
#endif
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) #if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
// STLPort library; this _must_ come first, otherwise since // STLPort library; this _must_ come first, otherwise since
@@ -25,7 +26,23 @@
// can end up detecting that first rather than STLport: // can end up detecting that first rather than STLport:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" # define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
#elif defined(__LIBCOMO__) #else
// 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: // Comeau STL:
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" #define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
@@ -33,6 +50,10 @@
// Rogue Wave library: // Rogue Wave library:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" # define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
#elif defined(_LIBCPP_VERSION)
// libc++
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
// GNU libstdc++ 3 // GNU libstdc++ 3
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" # define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
@@ -45,6 +66,10 @@
// MSL standard lib: // MSL standard lib:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" # 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__) #elif defined(__IBMCPP__)
// take the default VACPP std lib // take the default VACPP std lib
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" # define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
@@ -64,5 +89,22 @@
#endif #endif
#endif
#if 0
//
// This section allows dependency scanners to find all the files we *might* include:
//
# include "boost/config/stdlib/stlport.hpp"
# include "boost/config/stdlib/libcomo.hpp"
# include "boost/config/stdlib/roguewave.hpp"
# include "boost/config/stdlib/libcpp.hpp"
# include "boost/config/stdlib/libstdcpp3.hpp"
# include "boost/config/stdlib/sgi.hpp"
# include "boost/config/stdlib/msl.hpp"
# include "boost/config/stdlib/xlcpp_zos.hpp"
# include "boost/config/stdlib/vacpp.hpp"
# include "boost/config/stdlib/modena.hpp"
# include "boost/config/stdlib/dinkumware.hpp"
#endif
File diff suppressed because it is too large Load Diff
@@ -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
+37
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
+28
View File
@@ -0,0 +1,28 @@
// (C) Copyright John Maddock 2008.
// 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)
//
// The aim of this header is just to include <cmath> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_CMATH
# define BOOST_CONFIG_CMATH
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_CMATH_RECURSION
# endif
# include <cmath>
# ifdef BOOST_CONFIG_NO_CMATH_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_CMATH_RECURSION
# endif
#endif
+1 -1
View File
@@ -26,7 +26,7 @@
//#define BOOST_HAS_PTHREAD_YIELD //#define BOOST_HAS_PTHREAD_YIELD
// boilerplate code: // boilerplate code:
#include <boost/config/posix_features.hpp> #include <boost/config/detail/posix_features.hpp>
+1 -1
View File
@@ -20,7 +20,7 @@
#endif #endif
// boilerplate code: // boilerplate code:
#include <boost/config/posix_features.hpp> #include <boost/config/detail/posix_features.hpp>
+17 -4
View File
@@ -36,20 +36,33 @@
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h> // FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
// and not in <unistd.h> // and not in <unistd.h>
// //
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3)) || defined(__OpenBSD__) #if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|| defined(__OpenBSD__) || defined(__DragonFly__)
# define BOOST_HAS_PTHREADS # define BOOST_HAS_PTHREADS
#endif #endif
// //
// No wide character support in the BSD header files: // No wide character support in the BSD header files:
// //
#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5)) #if defined(__NetBSD__)
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
+ __GNUC_MINOR__ * 1000 \
+ __GNUC_PATCHLEVEL__)
// XXX - the following is required until c++config.h
// defines _GLIBCXX_HAVE_SWPRINTF and friends
// or the preprocessor conditionals are removed
// from the cwchar header.
#define _GLIBCXX_HAVE_SWPRINTF 1
#endif
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
# define BOOST_NO_CWCHAR # define BOOST_NO_CWCHAR
#endif #endif
// //
// The BSD <ctype.h> has macros only, no functions: // The BSD <ctype.h> has macros only, no functions:
// //
#if !defined(__OpenBSD__) #if !defined(__OpenBSD__) || defined(__DragonFly__)
# define BOOST_NO_CTYPE_FUNCTIONS # define BOOST_NO_CTYPE_FUNCTIONS
#endif #endif
@@ -64,7 +77,7 @@
// boilerplate code: // boilerplate code:
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp> #include <boost/config/detail/posix_features.hpp>
@@ -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
+18
View File
@@ -0,0 +1,18 @@
// (C) Copyright John Maddock 2011.
// 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.
// SGI Irix specific config options:
#define BOOST_PLATFORM "Cray"
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/detail/posix_features.hpp>
+26 -6
View File
@@ -8,10 +8,9 @@
// cygwin specific config options: // cygwin specific config options:
#define BOOST_PLATFORM "Cygwin" #define BOOST_PLATFORM "Cygwin"
#define BOOST_NO_CWCTYPE
#define BOOST_NO_CWCHAR
#define BOOST_NO_SWPRINTF
#define BOOST_HAS_DIRENT_H #define BOOST_HAS_DIRENT_H
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1
// //
// Threading API: // Threading API:
@@ -24,7 +23,7 @@
# define BOOST_HAS_SCHED_YIELD # define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_GETTIMEOFDAY # define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_SIGACTION //# define BOOST_HAS_SIGACTION
#else #else
# if !defined(BOOST_HAS_WINTHREADS) # if !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_WINTHREADS # define BOOST_HAS_WINTHREADS
@@ -39,10 +38,31 @@
#ifdef _STDINT_H #ifdef _STDINT_H
#define BOOST_HAS_STDINT_H #define BOOST_HAS_STDINT_H
#endif #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: // 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:
//
#ifdef BOOST_HAS_NL_TYPES_H
# undef BOOST_HAS_NL_TYPES_H
#endif
+31
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>
+7 -5
View File
@@ -2,7 +2,7 @@
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright David Abrahams 2002. // (C) Copyright David Abrahams 2002.
// (C) Copyright Toon Knapen 2003. // (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006. // (C) Copyright Boris Gubenko 2006 - 2007.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -23,6 +23,8 @@
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE)) #if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
#endif
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
# define BOOST_NO_CWCTYPE # define BOOST_NO_CWCTYPE
#endif #endif
@@ -41,7 +43,7 @@
// boilerplate code: // boilerplate code:
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp> #include <boost/config/detail/posix_features.hpp>
// the following are always available: // the following are always available:
#ifndef BOOST_HAS_GETTIMEOFDAY #ifndef BOOST_HAS_GETTIMEOFDAY
@@ -72,7 +74,9 @@
# define BOOST_HAS_SIGACTION # define BOOST_HAS_SIGACTION
#endif #endif
#ifndef BOOST_HAS_NRVO #ifndef BOOST_HAS_NRVO
# define BOOST_HAS_NRVO # ifndef __parisc
# define BOOST_HAS_NRVO
# endif
#endif #endif
#ifndef BOOST_HAS_LOG1P #ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P # define BOOST_HAS_LOG1P
@@ -81,5 +85,3 @@
# define BOOST_HAS_EXPM1 # define BOOST_HAS_EXPM1
#endif #endif
+1 -1
View File
@@ -25,7 +25,7 @@
// boilerplate code: // boilerplate code:
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp> #include <boost/config/detail/posix_features.hpp>
+11 -3
View File
@@ -11,7 +11,11 @@
#define BOOST_PLATFORM "linux" #define BOOST_PLATFORM "linux"
// make sure we have __GLIBC_PREREQ if available at all // make sure we have __GLIBC_PREREQ if available at all
#ifdef __cplusplus
#include <cstdlib> #include <cstdlib>
#else
#include <stdlib.h>
#endif
// //
// <stdint.h> added to glibc 2.1.1 // <stdint.h> added to glibc 2.1.1
@@ -20,8 +24,9 @@
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) #if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h> // int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
// only when using GCC. // only when using GCC. Update 2017: this appears not to be the case for
# if defined __GNUC__ // 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 # define BOOST_HAS_STDINT_H
# endif # endif
#endif #endif
@@ -67,7 +72,10 @@
// boilerplate code: // boilerplate code:
#define BOOST_HAS_UNISTD_H #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__ #ifndef __GNUC__
// //
+14 -5
View File
@@ -25,7 +25,7 @@
// to replace the platform-native BSD one. G++ users // to replace the platform-native BSD one. G++ users
// should also always be able to do this on MaxOS X. // 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 # ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H # define BOOST_HAS_STDINT_H
# endif # endif
@@ -47,6 +47,14 @@
# define BOOST_NO_STDC_NAMESPACE # define BOOST_NO_STDC_NAMESPACE
# endif # endif
# if (__GNUC__ >= 4)
// Both gcc and intel require these.
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_NANOSLEEP
# endif
#else #else
// Using the MSL C library. // Using the MSL C library.
@@ -56,16 +64,17 @@
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) # if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
# if !defined(BOOST_HAS_PTHREADS) # if !defined(BOOST_HAS_PTHREADS)
# define BOOST_HAS_MPTASKS // MPTasks support is deprecated/removed from Boost:
//# define BOOST_HAS_MPTASKS
# elif ( __dest_os == __mac_os_x ) # elif ( __dest_os == __mac_os_x )
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the // We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
// gettimeofday and no posix. // gettimeofday and no posix.
# define BOOST_HAS_GETTIMEOFDAY # define BOOST_HAS_GETTIMEOFDAY
# endif # endif
// The MP task implementation of Boost Threads aims to replace MP-unsafe #ifdef BOOST_HAS_PTHREADS
// parts of the MSL, so we turn on threads unconditionally. # define BOOST_HAS_THREADS
# define BOOST_HAS_THREADS #endif
// The remote call manager depends on this. // The remote call manager depends on this.
# define BOOST_BIND_ENABLE_PASCAL # define BOOST_BIND_ENABLE_PASCAL
+1 -1
View File
@@ -10,7 +10,7 @@
#define BOOST_PLATFORM "QNX" #define BOOST_PLATFORM "QNX"
#define BOOST_HAS_UNISTD_H #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 // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
// or log1p and expm1: // or log1p and expm1:
+11 -1
View File
@@ -14,8 +14,18 @@
// boilerplate code: // boilerplate code:
#define BOOST_HAS_UNISTD_H #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:
//
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
# undef BOOST_HAS_PTHREADS
#endif
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1
+97
View File
@@ -0,0 +1,97 @@
// (C) Copyright Yuriy Krasnoschek 2009.
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// symbian specific config options:
#define BOOST_PLATFORM "Symbian"
#define BOOST_SYMBIAN 1
#if defined(__S60_3X__)
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
// make sure we have __GLIBC_PREREQ if available at all
#ifdef __cplusplus
#include <cstdlib>
#else
#include <stdlib.h>
#endif// boilerplate code:
# define BOOST_HAS_UNISTD_H
# 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
# endif
# ifndef BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_GETTIMEOFDAY
# endif
# ifndef BOOST_HAS_DIRENT_H
# define BOOST_HAS_DIRENT_H
# endif
# ifndef BOOST_HAS_SIGACTION
# define BOOST_HAS_SIGACTION
# endif
# ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_PTHREADS
# endif
# ifndef BOOST_HAS_NANOSLEEP
# define BOOST_HAS_NANOSLEEP
# endif
# ifndef BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_SCHED_YIELD
# endif
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# endif
# ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P
# endif
# ifndef BOOST_HAS_EXPM1
# define BOOST_HAS_EXPM1
# endif
# ifndef BOOST_POSIX_API
# define BOOST_POSIX_API
# endif
// endianess support
# include <sys/endian.h>
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
# ifndef __LITTLE_ENDIAN
# ifdef _LITTLE_ENDIAN
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
# else
# define __LITTLE_ENDIAN 1234
# endif
# endif
# ifndef __BIG_ENDIAN
# ifdef _BIG_ENDIAN
# define __BIG_ENDIAN _BIG_ENDIAN
# else
# define __BIG_ENDIAN 4321
# endif
# endif
# ifndef __BYTE_ORDER
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
# endif
// Known limitations
# define BOOST_ASIO_DISABLE_SERIAL_PORT
# define BOOST_DATE_TIME_NO_LOCALE
# define BOOST_NO_STD_WSTRING
# define BOOST_EXCEPTION_DISABLE
# define BOOST_NO_EXCEPTIONS
#else // TODO: More platform support e.g. UIQ
# error "Unsuppoted Symbian SDK"
#endif
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
#endif
+25
View File
@@ -0,0 +1,25 @@
// (C) Copyright Artyom Beilis 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)
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP
#define BOOST_CONFIG_PLATFORM_VMS_HPP
#define BOOST_PLATFORM "OpenVMS"
#undef BOOST_HAS_STDINT_H
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1
#define BOOST_HAS_THREADS
#undef BOOST_HAS_SCHED_YIELD
#endif
+433
View File
@@ -0,0 +1,433 @@
// (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.
// 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 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:
// -------------------------------------------------------------------
//
// VxWorks as a real time operating system handles threads somewhat
// different from what "normal" OSes do, regarding their scheduling!
// This could lead to a scenario called "priority inversion" when using
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
//
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
// priority inverting semaphores, which is fine. On the other hand,
// for RTP's it defaults to using non priority inverting semaphores,
// which could easily pose a serious problem for a real time process.
//
// 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:
//
// LOCAL pthread_mutexattr_t defaultMutexAttr =
// {
// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
// PTHREAD_MUTEX_DEFAULT
// };
//
// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
// - Around line 1236 there should be a definition for the function
// pthread_mutexattr_init(). A couple of lines below you should
// find a block of code like this:
//
// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
// pAttr->mutexAttrPrioceiling = 0;
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
//
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
// - Finally, rebuild your VSB. This will rebuild the libraries
// with the changed properties. That's it! Now, using boost should
// no longer cause any problems with task deadlocks!
//
// ====================================================================
// Block out all versions before vxWorks 6.x, as these don't work:
// Include header with the vxWorks version information and query them
#include <version.h>
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
# error "The vxWorks version you're using is so badly outdated,\
it doesn't work at all with boost, sorry, no chance!"
#endif
// Handle versions above 5.X but below 6.9
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
// TODO: Starting from what version does vxWorks work with boost?
// We can't reasonably insert a #warning "" as a user hint here,
// as this will show up with every file including some boost header,
// badly bugging the user... So for the time being we just leave it.
#endif
// vxWorks specific config options:
// --------------------------------
#define BOOST_PLATFORM "vxWorks"
// Special behaviour for DKMs:
#ifdef _WRS_KERNEL
// DKMs do not have the <cwchar>-header,
// but apparently they do have an intrinsic wchar_t meanwhile!
# define BOOST_NO_CWCHAR
// Lots of wide-functions and -headers are unavailable for DKMs as well:
# define BOOST_NO_CWCTYPE
# define BOOST_NO_SWPRINTF
# define BOOST_NO_STD_WSTRING
# define BOOST_NO_STD_WSTREAMBUF
#endif
// Generally available headers:
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_SLIST
// vxWorks does not have installed an iconv-library by default,
// so unfortunately no Unicode support from scratch is available!
// Thus, instead it is suggested to switch to ICU, as this seems
// to be the most complete and portable option...
#define BOOST_LOCALE_WITH_ICU
// Generally available functionality:
#define BOOST_HAS_THREADS
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_MACRO_USE_FACET
// Generally available threading API's:
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_SIGACTION
// Functionality available for RTPs only:
#ifdef __RTP__
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_LOG1P
# define BOOST_HAS_EXPM1
#endif
// Functionality available for DKMs only:
#ifdef _WRS_KERNEL
// Luckily, at the moment there seems to be none!
#endif
// These #defines allow 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
# define _POSIX_TIMERS 1
# endif
# ifndef _POSIX_THREADS
# define _POSIX_THREADS 1
# endif
#endif
#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.
#ifdef __RTP__
# include <time.h>
# include <sysLib.h>
#endif
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
// UINT64_C() are defined 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
#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
#define VX_DO_JOIN2(X, Y) X##Y
// Correctly setup the macros
#undef INT32_C
#undef UINT32_C
#undef INT64_C
#undef UINT64_C
#define INT32_C(x) VX_JOIN(x, L)
#define UINT32_C(x) VX_JOIN(x, UL)
#define INT64_C(x) VX_JOIN(x, LL)
#define UINT64_C(x) VX_JOIN(x, ULL)
// #include Libraries required for the following function adaption
#include <sys/time.h>
#endif // _WRS_VXWORKS_MAJOR < 7
#include <ioLib.h>
#include <tickLib.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(),
// which may serve the purpose.
// Problem: The vxWorks-documentation regarding these functions
// doesn't deserve its name! It isn't documented what the first two
// parameters idtype and id mean, so we must fall back to an educated
// guess - null, argh... :-/
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
// Thus for DKMs there would have to be another implementation.
#if defined ( __RTP__) && (_WRS_VXWORKS_MAJOR < 7)
inline int getrlimit(int resource, struct rlimit *rlp){
return getprlimit(0, 0, resource, rlp);
}
inline int setrlimit(int resource, const struct rlimit *rlp){
return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
}
#endif
// vxWorks has ftruncate() only, so we do simulate truncate():
inline int truncate(const char *p, off_t l){
int fd = open(p, O_WRONLY);
if (fd == -1){
errno = EACCES;
return -1;
}
if (ftruncate(fd, l) == -1){
close(fd);
errno = EACCES;
return -1;
}
return close(fd);
}
#ifdef __GNUC__
#define ___unused __attribute__((unused))
#else
#define ___unused
#endif
// Fake symlink handling by dummy functions:
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* path1 ___unused, char* path2 ___unused, size_t size ___unused){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
#if (_WRS_VXWORKS_MAJOR < 7)
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
tv->tv_sec = ts.tv_sec;
tv->tv_usec = ts.tv_nsec / 1000;
return 0;
}
#endif
#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.
// Rather ugly but at least it suppresses compiler errors...
// Unfortunately, this of course *does* have an severe impact on
// dependant libraries, actually this is chrono only! Here it will
// not be possible to correctly use user and system times! But
// as vxWorks is lacking the ability to calculate user and system
// process times there seems to be no other possible solution.
struct tms{
clock_t tms_utime; // User CPU time
clock_t tms_stime; // System CPU time
clock_t tms_cutime; // User CPU time of terminated child processes
clock_t tms_cstime; // System CPU time of terminated child processes
};
inline clock_t times(struct tms *t){
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
t->tms_utime = ticks/2U;
t->tms_stime = ticks/2U;
t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
t->tms_cstime = 0; // -> Set the wait times for childs to 0
return ticks;
}
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 {
# ifdef __RTP__
using ::getrlimit;
using ::setrlimit;
# endif
using ::truncate;
using ::symlink;
using ::readlink;
#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
// but may be patched to life via helper macros...
// 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
#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 not present in vxWorks!
// #include boilerplate code:
#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
+38 -6
View File
@@ -21,17 +21,32 @@
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
#endif #endif
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) // Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
// BOOST_SYMBOL_IMPORT
#ifndef BOOST_SYMBOL_EXPORT
# define BOOST_HAS_DECLSPEC # define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
#endif #endif
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
# define BOOST_HAS_STDINT_H # define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS # ifndef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
# endif
# define BOOST_HAS_DIRENT_H # define BOOST_HAS_DIRENT_H
# define BOOST_HAS_UNISTD_H # define BOOST_HAS_UNISTD_H
#endif #endif
#if defined(__MINGW32__) && (__GNUC__ >= 4)
// 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
// //
// Win32 will normally be using native Win32 threads, // Win32 will normally be using native Win32 threads,
// but there is a pthread library avaliable as an option, // but there is a pthread library avaliable as an option,
@@ -42,14 +57,31 @@
// all translation units (needed for shared_ptr etc). // all translation units (needed for shared_ptr etc).
// //
#ifdef _WIN32_WCE
# define BOOST_NO_ANSI_APIS
#endif
#ifndef BOOST_HAS_PTHREADS #ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_WINTHREADS # define BOOST_HAS_WINTHREADS
#endif #endif
//
// WinCE configuration:
//
#if defined(_WIN32_WCE) || defined(UNDER_CE)
# define BOOST_NO_ANSI_APIS
// Windows CE does not have a conforming signature for swprintf
# define BOOST_NO_SWPRINTF
#else
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
# define BOOST_HAS_THREADEX
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
//
// 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 #ifndef BOOST_DISABLE_WIN32
// WEK: Added // WEK: Added
#define BOOST_HAS_FTIME #define BOOST_HAS_FTIME
+32
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
+31
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
@@ -1,87 +0,0 @@
// Boost compiler configuration selection header file
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Martin Wille 2003.
// (C) Copyright Guillaume Melquiond 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
#if defined(__GCCXML__)
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
#elif defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
#elif defined __DMC__
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
# elif defined __GNUC__
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
#elif defined __KCC
// Kai C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
#elif defined __sgi
// SGI MIPSpro C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
#elif defined __DECCXX
// Compaq Tru64 Unix cxx
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
#elif defined __ghs
// Greenhills C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
#elif defined __BORLANDC__
// Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
#elif defined __MWERKS__
// Metrowerks CodeWarrior
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
#elif defined __SUNPRO_CC
// Sun Workshop Compiler C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
#elif defined __HP_aCC
// HP aCC
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
#elif defined(__MRC__) || defined(__SC__)
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
#elif defined(__IBMCPP__)
// IBM Visual Age
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined _MSC_VER
// Microsoft Visual C++
//
// Must remain the last #elif since some other vendors (Metrowerks, for
// example) also #define _MSC_VER
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
#elif defined (BOOST_ASSERT_CONFIG)
// this must come last - generate an error if we don't
// recognise the compiler:
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
#endif
+163 -11
View File
@@ -55,8 +55,10 @@
# define BOOST_HAS_MACRO_USE_FACET # define BOOST_HAS_MACRO_USE_FACET
# ifndef _CPPLIB_VER # ifndef _CPPLIB_VER
// Updated Dinkum library defines this, and provides // Updated Dinkum library defines this, and provides
// its own min and max definitions. // its own min and max definitions, as does MTA version.
# define BOOST_NO_STD_MIN_MAX # ifndef __MTA__
# define BOOST_NO_STD_MIN_MAX
# endif
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# endif # endif
#endif #endif
@@ -84,6 +86,165 @@
# define BOOST_NO_STD_LOCALE # define BOOST_NO_STD_LOCALE
#endif #endif
// Fix for VC++ 8.0 on up ( I do not have a previous version to test )
// or clang-cl. If exceptions are off you must manually include the
// <exception> header before including the <typeinfo> header. Admittedly
// trying to use Boost libraries or the standard C++ libraries without
// exception support is not suggested but currently clang-cl ( v 3.4 )
// does not support exceptions and must be compiled with exceptions off.
#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER)))
#include <exception>
#endif
#include <typeinfo>
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (defined(__ghs__) && !_HAS_NAMESPACE) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \
&& !defined(__VXWORKS__)
# define BOOST_NO_STD_TYPEINFO
#endif
// C++0x headers implemented in 520 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_SMART_PTR
#endif
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
&& (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
// C++0x headers implemented in 540 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
#endif
// C++0x headers implemented in 610 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_ALLOCATOR
// 540 has std::align but it is not a conforming implementation
# define BOOST_NO_CXX11_STD_ALIGN
#endif
// 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) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)
# define BOOST_NO_CXX17_STD_INVOKE
#endif
#if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))
// Deprecated std::iterator:
# define BOOST_NO_STD_ITERATOR
#endif
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
// Intel's compiler can't handle this header yet:
# 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 #ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
#else #else
@@ -95,12 +256,3 @@
#else #else
# define BOOST_STDLIB "Dinkumware standard library version 1.x" # define BOOST_STDLIB "Dinkumware standard library version 1.x"
#endif #endif
+48 -2
View File
@@ -33,6 +33,54 @@
# define BOOST_HAS_SLIST # define BOOST_HAS_SLIST
#endif #endif
// C++0x headers not yet implemented
//
# define BOOST_NO_CXX11_HDR_ARRAY
# define BOOST_NO_CXX11_HDR_CHRONO
# define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
# define BOOST_NO_CXX11_HDR_FUTURE
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
# define BOOST_NO_CXX11_HDR_MUTEX
# define BOOST_NO_CXX11_HDR_RANDOM
# define BOOST_NO_CXX11_HDR_RATIO
# define BOOST_NO_CXX11_HDR_REGEX
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
# define BOOST_NO_CXX11_HDR_THREAD
# define BOOST_NO_CXX11_HDR_TUPLE
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_TYPEINDEX
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
# define BOOST_NO_CXX11_NUMERIC_LIMITS
# define BOOST_NO_CXX11_ALLOCATOR
# define BOOST_NO_CXX11_POINTER_TRAITS
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_SMART_PTR
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
# define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_STD_ALIGN
# define BOOST_NO_CXX11_ADDRESSOF
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#else
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// 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. // Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which // The SGI STL has it's own __type_traits class, which
@@ -42,5 +90,3 @@
#define BOOST_HAS_SGI_TYPE_TRAITS #define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) #define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
+143
View File
@@ -0,0 +1,143 @@
// (C) Copyright Christopher Jefferson 2011.
// 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.
// config for libc++
// Might need more in here later.
#if !defined(_LIBCPP_VERSION)
# include <ciso646>
# if !defined(_LIBCPP_VERSION)
# error "This is not libc++!"
# endif
#endif
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
#define BOOST_HAS_THREADS
#ifdef _LIBCPP_HAS_NO_VARIADICS
# define BOOST_NO_CXX11_HDR_TUPLE
#endif
// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
// allocator model. The C++11 allocator model requires a conforming
// std::allocator_traits which is only possible with C++11 template
// aliases since members rebind_alloc and rebind_traits require it.
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
# define BOOST_NO_CXX11_ALLOCATOR
# 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_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 < 4000) || (__cplusplus <= 201402L)
# define BOOST_NO_CXX17_STD_APPLY
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
#endif
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
# define BOOST_NO_AUTO_PTR
#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
#define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result)
#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
// This is a bit of a sledgehammer, because really it's just libc++abi that has no
// 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__) && (_LIBCPP_VERSION < 6000) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
// After libc++-dev is installed on Trusty, clang++-libc++ almost works,
// except uses of `thread_local` fail with undefined reference to
// `__cxa_thread_atexit`.
//
// clang's libc++abi provides an implementation by deferring to the glibc
// implementation, which may or may not be available (it is not on Trusty).
// clang 4's libc++abi will provide an implementation if one is not in glibc
// though, so thread local support should work with clang 4 and above as long
// as libc++abi is linked in.
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#elif __cplusplus <= 201103
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#elif __cplusplus < 201402
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
#if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
#endif
// --- end ---

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