Boost
Releases
arrow_drop_down
Prior Release (1.66.0)
December 13, 2017
Dependencies
There were 6 dependencies added (in 6 libraries) and 4 dependencies removed (in 3 libraries) this release.
Platform File SHA256 Hash
Unix boost_1_66_0.tar.bz2 57218....25ca9
boost_1_66_0.tar.gz bd0df....fcf60
Windows boost_1_66_0.7z 59638....44628
boost_1_66_0.zip e1c55....15aad
Windows (Binary) boost_1_66_0-bin-msvc-all-32-64.7z f4b32....45867
boost_1_66_0-msvc-10.0-32.exe b36ff....1871d
boost_1_66_0-msvc-10.0-64.exe 89f07....84697
boost_1_66_0-msvc-11.0-32.exe eca55....e797f
boost_1_66_0-msvc-11.0-64.exe c401f....35a8c
boost_1_66_0-msvc-12.0-32.exe d382d....dc381
boost_1_66_0-msvc-12.0-64.exe e45ac....7a412
boost_1_66_0-msvc-14.0-32.exe 79461....15526
boost_1_66_0-msvc-14.0-64.exe 9c9a5....41c1d
boost_1_66_0-msvc-14.1-32.exe 0ce0c....d3b22
boost_1_66_0-msvc-14.1-64.exe 4ae62....ce637
boost_1_66_0-msvc-8.0-32.exe c2ce3....0552c
boost_1_66_0-msvc-8.0-64.exe 73f77....87f9a
boost_1_66_0-msvc-9.0-32.exe cf81d....5a5d3
boost_1_66_0-msvc-9.0-64.exe 6e12d....7db18

Version 1.66.0

December 18th, 2017 13:58 GMT

Documentation

Third Party Downloads

Note about the new Visual Studio release

Visual Studio 15.5 was released too late for us to test this release with it.

New Libraries

  • Beast:
    • Portable HTTP, WebSocket, and network operations using only C++11 and Boost.Asio, from Vinnie Falco.
  • CallableTraits:
    • A spiritual successor to Boost.FunctionTypes, Boost. is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair.
  • Mp11:
    • A C++11 metaprogramming library, from Peter Dimov.

Updated Libraries

  • Asio:
    • Implemented interface changes to reflect the Networking TS (N4656).
      • See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded.
      • The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro.
    • Removed previously deprecated functions.
    • Added support for customised handler tracking.
    • Added reactor-related (i.e. descriptor readiness) events to handler tracking.
    • Added special "concurrency hint" values that may be used to disable locking on a per io_context basis.
    • Enabled perfect forwarding for the first ssl::stream<> constructor argument.
    • Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.)
  • Atomic:
    • Implemented a set of experimental extended atomic operations for integral types:
      • fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value
      • opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value
      • <op>_and_test - atomically applies <op> and returns true if the result is zero. Note: The result of these operations will change to the opposite in Boost 1.67. The code that uses these functions will need to be updated.
      • bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit
    • Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided.
    • Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code.
    • Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library).
  • DateTime:
    • The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
    • Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
  • Fiber:
    • synchronization with CUDA streams
    • synchronization with ROCm/HIP streams
  • Format:
    • Improvements:
      • Accept new conversion specifiers:
        • a: sets flags fixed | scientific (i.e. hexfloat)
        • b: sets flag boolalpha
        • A: same as a plus flag uppercase
        • F: same as f plus flag uppercase
      • 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others).
      • 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others).
      • 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file:
        • helps prevent regressions in between boost releases
        • allows for comparison against snprintf
    • Bugfixes:
      • 36 Safely allow volatile arguments to be used with operator%
      • 4636 Explicit clamping provided to allow MSVC /RTCc to succeed
      • 7477 Fix compatibility with MSVC /Za
      • 10324 Const-correct cast issue resolved
      • 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp
  • Fusion:
    • PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough).
    • PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny).
    • PR#151 Change base of fusion::tuple.
    • PR#153 Fixed compile error with std::array.
    • PR#154 Fixed bugs nesting and copying on c++03.
  • Geometry:
    • Improvements:
      • Add distance for geographic PointLike/AnyGeometry.
    • Bugfixes:
      • Fixes in results of union/intersection/difference which could be incorrect in very complex cases
      • Fixes in validity of union/intersection/difference/buffer
      • Fixes in set and relational operations for non-cartesian coordinate systems.
  • Iterator:
    • next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work.
  • Log:
    • Bug fixes:
      • Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart.
    • See changelog for more details.
  • Math:
    • New Features:
      • Add Gauss and Gauss-Kronrod quadrature routines.
      • Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines.
      • Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines.
  • Multi-index Containers:
    • Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code:
      c.modify(c.begin(),[](auto&){throw 0;});
      
      keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue.
    • Maintenance fixes.
  • Optional:
    • On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions.
    • Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC.
  • PolyCollection:
    • Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection:
      • Stateful allocators are not properly supported.
      • Allocator-extended move construction decays to allocator-extended copy construction.
      • Copy construction crashes if an exception is thrown during element copying.
    • Maintenance fixes.
  • Predef:
    • Improved Windows Universal Platform detection. (from James E. King, III)
    • Add detection for CloudABI with cloudlibc. (from James E. King, III)
    • Various other bug fixes.
  • Regex:
    • Bug fixes:
      • Numerous small fixes for security issues discovered by de-fuzzing.
  • Stacktrace:
    • Now works out-of-the-box on MinGW-w64.
    • Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info.
  • Thread:
    • Bugs Fixes
      • #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig
      • #12730 windows - static threads library is incompatible with MSVC 2017 RC
      • #12976 Boost Thread Executors documentation mistakes
      • #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined
      • #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete
      • #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library
      • #13163 boost::detail::heap_new does not have a variadic variant
      • #13226 getpagesize() is deprecated since 199506L
      • #132 VS 2017.4 Preview deadlocks on Test 10964
      • #133 windows - Spurious timing test failures on windows
      • #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe
      • #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock
      • #136 VS 2017.4 Preview test_scheduler_p.exe deadlock
      • #137 VS 2017.4 Preview executor_ex.exe deadlock
      • #143 Failures on msvc-12.0
      • #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS
    • New Experimental Feature
      • #116 [Proposal] Add APIs for deferred set_value/exception
  • Utility:
    • boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code.
  • Uuid:
    • Improvements:
      • 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm.
      • 34 Added RFC-4122 namespaces in boost::uuids::ns.
    • Bugfixes:
      • 8630 11482 12253 Various deficiencies in string_generator were resolved.
      • 10665 name_generator::operator() is now const, matching docs.
      • Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location.
  • Variant:
    • boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.0, 4.0.1, 5.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.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.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0
    • GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1
    • GCC, C++17: 7.2.0
    • Intel: 18.0
  • OS X:
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.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
    • 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: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0
  • QNX:
    • QCC, C++0x: 4.4.2
    • QCC, C++11: 4.7.3

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.8.1, 4.0.1, 5.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.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.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0
    • GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0
    • GCC, C++17: 7.2.0
    • Intel: 18.0
  • OS X:
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.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, 7.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: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0
  • QNX:
    • QCC, C++0x: 4.4.2
    • QCC, C++11: 4.7.3

Acknowledgements

Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release.

Contributors

John Maddock
John Maddock
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Peter Dimov
Peter Dimov
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Edward Diener
Edward Diener
Contributor
James E. King III
James E. King III
Contributor
Daniel James
Daniel James
Contributor
Klemens Morgenstern
Klemens Morgenstern
Contributor
Adam Wulkiewicz
Adam Wulkiewicz
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
NAThompson
NAThompson
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Kohei Takahashi
Kohei Takahashi
Contributor
Jakub Szuppe
Jakub Szuppe
Contributor
Michel Morin
Michel Morin
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Robert Ramey
Robert Ramey
Contributor
Nick
Nick
Contributor
Vissarion Fisikopoulos
Vissarion Fisikopoulos
Contributor
Daniel Frey
Daniel Frey
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Paul A. Bristow
Paul A. Bristow
Contributor
Rene Rivera
Rene Rivera
Contributor
diplay
diplay
Contributor
Beman Dawes
Beman Dawes
Contributor
Andrzej Krzemieński
Andrzej Krzemieński
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Thorsten Jørgen Ottosen
Thorsten Jørgen Ottosen
Contributor
Daniela Engert
Daniela Engert
Contributor
Lakshay Garg
Lakshay Garg
Contributor
Marshall Clow
Marshall Clow
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Egor Pugin
Egor Pugin
Contributor
Richard Dale
Richard Dale
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Alexander Karzhenkov
Alexander Karzhenkov
Contributor
Dave Abrahams
Dave Abrahams
Contributor
Marcel Raad
Marcel Raad
Contributor
Kyle Lutz
Kyle Lutz
Contributor
Abel Sinkovics
Abel Sinkovics
Contributor
Ronald Garcia
Ronald Garcia
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
rxg
rxg
Contributor
Glen Fernandes
Glen Fernandes
Contributor
Mateusz Łoskot
Mateusz Łoskot
Contributor
SSE4
SSE4
Contributor
Michael Johns
Contributor
Gevorg Voskanyan
Gevorg Voskanyan
Contributor
David Olsen
David Olsen
Contributor
Caleb Dechant
Caleb Dechant
Contributor
Daniel Arndt
Daniel Arndt
Contributor
Thomas Schaub
Contributor
Shinobu Kinjo
Shinobu Kinjo
Contributor
Douglas Gregor
Douglas Gregor
Contributor
Brian Kuhl
Brian Kuhl
Contributor
Jeff Trull
Jeff Trull
Contributor
Julien Schueller
Julien Schueller
Contributor
Janusz Rupar
Janusz Rupar
Contributor
Romain Geissler
Romain Geissler
Contributor
Ed Catmur
Ed Catmur
Contributor
Mark Borgerding
Mark Borgerding
Contributor
Michael Caisse
Michael Caisse
Contributor
Chris Kitching
Chris Kitching
Contributor
Eyas
Eyas
Contributor
Louis Dionne
Louis Dionne
Contributor
Vinnie Falco
Vinnie Falco
Contributor
Jens Maurer
Jens Maurer
Contributor
Gary Furnish
Gary Furnish
Contributor
Yuri Kilochek
Contributor
Arkady Shapkin
Arkady Shapkin
Contributor
Lee Clagett
Lee Clagett
Contributor
Troy D. Straszheim
Troy D. Straszheim
Contributor
Frank Richter
Frank Richter
Contributor
sehe
sehe
Contributor
Takeshi Abe
Takeshi Abe
Contributor
malickf
malickf
Contributor
Gennadiy Rozental
Gennadiy Rozental
Contributor
Nikita Kniazev
Nikita Kniazev
Contributor
Vladimir Prus
Vladimir Prus
Contributor
dmeden
dmeden
Contributor
Bo Gan
Bo Gan
Contributor
Andrii Sydorchuk
Andrii Sydorchuk
Contributor
BenPope
BenPope
Contributor
Alex Henrie
Alex Henrie
Contributor
Alexander 'z33ky' Hirsch
Alexander 'z33ky' Hirsch
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
Krzysztof Trzciński
Krzysztof Trzciński
Contributor
Roki
Roki
Contributor
Thomas Riccardi
Thomas Riccardi
Contributor
VemundH
VemundH
Contributor
Daniel J. Hofmann
Daniel J. Hofmann
Contributor
Stephen Kelly
Stephen Kelly
Contributor
glywk
glywk
Contributor
Zang MingJie
Zang MingJie
Contributor
Benjamin Worpitz
Benjamin Worpitz
Contributor
Alan Somers
Alan Somers
Contributor
Avi Kivity
Avi Kivity
Contributor
Pavel I. Kryukov
Pavel I. Kryukov
Contributor
Jonathan Wakely
Jonathan Wakely
Contributor
Alessandro Marzialetti
Alessandro Marzialetti
Contributor
Will Sackfield
Will Sackfield
Contributor
Austin Beer
Austin Beer
Contributor
Miutsuru kariya
Miutsuru kariya
Contributor
Friedrich von Never
Friedrich von Never
Contributor
Paul Groke
Paul Groke
Contributor
Sergey Shandar
Sergey Shandar
Contributor
Chris Glover
Chris Glover
Contributor
Sergei Krivonos
Sergei Krivonos
Contributor
Brian Minard
Brian Minard
Contributor
Gregor Jasny
Gregor Jasny
Contributor
nre
nre
Contributor
Dmitry Marakasov
Dmitry Marakasov
Contributor
Chris Needham
Chris Needham
Contributor
Tristan Carel
Tristan Carel
Contributor
Max Kellermann
Max Kellermann
Contributor
Denis Davydov
Denis Davydov
Contributor
Reimar Döffinger
Reimar Döffinger
Contributor
Marvin Schmidt
Marvin Schmidt
Contributor
Brandon Kohn
Brandon Kohn
Contributor
Raffi Enficiaud
Raffi Enficiaud
Contributor
Mathias Gaunard
Mathias Gaunard
Contributor
Aleksey Gurtovoy
Contributor
Minmin Gong
Minmin Gong
Contributor
Agustin Berge
Agustin Berge
Contributor
Joachim Faulhaber
Joachim Faulhaber
Contributor