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.59.0http://www.boost.org/users/history/version_1_59_0.htmlhttp://www.boost.org/users/history/version_1_59_0.htmlIn Progress <div id="version_1_59_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <em>TODO</em> </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/doc/libs/master/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Added <a href="http://www.boost.org/doc/libs/master/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> <em>TODO</em> </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> <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_59_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <em>TODO</em> </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 complied agains 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/libs/variant/doc/html/variant/reference.html#header.boost.variant.get_hpp">get.hpp</a> and <a href="http://www.boost.org/libs/variant/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> Version 1.57.0http://www.boost.org/users/history/version_1_57_0.htmlhttp://www.boost.org/users/history/version_1_57_0.htmlMon, 3 Nov 2014 15:55:36 -0600 <div id="version_1_57_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> RTTI is not required any more (<a href="http://www.boost.org/libs/type_index">TypeIndex</a> library is used for RTTI emulation) </div> </li> <li> <div> Fixed <a href="https://svn.boost.org/trac/boost/ticket/8958">#8958</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Fixed the <tt>kqueue</tt> reactor so that it works on FreeBSD (<a href="https://svn.boost.org/trac/boost/ticket/10606">#10606</a>). </div> </li> <li> <div> Fixed an issue in the <tt>kqueue</tt> reactor which resulted in spinning when using serial ports on Mac OS (<a href="https://svn.boost.org/trac/boost/ticket/10496">#10496</a>). </div> </li> <li> <div> Fixed <tt>kqueue</tt> reactor support for read-only file descriptors (<a href="https://svn.boost.org/trac/boost/ticket/10367">#10367</a>). </div> </li> <li> <div> Fixed a compile error when using the <tt>/dev/poll</tt> reactor (<a href="https://svn.boost.org/trac/boost/ticket/10350">#10350</a>, <a href="https://svn.boost.org/trac/boost/ticket/10572">#10572</a>). </div> </li> <li> <div> Changed the Windows backend to use <code><span class="identifier">WSASocketW</span></code>, as <code><span class="identifier">WSASocketA</span></code> has been deprecated (<a href="https://svn.boost.org/trac/boost/ticket/10534">#10534</a>). </div> </li> <li> <div> Fixed some warnings reported by Visual C++ 2013 (<a href="https://svn.boost.org/trac/boost/ticket/10376">#10376</a>). </div> </li> <li> <div> Fixed integer type used in the WinRT version of the byte-order conversion functions (<a href="https://svn.boost.org/trac/boost/ticket/10539">#10539</a>). </div> </li> <li> <div> Changed documentation to indicate that <code><span class="identifier">use_future</span></code> and <code><span class="identifier">spawn</span><span class="special">()</span></code> are not made available when including the <code><span class="identifier">asio</span><span class="special">.</span><span class="identifier">hpp</span></code> convenience header (<a href="https://svn.boost.org/trac/boost/ticket/10567">#10567</a>). </div> </li> <li> <div> Explicitly marked <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">strand</span></code> as deprecated. Use <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">strand</span></code> instead. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/circular_buffer/">Circular Buffer</a>:</span> <ul> <li> <div> Fixed some warnings and <code><span class="identifier">move_if_noexcept</span></code> from Boost.Move is used <a href="https://svn.boost.org/trac/boost/ticket/7888">#7888</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> <code><span class="identifier">BOOST_HAS_PRAGMA_DETECT_MISMATCH</span></code> macro was added </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Added support for <code><span class="identifier">initializer_list</span></code>. Contributed by Robert Matusewicz. </div> </li> <li> <div> Fixed double destruction bugs in vector and backward expansion capable allocators. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10263">Trac #10263 (<em>&quot;AIX 6.1 bug with sched_yield() function out of scope&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/16">GitHub #16: <em>Fix iterators of incomplete type containers</em></a>. Thanks to Mikael Persson. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> optionally register stacks with valgrind </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10386">#10386</a> MSVC link error in asymmetric_coroutine.hpp: symbol already defined </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10536">#10536</a> call to 'begin(...pull_coroutine&lt; R &gt; &amp; c)' is ambiguous </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 serialization support via <a href="http://www.boost.org/libs/serialization/">Boost Serialization</a>. </div> </li> <li> <div> <code><span class="identifier">flyweight</span></code> default constructor was made explicit in Boost 1.56, which introduces a regression in some initialization scenarios. The former non-explicit default constructor has been restored (ticket <a href="https://svn.boost.org/trac/boost/ticket/10439">#10439</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>Improvements</em> <ul> <li> <div> The support of parameters convertible to value_type in rtree insert(), remove() and count() functions </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8402">8402</a> Implicit conversion warnings </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9354">9354</a> Bug in winding strategy affecting within() and covered_by() for non-cartesian coordinate systems </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10177">10177</a> Missing include </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10345">10345</a> Distance fails to compile for some coordinate types </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10398">10398</a> Wrong neighbour check in buffer, calculating turns </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10421">10421</a> Invalid Point-Box distance for spherical CS </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10615">10615</a> Rtree constructor feature request </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10643">10643</a> Invalid point_on_surface() result for big coordinates </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10668">10668</a> Implicit conversion warnings (duplicated 8402) </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes</em> <ul> <li> <div> Several fixes of bugs in algorithm buffer </div> </li> <li> <div> Bug in point_on_surface() for CCW Polygons (extreme_points()) and numerical issue (thanks to Matt Amos) </div> </li> <li> <div> Bug in disjoint() for A/A fixed by replacement of point_on_surface() with point_on_border() (thanks to Matt Amos) </div> </li> <li> <div> The result of convex_hull(), duplicated Point in open output, too small number of Points for 1- and 2-Point input </div> </li> <li> <div> Imprecision for big coordinates in centroid(), fixed by Points translation (related with ticket 10643) </div> </li> <li> <div> for_each_segment() not taking into account the last segment of open Geometry </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> Removed <code><span class="identifier">unique_ptr</span></code>, now forwards boost::interprocess::unique_ptr to the general purpose <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">movelib</span><span class="special">::</span><span class="identifier">unique_ptr</span></code> class from <strong>Boost.Move</strong>. This implementation is closer to the standard <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique_ptr</span></code> implementation and it's better maintained. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10262">Trac #10262 (<em>&quot;AIX 6.1 bug with variable definition hz&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10229">Trac #10229 (<em>&quot;Compiling errors in interprocess\detail\os_file_functions.hpp&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10506">Trac #10506 (<em>&quot;Infinite loop in create_or_open_file&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/11">GitHub Pull #11 (<em>&quot;Compile fix for BOOST_USE_WINDOWS_H&quot;</em>)</a>. </div> </li> </ul> </div> </li> <li> <div> Reorganized Doxygen marks to obtain a better header reference. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Experimental version of node checkers, contributed by Matei David. Many thanks! </div> </li> <li> <div> Implemented <a href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3644.pdf">N3644: Null Forward Iterators</a> from C++14. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/12">GitHub Pull #12: <em>Fix MSVC14 warning C4456: declaration of 'x_parent_right' hides previous local declaration</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10520">Boost Trac #10520: <em>Conversion warning in intrusive/detail/utilities.hpp</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10469">Boost Trac #10469: <em>Erasing from intrusive unordered_multiset with optimize_multikey goes into an infinite loop</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> Most components of the library were moved into the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterators</span></code> namespace. For backward compatibility the components are also accessible in the <code><span class="identifier">boost</span></code> namespace. </div> </li> <li> <div> Iterator operators are now conditionally defined based on the iterator category. </div> </li> <li> <div> Some of the internal components of the library were made public (<code><span class="identifier">minimum_category</span></code>, for example). </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> Some internal changes, library now consist of multiple headers instead of a single one <a href="https://svn.boost.org/trac/boost/ticket/10391">#10391</a>, <a href="https://svn.boost.org/trac/boost/ticket/10173">#10173</a> </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 Hyperexponential Distribution. </div> </li> <li> <div> Fix some spurious overflows in the incomplete gamma functions (with thanks to Rocco Romeo). </div> </li> <li> <div> Fix bug in derivative of incomplete beta when a = b = 0.5 - this also effects several non-central distributions, see issue 10480. </div> </li> <li> <div> Fixed some corner cases in function round. </div> </li> <li> <div> Don't support 80-bit floats in cstdfloat.hpp if standard library support is broken. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> </div> </li> <li> <div> Added <code><span class="identifier">unique_ptr</span></code> smart pointer. Thanks to Howard Hinnant for his excellent unique_ptr emulation code and testsuite. </div> </li> <li> <div> Added <code><span class="identifier">move_if_noexcept</span></code> utility. Thanks to Antony Polukhin for the implementation. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9785">Trac #9785: <em>&quot;Compiler warning with intel icc in boost/move/core.hpp&quot;</em></a>, </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10460">Trac #10460: <em>&quot;Compiler error due to looser throw specifier&quot;</em></a>, </div> </li> <li> <div> <a href="https://github.com/boostorg/move/pull/3">Git Pull #3: <em>&quot;Don't delete copy constructor when rvalue references are disabled&quot;</em></a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_array/">MultiArray</a>:</span> <ul> <li> <div> Fixed a friend-declaration related warning for clang (thanks to Marcel Raad). </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 rational to float conversions to exactly round to nearest. </div> </li> <li> <div> Added improved generic float to rational conversions. </div> </li> <li> <div> Fixed rare bug in exponent function for cpp_bin_float. </div> </li> <li> <div> Fixed various minor documentation issues. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> When <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code>s are available, these can be used for lookup operations in indices equipped with composite keys. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>s are also supported for backwards compatibility. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span> <ul> <li> <div> Added is_begin_parens and remove_parens. </div> </li> <li> <div> Added tuple functionality to parallel all array functionality. </div> </li> <li> <div> Fixed VC++ problems with empty tuple data. </div> </li> <li> <div> Updated internal is_empty to use superior variadic version when variadic macros are supported. </div> </li> <li> <div> Updated clang to have same variadic support as gcc. </div> </li> <li> <div> Updated doc for new functionality. </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>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6227">#6227</a> Synchro: Use of variadic templates on Generic Locking Algorithms on compilers providing them </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10298">#10298</a> Synchro: Added queue views. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10300">#10300</a> Async: Added generic_executor_ref. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10552">#10552</a> Add make_valid_future </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6782">#6782</a> call_once uses incorrect barrier intrinsic on Visual Studio </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/9307">#9307</a> future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock: Invalid argument </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9308">#9308</a> future::async fails with terminate called throwing an exception when called with a lambda - clang-darwin-asan11 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9310">#9310</a> test_4648_lib fails on clang-darwin-asan11 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9425">#9425</a> Boost promise &amp; future does not use supplied allocator for value storage </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9558">#9558</a> future continuations unit test hangs in get()/pthread_cond_wait() on Mac 10.7/32-bit/x86/darwin-4.2.1 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9787">#9787</a> [windows] Small duration value passed down to basic_timed_mutex::try_lock_until and condition_variable::wait_until can cause infinite or near infinite wait for win32 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9880">#9880</a> [windows] boost::condition_variable.timed_wait() exception if system time &lt; 1970 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10159">#10159</a> GCC 4.4 error sorry, unimplemented </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10196">#10196</a> thread_specific_ptr does not support void* </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10296">#10296</a> Boost.Thread 1.56 rc1 does not compile on Mingw </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10297">#10297</a> Boost.Thread 1.56 rc1 hangs when built with clang on armhf </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10340">#10340</a> No boost::promise&lt;T&gt;::set_value(const T&amp;) overload present in C++03 mode </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10425">#10425</a> Missing documentation for when_all/when_any. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10426">#10426</a> Take in account the deferred futures in when_all. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10427">#10427</a> Take in account the deferred and ready futures in when_any. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10428">#10428</a> Adapt to new unique_ptr interface in Boost.Move </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10465">#10465</a> Missing implementation of when_all/when_any when the result is a tuple. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10476">#10476</a> classes using BOOST_THREAD_MOVABLE_ONLY&lt;T&gt; dont satisfy is_copy_constructible&lt;T&gt;::value == false </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10478">#10478</a> Data race in boost/thread/future.hpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10529">#10529</a> The pthread/condition_variable_any constructor reports incorrect error code for pthread_cond_init </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10563">#10563</a> shared_future&lt;R&gt;::then should be const </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> <code><span class="identifier">BOOST_HAS_PRAGMA_DETECT_MISMATCH</span></code> is now used to detect ODR violations <a href="https://svn.boost.org/trac/boost/ticket/10404">#10404</a> </div> </li> <li> <div> Typos fixed <a href="https://svn.boost.org/trac/boost/ticket/10294">#10294</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_traits/">TypeTraits</a>:</span> <ul> <li> <div> Added new traits is_copy_assignable and is_final. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/units/">Units</a>:</span> <ul> <li> <div> New unit system &lt;boost/units/systems/information.hpp&gt; units for: bit, byte, nat, hartley and shannon, </div> </li> <li> <div> Add scale units for binary prefixes kibi, mebi, gibi, tebi, pebi, zebi and yobi IEC prefixes </div> </li> <li> <div> Fix output of NaN on msvc-14 </div> </li> <li> <div> Add support for C++11 numeric_limits::max_digits10 and ::lowest </div> </li> <li> <div> warning fixes </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 the <code><span class="identifier">pointer</span></code> typedef in iterators (<a href="https://svn.boost.org/trac/boost/ticket/10672">#10672</a>). </div> </li> <li> <div> Fix Coverity warning (<a href="https://github.com/boostorg/unordered/pull/2">GitHub #2</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> The <code><span class="identifier">next</span><span class="special">()</span></code> and <code><span class="identifier">prior</span><span class="special">()</span></code> functions taking distance arguments were reworked. The code now work correctly when the distance is unsigned or both arguments are integers. The new code relies on the availability of operators supported by the first argument to select the correct implementation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/numeric/ublas/">uBLAS</a>:</span> <ul> <li> <div> added two new types: matrix_row and matrix_column facades . With them, it is possible to access to the matrices as an array of rows and an array of columns, respectively. </div> </li> <li> <div> added fixed_vector/fixed_matrix classes to represent small - fixed size containers. Requires c++11 because it is using std::array </div> </li> <li> <div> fixed the long standing banded matrix bug (https://svn.boost.org/trac/boost/ticket/7549). </div> </li> <li> <div> the interface of matrices and vectors has been extended with cbegin, cend, crbegin and crend member functions, as defined in c++11. </div> </li> <li> <div> removed doxygen documentation to make the distribution lighter </div> </li> <li> <div> removed warnings with MSVC for unused parameters </div> </li> <li> <div> changed the uBlas development folder structure (will not affect users of the library) </div> </li> <li> <div> performed a very large overhaul with respect to warnings and errors on various compilers. Apart for some hard to resolve warnings and older compiler incompatibilities, compilations with uBlas will be much cleaner now. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_57_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 </div> </li> <li> <div> Clang, C++14: 3.5 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.8.2 </div> </li> <li> <div> GCC, C++98: 4.9.1 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1 </div> </li> <li> <div> GCC, C++14: 4.9.1 </div> </li> <li> <div> Intel: 13.1, 14.0 </div> </li> <li> <div> Intel, C++11: 13.1, 14.0 </div> </li> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 6.0 </div> </li> <li> <div> Apple Clang, C++11: 6.0 </div> </li> <li> <div> Apple Clang, C++14: 6.0 </div> </li> <li> <div> GCC: 4.2.1, 4.9.1 </div> </li> <li> <div> Intel: 12.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0 </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.2 </div> </li> <li> <div> Clang, C++14: 3.5.0, trunk </div> </li> <li> <div> GCC: 4.4.7, 4.6.4, 4.7.3, 4.8.1, 4.8.2, 5.0 <em>(experimental)</em> </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1 </div> </li> <li> <div> GCC, C++14: 4.9.1 </div> </li> <li> <div> Intel: 11.1, 12.1, 13.0, 13.1, 14.0 </div> </li> <li> <div> Intel, C++11: 13.1, 14.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 6.0 </div> </li> <li> <div> Apple Clang, C++11: 6.0 </div> </li> <li> <div> Apple Clang, C++14: 6.0 </div> </li> <li> <div> Clang: trunk </div> </li> <li> <div> Clang, C++11: trunk </div> </li> <li> <div> GCC: 4.2.1, 4.9.1 </div> </li> <li> <div> Intel: 12.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.3, 4.8.0, 4.8.2, 4.9.0 </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> </div> <div id="version_1_57_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.56.0http://www.boost.org/users/history/version_1_56_0.htmlhttp://www.boost.org/users/history/version_1_56_0.htmlThu, 7 Aug 2014 09:08:22 -0700 <div id="version_1_56_0.other_downloads"> <h3><span class="link">Other Downloads</span></h3> <ul> <li> <div> <a href="https://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/">Windows binaries</a> </div> </li> </ul> </div> <div id="version_1_56_0.modularization"> <h3><span class="link">Modularization</span></h3> <p> Boost version control has migrated to a system using git submodules. This shouldn't make too much of a difference to users, although the directory structure is now a bit different. </p> <p> Parts of some libraries have been moved into different modules, and several new modules have been extracted from existing code. All header paths should remain the same. The new modules are: </p> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/assert/">Assert</a>:</span> Customizable assert macros. Maintained by Peter Dimov. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/core/">Core</a>:</span> Core utilities used by other libraries, with minimal dependencies. Maintained by Peter Dimov, Glen Fernandes and Andrey Semashev. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical_Cast</a>:</span> General literal text conversions, such as an int represented a string, or vice-versa, from Kevlin Henney. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/throw_exception/">Throw_Exception</a>:</span> A common infrastructure for throwing exceptions from Boost libraries, from Emil Dotchevski. </div> </li> <li> <div> <span class="library">Winapi:</span> Windows API declarations without &lt;windows.h&gt;, for internal Boost use. </div> </li> </ul> </div> <div id="version_1_56_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/align/">Align</a>:</span> Memory alignment functions, allocators, and adaptors, from Glen Fernandes. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_index/">Type_Index</a>:</span> Runtime/Compile time copyable type info, from Antony Polukhin. </div> </li> </ul> </div> <div id="version_1_56_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/accumulators/">Acumulators</a>:</span> <ul> <li> <div> New accumulators <code><span class="identifier">rolling_variance</span></code> and <code><span class="identifier">rolling_moment</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Fixed rvalue references related issues (<a href="https://svn.boost.org/trac/boost/ticket/9215">#9215</a>, <a href="https://svn.boost.org/trac/boost/ticket/9462">#9462</a>). </div> </li> <li> <div> Dropped support of antique compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Fixed <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code> to work correctly with new Boost.Coroutine interface (<a href="https://svn.boost.org/trac/boost/ticket/9442">#9442</a>, <a href="https://svn.boost.org/trac/boost/ticket/9928">#9928</a>). </div> </li> <li> <div> Ensured that incomplete <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code> coroutines are correctly unwound when cleaned up by the <code><span class="identifier">io_service</span></code> destructor (<a href="https://svn.boost.org/trac/boost/ticket/9731">#9731</a>). </div> </li> <li> <div> Fixed delegation of continuation hook for handlers produced by <code><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">wrap</span><span class="special">()</span></code> and <code><span class="identifier">strand</span><span class="special">::</span><span class="identifier">wrap</span><span class="special">()</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/9741">#9741</a>). </div> </li> <li> <div> Changed the Windows I/O completion port backend to use <code><span class="identifier">ConnectEx</span></code>, if available, for connection-oriented IP sockets. </div> </li> <li> <div> Changed the <code><span class="identifier">io_service</span></code> backend for non-Windows (and non-IOCP Windows) platforms to use a single condition variable per <code><span class="identifier">io_service</span></code> instance. This addresses a potential race condition when <code><span class="identifier">run_one</span><span class="special">()</span></code> is used from multiple threads. </div> </li> <li> <div> Prevented integer overflow when computing timeouts based on some <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">chrono</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span></code> clocks (<a href="https://svn.boost.org/trac/boost/ticket/9662">#9662</a>, <a href="https://svn.boost.org/trac/boost/ticket/9778">#9778</a>). </div> </li> <li> <div> Made further changes to <code><span class="identifier">EV_CLEAR</span></code> handling in the kqueue backend, to address other cases where the <code><span class="identifier">close</span><span class="special">()</span></code> system call may hang on Mac OS X. </div> </li> <li> <div> Fixed infinite recursion in implementation of <code><span class="identifier">resolver_query_base</span><span class="special">::</span><span class="identifier">flags</span><span class="special">::</span><span class="keyword">operator</span><span class="special">~</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/9548">#9548</a>). </div> </li> <li> <div> Made the <code><span class="identifier">select</span></code> reactor more efficient on Windows for large numbers of sockets (<a href="https://svn.boost.org/trac/boost/ticket/9528">#9528</a>). </div> </li> <li> <div> Fixed a Windows-specific type-aliasing issue reported by <tt>gcc</tt> (<a href="https://svn.boost.org/trac/boost/ticket/9550">#9550</a>). </div> </li> <li> <div> Prevented execution of compile-time-only buffer test to avoid triggering an address sanitiser warning (<a href="https://svn.boost.org/trac/boost/ticket/8295">#8295</a>). </div> </li> <li> <div> Disabled the <code><span class="identifier">GetQueuedCompletionStatus</span></code> timeout workaround on recent versions of Windows. </div> </li> <li> <div> Added support for string-based scope IDs when using link-local multicast addresses. </div> </li> <li> <div> Changed IPv6 multicast group join to use the address's scope ID as the interface, if an interface is not explicitly specified. </div> </li> <li> <div> Fixed multicast test failure on Mac OS X and the BSDs by using a link-local multicast address. </div> </li> <li> <div> Worked around a <tt>gcc</tt> problem to do with anonymous enums (<a href="https://svn.boost.org/trac/boost/ticket/10042">#10042</a>). </div> </li> <li> <div> Reverted the Windows <code><span class="identifier">HANDLE</span></code> backend change to ignore <code><span class="identifier">ERROR_MORE_DATA</span></code>. Instead, the error will be propagated as with any other (i.e. in an <code><span class="identifier">error_code</span></code> or thrown as a <code><span class="identifier">system_error</span></code>), and the number of bytes transferred will be returned. For code that needs to handle partial messages, the <code><span class="identifier">error_code</span></code> overload should be used (<a href="https://svn.boost.org/trac/boost/ticket/10034">#10034</a>). </div> </li> <li> <div> Fixed an off-by-one error in the <code><span class="identifier">signal_set</span></code> implementation's signal number check (<a href="https://svn.boost.org/trac/boost/ticket/9324">#9324</a>). </div> </li> <li> <div> Changed to use SSE2 intrinsics rather than inline assembly, to allow the Cray compiler to work. </div> </li> <li> <div> Stopped using certain Winsock functions that are marked as deprecated in the latest Visual C++ and Windows SDK. </div> </li> <li> <div> Added a workaround for building the unit tests with <tt>gcc</tt> on AIX. </div> </li> <li> <div> Various minor documentation improvements (<a href="https://svn.boost.org/trac/boost/ticket/8295">#8295</a>, <a href="https://svn.boost.org/trac/boost/ticket/9605">#9605</a>, <a href="https://svn.boost.org/trac/boost/ticket/9771">#9771</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/assign/">Assign</a>:</span> <ul> <li> <div> Resolve some C++11 ambiguities (<a href="https://svn.boost.org/trac/boost/ticket/3073">#3073</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> The library has been redesigned. Besides internal refactoring, various bugs were fixed, including incorrect values of feature test macros and integer overflow handling. </div> </li> <li> <div> Changed values of the <code><span class="identifier">memory_order</span></code> enumeration. The concrete values are not part of the interface, but this change may potentially break ABI, if the enum is used in user's interfaces. </div> </li> <li> <div> Implemented support for 128-bit atomic operations on Windows x64 with MSVC. The library assumes presence of the <code><span class="identifier">cmpxchg16b</span></code> instruction in the target CPUs. Some early AMD CPUs don't support this instruction. To target those define the <code><span class="identifier">BOOST_ATOMIC_NO_CMPXCHG16B</span></code> macro. </div> </li> <li> <div> Implemented experimental support for Windows ARM target with MSVC. </div> </li> <li> <div> Implemented experimental support for DEC Alpha target with GCC. </div> </li> <li> <div> Improved support for ARMv6 and later with GCC. Implemented all atomic operations as assembler blocks instead of CAS-based loops. 64-bit operations are supported with ARMv7. </div> </li> <li> <div> Implemented optional support for the <code><span class="identifier">BOOST_ATOMIC_FLAG_INIT</span></code> macro and static initialization of <code><span class="identifier">atomic_flag</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/8158">#8158</a>) </div> </li> <li> <div> Fixed compilation for SPARCv9 target. (<a href="https://svn.boost.org/trac/boost/ticket/9446">#9446</a>) </div> </li> <li> <div> Fixed compilation for PowerPC target. (<a href="https://svn.boost.org/trac/boost/ticket/9447">#9447</a>) </div> </li> <li> <div> Fixed several compatibility problems with Clang on x86 and x86-64. (<a href="https://svn.boost.org/trac/boost/ticket/9610">#9610</a>, <a href="https://svn.boost.org/trac/boost/ticket/9842">#9842</a>) </div> </li> <li> <div> Removed specialized code for Windows on IA64 platform. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/circular_buffer/">Circular Buffer</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9970">#9970</a>,<a href="https://svn.boost.org/trac/boost/ticket/9334">#9334</a> Support for the C++11 allocator model. </div> </li> <li> <div> Dropped support of antique compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/concept_check/">Concept Check</a>:</span> <ul> <li> <div> Fewer warnings (includes <a href="https://svn.boost.org/trac/boost/ticket/5012">#5012</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Added DlMalloc-based Extended Allocators. </div> </li> <li> <div> Improved configurability of tree-based ordered associative containers. AVL, Scapegoat and Splay trees are now available to implement <code><span class="identifier">set</span></code>, <code><span class="identifier">multiset</span></code>, <code><span class="identifier">map</span></code> and <code><span class="identifier">multimap</span></code>. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9338">#9338: <em>&quot;VS2005 compiler errors in swap() definition after including container/memory_util.hpp&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9637">#9637: <em>&quot;Boost.Container vector::resize() performance issue&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9648">#9648: <em>&quot;string construction optimization - char_traits::copy could be used ...&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9801">#9801: <em>&quot;I can no longer create and iterator_range from a stable_vector&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9915">#9915: <em>&quot;Documentation issues regarding vector constructors and resize methods - value/default initialization&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9916">#9916: <em>&quot;Allocator propagation incorrect in the assignment operator of most&quot;</em></a>. </div> </li> <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>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9955">#9955: <em>&quot;Using memcpy with overlapped buffers in vector&quot;</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> fcontext_t is opaque pointer to context-data </div> </li> <li> <div> changed signature of make_fcontext() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8826">#8826</a> no executable stack </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9437">#9437</a> catch exceptions on iOS and Windows Phone 8 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9445">#9445</a> support for x32 ABIs </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9522">#9522</a> support for powerpc_64le </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9743">#9743</a> bugfix for powerpc_64 le/be </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9774">#9774</a> bugfix for x86 on Mac OS X + clang </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> support of symmetric coroutines </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9355">#9355</a> fix race condition in protected_stack_allocator </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9551">#9551</a> list of supported architectures </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9734">#9734</a> wrong check of mmap() return value </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9735">#9735</a> no memset() for protected_stack_allocator </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9760">#9760</a> coroutine iterator need const operator== </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10070">#10070</a> mmap() return value </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10157">#10157</a> file descriptor not required in protected_stack_allocator </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> <div> Support for C++11 move constructors </div> </li> <li> <div> Warning fixes on MSVC 2013 </div> </li> <li> <div> Support for C++11 minimal allocators </div> </li> <li> <div> Add noexcept specifications </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono</a>:</span> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6918">#6918</a> Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8006">#8006</a> Boost::Chrono Assertion at startup - steady_clock::now() - Windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9337">#9337</a> chrono::process_cpu_clock time points wrong by factor 1000 on Linux </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9342">#9342</a> Regression on process_cpu_clock::timepoint io on V2 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9419">#9419</a> boost::chrono::floor()/round() and negative durations is wrong </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9698">#9698</a> boost::chrono::thread_clock not declared in OSX </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9720">#9720</a> boost::this_thread::sleep_for() sometimes returns immediately on win32 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9859">#9859</a> Remove references to gcc-mingw </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9918">#9918</a> chrono compilation error on Solaris, funciton timegm </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9811">#9811</a> boost/boost/chrono/duration.hpp:355:56: error: call to non-constexpr function 'static std::numeric_limits&lt;float&gt;::_Ty std::numeric_limits&lt;float&gt;::max()' /home/zosun/input_service/inputservices-core-service/other/boost/boost/chrono/duration.hpp: In static member function 'static constexpr double boost::chrono::detail::chrono_numeric_limits&lt;double, true&gt;::lowest()': </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10069">#10069</a> Overflow in chrono clocks on 32bit </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10151">#10151</a> timegm function not available on QNX </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> In compilers with variadic template support, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweight</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> now provides a perfectly forwarding constructor to <code><span class="identifier">T</span><span class="special">::</span><span class="identifier">T</span></code> (previously an emulation was used). </div> </li> <li> <div> <code><span class="identifier">flyweight</span></code> now replicates the initializer-list constructors and assignment operators of its underlying type. </div> </li> <li> <div> Fixed intermodule static initialization problem (ticket <a href="https://svn.boost.org/trac/boost/ticket/9553">#9553</a>). </div> </li> <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> Fusion is enabled for use on GPU </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Additional functionality <ul> <li> <div> New algorithm buffer for inflating/deflating geometries (buffer itself already existed but that was only to enlarge a box) </div> </li> <li> <div> New algorithm remove_spikes, algorithm to remove spikes from a ring, polygon or multi_polygon. </div> </li> <li> <div> New algorithm point_on_surface, generating a point lying on the surface (interior) of the polygon </div> </li> <li> <div> New algorithm is_simple, returning true if a geometry is simple according to the OGC standard </div> </li> <li> <div> New algorithm is_valid, returning true if a geometry is valid according to the OGC standard </div> </li> <li> <div> New algorithm crosses for checking this spatial relation according to the OGC standard </div> </li> <li> <div> The set operation algorithms (difference, intersection, sym_difference and union_) now support as input pairs of pointlike or linear geometries </div> </li> <li> <div> The distance and comparable_distance algorithms now support all pairs of geometry combinations </div> </li> <li> <div> The spatial relations which didn't support it (covered_by, touches, within, etc.) now support as input linear and/or areal geometries </div> </li> <li> <div> The support for boost::variants as input geometries in various algorithms </div> </li> <li> <div> The rtree support for indexing segments </div> </li> <li> <div> The rtree nearest() predicate support for arbitrary geometries </div> </li> </ul> </div> </li> <li> <div> Solved tickets <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8310">8310</a> Wrong results with overlapping polygons (fixed using point_on_surface for disjoint) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8375">8375</a> sym_difference of non-closed polygons returns closed polygon </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8376">8376</a> difference of non-closed polygons returns closed polygon </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9081">9081</a> Booleans create self-intersecting polygons from non-self-intersecting polygons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9245">9245</a> Check for process errors in make_qbk.py </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9563">9563</a> (Sym)difference not successful, fixed by rescaling to robust type </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9628">9628</a> Wrong result of within() due to the winding strategy not working correctly for nearly-horizontal segments </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9871">9871</a> Remove spike in polygon with only a spike </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9947">9947</a> Missing info about WKT in documentation </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9759">9759</a> Invalid results of R-tree knn queries for non-cartesian coordinate systems </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10019">10019</a> Difference of Linestring and Box returns their intersection </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10077">10077</a> Wrong types in concept checks in boost/geometry/arithmetic/arithmetic.hpp </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> intersects(polygon) could return a self-intersection-point for its closing point, fixed </div> </li> <li> <div> equals() could return invalid results for non-simple linear geometries according to the OGC standard, fixed </div> </li> <li> <div> touches() didn't work properly for CCW areal geomtries, fixed </div> </li> <li> <div> rtree nearest queries returned wrong elements for non-cartesian coordinate systems, fixed </div> </li> <li> <div> rtree crashed in some cases when used with Interprocess allocator, fixed </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Removed some Visual C++ 6 workarounds. </div> </li> <li> <div> Ongoing work on improving <code><span class="identifier">hash_combine</span></code>, this changes the previously documented algorithm for the function. </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://svn.boost.org/trac/boost/ticket/9221">Trac #9221 (<em>&quot;message_queue deadlock on linux&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9226">Trac #9226 (<em>&quot;On some computers, Common Appdata is empty in registry, so boost interprocess cannot work&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9284">Trac #9284 (<em>&quot;WaitForSingleObject(mutex) must handle WAIT_ABANDONED&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9285">Trac #9285 (<em>&quot;CreateMutex returns NULL if fails&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9288">Trac #9288 (<em>&quot;timed_wait does not check if it has expired&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9408">Trac #9408 (<em>&quot;Android does not support XSI_SHARED_MEMORY_OBJECTS&quot;</em></a>). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9729">Trac #9729 (<em>&quot;crash on managed_external_buffer object construction&quot;</em></a>). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9767">Trac #9767 (<em>&quot;bootstamp generation causes error in case of corrupt Windows Event Log&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9835">Trac #9835 (<em>&quot;Boost Interprocess fails to compile with Android NDK GCC 4.8, -Werror=unused-variable&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9911">Trac #9911 (<em>&quot;get_tmp_base_dir(...) failure&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9946">Trac #9946 (<em>&quot;ret_ptr uninitialized in init_atomic_func, fini_atomic_func&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10011">Trac #10011 (<em>&quot;segment_manager::find( unique_instance_t* ) fails to compile&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10021">Trac #10021 (<em>&quot;Interprocess and BOOST_USE_WINDOWS_H&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/2">GitHub #2 (<em>&quot;Provide support for the Cray C++ compiler. The Cray compiler defines __GNUC__&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/3">GitHub #3 (<em>&quot;Fix/mingw interprocess_exception throw in file_wrapper::priv_open_or_create&quot;</em>)</a>. </div> </li> </ul> </div> </li> <li> <div> <strong>ABI breaking</strong>: <a href="https://svn.boost.org/trac/boost/ticket/9221">#9221</a> showed that <code><span class="identifier">BOOST_INTERPROCESS_MSG_QUEUE_CIRCULAR_INDEX</span></code> option of message queue, was completely broken so an ABI break was necessary to have a working implementation. </div> </li> <li> <div> Simplified, refactored and unified (timed_)lock code based on try_lock(). There were several bugs when handling timeout expirations. </div> </li> <li> <div> Changed the implementation of condition variables' destructors to allow POSIX semantics (the condition variable can be destroyed after all waiting threads have been woken up).. </div> </li> <li> <div> Added <code><span class="identifier">BOOST_INTERPROCESS_SHARED_DIR_PATH</span></code> option to define the shared directory used to place shared memory objects when implemented as memory mapped files. </div> </li> <li> <div> Added support for <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code>. When this macro is defined Interprocess does not declare used Windows API function and types, includes all needed windows SDK headers and uses types and functions declared by the Windows SDK. </div> </li> <li> <div> Added <code><span class="identifier">get_size</span></code> to <code><span class="identifier">windows_shared_memory</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Improved Doxygen generated reference and updated and fixed forward-declaration header. </div> </li> <li> <div> <strong>ABI breaking</strong>: Fixed ABI regression introduced in Boost 1.55 version, mainly noticeable on MSVC compilers. </div> </li> <li> <div> <strong>Source breaking</strong>: Removed previously deprecated <code><span class="identifier">xxx_dont_splay</span></code> functions from splay containers, <code><span class="identifier">splay_set_base_hook</span></code> and <code><span class="identifier">splay_set_member_hook</span></code>from splay containers and <code><span class="keyword">bool</span> <span class="identifier">splay</span> <span class="special">=</span> <span class="keyword">true</span></code> extra parameter in <code><span class="identifier">splaytree_algorithms</span></code> functions. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8468">#8468: Compile error on visual studio 2010/2012 using vector with custom allocator and aligned types</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9332">#9332: <em>&quot;has_member_function_callable_with.hpp compile error on msvc-12.0&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9650">#9650: <em>&quot;intrusive list with stateful value traits&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9746">#9746: Modern Sun CC compiler detects error in intrusive library header</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9940">#9940: bad bug in intrusive list with safe_link (or auto_unlink) hooks</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9948">#9948: remove use of const_cast in intrusive containers</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9949">#9949: clear header node hooks upon intrusive container destruction</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9961">#9961: tests for hooks not derived frorm generic_hook</a> </div> </li> </ul> </div> </li> <li> <div> Optimized tree rebalancing code to avoid redundant assignments. </div> </li> <li> <div> Added 64 bit prime values for <code><span class="identifier">suggested_upper_bucket_count</span></code>/<code><span class="identifier">suggested_lower_bucket_count</span></code> in 64 bit platforms. </div> </li> <li> <div> Deleted workarounds for old SUN_CC compilers, those are now unsupported as modern SunPro compilers are standard-corforming enough. </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> Added the <code><span class="identifier">try_lexical_convert</span></code> function, that retuns <code><span class="keyword">false</span></code> in case of failed conversion and does not require output parameter to be Default Constructable (<a href="https://svn.boost.org/trac/boost/ticket/6700">#6700</a>). </div> </li> <li> <div> Fixed conversion of string values with leading zeroes to <code><span class="keyword">bool</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/9659">#9659</a>). </div> </li> <li> <div> Code was changed to produce a smaller binaries and simplify compiler's work (<a href="https://svn.boost.org/trac/boost/ticket/9046">#9046</a>). </div> </li> <li> <div> Boost.LexicalCast library was separated from the Boost.Conversion library. </div> </li> <li> <div> Fixed some warnings (<a href="https://svn.boost.org/trac/boost/ticket/8991">#8991</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/index.html">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> For Windows targets, the library now compiles for Windows XP by default. </div> </li> <li> <div> Added indexing operators with <code><span class="identifier">attribute_name</span></code> arguments to <code><span class="identifier">record</span></code> and <code><span class="identifier">record_view</span></code>. </div> </li> <li> <div> Added operators for non-const object output to <code><span class="identifier">basic_formatting_ostream</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/9389">#9389</a>) </div> </li> <li> <div> Added support for putting function names and source file names of named scopes into the formatted strings. (<a href="https://svn.boost.org/trac/boost/ticket/9263">#9263</a>) </div> </li> <li> <div> Added support for incomplete and empty markers to the named scope formatter. (<a href="https://svn.boost.org/trac/boost/ticket/9123">#9123</a>) </div> </li> <li> <div> The default presentation for incomplete named scope lists has changed: trailing scope delimiter is omitted. </div> </li> <li> <div> Added a support header for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">regex</span></code>. </div> </li> <li> <div> By default Boost.Log uses Boost.Regex internally as the regular expressions backend. The backend can be changed by defining configuration macros. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed <code><span class="identifier">dump</span></code> manipulator output on AVX2-enabled CPUs (e.g. Intel Haswell). </div> </li> <li> <div> Fixed compilation of <code><span class="identifier">get_attribute</span></code> method of loggers. </div> </li> <li> <div> Fixed a possible race in <code><span class="identifier">locked_backend</span><span class="special">()</span></code> function implementation of synchronous and asynchronous sink frontends. </div> </li> <li> <div> Fixed a possible infinite block of the logging threads in the asynchronous sink enqueue methods when <code><span class="identifier">block_on_overflow</span></code> strategy was used. </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/index.html">Math</a>:</span> <ul> <li> <div> <strong>Breaking change</strong>: moved a number of non-core headers that are predominantly used for internal maintenance into <code><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">include_private</span></code>. The headers effected are <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">remez</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">generate</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">solve</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span></code>. You can continue to use these headers by adding <code><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">include_private</span></code> to your compiler's include path. </div> </li> <li> <div> <strong>Breaking change</strong>: A number of distributions and special functions were returning the maximum finite value rather than raising an overflow_error, this has now been fixed, which means these functions now behave as documented. However, since the default behavior on raising an overflow_error is to throw a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code> exception, applications which have come to reply rely on these functions not throwing may experience exceptions where they did not before. The special functions involved are gamma_p_inva, gamma_q_inva, ibeta_inva, ibetac_inva, ibeta_invb, ibetac_invb, gamma_p_inv, gamma_q_inv. The distributions involved are pareto_distrib, beta_distrib, geometric_distrib, negative_binomial_distrib, binomial_distrib, chi_squared_distrib, gamma_distrib, inverse_chi_squared_distrib, inverse_gamma_distrib. See <a href="https://svn.boost.org/trac/boost/ticket/10111">#10111</a>. </div> </li> <li> <div> Fix round and trunc functions so they can be used with integer arguments, see <a href="https://svn.boost.org/trac/boost/ticket/10066">#10066</a>. </div> </li> <li> <div> Fix Halley iteration to handle zero derivative (with non-zero second derivative), see <a href="https://svn.boost.org/trac/boost/ticket/10046">#10046</a>. </div> </li> <li> <div> Fix Geometric distribution use of Policies, see <a href="https://svn.boost.org/trac/boost/ticket/9833">#9833</a>. </div> </li> <li> <div> Fix corner cases in the negative binomial distribution, see <a href="https://svn.boost.org/trac/boost/ticket/9834">#9834</a>. </div> </li> <li> <div> Fix compilation failures on Mac OS. </div> </li> <li> <div> Added bernoulli_numbers, changed arbitrary precision tgamma/lgamma to use Sterling's approximation (from Nikhar Agrawal). </div> </li> <li> <div> Added first derivatives of the Bessel functions: cyl_bessel_j_prime, cyl_neumann_prime, cyl_bessel_i_prime, cyl_bessel_k_prime, sph_bessel_prime and sph_neumann_prime (from Anton Bikineev). </div> </li> <li> <div> Fixed buggy Student's t example code, along with docs for testing sample means for equivalence. </div> </li> <li> <div> Documented <code><span class="identifier">max_iter</span></code> parameter in root finding code better, see <a href="https://svn.boost.org/trac/boost/ticket/9225">#9225</a>. </div> </li> <li> <div> Add option to explicitly enable/disable use of __float128 in constants code, see <a href="https://svn.boost.org/trac/boost/ticket/9240">#9240</a>. </div> </li> <li> <div> Cleaned up handling of negative values in Bessel I0 and I1 code (removed dead code), see <a href="https://svn.boost.org/trac/boost/ticket/9512">#9512</a>. </div> </li> <li> <div> Fixed handling of very small values passed to tgamma and lgamma so they don't generate spurious overflows (thanks to Rocco Romeo). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9672">#9672 PDF and CDF of a Laplace distribution throwing domain_error</a> Random variate can now be infinite. </div> </li> <li> <div> Fixed several corner cases in rising_factorial, falling_factorial and tgamma_delta_ratio with thanks to Rocco Romeo. </div> </li> <li> <div> Removed constant <code><span class="identifier">pow23_four_minus_pi</span> </code> whose value did not match the name (and was unused by Boost.Math), see <a href="https://svn.boost.org/trac/boost/ticket/9712">#9712</a>. </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>BOOST_MOVE_RET</code>. </div> </li> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/9482">#9482: <em>&quot;MSVC macros not undefined in boost/move/detail/config_end.hpp&quot;</em></a>, <a href="https://svn.boost.org/trac/boost/ticket/9045">#9045: <em>&quot;Wrong macro name on docs&quot;</em></a>, <a href="https://svn.boost.org/trac/boost/ticket/8420">#8420: <em>&quot;move's is_convertible does not compile with aligned data&quot;</em></a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/mpl/">MPL</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">for_each</span></code> is enabled for use on GPU </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_array/index.html">MultiArray</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5664">#5664</a> operator() checks for Collection concept but requires RandomAccessCollection </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4874">#4874</a> compile errors using Visual C++ 2010 in debug mode </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3581">#3581</a> MultiArray storage order example incorrect for fortran_storage_ordering </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4032">#4032</a> Move MultiArray concepts out of detail namespace </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9212">#9212</a> Broken links to C++ standard papers </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8368">#8368</a> GCC -Wundef warning about BOOST_MULTI_ARRAY_NO_GENERATORS in multi_array </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 <code><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span></code> member function of hashed indices used to have poor performance under low load conditions due to the requirement that an iterator to the next element must be returned (see ticket <a href="https://svn.boost.org/trac/boost/ticket/4264">#4264</a>). In accordance with the resolution of <a href="http://lwg.github.io/issues/lwg-closed.html#579">LWG issue #579</a>, this problem has been fixed while maintaining the interface of <code><span class="identifier">erase</span></code>, at the expense of using one more word of memory per element. In fact, C++ complexity requirements on unordered associative containers have been improved for hashed indices so that </div> <ul> <li> <div> deletion of a given element is unconditionally constant-time, </div> </li> <li> <div> worst-case performance is not <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code> but <code>O(n<sub>dist</sub>)</code>, where <code>n<sub>dist</sub></code> is the number of non-equivalent elements in the index. </div> </li> </ul> <div> Due to the fact that hashed indices rely on a new data structure, the internal representation of their iterators and local iterators have changed, which affects serialization: their corresponding serialization <a href="http://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class version</a> has been bumped from 0 to 1. Old archives involving hashed index (local) iterators can be loaded by Boost 1.56 version of Boost.MultiIndex, but not the other way around. </div> </li> <li> <div> Hashed indices now provide <code><span class="identifier">reserve</span></code>. </div> </li> <li> <div> Hashed indices can now be checked for equality and inequality following the (suitably adapted) C++ standard specification in <strong>[unord.req]</strong>. </div> </li> <li> <div> The public interface of Boost.MultiIndex provide <code><span class="keyword">noexcept</span></code> specifications where appropriate (for compliant compilers). </div> </li> <li> <div> Improved performance of failed insertions into a <code><span class="identifier">multi_index_container</span></code>. </div> </li> <li> <div> Much internal code aimed at supporting MSVC++ 7.0 and prior has been removed. Compilation times without this legacy code might be slightly faster. </div> </li> <li> <div> Fixed a bug with insertion via iterators dereferencing to rvalues (ticket <a href="https://svn.boost.org/trac/boost/ticket/9665">#9665</a>). </div> </li> <li> <div> Made Boost.MultiIndex compatible with <code><span class="identifier">BOOST_BIND_NO_PLACEHOLDERS</span></code> (ticket <a href="https://svn.boost.org/trac/boost/ticket/9798">#9798</a>). </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> Change floating point to rational conversions to be implicit, see <a href="https://svn.boost.org/trac/boost/ticket/10082">10082</a>. </div> </li> <li> <div> Fix definition of checked_cpp_rational typedef. </div> </li> <li> <div> Fix bug in assignment from string in cpp_int, see <a href="https://svn.boost.org/trac/boost/ticket/9936">9936</a>. </div> </li> <li> <div> Added new cpp_bin_float backend for binary floating point. </div> </li> <li> <div> Fix bug in assignment from string in cpp_int, see <a href="https://svn.boost.org/trac/boost/ticket/9936">9936</a>. </div> </li> <li> <div> Added MSVC-specific #include for compiler intrinsics, see <a href="https://svn.boost.org/trac/boost/ticket/9336">9336</a>. </div> </li> <li> <div> Fixed various typos in docs, see <a href="https://svn.boost.org/trac/boost/ticket/9432">9432</a>. </div> </li> <li> <div> Fixed gmp_rational to allow move-copy from an already copied-from object, see <a href="https://svn.boost.org/trac/boost/ticket/9497">9497</a>. </div> </li> <li> <div> Added list of values for numeric_limits. </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> Added algebra and operations dispatcher for automatic detection of appropriate algebras and operations. </div> </li> <li> <div> Added support for Eigen, Boost.Multiarray, Boost.Mpi, Boost.Compute, Blaze, and NT2. </div> </li> <li> <div> Changed algebra interface to use algebra.norm_inf function. </div> </li> <li> <div> Added iterators for iterating through the solution of the ODEs, hence an alternative to the integrate functions. </div> </li> <li> <div> Added the Velocity-Verlet method. </div> </li> <li> <div> Minor bug fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Added support for rvalue references. Now <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> works with moveable but non-copyable <code><span class="identifier">T</span></code>'s. </div> </li> <li> <div> Improved <code><span class="identifier">swap</span></code> (now uses move operations). </div> </li> <li> <div> Added function <code><span class="identifier">emplace</span><span class="special">()</span></code>. This is the last of the requests from <a href="https://svn.boost.org/trac/boost/ticket/1841">#1841</a>. </div> </li> <li> <div> <code><span class="identifier">optional</span></code> is moveable, including conditional <code><span class="keyword">noexcept</span></code> specifications, which make it <code><span class="identifier">move_if_noexcept</span></code>-friendly. </div> </li> <li> <div> Using explicit operator bool() on platforms that support it (<a href="https://svn.boost.org/trac/boost/ticket/4227">#4227</a>) (breaking change). </div> </li> <li> <div> Forward declaration of <code><span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">ostream</span><span class="special">&amp;,</span> <span class="identifier">optional</span> <span class="keyword">const</span><span class="special">&amp;)</span></code> to prevent inadvertent incorrect serialization of optional objects. </div> </li> <li> <div> Removed depprecated function <code><span class="identifier">reset</span><span class="special">()</span></code> from examples (<a href="https://svn.boost.org/trac/boost/ticket/9005">#9005</a>). </div> </li> <li> <div> Equality comparison with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> does not require that <code><span class="identifier">T</span></code> be EqualityComparable. </div> </li> <li> <div> Optional rvalue references are explicitly disallowed. </div> </li> <li> <div> Binding temporaries to optional references is explicitly disallowed (breaking change). </div> </li> <li> <div> More ways to access the contained value, functions <code><span class="identifier">value</span><span class="special">()</span></code>, <code><span class="identifier">value_or</span><span class="special">()</span></code>, <code><span class="identifier">value_or_eval</span><span class="special">()</span></code>. </div> </li> <li> <div> Updated and reorganized documentation, added tutorial and quick guide sections. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Addition of <code><span class="identifier">BOOST_PLAT_</span><span class="special">*</span></code> platform definitions for MinGW and Windows platform variants. </div> </li> <li> <div> Detection of ARM architecture for Windows compilers to target mobile devices of Windows 8. </div> </li> <li> <div> Improved ARM detection for 64 bit ARM. </div> </li> <li> <div> Added detection of iOS as an operating system. </div> </li> <li> <div> Improved detection of endianess on some platforms. </div> </li> <li> <div> Addition of exclusive plus emulated definitions for platform and compiler detection. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span> <ul> <li> <div> When using variadic macros tuple functionality was added to match all the array functionality. </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> Columns in the <code><span class="special">--</span><span class="identifier">help</span></code> output are now aligned across all option groups (<a href="https://svn.boost.org/trac/boost/ticket/6114">#6114</a>). </div> </li> <li> <div> Option names with dashes are no longer truncated in error messages (<a href="https://svn.boost.org/trac/boost/ticket/8009">#8009</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/index.html">Regex</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> corrected behavior of <code><span class="identifier">basic_regex</span><span class="special">&lt;&gt;::</span><span class="identifier">mark_count</span><span class="special">()</span></code> to match existing documentation, <code><span class="identifier">basic_regex</span><span class="special">&lt;&gt;::</span><span class="identifier">subexpression</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code> changed to match, see <a href="https://svn.boost.org/trac/boost/ticket/9227">#9227</a> </div> </li> <li> <div> Fixed issue <a href="https://svn.boost.org/trac/boost/ticket/8903">#8903</a>. </div> </li> <li> <div> Fixed documentation typos from <a href="https://svn.boost.org/trac/boost/ticket/9283">#9283</a>. </div> </li> <li> <div> Fixed bug in collation code that failed if the locale generated collation strings with embedded nul's, see <a href="https://svn.boost.org/trac/boost/ticket/9451">#9451</a>. </div> </li> <li> <div> Apply patch for unusual thread usage (no statically initiallized mutexes), see <a href="https://svn.boost.org/trac/boost/ticket/9461">#9461</a>. </div> </li> <li> <div> Added better checks for invalid UTF-8 sequences, see <a href="https://svn.boost.org/trac/boost/ticket/9473">#9473</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> Updated the overloads of <a href="http://www.boost.org/libs/smart_ptr/make_shared_array.html">make_shared</a> and <a href="http://www.boost.org/libs/smart_ptr/make_shared_array.html">allocate_shared</a> of array types (<code><span class="identifier">T</span><span class="special">[]</span></code> or <code><span class="identifier">T</span><span class="special">[</span><span class="identifier">N</span><span class="special">]</span></code>) to conform to the specification in C++ standard paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3939.html">N3939</a> and significantly reduced the spatial overhead of the internal bookkeeping structures. </div> </li> <li> <div> Updated the implementations of make_shared and allocate_shared for scalar types and array types, respectively, to resolve C++ standard library defect report <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2070">#2070</a>. </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>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7446">#7446</a> Async: Add when_any. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7447">#7447</a> Async: Add when_all. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7448">#7448</a> Async: Add async taking a scheduler parameter. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8274">#8274</a> Synchro: Add concurrent queue </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8513">#8513</a> Async: Add a basic thread_pool executor. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8518">#8518</a> Synchro: Add a latch class. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8516">#8516</a> Async: Add future/shared_future::then taking a scheduler as parameter. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9058">#9058</a> with_lock_guard function </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9571">#9571</a> Add a dynamic executor and an executor adaptor </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8070">#8070</a> prefer GetTickCount64 over GetTickCount </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9333">#9333</a> ex_scoped_thread compile fails on msvc-12.0 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9341">#9341</a> compile error scoped_thread(move semantics) intel-linux-14.0.1 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9366">#9366</a> async(Executor, ...) fails to compile with msvc-10,11,12 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9402">#9402</a> test_excutor regression on msvc-10,11,12 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9404">#9404</a> ex_make_future regression error </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9471">#9471</a> Synchronization documentation nits </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9535">#9535</a> Missing exception safety might result in crash </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9618">#9618</a> try_join_for problem: program is not terminate. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9625">#9625</a> Please rewrite boost::thread::~thread() reference section </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9632">#9632</a> public method start_thread in boost::thread class </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9673">#9673</a> thread compilation with MingW/gcc on Windows gives errors </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9708">#9708</a> boost::condition_variable::timed_wait unexpectedly wakes up while should wait infinite </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9711">#9711</a> future continuation called twice </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9867">#9867</a> Remove references to gcc-mingw </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10008">#10008</a> Boost Synchronization documentation typos (futures) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10058">#10058</a> Null pointer access in once </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10125">#10125</a> call_once: compile errors in variadic version with rvalue reference emulation </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10126">#10126</a> call_once: deprecate (Function, once_flag&amp;) overload </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10147">#10147</a> pthread_delay_np() parameters different on AIX even with gcc </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10155">#10155</a> thread::physical_concurrency() always returns 0 on PowerPC </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10184">#10184</a> Future: multiply defined symbols </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/tr1/index.html">TR1</a>:</span> <ul> <li> <div> This library is now deprecated. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/tti/">TTI</a>:</span> <ul> <li> <div> Ticket <a href="https://svn.boost.org/trac/boost/ticket/9441">#9441</a>: Added better support for Sun Solaris Studio C++ compiler. </div> </li> <li> <div> Ticket <a href="https://svn.boost.org/trac/boost/ticket/9444">#9444</a>: Handle all situations where the enclosing class is not a class type. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Minor documentation and warning fixes (<a href="https://svn.boost.org/trac/boost/ticket/9377">#9377</a>, <a href="https://svn.boost.org/trac/boost/ticket/9719">#9719</a>). </div> </li> <li> <div> Always use prime number of buckets for integers. Fixes performance regression when inserting consecutive integers (<a href="https://svn.boost.org/trac/boost/ticket/9282">#9282</a>). </div> </li> <li> <div> Only construct elements using allocators, as specified in C++11 standard. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/index.html">Utility</a>:</span> <ul> <li> <div> Some components were moved to the new Boost.Core library. </div> </li> <li> <div> <code><span class="identifier">empty_deleter</span></code> is deprecated in favor of <code><span class="identifier">null_deleter</span></code> from Boost.Core. <code><span class="identifier">empty_deleter</span></code> is an alias for <code><span class="identifier">null_deleter</span></code>, it will be removed in future releases. </div> </li> <li> <div> <code><span class="identifier">base_from_member</span></code> utility now supports lvalue reference member types. (<a href="https://svn.boost.org/trac/boost/ticket/7577">#7577</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/uuid/index.html">UUID</a>:</span> <ul> <li> <div> Added basic support for C++11 features. </div> </li> <li> <div> Implemented SSE-optimized versions of some functions of <code><span class="identifier">uuid</span></code>, including comparison operators and <code><span class="identifier">swap</span></code>. The support for different versions of SSE is automatically detected at compile time for most compilers, but can also be explicitly enabled or disabled with <a href="http://www.boost.org/libs/uuid/uuid.html#Configuration">configuration macros</a>. (<a href="https://svn.boost.org/trac/boost/ticket/8509">#8509</a>) </div> </li> <li> <div> Silenced some compiler warnings. (<a href="https://svn.boost.org/trac/boost/ticket/8495">#8495</a>, <a href="https://svn.boost.org/trac/boost/ticket/8697">#8697</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> Variant now uses variadic templates if they are supported by compiler. This leads to smaller binaries and better compilation times but in some cases may break metaprogramming functions, especially if <a href="http://www.boost.org/libs/variant/doc/html/variant/BOOST_VARIANT_ENUM_PARAMS.html">BOOST_VARIANT_ENUM_PARAMS</a> and <a href="http://www.boost.org/libs/variant/doc/html/variant/BOOST_VARIANT_ENUM_SHIFTED_PARAMS.html">BOOST_VARIANT_ENUM_SHIFTED_PARAMS</a> are not used. Usage of variadic templates <a href="http://www.boost.org/libs/variant/doc/html/variant/BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES.html">may be disabled</a>. </div> </li> <li> <div> <a href="http://www.boost.org/libs/variant/doc/html/variant/reference.html#header.boost.variant.polymorphic_get_hpp">Added</a> <code><span class="identifier">polymorphic_get</span></code> function <a href="https://svn.boost.org/trac/boost/ticket/9479">#9479</a>. </div> </li> <li> <div> Move-only classes now can be returned by visitors. </div> </li> <li> <div> Optimized variant::swap() and fixed ambiguity in <code><span class="identifier">move_swap</span></code> <a href="https://svn.boost.org/trac/boost/ticket/2839">#2839</a>. </div> </li> <li> <div> Added conditional noexcepts to move assignments, default and move constructors making <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span></code> <code><span class="identifier">move_if_noexcept</span></code>-friendly (<a href="https://svn.boost.org/trac/boost/ticket/7911">#7911</a>). </div> </li> <li> <div> Exceptions are now visible across modules even with -fvisibility=hidden flags. </div> </li> <li> <div> Dropped support of antique compilers. </div> </li> <li> <div> Fixed some warnings (<a href="https://svn.boost.org/trac/boost/ticket/3020">#3020</a>). </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_56_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.3, 3.2, 3.1, 3.0 </div> </li> <li> <div> Clang, C++98: 3.3.16 </div> </li> <li> <div> Clang, C++11, libc++: 3.4.2 </div> </li> <li> <div> Clang, C++1y: 3.3.16 </div> </li> <li> <div> GCC: 4.8.2, 4.8.1, 4.7.3, 4.6.4, 4.4.7 </div> </li> <li> <div> GCC, C++98: 4.9.0 </div> </li> <li> <div> GCC, C++11: 4.8.2 </div> </li> <li> <div> GCC, C++1y: 4.9.0 </div> </li> <li> <div> Intel: 13.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 5.1 </div> </li> <li> <div> Apple Clang, C++11: 5.1 </div> </li> <li> <div> GCC: 4.2.1 </div> </li> <li> <div> Intel: 12.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.9.0, 4.8.2, 4.7.3, 4.7.2, 4.6.3, 4.5.4, 4.4.7 </div> </li> <li> <div> Visual C++: 12.0, 11.0, 10.0, 9.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.4, 3.3, 3.2, 3.1, 3.0 </div> </li> <li> <div> Clang, C++98: 3.3.16 </div> </li> <li> <div> Clang, C++11, libc++: 3.4.2 </div> </li> <li> <div> Clang, C++1y: 3.3.16 </div> </li> <li> <div> Clang, C++14, libc++: trunk </div> </li> <li> <div> GCC: 4.8.2, 4.8.1, 4.7.3, 4.6.4, 4.4.7 </div> </li> <li> <div> GCC, C++98: 4.9.0 </div> </li> <li> <div> GCC, C++11: 4.9.0, 4.8.2 </div> </li> <li> <div> GCC, C++1y: 4.9.0 </div> </li> <li> <div> Intel: 13.1, 13.0, 12.1, 11.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 5.1 </div> </li> <li> <div> Apple Clang, C++11: </div> </li> <li> <div> Clang: trunk </div> </li> <li> <div> Clang, C++11: trunk </div> </li> <li> <div> GCC: 4.2.1 </div> </li> <li> <div> Intel: 12.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.9.0, 4.8.2, 4.7.2, 4.6.3, 4.5.4, 4.4.7 </div> </li> <li> <div> Visual C++: 12.0, 11.0, 10.0, 9.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, ARM: 4.4.2 </div> </li> <li> <div> QCC, x86: 4.4.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_56_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.55.0http://www.boost.org/users/history/version_1_55_0.htmlhttp://www.boost.org/users/history/version_1_55_0.htmlMon, 11 Nov 2013 11:50:20 -0800 <div id="version_1_55_0.other_downloads"> <h3><span class="link">Other Downloads</span></h3> <ul> <li> <div> <a href="https://sourceforge.net/projects/boost/files/boost-binaries/1.55.0/">Windows binaries</a> </div> </li> <li> <div> <a href="https://sourceforge.net/projects/boost/files/boost-docs/1.55.0/">PDF documentation</a> (only for BoostBook based documentation). </div> </li> </ul> </div> <div id="version_1_55_0.news"> <h3><span class="link">News</span></h3> <p> Support was removed from <a href="http://www.boost.org/libs/config/">Config</a> for some very old versions of compilers. The new minimum requirements are: </p> <ul> <li> <div> Digitial Mars 8.41 </div> </li> <li> <div> GCC 3.3 </div> </li> <li> <div> Intel 6.0 </div> </li> <li> <div> Visual C++ 7.1 </div> </li> </ul> <p> <strong>Note:</strong> This is just the mininimum requirements for Config. Some Boost libraries may have higher mininimum requirements and not support all platforms or compilers. </p> <p> Other compilers are currently unchanged, but we are considering removing support for some other old compilers. <strong>Candidates</strong> for removal are: </p> <ul> <li> <div> Metroworks C++ (i.e. codewarrior) </div> </li> <li> <div> SunPro 5.7 and earlier </div> </li> <li> <div> Borland C++ Builder 2006 (5.82) and earlier </div> </li> </ul> <p> If you're using any of these, please let us know on the mailing lists. We will take into account any feedback received before making a decision. </p> </div> <div id="version_1_55_0.known_bugs"> <h3><span class="link">Known Bugs with Visual Studio 2013/Visual C++ 12</span></h3> <p> Visual Studio 2013 was released quite late in the release process, so there exist several unresolved issues. These include: </p> <ul> <li> <div> Serialization can't compile because of a missing include. </div> </li> <li> <div> Using <code><span class="identifier">has_member_function_callable_with</span></code> from Boost.Container's <code><span class="identifier">allocator_traits</span></code> causes a compile error (<a href="https://svn.boost.org/trac/boost/ticket/9332">#9332</a>). </div> </li> <li> <div> In libraries such as Unordered and MultiIndex, calling overloaded functions with initializer lists can result in a compile error, with Visual C++ claiming that the overloads are ambiguous. This is a Visual C++ bug and it isn't clear if there's a good workaround. This won't affect code that doesn't use initializer lists, or uses an initializer list that doesn't require an implicit conversion (i.e. an initializer list of the container's exact value type). </div> </li> <li> <div> Thread: <code><span class="identifier">ex_scoped_thread</span></code> compile fails (<a href="https://svn.boost.org/trac/boost/ticket/9333">#9333</a>). </div> </li> </ul> </div> <div id="version_1_55_0.patches"> <h3><span class="link">Patches</span></h3> <ol> <li> <div> <a href="http://www.boost.org/patches/1_55_0/001-log_fix_dump_avx2.patch">Log patch</a>: fixes incorrect output of the <a href="http://www.boost.org/doc/libs/1_55_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.manipulators.dump">dump</a> manipulator, when used on AVX2-enabled CPU (e.g. Intel Haswell). </div> </li> </ol> </div> <div id="version_1_55_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> This library defines a set of compiler, architecture, operating system, library, and other version numbers from the information it can gather of C, C++, Objective C, and Objective C++ predefined macros or those defined in generally available headers, from Rene Rivera. </div> </li> </ul> </div> <div id="version_1_55_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/accumulators/">Accumulators</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7915">#7915</a> Fix silly typos. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8850">#8850</a> Fix MSVC warnings. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8262">#8262</a> Rename <code><span class="identifier">average</span></code> to <code><span class="identifier">fdiv</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_any_cast</span></code> exception is now visible across modules <a href="https://svn.boost.org/trac/boost/ticket/8751">#8751</a>. </div> </li> <li> <div> Added <code><span class="identifier">clear</span><span class="special">()</span></code> member function. </div> </li> <li> <div> Added missing <code><span class="identifier">BOOST_NOEXCEPT</span></code>. </div> </li> <li> <div> Fixed issue with const rvalues <a href="https://svn.boost.org/trac/boost/ticket/9215">#9215</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Implemented a limited port to Windows Runtime. This support requires that the language extensions be enabled. Due to the restricted facilities exposed by the Windows Runtime API, the port also comes with the following caveats: <ul> <li> <div> The core facilities such as the <code><span class="identifier">io_service</span></code>, <code><span class="identifier">strand</span></code>, buffers, composed operations, timers, etc., should all work as normal. </div> </li> <li> <div> For sockets, only client-side TCP is supported. </div> </li> <li> <div> Explicit binding of a client-side TCP socket is not supported. </div> </li> <li> <div> The <code><span class="identifier">cancel</span><span class="special">()</span></code> function is not supported for sockets. Asynchronous operations may only be cancelled by closing the socket. </div> </li> <li> <div> Operations that use <code><span class="identifier">null_buffers</span></code> are not supported. </div> </li> <li> <div> Only <code><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">no_delay</span></code> and <code><span class="identifier">socket_base</span><span class="special">::</span><span class="identifier">keep_alive</span></code> options are supported. </div> </li> <li> <div> Resolvers do not support service names, only numbers. I.e. you must use &quot;80&quot; rather than &quot;http&quot;. </div> </li> <li> <div> Most resolver query flags have no effect. </div> </li> </ul> </div> </li> <li> <div> Fixed a regression (introduced in Boost 1.54) where, on some platforms, errors from <code><span class="identifier">async_connect</span></code> were not correctly propagated through to the completion handler (<a href="https://svn.boost.org/trac/boost/ticket/8795">#8795</a>). </div> </li> <li> <div> Fixed a Windows-specific regression (introduced in Boost 1.54) that occurs when multiple threads are running an <code><span class="identifier">io_service</span></code>. When the bug occurs, the result of an asynchronous operation (error and bytes transferred) is incorrectly discarded and zero values used instead. For TCP sockets this results in spurious end-of-file notifications (<a href="https://svn.boost.org/trac/boost/ticket/8933">#8933</a>). </div> </li> <li> <div> Fixed a bug in handler tracking, where it was not correctly printing out some handler IDs (<a href="https://svn.boost.org/trac/boost/ticket/8808">#8808</a>). </div> </li> <li> <div> Fixed the comparison used to test for successful synchronous accept operations so that it works correctly with unsigned socket descriptors (<a href="https://svn.boost.org/trac/boost/ticket/8752">#8752</a>). </div> </li> <li> <div> Ensured the signal number is correctly passed to the completion handler when starting an <code><span class="identifier">async_wait</span></code> on a signal that is already raised (<a href="https://svn.boost.org/trac/boost/ticket/8738">#8738</a>). </div> </li> <li> <div> Suppressed a g++ 4.8+ warning about unused typedefs (<a href="https://svn.boost.org/trac/boost/ticket/8980">#8980</a>). </div> </li> <li> <div> Enabled the move optimisation for handlers that use the default invocation hook (<a href="https://svn.boost.org/trac/boost/ticket/8624">#8624</a>). </div> </li> <li> <div> Clarified that programs must not issue overlapping <code><span class="identifier">async_write_at</span></code> operations (<a href="https://svn.boost.org/trac/boost/ticket/8669">#8669</a>). </div> </li> <li> <div> Changed the Windows <code><span class="identifier">HANDLE</span></code> backend to treat <code><span class="identifier">ERROR_MORE_DATA</span></code> as a non-fatal error when returned by <code><span class="identifier">GetOverlappedResult</span></code> for a synchronous read (<a href="https://svn.boost.org/trac/boost/ticket/8722">#8722</a>). </div> </li> <li> <div> Visual C++ language extensions use <code><span class="identifier">generic</span></code> as a keyword. Added a workaround that renames the namespace to <code><span class="identifier">cpp_generic</span></code> when those language extensions are in effect. </div> </li> <li> <div> Fixed some asynchronous operations that missed out on getting <code><span class="identifier">async_result</span></code> support in Boost 1.54. In particular, the buffered stream templates have been updated so that they adhere to current handler patterns (<a href="https://svn.boost.org/trac/boost/ticket/9000">#9000</a>, <a href="https://svn.boost.org/trac/boost/ticket/9001">#9001</a>). </div> </li> <li> <div> Enabled move support for Microsoft Visual Studio 2012 (<a href="https://svn.boost.org/trac/boost/ticket/8959">#8959</a>). </div> </li> <li> <div> Added <code><span class="identifier">use_future</span></code> support for Microsoft Visual Studio 2012. </div> </li> <li> <div> Removed a use of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">min</span></code> in the Windows IOCP backend to avoid a dependency on the <code><span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span></code> header (<a href="https://svn.boost.org/trac/boost/ticket/8758">#8758</a>). </div> </li> <li> <div> Eliminated some unnecessary handler copies. </div> </li> <li> <div> Fixed various minor and cosmetic issues in code and documentation (including <a href="https://svn.boost.org/trac/boost/ticket/8347">#8347</a>, <a href="https://svn.boost.org/trac/boost/ticket/8950">#8950</a>, <a href="https://svn.boost.org/trac/boost/ticket/8953">#8953</a>, <a href="https://svn.boost.org/trac/boost/ticket/8965">#8965</a>, <a href="https://svn.boost.org/trac/boost/ticket/8997">#8997</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Added support for 64-bit atomic operations on x86 target for GCC, MSVC and compatible compilers. The support is enabled when it is known at compile time that the target CPU supports required instructions. </div> </li> <li> <div> Added support for 128-bit atomic operations on x86-64 target for GCC and compatible compilers. The support is enabled when it is known at compile time that the target CPU supports required instructions. The support can be tested for with the new <code><span class="identifier">BOOST_ATOMIC_INT128_LOCK_FREE</span></code> macro. </div> </li> <li> <div> Added a more efficient implementation of <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code> based on GCC <code><span class="identifier">__atomic</span><span class="special">*</span></code> intrinsics available since GCC 4.7. </div> </li> <li> <div> Added support for more ARM v7 CPUs, improved detection of Thumb 2. </div> </li> <li> <div> Added support for x32 (i.e. 64-bit x86 with 32-bit pointers) target on GCC and compatible compilers. </div> </li> <li> <div> Removed dependency on Boost.Thread. </div> </li> <li> <div> Internal lock pool now includes proper padding and alignment to avoid false sharing. </div> </li> <li> <div> Fixed compilation with Intel compiler on Windows. Removed internal macro duplication when compiled on Windows. </div> </li> <li> <div> Some code refactoring to use C++11 features when available. </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>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7868">#7868</a> <code><span class="identifier">chrono_io</span></code> parses time incorrectly (1.53 and 1.52) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9028">#9028</a> Typo in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">chrono</span><span class="special">/</span><span class="identifier">stopwatches</span><span class="special">/</span><span class="identifier">formatters</span><span class="special">/</span><span class="identifier">base_formatter</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9147">#9147</a> uninitialized <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span></code> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/circular_buffer/">Circular Buffer</a>:</span> <ul> <li> <div> Added support for rvalue references and rvalue references emulation using Boost.Move. Values are moved only if value type has noexcept move constructor and noexcept move assignment operator <a href="https://svn.boost.org/trac/boost/ticket/7888">#7888</a>. Now Circular Buffer is usable with move-only types. </div> </li> <li> <div> Much better documentation. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5362">#5362</a> circular_buffer does not compile with <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7025">#7025</a> circular buffer reports warning: &quot; type qualifiers ignored on function return type&quot; while compile. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7950">#7950</a> Eliminate W4-warnings under VS2005 - warning C4913: user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> Removed support for some older compilers. The new minimum compiler versions are: </div> <ul> <li> <div> Digitial Mars 8.41 </div> </li> <li> <div> GCC 3.3 </div> </li> <li> <div> Intel 6.0 </div> </li> <li> <div> Visual C++ 7.1 </div> </li> </ul> <div> Other compilers are unchanged. </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">SCARY iterators</span>. </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/8269">#8269</a>, <a href="https://svn.boost.org/trac/boost/ticket/8473">#8473</a>, <a href="https://svn.boost.org/trac/boost/ticket/8892">#8892</a>, <a href="https://svn.boost.org/trac/boost/ticket/9009">#9009</a>, <a href="https://svn.boost.org/trac/boost/ticket/9064">#9064</a>, <a href="https://svn.boost.org/trac/boost/ticket/9092">#9092</a>, <a href="https://svn.boost.org/trac/boost/ticket/9108">#9108</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="http://svn.boost.org/trac/boost/ticket/8650">#8650</a> SSE2 intrinsics </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> New interface (unidirectional data transfer). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8782">#8782</a> no best alternative </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8801">#8801</a> auto-linking </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fixed Android compilation <a href="https://svn.boost.org/trac/boost/ticket/8706">#8706</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> <a href="https://svn.boost.org/trac/boost/ticket/8759">#8759</a> specialization of <code><span class="identifier">convert_impl</span></code> for <code><span class="identifier">map_tag</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/index.html">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality</em> <ul> <li> <div> Added centroid for segment type </div> </li> <li> <div> Added intersects() and disjoints() for Segment-Box and Linestring-Box </div> </li> <li> <div> Added rtree creation using packing algorithm </div> </li> <li> <div> Added contains() and covers() spatial query predicates </div> </li> <li> <div> Added iterative queries </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes</em> <ul> <li> <div> In some cases .back() or .clear() was called, violating the usage of Concepts. Fixed for the reported cases </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6958">6958</a> Intersection generates self-intersection. Caused by spike, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8364">8364</a> Invalid input exception, caused by spikes in previous steps, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8365">8365</a> Invalid input exception, caused by spikes in previous steps, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8969">8969</a> boost::geometry::model::point single argument constructor should be explicit </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8825">8825</a> Patch adding member variable documentation to doxygen_xml2qbk </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8652">8652</a> Intersection fails for triangle-triangle intersection. Caused by spike, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9047">9047</a> Boost files that include themselves (strategies/intersection.hpp), fixed </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph/index.html">Graph</a>:</span> <ul> <li> <div> <code><span class="keyword">void</span></code> is no longer allowed as a bundled property type (for example, in the VertexProperties template parameters to graph types); it did not work reliably before, but a static assertion now forbids it entirely. Use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">no_property</span></code> instead. </div> </li> <li> <div> Added support for <code><span class="identifier">finish_edge</span></code> visitor event point in depth-first search; the change should be backward-compatible with visitors that do not have that member function. </div> </li> <li> <div> Disabled building of tests on Sun compiler. </div> </li> <li> <div> Multiple source vertices are supported in non-named-parameter versions of <code><span class="identifier">breadth_first_visit</span></code>, <code><span class="identifier">breadth_first_search</span></code>, <code><span class="identifier">dijkstra_shortest_paths</span></code>, and <code><span class="identifier">dijkstra_shortest_paths_no_init</span></code>. This feature is not yet documented; to use it, replace the single parameter for the source vertex in each of these functions by two input iterators of the same type containing the source vertices to use. </div> </li> <li> <div> Added Hawick circuits algorithm; contributed by Louis Dionne. </div> </li> <li> <div> Added edge coloring algorithm; contributed by Maciej Piechotka. </div> </li> <li> <div> Added min-cost max-flow algorithm; contributed by Piotr Wygocki. </div> </li> <li> <div> Bugs and feature requests from Trac fixed: <a href="https://svn.boost.org/trac/boost/ticket/5269">#5269</a>, <a href="https://svn.boost.org/trac/boost/ticket/8317">#8317</a>, <a href="https://svn.boost.org/trac/boost/ticket/8433">#8433</a>, <a href="https://svn.boost.org/trac/boost/ticket/8791">#8791</a>, <a href="https://svn.boost.org/trac/boost/ticket/8877">#8877</a>, <a href="https://svn.boost.org/trac/boost/ticket/8986">#8986</a>, <a href="https://svn.boost.org/trac/boost/ticket/9012">#9012</a>, <a href="https://svn.boost.org/trac/boost/ticket/9080">#9080</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/hash/">Hash</a>:</span> <ul> <li> <div> Simplify a SFINAE check so that it will hopefully work on Sun 5.9 (<a href="https://svn.boost.org/trac/boost/ticket/8822">#8822</a>). </div> </li> <li> <div> Suppress Visual C++ infinite loop warning (<a href="https://svn.boost.org/trac/boost/ticket/8568">#8568</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> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/7156">#7156</a>, <a href="https://svn.boost.org/trac/boost/ticket/7164">#7164</a>, <a href="https://svn.boost.org/trac/boost/ticket/8277">#8277</a>, <a href="https://svn.boost.org/trac/boost/ticket/8976">#8976</a>, <a href="https://svn.boost.org/trac/boost/ticket/9065">#9065</a>, <a href="https://svn.boost.org/trac/boost/ticket/9073">#9073</a>, <a href="https://svn.boost.org/trac/boost/ticket/9008">#9008</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> <strong>Source breaking</strong>: Deprecated <code><span class="identifier">xxx_dont_splay</span></code> functions from splay containers. Deprecated <code><span class="identifier">splay_set_hook</span></code> from splay containers, use <code><span class="identifier">bs_set_hook</span></code> instead. Both will be removed in Boost 1.56. </div> </li> <li> <div> <strong>ABI breaking</strong>: Hash containers' end iterator was implemented pointing to one-past the end of the bucket array (see <a href="https://svn.boost.org/trac/boost/ticket/8698">#8698</a>) causing severe bugs when values to be inserted where allocated next to the bucket array. End iterator implementation was changed to point to the beginning of the bucket array. </div> </li> <li> <div> Big refactoring in order to reduce template and debug symbol bloat. Test object files have been slashed to half in MSVC compilers in Debug mode. Toolchains without Identical COMDAT Folding (ICF) should notice size improvements. </div> </li> <li> <div> Implemented <span class="link">SCARY iterators</span>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/conversion/lexical_cast.htm">Lexical cast</a>:</span> <ul> <li> <div> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> exceptions are now are not converted to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span></code> <a href="https://svn.boost.org/trac/boost/ticket/8966">#8966</a>. </div> </li> <li> <div> Added static assert that checks for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code> specializations if they are required for conversion. Use <code><span class="identifier">BOOST_HAS_INT128</span></code> for detecting 128 bit integers support <a href="https://svn.boost.org/trac/boost/ticket/8790">#8790</a>. </div> </li> <li> <div> Documentation improved and more usage examples added. </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> Added a new configuration macro <code><span class="identifier">BOOST_LOG_WITHOUT_DEFAULT_FACTORIES</span></code>. By defining this macro the user can disable compilation of the default filter and formatter factories used by settings parsers. This can substantially reduce binary sizes while still retaining support for settings parsers. </div> </li> <li> <div> Rewritten some of the parsers to reduce the compiled binary size. The rewritten parsers are more robust in detecting ambiguous and incorrect input. </div> </li> <li> <div> The following headers are deprecated: <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>. These headers will be removed in future releases. The contents of these headers were moved to other libraries. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed <code><span class="identifier">timer</span></code> attribute generating incorrect time readings on Windows on heavy thread contention when <code><span class="identifier">QueryPerformanceCounter</span></code> API was used. </div> </li> <li> <div> Fixed a bug in the filter parser that prevented using parsed filters with some attributes. </div> </li> <li> <div> Fixed thread id formatting discrepancies between the default sink and formatters. </div> </li> <li> <div> Closed tickets: <a href="https://svn.boost.org/trac/boost/ticket/8815">#8815</a>, <a href="https://svn.boost.org/trac/boost/ticket/8819">#8819</a>, <a href="https://svn.boost.org/trac/boost/ticket/8915">#8915</a>, <a href="https://svn.boost.org/trac/boost/ticket/8917">#8917</a>, <a href="https://svn.boost.org/trac/boost/ticket/9139">#9139</a>, <a href="https://svn.boost.org/trac/boost/ticket/9140">#9140</a>, <a href="https://svn.boost.org/trac/boost/ticket/9153">#9153</a>, <a href="https://svn.boost.org/trac/boost/ticket/9155">#9155</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> Suppress numerous warnings (mostly from GCC-4.8 and MSVC) <a href="https://svn.boost.org/trac/boost/ticket/8384">#8384</a>, <a href="https://svn.boost.org/trac/boost/ticket/8855">#8855</a>, <a href="https://svn.boost.org/trac/boost/ticket/9107">#9107</a>, <a href="https://svn.boost.org/trac/boost/ticket/9109">#9109</a>.. </div> </li> <li> <div> Fixed PGI compilation issue <a href="https://svn.boost.org/trac/boost/ticket/8333">#8333</a>. </div> </li> <li> <div> Fixed PGI constant value initialization issue that caused erf to generate incorrect results <a href="https://svn.boost.org/trac/boost/ticket/8621">#8621</a>. </div> </li> <li> <div> Prevent macro expansion of some C99 macros that are also C++ functions <a href="https://svn.boost.org/trac/boost/ticket/8732">#8732</a> and <a href="https://svn.boost.org/trac/boost/ticket/8733">#8733</a>.. </div> </li> <li> <div> Fixed Student's T distribution to behave correctly with huge degrees of freedom (larger than the largest representable integer) <a href="https://svn.boost.org/trac/boost/ticket/8837">#8837</a>. </div> </li> <li> <div> Make some core functions usable with <code><span class="keyword">long</span> <span class="keyword">double</span></code> even when the platform has no standard library <code><span class="keyword">long</span> <span class="keyword">double</span></code> support <a href="https://svn.boost.org/trac/boost/ticket/8940">#8940</a>. </div> </li> <li> <div> Fix error handling of distributions to catch invalid scale and location parameters when the random variable is infinite <a href="https://svn.boost.org/trac/boost/ticket/9042">#9042</a> and <a href="https://svn.boost.org/trac/boost/ticket/9126">#9126</a>. </div> </li> <li> <div> Add workaround for broken &lt;tuple&gt; in Intel C++ 14 <a href="https://svn.boost.org/trac/boost/ticket/9087">#9087</a>. </div> </li> <li> <div> Improve consistency of argument reduction in the elliptic integrals <a href="https://svn.boost.org/trac/boost/ticket/9104">#9104</a>. </div> </li> <li> <div> Fix bug in inverse incomplete beta that results in cancellation errors when the beta function is really an arcsine or Student's T distribution. </div> </li> <li> <div> Fix issue in Bessel I and K function continued fractions that causes spurious over/underflow. </div> </li> <li> <div> Add improvement to non-central chi squared distribution quantile due to Thomas Luu. </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 bugs <a href="https://svn.boost.org/trac/boost/ticket/7952">#7952</a>, <a href="https://svn.boost.org/trac/boost/ticket/8764">#8764</a>, <a href="https://svn.boost.org/trac/boost/ticket/8765">#8765</a>, <a href="https://svn.boost.org/trac/boost/ticket/8842">#8842</a>, <a href="https://svn.boost.org/trac/boost/ticket/8979">#8979</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/msm/">Meta State Machine</a>:</span> <ul> <li> <div> New feature: interrupt states now support a sequence of events to end the interruption. </div> </li> <li> <div> Fixed Trac <a href="https://svn.boost.org/trac/boost/ticket/8686">#8686</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Added support for Boost.Serialization. </div> </li> <li> <div> Suppressed some GCC warnings. See <a href="https://svn.boost.org/trac/boost/ticket/8872">8872</a>. </div> </li> <li> <div> Fixed bug in pow for large integer arguments. See <a href="https://svn.boost.org/trac/boost/ticket/8809">8809</a>. </div> </li> <li> <div> Fixed bug in pow for calculation of 0[super N]. See <a href="https://svn.boost.org/trac/boost/ticket/8798">8798</a>. </div> </li> <li> <div> Fixed bug in fixed precision cpp_int IO code that causes conversion to string to fail when the bit count is very small (less than CHAR_BIT). See <a href="https://svn.boost.org/trac/boost/ticket/8745">8745</a>. </div> </li> <li> <div> Fixed bug in cpp_int that causes left shift to fail when a fixed precision type would overflow. See <a href="https://svn.boost.org/trac/boost/ticket/8741">8741</a>. </div> </li> <li> <div> Fixed some cosmetic warnings from cpp_int. See <a href="https://svn.boost.org/trac/boost/ticket/8748">8748</a>. </div> </li> <li> <div> Fixed calls to functions which are required to be macros in C99. See <a href="https://svn.boost.org/trac/boost/ticket/8732">8732</a>. </div> </li> <li> <div> Fixed bug that causes construction from INT_MIN, LONG_MIN etc to fail in cpp_int. See <a href="https://svn.boost.org/trac/boost/ticket/8711">8711</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> Boost.MultiIndex has been brought to a higher level of compliance with C++11. </div> <ul> <li> <div> <code><span class="identifier">multi_index_container</span></code> is now efficiently movable. </div> </li> <li> <div> Initializer lists supported. </div> </li> <li> <div> Emplace functions provided. </div> </li> <li> <div> Non-copyable elements (such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique_ptr</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>) supported. This includes insertion of a range [<code><span class="identifier">first</span></code>,<code><span class="identifier">last</span></code>) where the iterators point to a type that is convertible to that of the element: no copy construction happens in the process. </div> </li> <li> <div> Random access indices provide <code><span class="identifier">shrink_to_fit</span><span class="special">()</span></code>. </div> </li> </ul> <div> Refer to the <a href="http://www.boost.org/libs/multi_index/doc/compiler_specifics.html">compiler specifics</a> section for limitations on pre-C++11 compilers. </div> </li> <li> <div> The following classes are deprecated: <ul> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#member_offset"><code><span class="identifier">member_offset</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#const_mem_fun_explicit"><code><span class="identifier">const_mem_fun_explicit</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#const_mem_fun_explicit"><code><span class="identifier">mem_fun_explicit</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#composite_key_result_equal_to"><code><span class="identifier">composite_key_result_equal_to</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#composite_key_result_less"><code><span class="identifier">composite_key_result_less</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#composite_key_result_greater"><code><span class="identifier">composite_key_result_greater</span></code></a>, </div> </li> <li> <div> <a href="http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#composite_key_result_hash"><code><span class="identifier">composite_key_result_hash</span></code></a>. </div> </li> </ul> </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/mpi/">MPI</a>:</span> <ul> <li> <div> Replaced calls to deprecated MPI functions </div> </li> <li> <div> Added support for multi-threaded initialization </div> </li> <li> <div> Added in-place collectives </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9049">#9049</a> <code><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">function</span></code> constructor is constexpr. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/polygon/">Polygon</a>:</span> <ul> <li> <div> Updated CGAL part of the Voronoi benchmark with patches from Sebastien Loriot. Updated documentation. </div> </li> <li> <div> Added polygon decomposition capability to polygon_90_set_data container (patch from Intel). Updated documentation. </div> </li> <li> <div> Bugs fixed from Trac: <a href="https://svn.boost.org/trac/boost/ticket/8197">#8197</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/property_map/index.html">PropertyMap</a>:</span> <ul> <li> <div> dynamic_properties objects can now be built by non-destructively chaining <code><span class="special">.</span><span class="identifier">property</span><span class="special">(</span><span class="identifier">name</span><span class="special">,</span> <span class="identifier">pm</span><span class="special">)</span></code> calls. Example: </div> <pre><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dynamic_properties</span><span class="special">()</span> <span class="special">.</span><span class="identifier">property</span><span class="special">(</span><span class="string">&quot;color&quot;</span><span class="special">,</span> <span class="identifier">color_map</span><span class="special">)</span> <span class="special">.</span><span class="identifier">property</span><span class="special">(</span><span class="string">&quot;pos&quot;</span><span class="special">,</span> <span class="identifier">position_map</span><span class="special">)</span> </pre> </li> <li> <div> The use of raw pointers as property maps is deprecated; it often failed on Visual Studio in the past. This usage has been removed from all tests and examples in Boost.Graph. The replacement to use for vertex properties in graphs (the most common use for this feature) is: </div> <pre><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_iterator_property_map</span><span class="special">(</span> <span class="special">&lt;</span><span class="identifier">pointer</span> <span class="keyword">or</span> <span class="identifier">container</span> <span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="identifier">iterator</span><span class="special">&gt;,</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vertex_index</span><span class="special">,</span> <span class="special">&lt;</span><span class="identifier">graph</span> <span class="identifier">object</span><span class="special">&gt;))</span> </pre> <div> (Note: the lack of namespace qualification on get() in this code is necessary for generic code). Outside a graph context, the closest equivalent is: </div> <pre><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_iterator_property_map</span><span class="special">(</span> <span class="special">&lt;</span><span class="identifier">pointer</span><span class="special">&gt;,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">typed_identity_property_map</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">&gt;())</span> </pre> <div> There are commented-out static assertions on lines 151 and 159 of <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> that can be un-commented to find deprecated uses of pointers in user code. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/rational">Rational</a>:</span> <ul> <li> <div> Added <code><span class="identifier">lowest</span></code> and <code><span class="identifier">max_digits10</span></code>, members of std::numeric_limits added in C++11, to the unit-test code. Needed since Boost.Test refers to one of them when compiled in C++11 mode. </div> </li> <li> <div> Changed initialization of some internal variables to something that cannot be a narrowing conversion, which fixes issue <a href="https://svn.boost.org/trac/boost/ticket/5855">#5855</a>. Needed since narrowing conversions are an error in C++11. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/smart_ptr/index.html">SmartPtr</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">/</span><span class="identifier">intrusive_ref_counter</span><span class="special">.</span><span class="identifier">hpp</span></code> header, extracted from Boost.Log. The header implements a mixin base class that adds support for <code><span class="identifier">intrusive_ptr</span></code> to user's classes. </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>New Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8519">#8519</a> Synchro: Update class barrier with a completion function. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8515">#8515</a> Async: Add <code><span class="identifier">shared_future</span><span class="special">::</span><span class="identifier">then</span></code>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8519">#8519</a> Synchro: Update class barrier with a completion function </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8615">#8615</a> Async: Replace make_future/make_shared_future by make_ready_future. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8627">#8627</a> Async: Add future&lt;&gt;::unwrap and unwrapping constructor. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8677">#8677</a> Async: Add future&lt;&gt;::get_or. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8678">#8678</a> Async: Add future&lt;&gt;::fallback_to. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8891">#8891</a> upgrade_to_unique_lock: missing mutex() function. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8955">#8955</a> Request for more efficient way to get exception_ptr from future. </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7461">#7461</a> detail::win32::ReleaseSemaphore may be called with count_to_release equal to 0 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8070">#8070</a> prefer GetTickCount64 over GetTickCount </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8768">#8768</a> win32 condition_variable::wait_until infinite wait in rare cases. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8817">#8817</a> Boost Thread Windows CE _createthreadex handling breaks mingw w64. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8943">#8943</a> Failed to compile code using boost::call_once with Intel C++ Composer XE 2013 on Windows. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8931">#8931</a> Typos in external_locking reference. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9029">#9029</a> Misprint in documentation. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9037">#9037</a> gcc -Wshadow gives warnings in condition_variable{,_fwd}.hpp. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9041">#9041</a> Boost.Thread DSO's may need to link with Boost.Atomic. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9048">#9048</a> boost::scoped_thread useless ctor with variadic template arguments. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9079">#9079</a> Condition variable will wait forever for some timepoint values (Win). </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/timer/">Timer</a>:</span> <ul> <li> <div> Fixed compilation on Intel compiler <a href="https://svn.boost.org/trac/boost/ticket/8956">#8956</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_traits/">Type Traits</a>:</span> <ul> <li> <div> Added <code><span class="identifier">is_copy_contructible</span></code> trait <a href="https://svn.boost.org/trac/boost/ticket/8802">#8802</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Avoid some warnings (<a href="https://svn.boost.org/trac/boost/ticket/8851">#8851</a>, <a href="https://svn.boost.org/trac/boost/ticket/8874">#8874</a>). </div> </li> <li> <div> Avoid exposing some detail functions via. ADL on the iterators. </div> </li> <li> <div> Work around variadic parameter bug in Visual Studio 2013. The compiler still has problems with initializer lists, but it might not be possible to work around those. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/index.html">Utility</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code> can be set to use TR1 protocol by default and fall back to <code><span class="keyword">decltype</span></code> if the function object does not support it (like C++11 lambda functions, for example). Define <code><span class="identifier">BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK</span></code> configuration macro to enable this mode. </div> </li> <li> <div> Improved support for C++11 in the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">base_from_member</span></code> class template. The class implements perfect forwarding for the constructor arguments, if the compiler supports rvalue references, variadic templates and function template default arguments. </div> </li> <li> <div> Added <code><span class="identifier">boost</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> and <code><span class="identifier">boost</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> headers, which were extracted from Boost.Log. The headers implement utilities for defining explicit conversion operators to <code><span class="keyword">bool</span></code> and a deleter function object that does nothing, respectively. </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 compilation of constructor and assignment operator with const rvalues input parameters <a href="https://svn.boost.org/trac/boost/ticket/8988">#8988</a>. </div> </li> <li> <div> Fixed compilation of move assignment operator for situations when one of the variant template classes has nothrow copy constructor and throwing move constructor <a href="https://svn.boost.org/trac/boost/ticket/8772">#8772</a>. </div> </li> <li> <div> Fix compilation on exception-disabled environments <a href="https://svn.boost.org/trac/boost/ticket/8717">#8717</a>. </div> </li> <li> <div> Fix unreachable code warnings <a href="https://svn.boost.org/trac/boost/ticket/8665">#8665</a>. </div> </li> <li> <div> Removed duplicate code <a href="https://svn.boost.org/trac/boost/ticket/7601">#7601</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> See the <a href="http://www.boost.org/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/xpressive">xpressive</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8843">#8843</a> throw instead of assert at incomplete charset </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8880">#8880</a> remove unused local typedef </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8882">#8882</a> use RAII instead of try/catch in sequence_stack.hpp </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8474">#8474</a> make xpressive play nice with clang's -Wimplicit-fallthrough diagnostic </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_55_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/tools/quickbook">Quickbook</a>:</span> <ul> <li> <div> Quickbook 1.6 finalized, see the <a href="http://www.boost.org/doc/html/quickbook/versions.html#language_versions.1_6">Quickbook documentation for details</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_55_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.3, 3.2, 3.1, 3.0 </div> </li> <li> <div> Clang, C++11, libc++: 3.4, 3.3 </div> </li> <li> <div> GCC: 4.8.1, 4.7.3, 4.6.3, 4.5.3, 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.8.1 </div> </li> <li> <div> GCC, C++98: 4.8.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> GCC: 4.2 </div> </li> <li> <div> Apple Clang: 5.0 </div> </li> <li> <div> Apple Clang, C++11: 5.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.8.0, 4.7.2, 4.6.3, 4.5.4, 4.4.7 </div> </li> <li> <div> Visual C++: 11.0, 10.0, 9.0 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> OS X: <ul> <li> <div> Apple Clang: 5.0 </div> </li> <li> <div> Apple Clang, C++11: 5.0 </div> </li> <li> <div> Clang: trunk </div> </li> <li> <div> Clang, C++11: trunk </div> </li> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> <li> <div> Linux: <ul> <li> <div> Clang: 3.3, 3.2, 3.1, 3.0, trunk </div> </li> <li> <div> Clang, C++11: 3.4 </div> </li> <li> <div> Clang, C++11, libc++: 3.4, 3.3 </div> </li> <li> <div> GCC: 4.9.0 (experimental), 4.8.1, 4.7.3, 4.6.4, 4.5.3, 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.8.1 </div> </li> <li> <div> GCC, C++98: 4.8.1 </div> </li> <li> <div> Intel: 13.0.1, 12.1.6 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.8.0, 4.7.2, 4.6.3, 4.5.4, 4.4.7 </div> </li> <li> <div> Visual C++: 11.0, 10.0, 9.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_55_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>