Boost
Releases
arrow_drop_down
Prior Release (1.59.0)
August 11, 2015
Dependencies
There were 12 dependencies added (in 6 libraries) and 3 dependencies removed (in 3 libraries) this release.
Platform File SHA256 Hash
Unix boost_1_59_0.tar.bz2 727a9....241ca
boost_1_59_0.tar.gz 47f11....2baac
Windows boost_1_59_0.7z 2bc99....79331
boost_1_59_0.zip 80cf8....9d4e7

Version 1.59.0

August 13th, 2015 15:23 GMT

Documentation

Known Issue

  • Boost.Log contains has a regression that prevents some of the logging statements from compiling (#11549). This is fixed in git.

New Libraries

  • Convert:
    • An extendible and configurable type-conversion framework, from Vladimir Batov.
  • Coroutine2:
    • (C++14) Coroutine library, from Oliver Kowalke.

Updated Libraries

  • Container:
  • Context:
    • #11223 check support for std::integer_sequence
    • execution_context uses internally Windows Fibers with BOOST_USE_WINFIBERS
    • support of assember for MinGW on Windows (32bit)
  • Coroutine:
    • #10978 remove additional semicolons
    • #11230 coroutine_error returns dangling exception message pointer
    • #11234 doesn't compile when used with boost::range::algorithms
    • #11356 coroutines segfaults with BOOST_USE_SEGMENTED_STACKS
  • Fusion:
    • Add a new concept, Unbounded Sequence for sequence and Unbounded Iterator for iterator. Currently, Unbounded Sequence affects the behaviour of fusion::(value_)at(_c) and fusion::(value_)at_key. Unbounded Iterator has no effect (reserved for future release). For more details, see Unbounded Sequence and Unbounded Iterator. (pull-request 85)
    • Support C++11 variadic templates for fusion::list. (pull-request 84)
    • Fixed bugs:
      • Fix missing include <utility>. (#11161)
      • Revert some constexpr support, regression in 1.58.0. (#11211, #11267)
      • Fix compile error with fold due to missing include. (#11249)
      • Fix compile error with adapting an empty struct, regression in 1.58.0. (#11269)
      • Remove use of obsolete (and incorrect) workaround for sequence comparison, it affects MSVC-8 and earlier. (pull-request 78)
      • Fix compile error while copying a sequece which derived from fusion::list, regression in 1.58.0. (pull-request 87)
      • Fix compile error on copying a fusion::tuple. (#11140)
      • Add workarounds for GCC 4.6 with constexpr. (#11517)
  • Geometry:
    • Additional functionality:
      • Added rtree const_iterator, begin(), end() and the support for Boost.Range.
      • The support for C++11 std::initializer_list in geometries models.
      • Disjoint and intersects support the following geometry combinations: multipoint/linestring, multipoint/multilinestring.
      • Added relate() and relation() algorithms.
      • Intersection has been implemented for combinations of pointlike and linear geometries
      • Added implementation for difference(pointlike, linear)
      • New algorithm is_empty, returning true if the geometry represents the empty set
      • The envelope algorithm supports pointlike and linear geometries in the spherical equatorial coordinate system
      • The envelope algorithm supports pointlike geometries in the geographic coordinate system
    • Improvements:
      • Upgraded rtree const_query_iterator category to ForwardIterator.
      • Buffer performance of buffers around multi-points is improved significantly
    • Breaking changes:
      • buffer side strategy now returns error_code instead of bool. If you have your own custom side strategy, it should be adapted
    • Solved tickets:
      • #11113 Support easy enumeration of all elements with BOOST_FOREACH
      • #11232 Feature request - relate()
      • #11236 Invalid result of centroid() for integer coordinate type
      • #11268 Regression in boost::geometry::intersection interface with multi_linestring and box -- does not compile on 1.57 VS 1.55
      • #11332 Assertion failure in buffer for extreme coordinate differences
      • #11346 Segment iterator does not work with ranges returning values instead of references
      • #11436 sym_difference(py1, py2, mpy) returns invalid multipolygon
    • Bugfixes:
      • Buffer: use a more robust way to calculate the side of an intersection, this fixes several errors in buffer generation
      • Fix in selection of segment to which calculate from IP from, in intersection of two segments. Now is selected the one close to a segment-point point, or else the one on the shortest segment. This avoids (rarely occuring) generation of tiny triangles making output polygons invalid
      • In rescaling round instead of truncate to the integer grid (this fix and the previous mentioned can have some impact on output geometries)
      • Fix potential infinite loop in detail::has_spikes (the loop can happen if the points passed have NaN coordinates)
  • Interprocess:
  • Intrusive:
    • Implemented map and multimap-like interfaces.
    • Refactored hashtable containers to reduce template instantiations.
  • Lexical Cast:
    • Fixed warnings
    • Simplified metaprogramming (thanks to Edward Diener)
  • Log:
    • General changes:
      • On systems with symbol visibility support (e.g. Linux) the library is now built with all internal symbols hidden.
      • Breaking change: The library has been ported to Boost.TypeIndex for its underlying type info management tool. This affected the following public interfaces:
        • invalid_type exceptions thrown by the library now have typeindex::type_index attached as the description of the offending type. The type was previously identified by type_info_wrapper.
        • Boost.Exception type_info_info error information now contains typeindex::type_index instead of type_info_wrapper.
        • attribute_value::get_type() now returns typeindex::type_index instead of type_info_wrapper. User-defined attribute value implementations should be similarly changed (the attribute_value::impl::get_type() virtual method now also returns typeindex::type_index).
      • type_info_wrapper component has been deprecated and will be removed in future releases. Boost.TypeIndex is recommended as a replacement.
      • Removed the previously deprecated headers: boost/log/utility/intrusive_ref_counter.hpp, boost/log/utility/explicit_operator_bool.hpp, boost/log/utility/empty_deleter.hpp.
      • Added support for building the library for OpenBSD. (#11446)
      • Improved internal implementation of the event synchronization primitive used for asynchronous logging. (#11398)
    • Bug fixes:
      • Fixed incorrect behavior of attribute_value_set::insert() and attribute_value_set constructor in some cases. (#11190)
    • See changelog for more details.
  • Move:
  • Multi-index Containers:
  • Predef:
    • Fix many problems with predef_check functionality.
    • Update SunPro detection to accomodate latest version of compiler from Oracle.
    • Add and and or logical operators for predef_check expression on the Boost Build side.
    • Fix BOOST_ARCH_PARISC to correctly spelled name.
    • Fix MAKE_YYYYM macros to correctly limit the month.
  • Program Options:
    • Fix compilation errors, missing dllexport and warnings with MSVC and MinGW (Daniela Engert, Marcel Raad).
    • Fix unintialized fields (Zoey Greer).
    • Stop options with implicit value from consuming separate tokens (Michael John Decker).
    • Make multitoken limit be max int, not 32K (Hans Hohenfeld).
    • Code formatting and documentation fixes (Jurko Gospodnetić, Lauri Nurmi).
    • Minimal support for no-rtti build (Minmin Gong)
    • Don't increment environment pointer past the end (Vladimir Prus)
  • Property Tree:
    • A new JSON parser with full Unicode support.
    • Breaking change: The new parser does not support comments or string concatenation in JSON files. These features were non-standard extensions of the old parser but their removal could break code which was relying on them.
  • Boost.Test v3:
  • TypeIndex:
    • Removed dependencies on some of the Boost libraries to improve compilation times and modularity
    • Warnings fixed in tests and other maintainance improvements were done.
  • Variant:
    • Fixed missing include in element_index.hpp #11196, #11283
    • Fixed boost::apply_visitor usage with C++14 and const references #11251, #11285
    • Relaxed compile time checks for all the get<reference>(variant_variable) functions (thanks to Nicolas Cornu)

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.4
    • Clang, C++14: 3.6
    • GCC: 4.4.7, 4.8.2, 4.9.3
    • GCC, C++11: 4.4.7
    • GCC, C++14: 4.9.3
    • Intel: 15.0
  • Windows:
    • Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
  • Android:
    • Clang: 3.6
    • GCC: 4.8, 4.9
  • SunOS:
    • Sun: 6.0
  • QNX:
    • QCC: 4.4.2

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.1, 3.2, 3.3, 3.4
    • Clang, C++14: 3.6, 3.7
    • GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 5.1.0, 6.0.0
    • GCC, C++11: 4.4.7
    • GCC, C++14: 4.9.3, 5.1.1
    • Intel: 15.0
  • Android:
    • Clang: 3.6
    • GCC: 4.8, 4.9
  • FreeBSD:
    • Clang: 3.4.1
    • GCC: 4.8.5, 5.1.0, 6.0.0

Acknowledgements

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

Contributors

Raffi Enficiaud
Raffi Enficiaud
Contributor
Gennadiy Rozental
Gennadiy Rozental
Contributor
Adam Wulkiewicz
Adam Wulkiewicz
Contributor
Menelaos Karavelas
Menelaos Karavelas
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Joel de Guzman
Joel de Guzman
Contributor
John Maddock
John Maddock
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Edward Diener
Edward Diener
Contributor
Ralf W. Grosse-Kunstleve
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Rene Rivera
Rene Rivera
Contributor
Andrzej Krzemieński
Andrzej Krzemieński
Contributor
Dave Abrahams
Dave Abrahams
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
Alain Miniussi
Alain Miniussi
Contributor
Robert Ramey
Robert Ramey
Contributor
Mario Lang
Mario Lang
Contributor
Steven Watanabe
Steven Watanabe
Contributor
Kohei Takahashi
Kohei Takahashi
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Mario Mulansky
Mario Mulansky
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Vladimir Prus
Vladimir Prus
Contributor
Thomas Bernard
Thomas Bernard
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Stephen Kelly
Stephen Kelly
Contributor
Beman Dawes
Beman Dawes
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
Daniel James
Daniel James
Contributor
K. Noel Belcourt
K. Noel Belcourt
Contributor
akumta
akumta
Contributor
Peter Dimov
Peter Dimov
Contributor
Marshall Clow
Marshall Clow
Contributor
Marcel Raad
Marcel Raad
Contributor
Ahmed Charles
Ahmed Charles
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
Glen Fernandes
Glen Fernandes
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
Troy D. Straszheim
Troy D. Straszheim
Contributor
Lauri Nurmi
Lauri Nurmi
Contributor
jamie
Contributor
Neil Groves
Neil Groves
Contributor
Bruno Dutra
Bruno Dutra
Contributor
Sebastian Redl
Sebastian Redl
Contributor
Jessica Hamilton
Jessica Hamilton
Contributor
Damien Buhl alias daminetreg
Damien Buhl alias daminetreg
Contributor
Nikolay Mladenov
Nikolay Mladenov
Contributor
Eric Niebler
Eric Niebler
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Bryce Adelstein-Lelbach
Bryce Adelstein-Lelbach
Contributor
Deniz Bahadir
Deniz Bahadir
Contributor
David Deakins
David Deakins
Contributor
Takeshi Abe
Takeshi Abe
Contributor
Júlio Hoffimann
Júlio Hoffimann
Contributor
Jurko Gospodnetić
Jurko Gospodnetić
Contributor
Paul A. Bristow
Paul A. Bristow
Contributor
Agustin Berge
Agustin Berge
Contributor
Nasos
Nasos
Contributor
Karsten Ahnert
Karsten Ahnert
Contributor
Gennaro Prota
Contributor
Mats Taraldsvik
Mats Taraldsvik
Contributor
Marek Kurdej
Marek Kurdej
Contributor
Michael A. Jackson
Michael A. Jackson
Contributor
Gottfried Ganßauge
Contributor
spreadsort
spreadsort
Contributor
Lee Clagett
Lee Clagett
Contributor
drivehappy
drivehappy
Contributor
David Seery
David Seery
Contributor
Michael John Decker
Michael John Decker
Contributor
Benjamin Roland Buch
Benjamin Roland Buch
Contributor
Zoey Greer
Zoey Greer
Contributor
Denis Trüby
Denis Trüby
Contributor
Markus Schöpflin
Contributor
Daniela Engert
Daniela Engert
Contributor
Felix Gruber
Felix Gruber
Contributor
VemundH
VemundH
Contributor
MaksimMyasnikov
MaksimMyasnikov
Contributor
Noel Belcourt
Noel Belcourt
Contributor
Douglas Gregor
Douglas Gregor
Contributor
Catherine Morton
Catherine Morton
Contributor
Sergiu Dotenco
Sergiu Dotenco
Contributor
rajaditya-m
rajaditya-m
Contributor
Sebastien Loriot
Sebastien Loriot
Contributor
Mateusz Łoskot
Mateusz Łoskot
Contributor
Michal Pavelcik
Michal Pavelcik
Contributor
Tomasz Śniatowski
Contributor
Anton Polukhin
Contributor
Alexandre Hamez
Alexandre Hamez
Contributor
Alex Henrie
Alex Henrie
Contributor
Peter Martini
Peter Martini
Contributor
Romain Geissler
Romain Geissler
Contributor
Thomas Trummer
Thomas Trummer
Contributor
Hans Hohenfeld
Hans Hohenfeld
Contributor
Andrii Sydorchuk
Andrii Sydorchuk
Contributor
Niall Douglas
Niall Douglas
Contributor
Giacomo Drago
Giacomo Drago
Contributor
Joel Falcou
Joel Falcou
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Richard Thomson
Richard Thomson
Contributor
Patrick J. LoPresti
Patrick J. LoPresti
Contributor
black-tomato
black-tomato
Contributor
Inseok Lee
Inseok Lee
Contributor
Kazutoshi SATODA
Kazutoshi SATODA
Contributor
timsong-cpp
timsong-cpp
Contributor
Josh Guffin
Josh Guffin
Contributor
Minmin Gong
Minmin Gong
Contributor
Thomas Kent
Thomas Kent
Contributor
Ventre, Brian D.
Ventre, Brian D.
Contributor
Arash
Arash
Contributor
Nicolas Cornu
Contributor
Brandon Kentel
Brandon Kentel
Contributor
Ananth Jasty
Ananth Jasty
Contributor
David Siegel
David Siegel
Contributor
Philippe Daouadi
Philippe Daouadi
Contributor
Baptiste Wicht
Baptiste Wicht
Contributor
Miutsuru kariya
Miutsuru kariya
Contributor
Nate Carlson
Contributor
ja11sop
ja11sop
Contributor
Jeremy W. Murphy
Jeremy W. Murphy
Contributor
David Bellot
David Bellot
Contributor
Maks Naumov
Maks Naumov
Contributor
gnzlbg
gnzlbg
Contributor
Nik Bougalis
Nik Bougalis
Contributor
James Widman
James Widman
Contributor