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.68.0

Version 1.68.0 beta 1

July 10th, 2018 22:50 GMT

Documentation

Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_68_0_b1.tar.bz20364846258648e39908ca7cebfc2d2216eef6980c32aaf8276d2cfe73ef012e3
boost_1_68_0_b1.tar.gzd99105685a68907a76b0479ecde77915423246236ef0db9cb846c5bfc09b41f3
windowsboost_1_68_0_b1.7z961d2bdc74c1499c931b32098842abba8883b1a89ef5c8f8f0ab0aff771a3ce5
boost_1_68_0_b1.zip6158e0e961bfb0d8adeb2ea70337b08504668258025f0a873fb21eee3436d22e

New Libraries

  • YAP: An expression template library for C++14 and later, from Zach Laine.

Updated Libraries

  • Beast:
    • This version fixes a missing executor work guard in all composed operations used in the implementation. Users who are experiencing crashes related to asynchronous completion handlers are encouraged to upgrade.
    • For a complete list of changes, please view the official Release Notes.
  • Fiber:
    • #170: buffered_channel::try_push has incorrect documentation
    • #172: WIN64: 'invalid conversion from 'HANDLE' to 'std::thread::native_handle_type' errors for builds using mingw-w64
    • #175: throw exception "Operation not permitted"
    • NUMA support moved to extra library (fiber-numa); enabled via property numa (numa=on)
  • Coroutine2:
    • #14: crash while stack unwinding
    • #18: some guidance on why to use coroutine2
    • #20: failes to compile test in due to the error C2039
    • #22: undefined behaviour documentation
  • Context:
    • #78: Linker error with context-impl=ucontext: multiple definition of boost::context::detail::current_rec
  • GIL:
    • The I/O extensions have been entirely rewritten.
    • The library now requires a C++11-compliant compiler.
    • Documentation has been reformatted and updated.
  • Graph:
    • Conditionally replace deprecated/removed C++98 std::bind1st by std::bind, std::auto_ptr by std::unique_ptr, and std::random_shuffle by std::shuffle. (PR#89)
    • Fix compiler error with release builds on VS2015 (PR#84)
    • Fix the Stanford GraphBase examples (PR#87)
    • Fix friend declarations for iterator_core_access (PR#103)
    • Add missing <boost/iterator.hpp> include (PR#104)
    • Avoid an unused variable warning (PR#90)
    • Fix some typos in documentation (PR#88, PR#98, PR#102)
    • Fix some issues in tests and examples (PR#85, PR#105)
  • Multi-index Containers:
    • Containers of moveable but non-copyable elements can now be serialized (ticket #13478). Thanks to S├ębastien Paris for the report.
    • multi_index_container's default constructor is no longer explicit (ticket #13518).
  • Optional:
    • Added member function has_value() for compatibility with std::optional (issue #52).
    • Added member function map() for transforming optional<T> into optional<U> using a function of type T -> U.
    • Added member function flat_map() for transforming optional<T> into optional<U> using a function of type T -> optonal<U>.
  • Program Options:
    • Support for multiple long names for an option, thanks to Eyal Rozenberg (PR#53)
  • Math:
    • Support for arbitrary precision complex valued quadrature and hence contour integration
    • Improve performance of polynomial addition
  • Multiprecision:
    • Support for multiprecision complex numbers
  • Python:
    • Bug fixes to correct autolink support (Windows) (#193)
  • Rational:
    • Fixed undefined behavior in normalize() (PR#19).
    • Added pow method (PR#21).
  • Uuid:
    • Breaking change: sha1 detail namespace header redirection for backwards compatibility was removed (PR#69).
    • Added support for std::hash (PR#67).
    • Added support for move semantics on random generators (PR#74).
    • Properly handle EINTR when acquiring entropy (PR#74).
    • Use getrandom(2) instead of getentropy(3) on linux (PR#75).
  • Predef:
    • Add support for __ARM_ARCH macro. (from Tim Blechmann)
    • Add detection for PTX architecture. (from Benjamin Worpitz)
    • Add nvcc compiler detection. (from Benjamin Worpitz)
    • Add support for detecting CUDA. (from Benjamin Worpitz)
    • Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.0, 4.0.1, 6.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1
    • Clang, C++17: 5.0.2, 6.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
    • GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
    • GCC, C++17: 7.3.0, 8.0.1
    • Intel, C++14: 18.0
  • OS X:
    • Clang: 9.0.0, 9.1.0
    • Clang, C++11: 9.0.0, 9.1.0
    • Clang, C++14: 9.0.0, 9.1.0
    • Clang, C++17: 9.1.0
    • Clang, C++1z: 9.0.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++0x: 4.6.4
    • GCC, C++11: 4.7.3, 4.8.1, 4.9.3
    • GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
    • GCC, C++17: 7.1.0, 7.2.0, 7.3.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • FreeBSD:
    • Clang: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0
    • Clang, C++17: 5.0.2, 6.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
    • GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
    • GCC, C++17: 7.3.0, 8.0.1
    • Intel, C++14: 18.0
  • OS X:
    • Clang: 9.0.0, 9.1.0
    • Clang, C++11: 9.0.0, 9.1.0
    • Clang, C++14: 9.0.0, 9.1.0
    • Clang, C++17: 9.1.0
    • Clang, C++1z: 9.0.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++0x: 4.6.4
    • GCC, C++11: 4.7.3, 4.8.1, 4.9.3
    • GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
    • GCC, C++17: 7.1.0, 7.2.0, 7.3.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • FreeBSD:
    • Clang: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0

Acknowledgements

TODO