Boost Website Site Tools Release notes for work in progress boost http://www.boost.org/ en-us Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) Version 1.62.0http://www.boost.org/users/history/version_1_62_0.htmlhttp://www.boost.org/users/history/version_1_62_0.html <div id="version_1_62_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/doc/libs/master/libs/fiber/">Fiber</a>:</span> Framework for userland-threads/fibers, from Oliver Kowalke. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/libs/master/libs/qvm/doc/index.html">QVM</a>:</span> Boost QVM is a generic library for working with quaternions, vectors and matrices of static size with the emphasis on 2, 3 and 4-dimensional operations needed in graphics, video games and simulation applications, from Emil Dotchevski. </div> </li> </ul> </div> <div id="version_1_62_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/doc/libs/master/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12215">#12215</a> all stack corrupted on Windows using default fixedsize_stack </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12242">#12242</a> build issue with Intel C++ compiler for MacOS </div> </li> <li> <div> fix stack unwinding for execution_context_v1 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/libs/master/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12221">#12221</a> coroutine&lt;&gt;::push_type function starts without pushing </div> </li> <li> <div> do not swallow exceptions thrown at coroutine&lt;&gt;::push_type construction </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/libs/master/libs/functional/forward/">Functional/Forward</a>:</span> <ul> <li> <div> Fix C++11 compile error. </div> </li> </ul> </div> </li> <li> <div> <em>TODO</em> </div> </li> </ul> </div> <div id="version_1_62_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> <em>TODO</em> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> <em>TODO</em> </div> </li> </ul> </div> <div id="version_1_62_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <em>TODO</em> </p> </div> Version 1.61.0http://www.boost.org/users/history/version_1_61_0.htmlhttp://www.boost.org/users/history/version_1_61_0.htmlThu, 12 May 2016 21:58:28 -0500 <div id="version_1_61_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/compute/">Compute</a>:</span> Parallel/GPU-computing library </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/dll/">DLL</a>:</span> Library for comfortable work with DLL and DSO. Library provides a portable across platforms way to: <ul> <li> <div> load libraries </div> </li> <li> <div> import any native functions and variables </div> </li> <li> <div> make alias names for C++ mangled functions and symbols </div> </li> <li> <div> query libraries for sections and exported symbols </div> </li> <li> <div> self loading and self querying </div> </li> <li> <div> getting program and module location by exported symbol </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/hana/">Hana</a>:</span> A modern C++ metaprogramming library. It provides high level algorithms to manipulate heterogeneous sequences, allows writing type-level computations with a natural syntax, provides tools to introspect user-defined types and much more. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/metaparse/">Metaparse</a>:</span> A library for generating compile time parsers parsing embedded DSL code as part of the C++ compilation process. The library is similar to Spirit, however while parsers built with Spirit parse at run-time, parsers built with Metaparse parse at compile-time. </div> </li> </ul> </div> <div id="version_1_61_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> More tests and maintainance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> <code><span class="identifier">small_vector</span></code> supports more constructors and assignments. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11820">Trac #11820 : <em>"compiler error when using operator[] of map"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11856">Trac #11856 : <em>"pool_resource.cpp error: declaration changes meaning"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11866">Trac #11866 : <em>"small_vector does not have range constructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11867">Trac #11867 : <em>"small_vector should have constructor and assignment operator taking other small_vector"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11912">Trac #11912 : <em>"flat_map use of vector::priv_forward_range_insert_expand_backwards may cause move with same source"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11957">Trac #11957 : <em>"static_vector::max_size() is higher than the capacity"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12014">Trac #12014 : <em>"boost::container::set can not insert const (ref) range"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/33">GitHub #33: <em>Make sure std::string constructor is available</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11246">#11246</a> fails to build for mingw because of undefined symbols </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11365">#11365</a> execution_context.hpp gives errors when building with VS2015RC </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11652">#11652</a> checking __cpp_lib_integer_sequence </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11946">#11946</a> crashes on x86_64/MinGW </div> </li> <li> <div> fcontext_t: no longer part of public API </div> </li> <li> <div> support for WinFiber API removed </div> </li> <li> <div> execution_context: relaxed to C++11 </div> </li> <li> <div> execution_context: type-safe transfer of data </div> </li> <li> <div> execution_context: execute function on top of stack </div> </li> <li> <div> execution_context: improved performance </div> </li> <li> <div> execution_context: static member-fn <code><span class="identifier">current</span><span class="special">()</span></code> removed </div> </li> <li> <div> execution_context: new call semantic </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> attribute related to FPU-env removed </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> attribute related to FPU-env removed </div> </li> <li> <div> improved performance </div> </li> <li> <div> relaxed to C++11 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Mitigate massive warnings about use of <code><span class="identifier">BOOST_PP_IS_EMPTY</span></code> on MSVC8. <a href="https://svn.boost.org/trac/boost/ticket/11157">#11157</a> </div> </li> <li> <div> Container's conversion ctor and SFINAE. <a href="https://svn.boost.org/trac/boost/ticket/11766">#11766</a> </div> </li> <li> <div> Drop trailing <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">void_</span></code> support from C++11 <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>. <a href="https://github.com/boostorg/fusion/pull/120">pull-request 120</a> </div> </li> <li> <div> Workarounds for GCC 4.0 and 4.1 ICE. <a href="https://svn.boost.org/trac/boost/ticket/5808">#5808</a> <a href="https://svn.boost.org/trac/boost/ticket/7229">#7229</a> </div> </li> <li> <div> Workaround for ambiguous call of <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">convert</span></code> on GCC 3.4. <a href="https://github.com/boostorg/fusion/pull/130">pull-request 130</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality:</em> <ul> <li> <div> Support within and covered_by for Box/Box in spherical and geographic coordinate systems. </div> </li> </ul> </div> </li> <li> <div> <em>Improvements:</em> <ul> <li> <div> Overlay: handle_tangencies replaced by clusters, fixing many cases with colocated turns </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9162">#9162</a> Invalid result of relational operations for non-cartesian Point/Areal. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10866">#10866</a> union_ doesn't work in 1.56 and 1.57. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11018">#11018</a> Invalid geometry intersection </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11576">#11576</a> Intersection gives wrong results. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11637">#11637</a> Unused parameter warning. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11725">#11725</a> union_ fails to create holes </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11789">#11789</a> Assertion failure or invalid result of set operations for spherical_equatorial coordinate system. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11917">#11917</a> Andoyer distance strategy returns 0 for antipodal points (default geographic distance). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11928">#11928</a> Improvement of the accuracy of surveyor area strategy. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11966">#11966</a> Compilation error in svg() for box and non-int coordinate type. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11984">#11984</a> union_() generates self-intersecting polygon </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11987">#11987</a> rtree::remove() not compiling for geographic CS. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12000">#12000</a> Uninitialized reference in (unused) constructor of relate's mask_handler. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12106">#12106</a> Invalid assertion failure in envelope() for non-cartesian very short segments. </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Fix intersects and disjoint for Segment/Box in cartesian coordinate system when Segment is parallel to Box's face. </div> </li> <li> <div> Fix relation operations for Point/Areal in spherical and geographic coordinate systems for edge cases. </div> </li> <li> <div> Fix intersects and disjoint for Point/Box and Box/Box in spherical and geographic coordinate systems for some cases. </div> </li> <li> <div> Fix within and covered_by for Point/Box in spherical and geographic coordinate systems for some cases. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/23">GitHub Pull #23 (<em>"Fixed case sensetive for linux mingw"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11832">Boost Trac #11832: <em>clang-cl + boost intrusive = miscompile</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11865">Boost Trac #11865: <em>Intrusive list explicit ctor error with Clang 3.6 (C++11/14)</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11992">Boost Trac #11992: <em>Add an overload of insert_check taking a key_type</em></a> </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/19">GitHub Pull #19: <em>ebo_functor_holder: compile fix for copy constructor</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed Sun Studio related issues </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_ref</span></code> and its specializations is deprecated; users are encouraged to switch to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_view</span></code>. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_ref</span></code> will be removed in future releases. </div> </li> <li> <div> Added support for limiting the number of stored log files in the target directory of the file collector. Thanks to Erich Keane for the patch. (<a href="https://svn.boost.org/trac/boost/ticket/8746">#8746</a>) </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed various compilation problems for Windows CE. </div> </li> <li> <div> Fixed compilation problems on Solaris. </div> </li> <li> <div> Added a workaround for MSVC-10 generating broken code for formatters in some cases. (<a href="https://svn.boost.org/trac/boost/ticket/12025">#12025</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Polynomial arithmetic added to tools. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Experimental: asymptotically optimal bufferless merge and sort algorithms: adaptive_merge and adaptive_sort. </div> </li> <li> <div> Fixed bug: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11758">Trac #11758: <em>"BOOST_MOVABLE_BUT_NOT_COPYABLE doesn't reset private access with rvalue ref version"</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Fixed bug in stream input for integer types, see <a href="https://svn.boost.org/trac/boost/ticket/11857">#11857</a>. </div> </li> <li> <div> Fixed some ambiguous conversions involving expression templates see <a href="https://svn.boost.org/trac/boost/ticket/11922">#11922</a>. </div> </li> <li> <div> Add expression template aware min/max overloads see <a href="https://svn.boost.org/trac/boost/ticket/11149">#11149</a>. </div> </li> <li> <div> Fix bug in right shifting negative small integers in cpp_int see <a href="https://svn.boost.org/trac/boost/ticket/11999">#11999</a>. </div> </li> <li> <div> Use memmove for bitshifts in cpp_int when possible see <a href="https://svn.boost.org/trac/boost/ticket/9233">#9233</a>. </div> </li> <li> <div> Use memcpy for data import into cpp_int where possible, see <a href="https://svn.boost.org/trac/boost/ticket/9235">#9235</a>. </div> </li> <li> <div> Changed <code><span class="identifier">cpp_bin_float</span><span class="special">.</span><span class="identifier">convert_to</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span></code> to a function template rather than proceding via <code><span class="keyword">long</span> <span class="keyword">double</span></code> to avoid double-rounding bug, see <a href="https://svn.boost.org/trac/boost/ticket/12039">#12039</a>. </div> </li> <li> <div> Fixed conversions from NaN's and Infinities, see <a href="https://svn.boost.org/trac/boost/ticket/12112">#12112</a>. </div> </li> <li> <div> Enabled better support for Clang on Windows. </div> </li> <li> <div> Fixed handling of NaN's and Infinities in basic arithmetic for cpp_dec_float and cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12090">#12090</a>. </div> </li> <li> <div> Fixed fencepost error in cpp_bin_float subtraction. </div> </li> <li> <div> Fixed double-rounding in conversion to float routines for cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12039">#12039</a>. </div> </li> <li> <div> Make float128 denorm aware, see <a href="https://svn.boost.org/trac/boost/ticket/12075">#12075</a>. </div> </li> <li> <div> Allow the library and tests to be used without exception handling support, see <a href="https://svn.boost.org/trac/boost/ticket/12070">#12070</a>. </div> </li> <li> <div> Fixed buggy comparison operator overloads for boost::rational. </div> </li> <li> <div> Added some workarounds for Oracle C++. </div> </li> <li> <div> Fixed some missing typecasts for cases where cpp_int's limb_type is wider than unsigned. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code> is specialized for reference parameters. This addresses a couple of issues: <ul> <li> <div> the <code><span class="keyword">sizeof</span></code> of optional reference is that of a pointer, </div> </li> <li> <div> some bugs connected to copying optional references are gone, </div> </li> <li> <div> all run-time bugs caused by incorrect reference binding on some compilers are now turned into compile-time errors, </div> </li> <li> <div> you can swap optional references: it is like swapping pointers: shalow, underlying objects are not affected, </div> </li> <li> <div> optional references to abstract types work. </div> </li> </ul> </div> </li> <li> <div> Documented nested typedefs (<a href="https://svn.boost.org/trac/boost/ticket/5193">Trac #5193</a>). </div> </li> <li> <div> Made the perfect-forwarding constructor SFINAE-friendly, which fixes <a href="https://svn.boost.org/trac/boost/ticket/12002">Trac #12002</a>. However, this only works in the newer platforms that correctly implement C++11 <code><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Fixed <a href="https://svn.boost.org/trac/boost/ticket/10445">Trac #10445</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Change to lockfree implementation of memory cache, see <a href="https://github.com/boostorg/regex/pull/23">PR#23</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.2 see the '<a href="http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/change_log.html">Change log</a>' section for details. </div> </li> <li> <div> New features <ul> <li> <div> dataset driven test-cases learned to support fixtures and variadic number of arguments </div> </li> <li> <div> dataset driven test-cases sample types now honor move semantics </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6767">#6767</a>, <a href="https://svn.boost.org/trac/boost/ticket/8905">#8905</a>, <a href="https://svn.boost.org/trac/boost/ticket/9443">#9443</a>, <a href="https://svn.boost.org/trac/boost/ticket/11854">#11854</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11887">#11887</a>, <a href="https://svn.boost.org/trac/boost/ticket/11889">#11889</a>, <a href="https://svn.boost.org/trac/boost/ticket/11983">#11983</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Maintainance fixes. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_61_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1 </div> </li> <li> <div> Clang, C++14: 3.7.1, 3.8.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.4, 4.8.5, 4.9.3, 5.3.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 5.2.1, 5.3.1 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1, 5.2 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9, 5.3 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.4.1, 3.7 </div> </li> <li> <div> GCC: 4.8.5, 5.3 </div> </li> </ul> </div> </li> <li> <div> Haiku: <ul> <li> <div> GCC, C++11: 4.8.5 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1 </div> </li> <li> <div> Clang, c++14: 3.7.1, 3.8.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.5, 4.9.3, 5.3.0, 5.3.1, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 5.2.1 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> <li> <div> G++: 5.3.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1, 5.2 </div> </li> <li> <div> GCC, cygwin: 5.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9, 5.3, 6.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.41, 3.7.0 </div> </li> <li> <div> GCC, C++11: 4.8.5, 5.3.0, 6.0 </div> </li> <li> <div> GCC: 6.0 </div> </li> </ul> </div> </li> <li> <div> Haiku: <ul> <li> <div> GCC, C++11: 4.8.5 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_61_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.60.0http://www.boost.org/users/history/version_1_60_0.htmlhttp://www.boost.org/users/history/version_1_60_0.htmlThu, 17 Dec 2015 07:52:06 -0800 <div id="version_1_60_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/vmd/">VMD</a>:</span> Variadic Macro Data library, from Edward Diener. </div> </li> </ul> </div> <div id="version_1_60_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Enforced proper alignment of <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code> storage. This should fix possible issues on platforms that support atomic operations on data units larger than the native word size. This may also change binary layout of user's data structures that have <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code> members. </div> </li> <li> <div> Fixed compilation for PowerPC with IBM XL C++ compiler. Corrected memory barriers in PowerPC assembler. </div> </li> <li> <div> Fixed compilation with MSVC-8 for ARM. </div> </li> <li> <div> Fixed compilation with gcc 4.4 for x86-64, when 128-bit atomic operations were used. (<a href="https://svn.boost.org/trac/boost/ticket/10994">#10994</a>) </div> </li> <li> <div> Optimized some gcc assembler blocks for x86/x86-64 to reduce the number of used registers. This may require binutils 2.10 or later. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono - 2.0.5</a>:</span> <ul> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10778">#10778</a> VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10840">#10840</a> Missing std:: qualifier for puts call in test_7868.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10851">#10851</a> Missing std:: qualifier for puts call in time_point_output.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10893">#10893</a> Minor doc typo in Boost.Chrono </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10992">#10992</a> Chrono IO state savers inconsistent with Boost.IO state savers </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10995">#10995</a> duration_put::put_value truncates fractional part </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11006">#11006</a> Impossible to instantiate time_fmt_io_saver due to several errors. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11012">#11012</a> chrono_io v2 fail to compile with boost::chrono::duration&lt; boost::rational&lt;int&gt; &gt; </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Implemented <span class="link">Polymorphic Memory Resources</span>. </div> </li> <li> <div> Add more BOOST_ASSERT checks to test preconditions in some operations (like <code><span class="identifier">pop_back</span></code>, <code><span class="identifier">pop_front</span></code>, <code><span class="identifier">back</span></code>, <code><span class="identifier">front</span></code>, etc.) </div> </li> <li> <div> Added C++11 <code><span class="identifier">back</span></code>/<code><span class="identifier">front</span></code> operations to <code>basic_string</code>. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11627">Trac #11627: <em>"small_vector&lt;T,n&gt;::swap() appears to be broken"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11628">Trac #11628: <em>"small_vector&lt;int,n&gt; iterates over elements in destructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11697">Trac #11697: <em>"Wrong initialization order in tuple copy-constructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11698">Trac #11698: <em>"Missing return statement in static_storage_allocator"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/29">GitHub #29: <em>Doc fixes for flap_map complexity requirements</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/31">GitHub #31: <em>DL_SIZE_IMPL also dereference addr</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11603">#11603</a> typo in PPC32/MACH-O asm </div> </li> <li> <div> support for CYGWIN </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> In symbol demangling tools, added support for gabi++ ABI implementation used in Android NDK. </div> </li> <li> <div> Added a new <code><span class="identifier">enable_if_has_type</span></code> tool for performing SFINAE checks for presence of a nested type. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <em>New Features:</em> <ul> <li> <div> Added functions <a href="http://www.boost.org/libs/filesystem/doc/reference.html#lex-normal"><code><span class="identifier">lexically_normal</span></code></a>, <a href="http://www.boost.org/libs/filesystem/doc/reference.html#lex-relative"><code><span class="identifier">lexically_relative</span></code></a>, <a href="http://www.boost.org/libs/filesystem/doc/reference.html#op-relative"><code><span class="identifier">relative</span></code></a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#weakly_canonical"><code><span class="identifier">weakly_canonical</span></code></a>. Many thanks to Jamie Allsop for his help and perseverance. Resolves tickets <a href="https://svn.boost.org/trac/boost/ticket/1976">#1976</a>, <a href="https://svn.boost.org/trac/boost/ticket/5897">#5897</a>, <a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a>. </div> </li> <li> <div> Class <code><span class="identifier">path</span></code> added types <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">reverse_iterator</span></code></a> and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">const_reverse_iterator</span></code></a>, and added functions <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">rbegin</span><span class="special">()</span></code></a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">rend</span><span class="special">()</span></code></a>. </div> </li> <li> <div> C++11 <code><span class="keyword">noexcept</span></code> supplied as specified in the Filesystem TS if supported by the compiler. </div> </li> <li> <div> C++11 move constructors and move assignments supplied as specified in the Filesystem TS if supported by the compiler. Resolves <a href="https://svn.boost.org/trac/boost/ticket/10291">#10291</a>. </div> </li> <li> <div> Existing functions whose names changed in the Filesystem TS are now supported under both the old and new names. </div> </li> <li> <div> Added <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-size"><code><span class="identifier">size</span><span class="special">()</span></code></a> function to class <code><span class="identifier">path</span></code>. Resolves <a href="https://svn.boost.org/trac/boost/ticket/6874">#6874</a>, Path should have a <code><span class="identifier">size</span><span class="special">()</span></code> member function. </div> </li> </ul> </div> </li> <li> <div> <em>Tickets:</em> <ul> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11733">#11733</a>, Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp, by apply a patch from Idar Tollefsen. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5706">#5706</a>, unique_path Fails on Windows for Temporary User Profiles, by applying <a href="https://github.com/boostorg/filesystem/pull/15">pull request #15</a> from Sebastian Redl to fix a race condition in <code><span class="identifier">unique_path</span></code>. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/10591">#10591</a>, boost::filesystem does not build on iOS 8, by applying a patch submitted by Daniel Seither. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/9454">#9454</a>, Boost Filesystem [library build] not compiling when BOOST_FILESYSTEM_NO_DEPRECATED is defined, by applying a patch submitted by Makesim. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11447">#11447</a>, <code><span class="identifier">__OpenBSD__</span></code> macro name misspelled, by applying a patch submitted by Jasper Lievisse Adriaanse. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11288">#11288</a>, A patch to avoid redundant string allocations, by applying a patch submitted by Yevhen Ivannikov. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/11175">#11175</a>, out-of-date documentation causing users to incorrectly expect that the library could be used with exceptions disabled. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/11166">#11166</a>, by mitigating (i.e. reducing the likelihood of) a possible external file system race in <code><span class="identifier">remove</span><span class="special">()</span></code>. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>, <code><span class="identifier">create_directories</span></code> returns false if the path ends with a slash. Also fix related issues if path contains dot or dot-dot elements, and added test cases to the test suite. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/10766">#10766</a>, <code><span class="identifier">parent_path</span><span class="special">()</span></code> with redundant separator returns wrong value, by adding examples and notes to the reference documentation to show why the returned value is in fact correct, and to provide rationale for that behavior. See <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators">path.itr</a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-decomposition">path.decompose</a> <code><span class="identifier">parent_path</span><span class="special">()</span></code> and <code><span class="identifier">filename</span><span class="special">()</span></code> sections of the reference docs. </div> </li> <li> <div> Close <a href="https://svn.boost.org/trac/boost/ticket/7607">#7607</a>, path should not infer an invisible "." at the end of a path that ends with a slash, as resolved by <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a> and <a href="https://svn.boost.org/trac/boost/ticket/10766">#10766</a>. </div> </li> <li> <div> Close <a href="https://svn.boost.org/trac/boost/ticket/11061">#11061</a>, <a href="https://svn.boost.org/trac/boost/ticket/11062">#11062</a>, Impossible to traverse the path of the reverse iterator, as effectively resolved by the addition of the class <code><span class="identifier">path</span></code> reverse iteration feature. The reference documentation has also been updated with a <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators">note</a> warning about the limitations of class <code><span class="identifier">path</span></code> iterators. </div> </li> </ul> </div> </li> <li> <div> <em>Other fixes:</em> <ul> <li> <div> Clear several spurious GCC warnings. </div> </li> <li> <div> Fix bug in <code><span class="identifier">file_status</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code>: C++ turns an explicit constructor with all arguments except first defaulted into non-explicit single argument constructor. </div> </li> <li> <div> Apply Reference docs editorial cleanups: Use same style sheet as the rest of the documentation. Tweak tab font size. Fix excessively long lines in tables, synopsis. </div> </li> <li> <div> Minor fixes, including pull requests from Jonathan Wakely and Marcel Raad. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> All of fusion containers and generators now support C++11 variadic templates. (<a href="https://github.com/boostorg/fusion/pull/89">pull-request 89</a>, <a href="https://github.com/boostorg/fusion/pull/97">pull-request 97</a>, <a href="https://github.com/boostorg/fusion/pull/100">pull-request 100</a>) <ul> <li> <div> <strong>Special notice for <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code></strong> <ul> <li> <div> Due to implementation limitation, numbered form (i.e. <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vectorN</span></code>) is provided via C++11 aliasing templates and deprecated in C++11 or later. In this case, you should check <code><span class="identifier">BOOST_FUSION_HAS_VARIADIC_VECTOR</span></code> macro and switch usage because some partial specialization would become compile error (e.g. <a href="https://github.com/boostorg/spirit/pull/158/files#diff-250ce096dee927d2b7eb5a4e24afb8cd">pull-request for Spirit</a>). </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">nview</span></code> now support C++11 variadic templates. (<a href="https://github.com/boostorg/fusion/pull/90">pull-request 90</a>) </div> </li> <li> <div> <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">fold</span></code> is now SFINAE-friendly. (<a href="https://github.com/boostorg/fusion/pull/102">pull-request 102</a>) </div> </li> <li> <div> <em>Bug fixes:</em> <ul> <li> <div> The generic fusion sequence convert to a deque fails with a compiler error. (<a href="https://svn.boost.org/trac/boost/ticket/11572">#11572</a>) </div> </li> <li> <div> (doc) Return type of functions incorrect. (<a href="https://svn.boost.org/trac/boost/ticket/3358">#3358</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10803">#10803</a> Union algorithm returning invalid geometry </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11522">#11522</a> Namespace clash in buffer for traits::detail </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11533">#11533</a> Assert failure in rtree caused by a bug in remove() if min elements number is 1 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11607">#11607</a> Private geometry::exception::what() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11709">#11709</a> is_simple segfault </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11710">#11710</a> is_simple - empty geometry logic </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11711">#11711</a> is_simple and is_valid - Points that are NaN or Infinity </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Fix colocations of touching interior ring / exterior ring, where it also touches another polygon </div> </li> <li> <div> Fix removing values from an empty rtree - no effect and 0 returned instead of assertion failure </div> </li> <li> <div> Fix segfault in centroid for multi geometries containing empty single geometries (thanks to Jiri Drbalek) </div> </li> <li> <div> Fix liang_barsky strategy for integral coordinates (thanks to Dane Springmeyer) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Improved <code>offset_ptr</code> performance and removed any undefined behaviour. No special cases needed for different compilers. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11699">Trac #11699 (<em>"Forward declarations of std templates causes stack corruption under Visual Studio 2015"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> <span class="link">Advanced lookup and insertions</span> in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as <code><span class="identifier">key_compare</span></code>, the container must be partitioned in regards to the passed comparison object. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11701">Boost Trac #11701: <em>Regression in boost::intrusive::set::equal_range</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11765">Boost Trac #11765: <em>sgtree.hpp:830: bad if test ?</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed usage of <code><span class="identifier">lexical_cast</span></code> with move only types <a href="https://svn.boost.org/trac/boost/ticket/11570">#11570</a> </div> </li> <li> <div> Fixed crash when <code><span class="identifier">BOOST_LCAST_NO_COMPILE_TIME_PRECISION</span></code> is defined <a href="https://svn.boost.org/trac/boost/ticket/11669">#11669</a> </div> </li> <li> <div> Suppress some of the warning reported in <a href="https://svn.boost.org/trac/boost/ticket/11570">#11570</a> and <a href="https://svn.boost.org/trac/boost/ticket/4946">#4946</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/locale">Locale</a>:</span> <ul> <li> <div> Implemented generic codecvt facet and add general purpose utf8_codecvt facet </div> </li> <li> <div> Added posix locale support for FreeBSD 10.0 and above </div> </li> <li> <div> Fixed issues <a href="https://svn.boost.org/trac/boost/ticket/10017">#10017</a> (sun redefinition on SunOS), <a href="https://svn.boost.org/trac/boost/ticket/11163">#11163</a> (set_default_messages_domain incorrect behavior), <a href="https://svn.boost.org/trac/boost/ticket/11673">#11673</a> build issues </div> </li> <li> <div> Some warning cleanup </div> </li> <li> <div> Fixed tests for latest ICU versions </div> </li> <li> <div> Added workaround for <code><span class="identifier">libc</span><span class="special">++</span></code> issues </div> </li> <li> <div> Added new defines <code><span class="identifier">BOOST_LOCALE_ENABLE_CHAR16_T</span></code> and <code><span class="identifier">BOOST_LOCALE_ENABLE_CHAR32_T</span></code> to enable C++11 <code><span class="keyword">char16_t</span></code> and <code><span class="keyword">char32_t</span></code> instead of deprecated ones </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> On Windows, the configuration macro <code><span class="identifier">BOOST_LOG_USE_WINNT6_API</span></code> is no longer used by the library. The target Windows version should be configured by defining macro <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed compilation for Android using Google NDK. (<a href="https://svn.boost.org/trac/boost/ticket/11559">#11559</a>) </div> </li> <li> <div> Fixed compilation of some logging statements, where the first object to be put into stream is not directly supported by <code><span class="identifier">formatting_ostream</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11549">#11549</a>) </div> </li> <li> <div> Added a workaround for Solaris Studio 12.4, which should fix the compilation of <code><span class="identifier">formatting_ostream</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11545">#11545</a>) </div> </li> <li> <div> Fixed compilation when native <code><span class="keyword">wchar_t</span></code> type is disabled. (<a href="https://svn.boost.org/trac/boost/ticket/11541">#11541</a>) </div> </li> <li> <div> Fixed exporting symbols from the <code><span class="identifier">boost_log_setup</span></code> library on POSIX-like systems. </div> </li> <li> <div> Fixed compilation of character decorators. </div> </li> <li> <div> Added a workaround for incorrect file name generation in text file sink backend, when the file name contains date/time placeholders. (<a href="https://svn.boost.org/trac/boost/ticket/11691">#11691</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/11615">Trac #11615: <em>"Boost.Move should use the qualified name for std::size_t in type_traits.hpp"</em></a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Fixed an interoperability problem with <a href="http://www.qt.io/">Qt</a> due to the optional definition of a macro with name <code><span class="identifier">foreach</span></code> in this framework. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/numeric/odeint">odeint</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Added functionality to throw an exception if too many ODE steps are performed. </div> </li> <li> <div> Added possibility to limit maximal step size in adaptive methods. </div> </li> </ul> </div> </li> <li> <div> several Bug fixes, see https://github.com/headmyshoulder/odeint-v2/issues </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Changed the implementation of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> again. Now it is a const object with internal linkage (as any other tag). This fixes <a href="https://svn.boost.org/trac/boost/ticket/11203">#11203</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Add detection of SIMD hardware. </div> </li> <li> <div> See <a href="http://www.boost.org/libs/predef/doc/html/predef/history.html#predef.history.1_4">history</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.1 see the '<a href="http://www.boost.org/doc/libs/1_60_0/libs/test/doc/html/boost_test/change_log.html">Change log</a>' section for details. </div> </li> <li> <div> New features <ul> <li> <div> Improved Command Line Interface </div> </li> <li> <div> Improved dataset API </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3384">#3384</a>, <a href="https://svn.boost.org/trac/boost/ticket/3897">#3897</a>, <a href="https://svn.boost.org/trac/boost/ticket/6032">#6032</a>, <a href="https://svn.boost.org/trac/boost/ticket/6859">#6859</a>, <a href="https://svn.boost.org/trac/boost/ticket/7257">#7257</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9228">#9228</a>, <a href="https://svn.boost.org/trac/boost/ticket/10317">#10317</a>, <a href="https://svn.boost.org/trac/boost/ticket/11279">#11279</a>, <a href="https://svn.boost.org/trac/boost/ticket/11478">#11478</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11571">#11571</a>, <a href="https://svn.boost.org/trac/boost/ticket/11623">#11623</a>, <a href="https://svn.boost.org/trac/boost/ticket/11624">#11624</a>, <a href="https://svn.boost.org/trac/boost/ticket/11625">#11625</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/">Thread - 4.6.0</a>:</span> <em>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11231">#11231</a> Allow to set continuation future's destructor behavior to non-blocking </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11424">#11424</a> Provide shared_timed_mutex as an alternative name for shared_mutex and deprecate the use of shared_mutex as a timed mutex </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11734">#11734</a> future::then(Cont) should be able to execute the contination on undetermined thread </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11736">#11736</a> Allow to use launch::executor on future::then(launch::executor, cont) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11737">#11737</a> Add a launch::inherit policy that can be used on ::then() to use the policy of the parent future <em>Fixed Bugs:</em> </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3926">#3926</a> thread_specific_ptr + dlopen library causes a SIGSEGV. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6377">#6377</a> Condition variable blocks when changing time </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6787">#6787</a> boost::thread::sleep() hangs if system time is rolled back </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7665">#7665</a> this_thread::sleep_for no longer uses steady_clock in thread </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7720">#7720</a> exception lock_error while intensive locking/unlocking of mutex </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9309">#9309</a> test_latch fails often on clang-darwin-tot11 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10788">#10788</a> GetLogicalProcessor isn't available for Windows platform less or equals to 0x0502 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11090">#11090</a> ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11158">#11158</a> Pthread thread deadlock when faketime used </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11174">#11174</a> boost::condition_variable::timed_wait with predicate unexpectedly wakes up while should wait infinite </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11185">#11185</a> Incorrect URL redirection </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11192">#11192</a> boost::future&lt;&gt;::then() with an executor doesn't compile when the callback returns a future </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11250">#11250</a> future made from make_exceptional fails on assertion in destructor </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11256">#11256</a> future&lt;&gt;::is_ready() == false in continuation function </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11261">#11261</a> bad use of scoped threads in basic_thread_pool </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11262">#11262</a> bad use of direct pointer in shared_state_nullary_task </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11263">#11263</a> lock already locked lock </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11266">#11266</a> boost::packaged_task has invalid variadic signature </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11302">#11302</a> boost thread doesn't build with BOOST_THREAD_PATCH. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11322">#11322</a> sleep_for() nanoseconds overload will always return too early on windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11329">#11329</a> using declarative for GetProcessHeap, .... fails </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11368">#11368</a> boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11377">#11377</a> Boost condition variable always waits for system clock deadline </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11435">#11435</a> gcc compiler warning in future.hpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11555">#11555</a> devector.hpp assumes allocator_traits_type is always present </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11562">#11562</a> Timer (using steady_clock) expires after computer time is set forward on Ubuntu 64-bit </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11672">#11672</a> Thread: Should use unique_ptr, not auto_ptr </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11688">#11688</a> thread::try_join_until: Avoid busy wait if system clock changes </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11672">#11716</a> ::then(f) should inherit the parent Executor </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/uuid/">UUID</a>:</span> <ul> <li> <div> Added a workaround for MSVC codegen bug that could cause crashes when comparing UUIDs. </div> </li> <li> <div> Added detection of AVX being enabled with MSVC compiler switches. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_60_0.news"> <h3><span class="link">News</span></h3> <div id="version_1_60_0.news.notes_for_windows_users"> <h3><span class="link">Notes for Windows users</span></h3> <p> This release of Boost will by default compile for Windows Vista/Windows Server 2008, if the compiler supports a recent enough Windows SDK, and for Windows XP otherwise. Binaries compiled with default options may not run on the older Windows versions. </p> <p> It is still possible to explicitly specify target Windows version by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code> to a numeric version of Windows API. For example, building Boost for Windows XP can be done with the following command: </p> <pre> b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 </pre> <p> The list of Windows API version numbers can be seen on <a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx">this</a> page. </p> <p> This change only concerns libraries that use the common Windows API abstraction layer. Currently, these libraries are: Boost.Chrono, Boost.Dll, Boost.Log, Boost.UUID. This will also affect all dependent libraries. </p> </div> <div id="version_1_60_0.news.release_of_hana_postponed"> <h3><span class="link">Release of Hana postponed</span></h3> <p> Due to time constraints, the release of <a href="https://github.com/boostorg/hana">Hana</a> will be postponed to a later release of Boost. This will also allow some known issues to be addressed properly before releasing the library officially as a part of Boost. More information can be found on the <a href="http://article.gmane.org/gmane.comp.lib.boost.devel/263964">mailing list</a>. </p> </div> <div id="version_1_60_0.news.release_of_boost_dll_library_pos"> <h3><span class="link">Release of Boost.DLL library postponed</span></h3> <p> In order to provide superior support of uncommon toolsets and platforms, the release of Boost.DLL was postponed to a later release of Boost. This also allows to test better a recently added ability to copy construct and copy assign instances of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code> and provide examples on importing functions with non default calling conventions. Latest version and developer documentation of the library could be found at <a href="https://github.com/boostorg/dll">GitHub repo</a>. </p> </div> </div> <div id="version_1_60_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4, 3.6 </div> </li> <li> <div> Clang, C++14: 3.7 </div> </li> <li> <div> GCC: 4.4.7, 4.8.4, 4.9.3, 5.1.0, 5.2.1 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9.0, 5.2.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4.2, 3.6.0, 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.7.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.9.3, 5.1.0, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.2.1 </div> </li> <li> <div> IBM XL C++: 13.1.2.0 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 7.0.0 </div> </li> <li> <div> GCC: 5.2.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9.0, 5.2.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang, C++11: 3.4.1, 3.7.0 </div> </li> <li> <div> GCC, C++11: 4.8.5, 5.2.0, 6.0.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_60_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.59.0http://www.boost.org/users/history/version_1_59_0.htmlhttp://www.boost.org/users/history/version_1_59_0.htmlThu, 13 Aug 2015 08:23:03 -0700 <div id="version_1_59_0.known_issue"> <h3><span class="link">Known Issue</span></h3> <ul> <li> <div> Boost.Log contains has a regression that prevents some of the logging statements from compiling (<a href="https://svn.boost.org/trac/boost/ticket/11549">#11549</a>). This is fixed in <a href="https://github.com/boostorg/log/commit/7da193fde1a9c1bc925ee980339f4df2e1a66fa7">git</a>. </div> </li> </ul> </div> <div id="version_1_59_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/convert/">Convert</a>:</span> An extendible and configurable type-conversion framework, from Vladimir Batov. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> (C++14) Coroutine library, from Oliver Kowalke. </div> </li> </ul> </div> <div id="version_1_59_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/container/pull/26">GitHub #26: <em>Fix bug in stable_vector::capacity()</em></a>. Thanks to timsong-cpp/Arindam Mukerjee. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/27">GitHub #27: <em>fix stable_vector's index_of's doxygen comment</em></a>. Thanks to kariya-mitsuru. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11380">Trac #11380: <em>&quot;Container library std forward declarations incorrect in std_fwd.hpp on libc++ with gcc&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11388">Trac #11388: <em>&quot;boost::container::list::emplace_back broken on Visual Studio 2010&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11339">Trac #11339: <em>&quot;VC12 LNK2005 error with boost::container::adaptive_pool&quot;</em></a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11223">#11223</a> check support for std::integer_sequence </div> </li> <li> <div> execution_context uses internally Windows Fibers with BOOST_USE_WINFIBERS </div> </li> <li> <div> support of assember for MinGW on Windows (32bit) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10978">#10978</a> remove additional semicolons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11230">#11230</a> coroutine_error returns dangling exception message pointer </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11234">#11234</a> doesn't compile when used with boost::range::algorithms </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11356">#11356</a> coroutines segfaults with BOOST_USE_SEGMENTED_STACKS </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Add a new concept, <code><span class="identifier">Unbounded</span> <span class="identifier">Sequence</span></code> for sequence and <code><span class="identifier">Unbounded</span> <span class="identifier">Iterator</span></code> for iterator. Currently, <code><span class="identifier">Unbounded</span> <span class="identifier">Sequence</span></code> affects the behaviour of <code><span class="identifier">fusion</span><span class="special">::(</span><span class="identifier">value_</span><span class="special">)</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">_c</span><span class="special">)</span></code> and <code><span class="identifier">fusion</span><span class="special">::(</span><span class="identifier">value_</span><span class="special">)</span><span class="identifier">at_key</span></code>. <code><span class="identifier">Unbounded</span> <span class="identifier">Iterator</span></code> has no effect (reserved for future release). For more details, see <a href="http://www.boost.org/users/history/libs/fusion/doc/html/fusion/sequence/concepts/unbounded_sequence.html">Unbounded Sequence</a> and <a href="http://www.boost.org/libs/fusion/doc/html/fusion/iterator/concepts/unbounded_iterator.html">Unbounded Iterator</a>. (<a href="https://github.com/boostorg/fusion/pull/85">pull-request 85</a>) </div> </li> <li> <div> Support C++11 variadic templates for <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">list</span></code>. (<a href="https://github.com/boostorg/fusion/pull/84">pull-request 84</a>) </div> </li> <li> <div> <em>Fixed bugs:</em> <ul> <li> <div> Fix missing include <code><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11161">#11161</a>) </div> </li> <li> <div> Revert some constexpr support, regression in 1.58.0. (<a href="https://svn.boost.org/trac/boost/ticket/11211">#11211</a>, <a href="https://svn.boost.org/trac/boost/ticket/11267">#11267</a>) </div> </li> <li> <div> Fix compile error with fold due to missing include. (<a href="https://svn.boost.org/trac/boost/ticket/11249">#11249</a>) </div> </li> <li> <div> Fix compile error with adapting an empty struct, regression in 1.58.0. (<a href="https://svn.boost.org/trac/boost/ticket/11269">#11269</a>) </div> </li> <li> <div> Remove use of obsolete (and incorrect) workaround for sequence comparison, it affects MSVC-8 and earlier. (<a href="https://github.com/boostorg/fusion/pull/78">pull-request 78</a>) </div> </li> <li> <div> Fix compile error while copying a sequece which derived from fusion::list, regression in 1.58.0. (<a href="https://github.com/boostorg/fusion/pull/87">pull-request 87</a>) </div> </li> <li> <div> Fix compile error on copying a fusion::tuple. (<a href="https://svn.boost.org/trac/boost/ticket/11140">#11140</a>) </div> </li> <li> <div> Add workarounds for GCC 4.6 with constexpr. (<a href="https://svn.boost.org/trac/boost/ticket/11517">#11517</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality:</em> <ul> <li> <div> Added rtree const_iterator, begin(), end() and the support for Boost.Range. </div> </li> <li> <div> The support for C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> in geometries models. </div> </li> <li> <div> Disjoint and intersects support the following geometry combinations: multipoint/linestring, multipoint/multilinestring. </div> </li> <li> <div> Added relate() and relation() algorithms. </div> </li> <li> <div> Intersection has been implemented for combinations of pointlike and linear geometries </div> </li> <li> <div> Added implementation for difference(pointlike, linear) </div> </li> <li> <div> New algorithm is_empty, returning true if the geometry represents the empty set </div> </li> <li> <div> The envelope algorithm supports pointlike and linear geometries in the spherical equatorial coordinate system </div> </li> <li> <div> The envelope algorithm supports pointlike geometries in the geographic coordinate system </div> </li> </ul> </div> </li> <li> <div> <em>Improvements:</em> <ul> <li> <div> Upgraded rtree const_query_iterator category to ForwardIterator. </div> </li> <li> <div> Buffer performance of buffers around multi-points is improved significantly </div> </li> </ul> </div> </li> <li> <div> <em>Breaking changes:</em> <ul> <li> <div> buffer side strategy now returns error_code instead of bool. If you have your own custom side strategy, it should be adapted </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11113">#11113</a> Support easy enumeration of all elements with BOOST_FOREACH </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11232">#11232</a> Feature request - relate() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11236">#11236</a> Invalid result of centroid() for integer coordinate type </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11268">#11268</a> Regression in boost::geometry::intersection interface with multi_linestring and box -- does not compile on 1.57 VS 1.55 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11332">#11332</a> Assertion failure in buffer for extreme coordinate differences </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11346">#11346</a> Segment iterator does not work with ranges returning values instead of references </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11436">#11436</a> sym_difference(py1, py2, mpy) returns invalid multipolygon </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Buffer: use a more robust way to calculate the side of an intersection, this fixes several errors in buffer generation </div> </li> <li> <div> 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 </div> </li> <li> <div> In rescaling round instead of truncate to the integer grid (this fix and the previous mentioned can have some impact on output geometries) </div> </li> <li> <div> Fix potential infinite loop in detail::has_spikes (the loop can happen if the points passed have NaN coordinates) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5139">( Trac #5139 ( (<em>&quot;Initial Stream Position in Boost.Interprocess.Vectorstream&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/19">GitHub Pull #19 (<em>&quot;Fix exception visibility&quot;</em>)</a>. Thanks to Romain-Geissler. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Implemented <span class="link">map and multimap-like interfaces</span>. </div> </li> <li> <div> Refactored hashtable containers to reduce template instantiations. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed warnings </div> </li> <li> <div> Simplified metaprogramming (thanks to Edward Diener) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> On systems with <a href="https://gcc.gnu.org/wiki/Visibility">symbol visibility</a> support (e.g. Linux) the library is now built with all internal symbols hidden. </div> </li> <li> <div> <strong>Breaking change:</strong> The library has been ported to Boost.TypeIndex for its underlying type info management tool. This affected the following public interfaces: <ul> <li> <div> <code><span class="identifier">invalid_type</span></code> exceptions thrown by the library now have <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> attached as the description of the offending type. The type was previously identified by <code><span class="identifier">type_info_wrapper</span></code>. </div> </li> <li> <div> Boost.Exception <code><span class="identifier">type_info_info</span></code> error information now contains <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> instead of <code><span class="identifier">type_info_wrapper</span></code>. </div> </li> <li> <div> <code><span class="identifier">attribute_value</span><span class="special">::</span><span class="identifier">get_type</span><span class="special">()</span></code> now returns <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> instead of <code><span class="identifier">type_info_wrapper</span></code>. User-defined attribute value implementations should be similarly changed (the <code><span class="identifier">attribute_value</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">get_type</span><span class="special">()</span></code> virtual method now also returns <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code>). </div> </li> </ul> </div> </li> <li> <div> <code><span class="identifier">type_info_wrapper</span></code> component has been deprecated and will be removed in future releases. Boost.TypeIndex is recommended as a replacement. </div> </li> <li> <div> Removed the previously deprecated headers: <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">intrusive_ref_counter</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">explicit_operator_bool</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">empty_deleter</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Added support for building the library for OpenBSD. (<a href="https://svn.boost.org/trac/boost/ticket/11446">#11446</a>) </div> </li> <li> <div> Improved internal implementation of the event synchronization primitive used for asynchronous logging. (<a href="https://svn.boost.org/trac/boost/ticket/11398">#11398</a>) </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed incorrect behavior of <code><span class="identifier">attribute_value_set</span><span class="special">::</span><span class="identifier">insert</span><span class="special">()</span></code> and <code><span class="identifier">attribute_value_set</span></code> constructor in some cases. (<a href="https://svn.boost.org/trac/boost/ticket/11190">#11190</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Changed <code><span class="identifier">unique_ptr</span></code>'s converting constructor taking the source by value in C++03 compilers to allow simple conversions from convertible types returned by value. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11229">Trac #11229: <em>&quot;vector incorrectly copies move-only objects using memcpy&quot;</em></a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Added <a href="http://www.boost.org/libs/multi_index/doc/tutorial/indices.html#rnk_indices">ranked indices</a>. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Fix many problems with <code><span class="identifier">predef_check</span></code> functionality. </div> </li> <li> <div> Update SunPro detection to accomodate latest version of compiler from Oracle. </div> </li> <li> <div> Add <code><span class="keyword">and</span></code> and <code><span class="keyword">or</span></code> logical operators for <code><span class="identifier">predef_check</span></code> expression on the Boost Build side. </div> </li> <li> <div> Fix <code><span class="identifier">BOOST_ARCH_PARISC</span></code> to correctly spelled name. </div> </li> <li> <div> Fix <code><span class="identifier">MAKE_YYYYM</span></code> macros to correctly limit the month. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Fix compilation errors, missing dllexport and warnings with MSVC and MinGW (Daniela Engert, Marcel Raad). </div> </li> <li> <div> Fix unintialized fields (Zoey Greer). </div> </li> <li> <div> Stop options with implicit value from consuming separate tokens (Michael John Decker). </div> </li> <li> <div> Make multitoken limit be max int, not 32K (Hans Hohenfeld). </div> </li> <li> <div> Code formatting and documentation fixes (Jurko Gospodnetić, Lauri Nurmi). </div> </li> <li> <div> Minimal support for no-rtti build (Minmin Gong) </div> </li> <li> <div> Don't increment environment pointer past the end (Vladimir Prus) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/property_tree/">Property Tree</a>:</span> <ul> <li> <div> A new JSON parser with full Unicode support. </div> </li> <li> <div> <strong>Breaking change:</strong> 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. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Boost.Test v3</a>:</span> <ul> <li> <div> Major new features <ul> <li> <div> <code><span class="identifier">BOOST_TEST</span></code> generic assertion </div> </li> <li> <div> data driven test cases </div> </li> <li> <div> test units can now have <em>attributes</em> for finer control over tests behavior (logical grouping, test dependencies, test enabling/disabling) </div> </li> <li> <div> CLI learned <code><span class="identifier">colour_output</span></code> and <code><span class="identifier">list_content</span></code>, extended unit test filtering (negation, labels) </div> </li> <li> <div> refactored and rewritten documentation using quickbook </div> </li> </ul> </div> </li> <li> <div> Addressed issues: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2018">#2018</a> <a href="https://svn.boost.org/trac/boost/ticket/2450">#2450</a> <a href="https://svn.boost.org/trac/boost/ticket/2600">#2600</a> <a href="https://svn.boost.org/trac/boost/ticket/2717">#2717</a> <a href="https://svn.boost.org/trac/boost/ticket/2759">#2759</a> <a href="https://svn.boost.org/trac/boost/ticket/3182">#3182</a> <a href="https://svn.boost.org/trac/boost/ticket/3316">#3316</a> <a href="https://svn.boost.org/trac/boost/ticket/3392">#3392</a> <a href="https://svn.boost.org/trac/boost/ticket/3402">#3402</a> <a href="https://svn.boost.org/trac/boost/ticket/3445">#3445</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3463">#3463</a> <a href="https://svn.boost.org/trac/boost/ticket/3542">#3542</a> <a href="https://svn.boost.org/trac/boost/ticket/3481">#3481</a> <a href="https://svn.boost.org/trac/boost/ticket/3495">#3495</a> <a href="https://svn.boost.org/trac/boost/ticket/3592">#3592</a> <a href="https://svn.boost.org/trac/boost/ticket/3595">#3595</a> <a href="https://svn.boost.org/trac/boost/ticket/3623">#3623</a> <a href="https://svn.boost.org/trac/boost/ticket/3664">#3664</a> <a href="https://svn.boost.org/trac/boost/ticket/3784">#3784</a> <a href="https://svn.boost.org/trac/boost/ticket/3785">#3785</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3811">#3811</a> <a href="https://svn.boost.org/trac/boost/ticket/3834">#3834</a> <a href="https://svn.boost.org/trac/boost/ticket/3896">#3896</a> <a href="https://svn.boost.org/trac/boost/ticket/3932">#3932</a> <a href="https://svn.boost.org/trac/boost/ticket/3938">#3938</a> <a href="https://svn.boost.org/trac/boost/ticket/3964">#3964</a> <a href="https://svn.boost.org/trac/boost/ticket/3978">#3978</a> <a href="https://svn.boost.org/trac/boost/ticket/3979">#3979</a> <a href="https://svn.boost.org/trac/boost/ticket/4161">#4161</a> <a href="https://svn.boost.org/trac/boost/ticket/4275">#4275</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4389">#4389</a> <a href="https://svn.boost.org/trac/boost/ticket/4434">#4434</a> <a href="https://svn.boost.org/trac/boost/ticket/4587">#4587</a> <a href="https://svn.boost.org/trac/boost/ticket/4806">#4806</a> <a href="https://svn.boost.org/trac/boost/ticket/4911">#4911</a> <a href="https://svn.boost.org/trac/boost/ticket/4923">#4923</a> <a href="https://svn.boost.org/trac/boost/ticket/4924">#4924</a> <a href="https://svn.boost.org/trac/boost/ticket/4982">#4982</a> <a href="https://svn.boost.org/trac/boost/ticket/5008">#5008</a> <a href="https://svn.boost.org/trac/boost/ticket/5036">#5036</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5262">#5262</a> <a href="https://svn.boost.org/trac/boost/ticket/5374">#5374</a> <a href="https://svn.boost.org/trac/boost/ticket/5412">#5412</a> <a href="https://svn.boost.org/trac/boost/ticket/5563">#5563</a> <a href="https://svn.boost.org/trac/boost/ticket/5582">#5582</a> <a href="https://svn.boost.org/trac/boost/ticket/5599">#5599</a> <a href="https://svn.boost.org/trac/boost/ticket/5718">#5718</a> <a href="https://svn.boost.org/trac/boost/ticket/5729">#5729</a> <a href="https://svn.boost.org/trac/boost/ticket/5870">#5870</a> <a href="https://svn.boost.org/trac/boost/ticket/5972">#5972</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6002">#6002</a> <a href="https://svn.boost.org/trac/boost/ticket/6071">#6071</a> <a href="https://svn.boost.org/trac/boost/ticket/6074">#6074</a> <a href="https://svn.boost.org/trac/boost/ticket/6161">#6161</a> <a href="https://svn.boost.org/trac/boost/ticket/6766">#6766</a> <a href="https://svn.boost.org/trac/boost/ticket/6712">#6712</a> <a href="https://svn.boost.org/trac/boost/ticket/6748">#6748</a> <a href="https://svn.boost.org/trac/boost/ticket/7046">#7046</a> <a href="https://svn.boost.org/trac/boost/ticket/7136">#7136</a> <a href="https://svn.boost.org/trac/boost/ticket/7410">#7410</a> <a href="https://svn.boost.org/trac/boost/ticket/7894">#7894</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8201">#8201</a> <a href="https://svn.boost.org/trac/boost/ticket/8272">#8272</a> <a href="https://svn.boost.org/trac/boost/ticket/8467">#8467</a> <a href="https://svn.boost.org/trac/boost/ticket/8862">#8862</a> <a href="https://svn.boost.org/trac/boost/ticket/8895">#8895</a> <a href="https://svn.boost.org/trac/boost/ticket/9179">#9179</a> <a href="https://svn.boost.org/trac/boost/ticket/9272">#9272</a> <a href="https://svn.boost.org/trac/boost/ticket/9390">#9390</a> <a href="https://svn.boost.org/trac/boost/ticket/9409">#9409</a> <a href="https://svn.boost.org/trac/boost/ticket/9537">#9537</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9539">#9539</a> <a href="https://svn.boost.org/trac/boost/ticket/9581">#9581</a> <a href="https://svn.boost.org/trac/boost/ticket/9960">#9960</a> <a href="https://svn.boost.org/trac/boost/ticket/10318">#10318</a> <a href="https://svn.boost.org/trac/boost/ticket/10394">#10394</a> <a href="https://svn.boost.org/trac/boost/ticket/10888">#10888</a> <a href="https://svn.boost.org/trac/boost/ticket/11054">#11054</a> <a href="https://svn.boost.org/trac/boost/ticket/11347">#11347</a> <a href="https://svn.boost.org/trac/boost/ticket/11358">#11358</a> <a href="https://svn.boost.org/trac/boost/ticket/11359">#11359</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Removed dependencies on some of the Boost libraries to improve compilation times and modularity </div> </li> <li> <div> Warnings fixed in tests and other maintainance improvements were done. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed missing include in element_index.hpp <a href="https://svn.boost.org/trac/boost/ticket/11196">#11196</a>, <a href="https://svn.boost.org/trac/boost/ticket/11283">#11283</a> </div> </li> <li> <div> Fixed <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> usage with C++14 and const references <a href="https://svn.boost.org/trac/boost/ticket/11251">#11251</a>, <a href="https://svn.boost.org/trac/boost/ticket/11285">#11285</a> </div> </li> <li> <div> Relaxed compile time checks for all the <code><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">reference</span><span class="special">&gt;(</span><span class="identifier">variant_variable</span><span class="special">)</span></code> functions (thanks to Nicolas Cornu) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_59_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4 </div> </li> <li> <div> Clang, C++14: 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.8.2, 4.9.3 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3 </div> </li> <li> <div> Intel: 15.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Sun: 6.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4 </div> </li> <li> <div> Clang, C++14: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 5.1.0, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.1.1 </div> </li> <li> <div> Intel: 15.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.4.1 </div> </li> <li> <div> GCC: 4.8.5, 5.1.0, 6.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_59_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.58.0http://www.boost.org/users/history/version_1_58_0.htmlhttp://www.boost.org/users/history/version_1_58_0.htmlFri, 17 Apr 2015 08:53:58 +0100 <div id="version_1_58_0.known_issue"> <h3><span class="link">Known Issue</span></h3> <ul> <li> <div> Boost.Python will fail to build if it is compiled against a version of python that is one of: 3.0.X, 3.1.X, 3.2.X, 3.3.X. Versions 2.X and 3.4+ are not affected. This is fixed in <a href="https://github.com/boostorg/python/commit/3e405b6fd5db5615bbef241763de070118222ca7">git</a>. </div> </li> <li> <div> Boost.Fusion has a regression with non-constexpr types. <a href="https://svn.boost.org/trac/boost/ticket/11211">#11211</a> This is fixed in some PRs: <a href="https://github.com/boostorg/fusion/pull/70">Github PR #70</a>, <a href="https://github.com/boostorg/fusion/pull/71">Github PR #71</a>, <a href="https://github.com/boostorg/fusion/pull/72">Github PR #72</a> </div> </li> </ul> <p> Patches: </p> <ul> <li> <div> <a href="http://www.boost.org/patches/1_58_0/0001-Fix-exec_file-for-Python-3-3.4.patch">0001-Fix-exec_file-for-Python-3-3.4.patch</a> (for libs/python). </div> </li> <li> <div> <a href="http://www.boost.org/patches/1_58_0/0002-Fix-a-regression-with-non-constexpr-types.patch">0002-Fix-a-regression-with-non-constexpr-types.patch</a> (for libs/fusion). </div> </li> </ul> </div> <div id="version_1_58_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/endian">Endian</a>:</span> Types and conversion functions for correct byte ordering and more regardless of processor endianness. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/sort/">Sort</a>:</span> Includes spreadsort, a general-case hybrid radix sort that is faster than O(n*log(n)) </div> </li> </ul> </div> <div id="version_1_58_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Ensured errors generated by Windows' <code><span class="identifier">ConnectEx</span></code> function are mapped to their portable equivalents (<a href="https://svn.boost.org/trac/boost/ticket/10744">#10744</a>). </div> </li> <li> <div> Added new macro <code><span class="identifier">BOOST_ASIO_DISABLE_CONNECTEX</span></code> to allow use of <code><span class="identifier">ConnectEx</span></code> to be explicitly disabled. </div> </li> <li> <div> Fixed a race condition in <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">object_handle</span></code> when there are pending wait operations on destruction (<a href="https://svn.boost.org/trac/boost/ticket/10624">#10624</a>). </div> </li> <li> <div> Fixed IPv6 address parsing on FreeBSD, where a trailing scope ID would cause conversion to fail with <code><span class="identifier">EINVAL</span></code>. </div> </li> <li> <div> Worked around shared library visibility issues by ensuring Asio types use default visibility (<a href="https://svn.boost.org/trac/boost/ticket/9465">#9465</a>, <a href="https://svn.boost.org/trac/boost/ticket/11070">#11070</a>). </div> </li> <li> <div> Changed the SSL wrapper to call the password callback when loading an in-memory key (<a href="https://svn.boost.org/trac/boost/ticket/10828">#10828</a>). </div> </li> <li> <div> Fixed false SSL error reports by ensuring that the SSL error queue is cleared prior to each operation. </div> </li> <li> <div> Fixed an <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> bug that may result in spurious 'short read' errors. </div> </li> <li> <div> Removed a redundant null pointer check in the SSL engine (<a href="https://svn.boost.org/trac/boost/ticket/10088">#10088</a>). </div> </li> <li> <div> Added options for disabling TLS v1.1 and v1.2 (<a href="https://svn.boost.org/trac/boost/ticket/10690">#10690</a>). </div> </li> <li> <div> Removed use of deprecated OpenSSL function <code><span class="identifier">ERR_remove_state</span></code>. </div> </li> <li> <div> Fixed detection of various C++11 features with Clang (<a href="https://svn.boost.org/trac/boost/ticket/8835">#8835</a>, <a href="https://svn.boost.org/trac/boost/ticket/10884">#10884</a>). </div> </li> <li> <div> Fixed detection of C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">addressof</span></code> with <tt>g++</tt> (<a href="https://svn.boost.org/trac/boost/ticket/10982">#10982</a>). </div> </li> <li> <div> Changed multicast test to treat certain <code><span class="identifier">join_group</span></code> failures as non-fatal. </div> </li> <li> <div> Decoupled Asio unit tests from Boost.Test (<a href="https://svn.boost.org/trac/boost/ticket/11116">#11116</a>). </div> </li> <li> <div> Changed the tutorial to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span></code> to ensure output is flushed. </div> </li> <li> <div> Fixed an unsigned integer overflow reported by Clang's integer sanitizer. </div> </li> <li> <div> Added support for move-only return types when using a <code><span class="identifier">yield_context</span></code> object with asynchronous operations. </div> </li> <li> <div> Changed <code><span class="identifier">yield_context</span></code> to allow reentrant calls to the completion handler from an initiating function. </div> </li> <li> <div> Updated detection of Windows Runtime to work with latest Windows SDK. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono</a>:</span> <ul> <li> <div> <em>Version</em> 2.0.5 </div> </li> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10778">#10778</a> VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10840">#10840</a> Missing std:: qualifier for puts call in test_7868.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10851">#10851</a> Missing std:: qualifier for puts call in time_point_output.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10893">#10893</a> Minor doc typo in Boost.Chrono </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10992">#10992</a> Chrono IO state savers inconsistent with Boost.IO state savers </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10995">#10995</a> duration_put::put_value truncates fractional part </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11006">#11006</a> Impossible to instantiate time_fmt_io_saver due to several errors. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11012">#11012</a> chrono_io v2 fail to compile with boost::chrono::duration&lt; boost::rational&lt;int&gt; &gt; </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Experimental <code><span class="identifier">small_vector</span></code> container. </div> </li> <li> <div> Massive dependency reorganization. Now <em>Boost.Container</em> depends on very basic utilities like Boost.Core and <em>Boost.Intrusive</em>. Preprocessed code size have decreased considerably and compilation times have improved. </div> </li> <li> <div> Added <code><span class="identifier">nth</span></code> and <code><span class="identifier">index_of</span></code> functions to containers with random-access iterators (except <code><span class="identifier">basic_string</span></code>). </div> </li> <li> <div> Added C++17's <code><span class="identifier">allocator_traits</span><span class="special">&lt;</span><span class="identifier">Allocator</span><span class="special">&gt;::</span><span class="identifier">is_always_equal</span></code>. </div> </li> <li> <div> Updated containers to implement new constructors as specified in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2210">2210. Missing allocator-extended constructor for allocator-aware containers</a>. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9931">#9931: <em>&quot;flat_map::insert(ordered_unique_range_t...) fails with move_iterators&quot;</em></a> (reopened). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11076">#11076: <em>&quot;Unqualified calls to memmove/memcpy in container/detail/copy_move_algo.hpp&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10790">Trac #10790 (<em>long long errors from container&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10808">Trac #10808 (<em>compare equal operator of vector is broken&quot;</em>)</a>. </div> </li> </ul> </div> </li> <li> <div> <em>Source Breaking</em>: <code><span class="identifier">scoped_allocator_adaptor</span></code>'s <code><span class="identifier">propagate_on_container_copy_assignment</span></code>, <code><span class="identifier">propagate_on_container_move_assignment</span></code> and <code><span class="identifier">propagate_on_container_swap</span></code> are no longer <code><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="keyword">true</span><span class="special">/</span><span class="keyword">false</span><span class="special">&gt;</span></code> types. The dependency reorganization needed to break with those classes to avoid MPL dependencies, and interoperability with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">integral_constant</span></code> was not guaranteed. Code assumming <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">true_type</span><span class="special">/</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">false_type</span></code> on this will not compile. As a workaround, use the guaranteed internal <code><span class="special">::</span><span class="identifier">value</span></code> constant: <code><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">scoped_allocator_adaptor</span><span class="special">&lt;</span><span class="identifier">Allocator</span><span class="special">&gt;::</span><span class="identifier">propagate_on_container_move_assignment</span><span class="special">::</span><span class="identifier">value</span><span class="special">&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> support for ARM/iOS (32+64 bit) </div> </li> <li> <div> class execution_context (C++14) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> <code><span class="identifier">polymorphic_pointer_downcast</span></code> and <code><span class="identifier">polymorphic_pointer_cast</span></code> functions were added (thanks to Boris Rasin) <a href="https://svn.boost.org/trac/boost/ticket/10780">#10780</a> </div> </li> <li> <div> All the functions now throw exceptions using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span></code> </div> </li> <li> <div> Documnetation update </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/date_time/">DateTime</a>:</span> <ul> <li> <div> Restored <code><span class="identifier">to_time_t</span></code> function. </div> </li> <li> <div> Renamed variable v_type to var_type so it longer conflicts with an AIX system variable. </div> </li> <li> <div> Documnetation fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/flyweight/">Flyweight</a>:</span> <ul> <li> <div> Added hash support both with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> and <a href="http://www.boost.org/doc/html/hash.html"><code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code></a>. This can be optionally <a href="http://www.boost.org/libs/flyweight/doc/reference/flyweight.html#disable_hash_support">disabled</a> to avoid clashes with legacy code where this support has already been defined by the user. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/function/">Function</a>:</span> <ul> <li> <div> Added support for functions accepting C++11 rvalues and Boost.Move rvalues <a href="https://svn.boost.org/trac/boost/ticket/10585">#10585</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/functional/factory/">Functional/Factory</a>:</span> <ul> <li> <div> Minor breaking change: the default template parameter to indicate that it shouldn't use an allocator is now <code><span class="keyword">void</span></code>, instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span></code>. For details, see the <a href="http://www.boost.org/libs/functional/factory/doc/html/#boost_functional_factory.changes">changelog</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Automatic hash creation function (<a href="https://github.com/boostorg/fusion/pull/12">Github PR #12</a>) </div> </li> <li> <div> New ADAPT_STRUCT, ADAPT_ADT, ADAPT_ASSOC_ that deduce the members types (<a href="https://svn.boost.org/trac/boost/ticket/9516">#9516</a>). </div> </li> <li> <div> Add convert implementation for Boost.Tuple and std::tuple. </div> </li> <li> <div> Add mpl::clear implementation for Boost.Tuple and std::tuple. </div> </li> <li> <div> Use boost::declval instead of std::declval, (<a href="https://svn.boost.org/trac/boost/ticket/10190">#10190</a>). </div> </li> <li> <div> Remove use of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">blank</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/8622">#8622</a>). </div> </li> <li> <div> Add result_of::{copy,move} (<a href="https://svn.boost.org/trac/boost/ticket/5886">#5886</a>). </div> </li> <li> <div> Better constexpr and noexcept support. </div> </li> <li> <div> Improved SFINAE Friendliness of many metafunctions (<a href="https://svn.boost.org/trac/boost/ticket/10676">#10676</a>, <a href="https://svn.boost.org/trac/boost/ticket/10443">#10443</a>). </div> </li> <li> <div> result_of::size::value and result_of::size::type::value are the same type now (<a href="https://svn.boost.org/trac/boost/ticket/7304">#7304</a>) </div> </li> <li> <div> result_of::at&lt;Seq, N&gt;::type is now defined when sizeof of sequence is less than N (<a href="https://svn.boost.org/trac/boost/ticket/6507">#6507</a>, <a href="https://svn.boost.org/trac/boost/ticket/7651">#7651</a>) </div> </li> <li> <div> Fix missing includes (<a href="https://svn.boost.org/trac/boost/ticket/8457">#8457</a>). </div> </li> <li> <div> Many documentation fixes &amp; improvements (<a href="https://svn.boost.org/trac/boost/ticket/6090">#6090</a>, <a href="https://svn.boost.org/trac/boost/ticket/5324">#5324</a>, <a href="https://github.com/boostorg/fusion/pull/33">GitHub PR #33</a>, <a href="https://github.com/boostorg/fusion/pull/53">GitHub PR #53</a>, <a href="https://github.com/boostorg/fusion/pull/56">GitHub PR #56</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality:</em> <ul> <li> <div> New algorithm num_segments, returning the number of segments of a geometry </div> </li> <li> <div> New overload for is_valid algorithm, that takes a string reference as a second argument and fills it with a message related to the validity or invalidity of the geometry </div> </li> <li> <div> New overload for is_valid algorithm, that takes an enum reference as a second argument and fills it with a value related to the validity or invalidity of the geometry </div> </li> <li> <div> Disjoint and intersects support the following geometry combinations: point/multipoint, multipoint/multipoint, multipoint/segment, multipoint/box </div> </li> </ul> </div> </li> <li> <div> <em>Improvements:</em> <ul> <li> <div> Buffer now supports flat-ends for linestrings with a bend close to the start (such that buffered segment crosses flat-end). </div> </li> <li> <div> Buffer performance is improved significantly </div> </li> <li> <div> Partition performance is improved significantly for polygons, potentially enhancing all overlay operations </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8379">#8379</a> Invalid comparison of the result of determinant </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10108">#10108</a> Error in overlay operations in specific cases where geometries touch at one point </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10201">#10201</a> Suggestion to use different function to compare coordinates [wontfix] </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10467">#10467</a> Template parameter name coliding with B0 macro name defined in termios.h </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10640">#10640</a> Invalid result of buffer() for CCW Polygons. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10666">#10666</a> MSVC compiler warning C4127: conditional expression is constant </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10747">#10747</a> Error in rescaling causing errors in areal/areal set operations </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10770">#10770</a> Buffer fails for large distances, or rough round joins, where concavities where not intersected properly </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10658">#10658</a> sym_difference yields bad result for int polygons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10835">#10835</a> Difference of multilinestring and polygon yields wrong result </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10861">#10861</a> Rtree failing to compile for Value being a pair or a tuple containing pointer to Geometry and the default equal_to&lt;&gt; used </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10863">#10863</a> Template parameter name coliding with B0 macro name defined in termios.h (duplicate of 10467) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10887">#10887</a> Invalid result of within() and relate() for Linear/MultiPolygon </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10890">#10890</a> Invalid result of disjoint() for Point/Segment. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10904">#10904</a> Invalid calculation of most significant Dimension of a segment in relate_cartesian_segments strategy </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10912">#10912</a> Invalid result of within() and relate() for Areal/Areal </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10951">#10951</a> Tests failing on windows with intel compiler due to lack of /bigobj flag. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10957">#10957</a> Assertion failure and invalid results of various relational operations. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10958">#10958</a> Invalid results of disjoint() L/L and L/A. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10959">#10959</a> Assertion failure in get_turns() used with no_rescale_policy. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10960">#10960</a> Invalid result of get_turns() for L/A, missing turn. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10961">#10961</a> Invalid result of get_turns() for L/A, invalid turn for a Linear spike. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11112">#11112</a> Compilation failure on Solaris due to a CS name clash (used for a macro on this platform) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11121">#11121</a> Invalid result of difference() for integral coordinates </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Bug in multipoint/polygon multipoint/multipolygon distance computation (wrong detection of points inside the areal geometry) </div> </li> <li> <div> Bug in flatten_iterator's assignment operator causing an access violation </div> </li> <li> <div> Bug in Cartesian segment-segment intersection strategy when one segment degenerates to a point and is collinear to the other non-degenerate segment </div> </li> <li> <div> Bug in centroid(), non-deterministic result if calculated for e.g. a Polygon with zero-area. </div> </li> <li> <div> Bug in buffers for joins with a limited number of points </div> </li> <li> <div> Bug in buffers for round joins with limited number of points around sharp corners </div> </li> <li> <div> Bug in buffers for joins with large buffer distances </div> </li> <li> <div> Bug in buffers for round ends with an odd number of points </div> </li> <li> <div> Bug in buffers for flat ends with large buffer distances </div> </li> <li> <div> Bug in buffers for interior rings with large negative buffer distances </div> </li> <li> <div> Bug in closing_iterator not working properly when the input range is empty </div> </li> <li> <div> Bug in is_simple, not handling properly closed simple linestrings within multilinestrings </div> </li> <li> <div> Bug in rtree constructors taking a pair of Iterators or a Range (packing algorithm), the use of reference to destroyed temporary when Iterator's reference is not true reference, e.g. for some of the Range Adaptors. It also affects distance() and comparable_distance(). This bug may cause unexpected behavior of the rtree or distance() algorithm, e.g. an assertion failure or a SEGFAULT. </div> </li> <li> <div> Bug in rtree count() member function, the use of reference to destroyed temporary when object of type convertible but not the same as value_type or indexable_type is passed. If this happens, wrong result may be returned, in most cases 0. </div> </li> <li> <div> Bugs related to the handling of Ranges, preventing compilation of Geometries using non-Container Ranges in some algorithms (thanks to Samuel Debionne) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/hash/">Hash</a>:</span> <ul> <li> <div> Fixed strict aliasing violation (<a href="https://github.com/boostorg/functional/pull/3">GitHub #3</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Reduced some compile-time dependencies. Updated to Boost.Container changes. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/13">GitHub Pull #13 (<em>&quot;haiku: we don't have XSI shared memory, so don't try to use it&quot;</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Reduced compile-time dependencies, headers, and the use of Boost.Preprocessor, specially for hooks and iterators. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6720">Boost Trac #6720: <em>intrusive::unordered_set::clear_and_dispose does not compile on VC11 Beta when passed a stateless lambda</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10771">Boost Trac #10771: <em>remove_if is broken for slist</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10853">Boost Trac #10853: <em>problem with detection of const_cast_from</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10987">Boost Trac #10987: <em>bug in any_xxx_node_traits, returning by reference</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Now std::stream is used for conversions to float numbers <a href="https://svn.boost.org/trac/boost/ticket/5660">#5660</a>, <a href="https://svn.boost.org/trac/boost/ticket/6975">#6975</a>, <a href="https://svn.boost.org/trac/boost/ticket/10639">#10639</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Fixed thread id formatting. </div> </li> <li> <div> Fixed process id formatting. (<a href="https://svn.boost.org/trac/boost/ticket/10926">#10926</a>) </div> </li> <li> <div> Fixed build failure on GNU Hurd. </div> </li> <li> <div> Fixed incorrect behavior of text file sink backend in case if free space on the file system gets exhausted. The sink will no longer create lots of empty files in attempt to recover. (<a href="https://svn.boost.org/trac/boost/ticket/11016">#11016</a>) </div> </li> <li> <div> Fixed incorrect behavior of <code><span class="identifier">attribute_set</span><span class="special">::</span><span class="identifier">insert</span><span class="special">()</span></code> in some cases. The inserted elements could have made some previously inserted elements not findable. (<a href="https://svn.boost.org/trac/boost/ticket/11106">#11106</a>) </div> </li> <li> <div> Fixed incorrect behavior of <code><span class="identifier">attribute_value_set</span><span class="special">::</span><span class="identifier">size</span><span class="special">()</span></code> if a large number of attribute values are inserted into the set. (<a href="https://svn.boost.org/trac/boost/ticket/11148">#11148</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Added two new special functions - trigamma and polygamma. </div> </li> <li> <div> Large update to the Elliptic integral code to use Carlson's latest algorithms - these should be more stable, more accurate and slightly faster than before. Also added support for Carlson's RG integral. </div> </li> <li> <div> Added ellint_d, jacobi_zeta and heuman_lambda elliptic integrals. </div> </li> <li> <div> Fixed namespace scope constants so they are constexpr on conforming compilers, see <a href="https://svn.boost.org/trac/boost/ticket/10901">#10901</a>. </div> </li> <li> <div> Fixed various cases of spurious under/overflow in the incomplete beta and gamma functions, plus the elliptic integrals, with thanks to Rocco Romeo. </div> </li> <li> <div> Fix 3-arg legendre_p and legendre_q functions to not call the policy based overload if the final argument is not actually a policy. </div> </li> <li> <div> Cleaned up some dead code in the incomplete beta function, see <a href="https://svn.boost.org/trac/boost/ticket/10985">#10985</a>. </div> </li> <li> <div> Fixed extreme-value pdf for large valued inputs, see <a href="https://svn.boost.org/trac/boost/ticket/10938">#10938</a>. </div> </li> <li> <div> Switched documentation to use SVG rather than PNG graphs and equations - browsers seem to have finally caught up! </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Added <code><span class="identifier">BOOST_MOVE_BASE</span></code> utility. </div> </li> <li> <div> Added <code><span class="identifier">adl_move_swap</span></code> utility. </div> </li> <li> <div> Reduced dependencies on other Boost libraries to make the library a bit more lightweight. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11044">Trac #11044: <em>&quot;boost::rv inherits off union, when such passed as template argument&quot;</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> The efficiency of lookup operations has improved in situations where they involve the generation of temporary values of <code><span class="identifier">key_type</span></code>. Consider for instance the following code: </div> <pre><span class="keyword">typedef</span> <span class="identifier">multi_index_container</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">indexed_by</span><span class="special">&lt;</span> <span class="identifier">ordered_unique</span><span class="special">&lt;</span><span class="identifier">identity</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">multi_t</span><span class="special">;</span> <span class="special">...</span> <span class="identifier">multi_t</span> <span class="identifier">m</span><span class="special">=...;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">&quot;boost&quot;</span><span class="special">);</span> <span class="comment">// passed a const char*, not a std::string </span> </pre> <div> In previous versions of the library, the <code><span class="identifier">find</span></code> operation generates several temporary <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>s (one every time an internal comparison is made). In sufficiently advanced compilers, this is now avoided so that only one temporary is created. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Changed <code><span class="identifier">frexp</span></code> to always be non-expression template generating, see: <a href="https://svn.boost.org/trac/boost/ticket/10993">10993</a>. </div> </li> <li> <div> Improved support of cpp_dec_float on Cygwin and other platforms with missing long double support, see <a href="https://svn.boost.org/trac/boost/ticket/10924">10924</a>. </div> </li> <li> <div> Improved noexcept support and added some more tests, see <a href="https://svn.boost.org/trac/boost/ticket/10990">10990</a>. </div> </li> <li> <div> Various workarounds applied for Intel-15.0 and Solaris-12.4 compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Improved documentation; documented IO operations and header files. </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span></code> is no longer convertible from literal 0. This avoids a bug where <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">rational</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;&gt;</span> <span class="identifier">oi</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span></code> would initialize an optional object with no contained value. </div> </li> <li> <div> Added a way to manually disable move semantics: just define macro <code><span class="identifier">BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES</span></code>. This can be used to work around <a href="http://svn.boost.org/trac/boost/ticket/10399">#10399</a>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10825">#10825</a> Improved the trick that prevents streaming out <code><span class="identifier">optional</span></code> without header <code><span class="identifier">optional_io</span><span class="special">.</span><span class="identifier">hpp</span></code> by using safe-bool idiom. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11087">#11087</a> It is no longer possible to assign <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code> to <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> when <code><span class="identifier">U</span></code> is not assignable or convertible to <code><span class="identifier">T</span></code>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10839">#10839</a> Value accessors now work correctly on rvalues of <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span></code>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Version 3.2.0 </div> </li> <li> <div> <em>New Features:</em> <ul> <li> <div> Phoenix now has a <em>lazy list</em> implementation as an optional extension. </div> </li> </ul> </div> </li> <li> <div> <em>New Example:</em> <ul> <li> <div> A new example <em>bind_goose</em> shows the compatibility between <em>boost bind</em> and <em>boost phoenix bind</em>. </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10927">#10927</a> Missing <code><span class="identifier">std</span><span class="special">::</span></code> qualifier for <code><span class="identifier">fabs</span></code> in <code><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">cpp</span></code> </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11085">#11085</a> Missing qualifier for pow call in <code><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">function_tests</span><span class="special">.</span><span class="identifier">cpp</span></code> </div> </li> <li> <div> Fixes for a number of cases failing with <em>bind</em>, <em>lambda</em> and <em>let</em>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Version 1.2 </div> </li> <li> <div> Added Visual Studio 2015 detection. </div> </li> <li> <div> Added detection of Haiku OS. </div> </li> <li> <div> Fix Android endian detection. </div> </li> <li> <div> Added <code><span class="identifier">predef_check</span></code> program and BBv2 integration for build configuration checks. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/random/">Random</a>:</span> <ul> <li> <div> Added non_central_chi_squared_distribution. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> <em>Version</em> 4.5.0 </div> </li> <li> <div> <em>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9600">#9600</a> Async: Add task_region </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10611">#10611</a> Add emplace promise::set_value and emplace make_ready_future </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10826">#10826</a> Add scheduled executor operations </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11048">#11048</a> Add a serial_executor based on continuations </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6787">#6787</a> boost::thread::sleep() hangs if system time is rolled back </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10734">#10734</a> Submit method work differently on different executors, some throw exception and some silently ignore error (thread_executor and inline_executor) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10736">#10736</a> Task exceptions silently ignored. I think std::terminate solution from N3785 and std::thread is better choice and more consistent. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10737">#10737</a> In serial_executor we have infinite wait if task throw exception. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10822">#10822</a> Boost.Thread fails to compile on Android </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10824">#10824</a> Boost.Thread 1.57 breaks Windows XP compatibility for SP2 and below. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10963">#10963</a> future&lt;future&lt;T&gt;&gt;::then Has No Implementation </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10964">#10964</a> future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10968">#10968</a> The futures returned by async() and future::then() are not blocking. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10971">#10971</a> shared_future::get()/get_or() must be const </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10972">#10972</a> shared_future::then() can be called multiple times. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10979">#10979</a> Support T&amp; type deduction when the make_ready_future parameter is reference_wrapper&lt;T&gt; </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10996">#10996</a> Thread physical_concurrency() is failing on Windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11035">#11035</a> BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE not defined for Android </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11053">#11053</a> The attached code results in a R6025 - pure virtual function call in run_thread_exit_callbacks </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_erasure/">TypeErasure</a>:</span> <ul> <li> <div> Fixed compilation with MSVC 12. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Link time assertions added on platforms that support it </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/units">Units</a>:</span> <ul> <li> <div> Fix for base units with arbitrary dimensions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered">Unordered</a>:</span> <ul> <li> <div> Fix move assignment with stateful, propagate_on_container_move_assign allocators (<a href="https://svn.boost.org/trac/boost/ticket/10777">#10777</a>). </div> </li> <li> <div> Fix potential overflow when calculating number of buckets to allocate (<a href="https://github.com/boostorg/unordered/pull/4">GitHub #4</a>). </div> </li> <li> <div> Other minor changes, see <a href="http://www.boost.org/doc/html/unordered/changes.html">changelog</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> Compile time checked getter is now used by default in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;(</span><span class="identifier">VariantT</span><span class="special">)</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polymorphic_get</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;(</span><span class="identifier">VariantT</span><span class="special">)</span></code>. New getter asserts that type <code><span class="identifier">U</span></code> is one of the types that can be stored in <code><span class="identifier">VariantT</span></code>. Define <code><span class="identifier">BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT</span></code> to change default behavior. See <a href="http://www.boost.org/doc/html/variant/reference.html#header.boost.variant.get_hpp">get.hpp</a> and <a href="http://www.boost.org/doc/html/variant/reference.html#header.boost.variant.polymorphic_get_hpp">polymorphic_get.hpp</a> descriptions for more info <a href="https://svn.boost.org/trac/boost/ticket/547">#547</a>. </div> </li> <li> <div> Added missing comparison operators to variant <a href="https://svn.boost.org/trac/boost/ticket/8620">#8620</a>, <a href="https://svn.boost.org/trac/boost/ticket/10811">#10811</a> </div> </li> <li> <div> Multiple documentations fixes <a href="https://svn.boost.org/trac/boost/ticket/10273">#10273</a>, <a href="https://svn.boost.org/trac/boost/ticket/10653">#10653</a> </div> </li> <li> <div> Variadic templats enabled on Clang <a href="https://svn.boost.org/trac/boost/ticket/10832">#10832</a> </div> </li> <li> <div> Autodetection of return types for visitors in C++14, which makes it possible to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> with generic lambdas <a href="https://svn.boost.org/trac/boost/ticket/10837">#10837</a>: </div> <pre><span class="keyword">auto</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span><span class="special">(</span> <span class="special">[](</span><span class="keyword">auto</span> <span class="identifier">v</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">);</span> <span class="special">},</span> <span class="identifier">variant_instance</span> <span class="special">);</span> </pre> </li> <li> <div> Improved swap functions <a href="https://svn.boost.org/trac/boost/ticket/10882">#10882</a> </div> </li> <li> <div> Many improvements to variadic templates, even more methods support variadics. </div> </li> <li> <div> Multiple bugfixes and testing improvements including Coveralls integration </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_58_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.9.2 </div> </li> <li> <div> GCC, C++98: 4.8.1, 4.8.2 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.4, 4.9.2 </div> </li> <li> <div> GCC, C++14: 4.9.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.7, 4.5.4, 4.6.3, 4.7.3, 4.8.2 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.6.4, 4.7.3, 4.8.1, 4.9.2, 5.0.0 (experimental) </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.4, 4.9.2 </div> </li> <li> <div> GCC, C++14: 4.9.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.7, 4.5.4, 4.6.4, 4.7.3 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android <ul> <li> <div> Clang: 3.4, 3.5 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_58_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div>