Version 1.59.0
Version 1.59.0
August 13th, 2015 15:23 GMT
Platform | File |
---|---|
unix | boost_1_59_0.tar.bz2 |
boost_1_59_0.tar.gz | |
windows | boost_1_59_0.7z |
boost_1_59_0.zip |
Known Issue
New Libraries
-
Convert: An extendible and configurable type-conversion framework, from Vladimir Batov.
-
Coroutine2: (C++14) Coroutine library, from Oliver Kowalke.
Updated Libraries
-
Container:
-
GitHub #26: Fix bug in stable_vector::capacity(). Thanks to timsong-cpp/Arindam Mukerjee.
-
GitHub #27: fix stable_vector's index_of's doxygen comment. Thanks to kariya-mitsuru.
-
-
Fusion:
-
Add a new concept,
Unbounded Sequence
for sequence andUnbounded Iterator
for iterator. Currently,Unbounded Sequence
affects the behaviour offusion::(value_)at(_c)
andfusion::(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) -
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)
-
-
-
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 havetypeindex::type_index
attached as the description of the offending type. The type was previously identified bytype_info_wrapper
. -
Boost.Exception
type_info_info
error information now containstypeindex::type_index
instead oftype_info_wrapper
. -
attribute_value::get_type()
now returnstypeindex::type_index
instead oftype_info_wrapper
. User-defined attribute value implementations should be similarly changed (theattribute_value::impl::get_type()
virtual method now also returnstypeindex::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()
andattribute_value_set
constructor in some cases. (#11190)
-
-
See changelog for more details.
-
-
Move:
-
Changed
unique_ptr
's converting constructor taking the source by value in C++03 compilers to allow simple conversions from convertible types returned by value.
-
-
Multi-index Containers:
-
Added ranked indices.
-
Maintenance fixes.
-
-
Predef:
-
Fix many problems with
predef_check
functionality. -
Update SunPro detection to accomodate latest version of compiler from Oracle.
-
Add
and
andor
logical operators forpredef_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:
-
Major new features
-
BOOST_TEST
generic assertion -
data driven test cases
-
test units can now have attributes for finer control over tests behavior (logical grouping, test dependencies, test enabling/disabling)
-
CLI learned
colour_output
andlist_content
, extended unit test filtering (negation, labels) -
refactored and rewritten documentation using quickbook
-
-
Addressed issues:
-
-
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.
-
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.