Boost
Releases
arrow_drop_down
Prior Release (1.64.0)
Platform File SHA256 Hash
Unix boost_1_64_0.tar.bz2 7bcc5....83332
boost_1_64_0.tar.gz 0445c....3a108
Windows boost_1_64_0.7z 49c6a....8d155
boost_1_64_0.zip b9997....97523

Version 1.64.0

April 19th, 2017 17:42 GMT

Documentation

Third Party Downloads

New Libraries

  • Process:
    • library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return".

Updated Libraries

  • Any:
    • Suppressed false warnings about returning reference to temporary
    • boost::addressof is now used instead of directly taking the address #12615
    • Headers are not included using double quotes any more #12053
    • CI tests now run with address, leak, and undefined sanitizers
    • Added more test
  • Atomic:
    • Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
  • Config:
    • Added BOOST_NO_CXX11_SFINAE_EXPR defect detection.
  • Container:
  • Context:
    • new API: call/cc
    • deprecated API:execution-context
    • stack manipulation on MIPS fixed
    • #12719 segmentation fault when built with mingw-w64
    • #12948 Unexpected snprintf result is on Android ARM
    • #38: context_entry() crashes on macOS
    • #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
    • #41: std::bind() fails with invoke()
    • #46: "rename of continuation member functions" missed a spot
    • #50: bad assembly for fcontext on ppc64/sysv/elf
  • Conversion:
    • Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port)
    • Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
    • CI tests now run with address, leak, and undefined sanitizers
  • Core:
    • Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available.
    • In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese).
  • Coroutine2:
    • #4: coroutine2<> does not accept std::bind
  • DLL:
    • Fixed WinCE compilation
    • Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example)
    • Fixed UB in detail::aggressive_ptr_cast for member pointers
    • Fixed leaks in experimental smart imports
    • Fixed warnings
    • CI tests now run with address and leak sanitizers
  • Fiber:
    • (un)bounded_channel<> removed
    • #100: ASIO: unbuffered_channel / scheduler notify issue
    • #105: skynet variants crash on windows
    • #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile
    • #110: Compile error on ARMv6
    • #111: endless-loop in buffered_channel::try_value_pop()
    • #114: buffered_channel::try_push does not wake fibers in pop`
  • Geometry:
    • Improvements:
      • matrix transformation is now based on Boost.QVM instead of Boost.Ublas
    • Breaking changes:
      • ublas_transformer is renamed to matrix_transformer
      • explicit modifier is added to constructors of rtree index::dynamic_* parameters
      • strategy::area::huiller replaced by strategy::area::spherical
    • Solved issues:
      • 363 Missing includes in geometry/index/parameters.hpp
      • 364 within(Linear, Areal) compilation error when arguments use different point types
      • 370 Buffer Seg Faults with Ring as Input
    • Solved tickets:
      • 11899 boost::geometry::equals doesn't handle open polygons
      • 11930 Inaccuracy of area::huiller strategy
      • 11931 Wrong spherical area with pole encircling polygons
      • 12410 Lack of support of geographic coordinate system in correct()
      • 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer
      • 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
      • 12885 Use BOOST_THROW_EXCEPTION instead of throw
    • Bugfixes:
      • Fix distance_measure in get_turn_info
  • Hash:
    • Stop using std::unary_function and std::binary_function when they're not available.
  • Interprocess:
  • Intrusive:
  • LexicalCast:
    • Fixed multiple warnings #11842
    • CI tests now run with address, leak, and undefined sanitizers
  • Math:
    • Big push to ensure all functions in also in C99 are compatible with Annex F.
    • Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066.
  • Multi-index Containers:
    • Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955).
    • Maintenance fixes.
  • Multiprecision:
    • In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527.
    • Fix bug in integer sqrt for very small integers. See #12559.
    • Fix conversion to signed-zero in cpp_bin_float.
    • Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527.
    • Improve performance of 128-bit bit-scan operations.
    • Fix subtraction of very small quantities in cpp_bin_float. See: #12580.
    • Bring error handling into line with C99 Annex F. See #12581.
    • Fix bitwise export of trivial cpp_int's, see #12627.
    • Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625.
    • Allow conversion from __float128 to cpp_bin_float.
    • Fix bug in left shift of cpp_int which would result in bit-loss, see #12790.
    • Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798.
  • Predef:
    • Fix Intel C/C++ compiler version specification.
    • Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers.
    • Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions.
  • Regex:
    • Compiling with Oracle C++ toolset is no longer restricted to static linking.
    • Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818.
  • Smart Pointers:
    • Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes)
    • Pointer cast functions with move semantics (Chris Glover)
  • Test:
    • Boost.test v3.5 see the Change log section for more details.
    • New feature:
      • Now Boost.Test provides customization points for logging user defined types
      • JUnit output format can now have a log-level
      • JUnit output format has not better performances when the test modules have a lot of checks
    • Bug fixes
  • TypeIndex:
    • Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it)
    • Fixed undefined macro warning in stl_type_index.hpp #12739
    • CI tests now run with address, leak, and undefined sanitizers
  • TypeTraits:
    • Added new traits make_void and void_t.
  • Unordered:
    • Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers.
  • Variant:
    • Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645
    • Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236
    • Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120
    • Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950
    • CI tests now run with address, leak, and undefined sanitizers

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.0, 3.8.1, 3.9.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
    • Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
    • Clang, C++1z: 3.9.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
    • GCC, C++14: 5.4.1, 6.2.0, 6.3.0
    • GCC, C++1z: 6.2.0
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0, 17.0
  • OS X:
    • Apple Clang: 7.0.2
    • Apple Clang, C++11: 7.0.2
  • Windows:
    • GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
    • GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14, mingw: 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
  • Android:
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4, 6.2
  • FreeBSD:
    • Clang: 3.8
    • Clang, C++11: 3.8
    • Clang, C++14: 3.8
    • Clang, C++1z: 3.8
  • QNX:
    • QCC: 4.4.2
  • SunOS:
    • Oracle Solaris Studio: 12.5
    • Oracle Solaris Studio, C++11: 12.5

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.8.1, 3.9.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
    • Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
    • Clang, C++1z: 3.9.1, 4.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
    • GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
    • GCC, C++1z: 6.2.0
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0, 17.0
  • OS X:
    • Apple Clang: 7.0.2
  • Windows:
    • GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.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, 6.2
  • FreeBSD:
    • Clang, C++98: 3.8
    • Clang, C++11: 3.8
    • Clang, C++14: 3.8
    • Clang, C++1z: 3.8
  • QNX:
    • QCC: 4.4.2
  • SunOS:
    • Oracle Solaris Studio: 12.5
    • Oracle Solaris Studio, C++11: 12.5

Acknowledgements

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

Dependencies

There were 7 dependencies added (in 6 libraries) and 3 dependencies removed (in 3 libraries) this release.

Contributors

Oliver Kowalke
Oliver Kowalke
Contributor
John Maddock
John Maddock
Contributor
Adam Wulkiewicz
Adam Wulkiewicz
Contributor
Peter Dimov
Peter Dimov
Contributor
Daniel James
Daniel James
Contributor
Glen Fernandes
Glen Fernandes
Contributor
Edward Diener
Edward Diener
Contributor
Marshall Clow
Marshall Clow
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Rene Rivera
Rene Rivera
Contributor
Bjorn Reese
Bjorn Reese
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Robert Ramey
Robert Ramey
Contributor
Vissarion Fisikopoulos
Vissarion Fisikopoulos
Contributor
Raffi Enficiaud
Raffi Enficiaud
Contributor
Hans Dembinski
Hans Dembinski
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Beman Dawes
Beman Dawes
Contributor
Surogate
Contributor
Emil Dotchevski
Emil Dotchevski
Contributor
Stephen Kelly
Stephen Kelly
Contributor
Marcel Raad
Marcel Raad
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Mike Maximoff
Mike Maximoff
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Jorge Lodos
Jorge Lodos
Contributor
İbrahim Gökhan YANIKLAR
İbrahim Gökhan YANIKLAR
Contributor
Vladimir Batov
Vladimir Batov
Contributor
Paul A. Bristow
Paul A. Bristow
Contributor
Chris Glover
Chris Glover
Contributor
Nick
Nick
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
Brandon Kohn
Brandon Kohn
Contributor
Tobias Reh
Tobias Reh
Contributor
Jonathan Turkanis
Jonathan Turkanis
Contributor
Steven Watanabe
Steven Watanabe
Contributor
Daniela Engert
Daniela Engert
Contributor
Daniel Krügler
Daniel Krügler
Contributor
zerotypos-found
zerotypos-found
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
spreadsort
spreadsort
Contributor
Matias Fontanini
Matias Fontanini
Contributor
Wei-Ming Yang
Wei-Ming Yang
Contributor
Mats Taraldsvik
Mats Taraldsvik
Contributor
akumta
akumta
Contributor
equal-l2
equal-l2
Contributor
Nick Vrvilo
Nick Vrvilo
Contributor
Norbert Wenzel
Norbert Wenzel
Contributor
Minmin Gong
Minmin Gong
Contributor
sehe
sehe
Contributor
Michel Morin
Michel Morin
Contributor
Andrzej Krzemieński
Andrzej Krzemieński
Contributor
Kohei Takahashi
Kohei Takahashi
Contributor
Timo Sandmann
Timo Sandmann
Contributor
Oliver Keyes
Oliver Keyes
Contributor
Tadeu Manoel
Tadeu Manoel
Contributor
Aaron Gorenstein
Aaron Gorenstein
Contributor
Christian Neumüller
Christian Neumüller
Contributor
6recetru
6recetru
Contributor
Gennadiy Rozental
Gennadiy Rozental
Contributor
al3xst
al3xst
Contributor
Daryle Walker
Daryle Walker
Contributor
Jonathan Wakely
Jonathan Wakely
Contributor
Joachim Faulhaber
Joachim Faulhaber
Contributor
SPKorhonen
SPKorhonen
Contributor
Joel Nordell
Joel Nordell
Contributor
ibrahim.yaniklar
Contributor
Nathan Wilson
Nathan Wilson
Contributor
O01eg
O01eg
Contributor
Rogerio dos Santos
Rogerio dos Santos
Contributor
Niklas Angare
Niklas Angare
Contributor
Nicholas Musolino
Contributor
Adam Majer
Adam Majer
Contributor
David Strauss
David Strauss
Contributor
Joel Falcou
Joel Falcou
Contributor
Ashish Sadanandan
Ashish Sadanandan
Contributor
nekko1119
nekko1119
Contributor
Christoph Müllner
Christoph Müllner
Contributor
Tuukka Norri
Tuukka Norri
Contributor
Alex Henrie
Alex Henrie
Contributor
Akira Takahashi
Akira Takahashi
Contributor
Vatsal Shah
Vatsal Shah
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Mateusz Łoskot
Mateusz Łoskot
Contributor
K. Noel Belcourt
K. Noel Belcourt
Contributor
loonycyborg
loonycyborg
Contributor
scopeInfinity
scopeInfinity
Contributor
Vladimir Prus
Vladimir Prus
Contributor
slymz
slymz
Contributor
Julien Schueller
Julien Schueller
Contributor
Sergiu Deitsch
Sergiu Deitsch
Contributor
Paul Groke
Paul Groke
Contributor