Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Version 1.65.0

Version 1.65.0 beta 1

July 13th, 2017 13:46 GMT

Documentation

Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_65_0_beta1.tar.bz2092676557513e992347d30dd0cd058fb8af2a401e5da4f4413f5b577852d726b
boost_1_65_0_beta1.tar.gz31fa3c807e2205e18f7d5c74f77f540677f7b0937af1e37f595c137e1e87bf84
windowsboost_1_65_0_beta1.7zd54d29568c4e4933cbfe40a292b6cb84a7f68121e34f6a83f7d0f7c652b6b2d8
boost_1_65_0_beta1.zip83c8d8b76fa9591572226a1a49fd191d76db3011b52b907cbbc8d37d46213bd2

Third Party Downloads

New Libraries

  • PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz.
  • Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin.
    • Note: Library has issue with MinGW and may produce empty backtraces with that compiler.

Updated Libraries

  • Context:
    • call/cc supports ucontext-API (swapcontext)
    • call/cc supports Windows-Fiber-API
    • call/cc supports on demand growing (segmented/split) stacks
    • #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain
    • #52: Failing to build callcc test with g++-4.9
  • Config:
    • Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection.
    • BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes)
  • Core:
    • Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries.
    • Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test.
  • Coroutine2:
    • supports ucontext-API (swapcontext)
    • supports Windows-Fiber-API
    • #13064: different behavior coroutine and coroutine2
  • DLL:
    • Fix PE parsing on non Windows platforms.
  • Fiber:
    • hardware transactional memory (Intel TSX) supported
    • NUMA supported
    • ucontext-API (swapcontext) supported
    • Windows-Fiber-API supported
    • on demand growing stacks
    • #121: failing to build static lib with GCC 4.8 and C++11
    • #123: assertion failure in schedule_from_remote
    • #125: erratic crashes in testsuite
    • #126: incorrect std::memory_order value in compare_exchange_strong?
  • Hash:
    • Support for char16_t, char32_t, u16string, u32string.
  • Log:
    • General changes:
      • Improved compatibility with Solaris.
    • See changelog for more details.
  • Predef:
    • Fix Intel C/C++ version 9999 detection to be 12.1.0.
    • Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection.
    • Add ARM64 MSVC SIMD detection. (from Minmin Gong)
    • Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov)
    • Fix MinGW incorrect header guard. (from Ruslan Baratov)
  • Program Options:
    • Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18)
    • Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25)
  • Smart Pointers:
    • New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov)
    • New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov)
    • More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes)
    • Documentation has been completely rewritten in Asciidoc format.
  • TypeIndex:
    • Include <boost/functional/hash.hpp> if required, thanks to Ed Catmur #13009.
    • Use native hash_code() when possible on GCC-like compilers #13027.
  • Unordered:
    • Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers.
    • Add deprecated attributes to long deprecated functions.
    • Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate.
    • Fewer workarounds on newer Oracle compilers.
    • Avoid dereferencing pointers to uninitialized memory (PR #5).
  • Variant:
    • r-value overload for boost::get was added by Albert Sverdlov #13018.
    • Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.0, 3.8.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1
    • Clang, C++1z: 4.0.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0
    • GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0
    • GCC, C++17: 7.1.0
    • GCC, C++1z: 6.3.0
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0
  • OS X:
    • Clang: 8.1.0
    • Clang, C++11: 8.1.0
    • Clang, C++14: 8.1.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++11: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • Android:
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4
    • GCC, C++14: 6.2
  • FreeBSD:
    • Clang: 3.8.0
    • Clang, C++11: 3.8.0
    • Clang, C++14: 3.8.0
    • Clang, C++1z: 3.8.0
  • QNX:
    • QCC, C++11: 4.7.3
  • SunOS:
    • Oracle Solaris Studio: 12.5_next, 12.5
    • Oracle Solaris Studio, C++11: 12.5_next, 12.5

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.8.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1
    • Clang, C++1z: 4.0.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0
    • GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0
    • GCC, C++17: 7.1.0
    • GCC, C++1z: 6.3.0
    • Intel: 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0
  • OS X:
    • Clang: 8.1.0
    • Clang, C++11: 8.1.0
    • Clang, C++14: 8.1.0
    • Clang, C++1z: 8.1.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++11: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • Android:
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4
    • GCC, C++14: 6.2
  • FreeBSD:
    • Clang: 3.8.0
    • Clang, C++11: 3.8.0
    • Clang, C++14: 3.8.0
    • Clang, C++1z: 3.8.0
  • SunOS:
    • Oracle Solaris Studio: 12.5_next, 12.5
    • Oracle Solaris Studio, C++11: 12.5_next, 12.5

Acknowledgements

Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.