Boost Website Site Tools Boost History https://www.boost.org/users/history/ en-us Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt) Version 1.82.0https://www.boost.org/users/history/version_1_82_0.htmlhttps://www.boost.org/users/history/version_1_82_0.htmlFri, 14 Apr 2023 03:08:20 +0000 <div id="version_1_82_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. </p> <ul> <li> <div> Filesystem <ul> <li> <div> Compilation on OpenBSD may fail because of broken support for <code><span class="special">-</span><span class="identifier">Wl</span><span class="special">,--</span><span class="identifier">no</span><span class="special">-</span><span class="identifier">undefined</span></code> compiler flag for shared libraries on this platform, see <a href="https://github.com/boostorg/filesystem/issues/283">#283</a>. <a href="https://www.boost.org/patches/1_82_0/0001-filesystem-fix-openbsd-build.patch">Patch</a>. </div> </li> <li> <div> On Windows, creating directory iterators over directories in SMBv1 shares may fail with <code><span class="identifier">ERROR_INVALID_LEVEL</span></code> error code, see <a href="https://github.com/boostorg/filesystem/issues/284">#284</a>. <a href="https://www.boost.org/patches/1_82_0/0002-filesystem-fix-win-smbv1-dir-iterator.patch">Patch</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_82_0.notice_of_dropping_c_03_support"> <h3><span class="link">Notice of Dropping C++03 Support</span></h3> <p> The following libraries will be dropping C++03 support in release 1.84, two releases from now: </p> <ul> <li> <div> Align </div> </li> <li> <div> Any </div> </li> <li> <div> Asio </div> </li> <li> <div> Atomic </div> </li> <li> <div> Bind </div> </li> <li> <div> Chrono </div> </li> <li> <div> ContainerHash </div> </li> <li> <div> Conversion </div> </li> <li> <div> DLL </div> </li> <li> <div> Endian </div> </li> <li> <div> Filesystem </div> </li> <li> <div> Function </div> </li> <li> <div> Functional </div> </li> <li> <div> Io </div> </li> <li> <div> LexicalCast </div> </li> <li> <div> Log </div> </li> <li> <div> Random </div> </li> <li> <div> Ratio </div> </li> <li> <div> SmartPtr </div> </li> <li> <div> System </div> </li> <li> <div> Stacktrace </div> </li> <li> <div> Thread </div> </li> <li> <div> Timer </div> </li> <li> <div> TypeIndex </div> </li> <li> <div> Typeof </div> </li> <li> <div> Unordered </div> </li> <li> <div> Variant </div> </li> </ul> <p> This release (1.82) and the next (1.83) will be the last releases offering C++03 support for the above libraries and most of their dependencies. </p> <p> The new baseline requirement for the above libraries, and for most of Boost, will be C++11. Since old compiler versions often implement C++11 only partially, due to missing support or bugs, what compilers are considered to meet the C++11 requirement may vary by library. </p> <p> However, a general rule is that if a compiler does not recognize a C++11 keyword or syntax at all (e.g. use of <code><span class="keyword">noexcept</span></code>, use of <code><span class="keyword">constexpr</span></code>, or defining a <code><span class="special">=</span><span class="keyword">delete</span></code>d function results in an immediate compile error), or if a compiler does not provide a required C++11 header at all (e.g. trying to include <code><span class="special">&lt;</span><span class="identifier">atomic</span><span class="special">&gt;</span></code> or <code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">&gt;</span></code> fails), or the compiler provides a C++11 feature or a header that is completely unusable, this compiler is not considered a C++11 compiler. </p> <p> This rules out, for instance, Microsoft Visual C++ before 14.0, or GCC before 4.8. </p> </div> <div id="version_1_82_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mysql/">Mysql</a>:</span> a C++11 client for the MySQL database server, based on Boost.Asio, from Ruben Perez. </div> </li> </ul> </div> <div id="version_1_82_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Now uses <code><span class="identifier">core</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code> header instead of the deprecated <code><span class="identifier">utility</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code>. Thanks to Michael Ford for the PR <a href="https://github.com/boostorg/any/pull/25">PR#25</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added the ability to customise the execution of a completion handler when an operation completes immediately. </div> </li> <li> <div> Added user-defined literals for buffer types. </div> </li> <li> <div> Added a new protocol type <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code> to represent <code><span class="identifier">AF_UNIX</span></code> with <code><span class="identifier">SOCK_SEQPACKET</span></code>. </div> </li> <li> <div> Exposed <code><span class="identifier">sigaction</span><span class="special">()</span></code> flags via an optional argument to <code><span class="identifier">signal_set</span><span class="special">::</span><span class="identifier">add</span></code>. </div> </li> <li> <div> Change <code><span class="identifier">allocator_binder</span></code>, <code><span class="identifier">executor_binder</span></code>, and <code><span class="identifier">cancellation_slot_binder</span></code> to support detection of unspecialised associators. </div> </li> <li> <div> Fixed ambiguity in <code><span class="identifier">associated_cancellation_slot</span><span class="special">&lt;</span><span class="identifier">reference_wrapper</span><span class="special">&gt;::</span><span class="identifier">get</span><span class="special">()</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code> handling for completion signatures containing <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel</span><span class="special">&lt;&gt;</span></code> <code><span class="identifier">try_send</span></code> failure after a <code><span class="identifier">cancel</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">thread_pool</span><span class="special">::</span><span class="identifier">join</span><span class="special">()</span></code> deadlock when the pool has no internal threads. </div> </li> <li> <div> Fixed pipe <code><span class="identifier">release</span><span class="special">()</span></code> when using <tt>io_uring</tt>. </div> </li> <li> <div> Fixed data initialisation and cleanup issues in the <tt>io_uring</tt> backend. </div> </li> <li> <div> Fixed a dangling reference issue in the execution context overload of <code><span class="identifier">get_associated_executor</span><span class="special">()</span></code>. </div> </li> <li> <div> Ensured buffered messages can still be received when an <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel</span><span class="special">&lt;&gt;</span></code> is closed. </div> </li> <li> <div> Fixed the <code><span class="identifier">any_completion_handler</span></code> assignment operator. </div> </li> <li> <div> Constrained the constructor of <code><span class="identifier">any_completion_handler</span></code> to prevent accidental copying </div> </li> <li> <div> Changed to use <code><span class="identifier">uint64_t</span></code> for OpenSSL options, to match OpenSSL 3. </div> </li> <li> <div> Fixed <code><span class="identifier">deferred</span></code> interoperability with multiple completion signatures. </div> </li> <li> <div> Fixed channels to add partial support for C++11 and C++14. </div> </li> <li> <div> Added missing handler tracking source location support to <code><span class="identifier">co_composed</span></code> and 'awaitable&lt;&gt;' coroutines, when awaiting packaged asynchronous operations. </div> </li> <li> <div> Fixed some 'potential null dereference' and shadow variable warnings. </div> </li> <li> <div> Fixed a <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> overload selection when used with <code><span class="identifier">const_buffers_1</span></code> and <code><span class="identifier">mutable_buffers_1</span></code>. </div> </li> <li> <div> Disabled the runtime check for current Windows version unless targeting older Windows. </div> </li> <li> <div> Fixed compatibility between buffered stream wrappers and move-constructible streams, such as <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">basic_socket_acceptor</span><span class="special">::</span><span class="identifier">async_accept</span></code> compatibility with lambdas that have a deduced return type. </div> </li> <li> <div> Fixed <code><span class="identifier">as_tuple</span></code> compatibility with legacy completion tokens. </div> </li> <li> <div> Fixed <code><span class="identifier">redirect_error</span></code> compatibility with new completion tokens. </div> </li> <li> <div> Fixed a potential, Windows-specific program termination due to exceptions that should have been allowed to escape from a destructor. </div> </li> <li> <div> Prevented inadvertent <code><span class="identifier">co_await</span></code> of boolean expressions. </div> </li> <li> <div> Fixed result handling and support for custom allocators in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">use_coro</span></code>. </div> </li> <li> <div> Fixed variadic template emulation for <code><span class="identifier">is_async_operation</span></code> and <code><span class="identifier">completion_signature_of</span></code>. </div> </li> <li> <div> Fixed incorrect reuse of a moved-from result in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code> use with custom allocators. </div> </li> <li> <div> Fixed <code><span class="identifier">seek_cur</span></code> behaviour with stream-oriented files on Windows. </div> </li> <li> <div> Various additions and modifications to the documentation. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_82_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> When compiled for x86 targets supporting AVX, vector instructions are now used for 128-bit atomic loads and stores. </div> </li> <li> <div> For 32-bit x86 targets, 64-bit atomic loads and stores with <code><span class="identifier">memory_order_seq_cst</span></code> semantics will now issue a memory ordering instruction. </div> </li> <li> <div> Removed <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage</span><span class="special">()</span></code> accessors and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage_type</span></code> types that were deprecated in Boost.Atomic 1.73. Users are recommended to use <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">()</span></code> and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> instead. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast">Beast</a>:</span> <ul> <li> <div> Add <code><span class="identifier">error_code</span></code>s use source_location </div> </li> <li> <div> tcp_stream uses the correct executor of the timer. </div> </li> <li> <div> error_categories use numeric ids </div> </li> <li> <div> <code><span class="identifier">file_body</span></code> supports seek </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container_hash/">ContainerHash</a>:</span> <ul> <li> <div> Added an overload of <code><span class="identifier">hash_value</span></code> for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">is_tuple_like</span></code> and an overload of <code><span class="identifier">hash_value</span></code> for tuple-like types. </div> </li> <li> <div> Changed string hashing to use <a href="https://github.com/pdimov/mulxp_hash"><code><span class="identifier">mulxp1_hash</span></code></a>. This improves both quality and speed. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">snprintf</span><span class="special">.</span><span class="identifier">hpp</span></code> header with portable definitions of <code><span class="identifier">snprintf</span></code>, <code><span class="identifier">vsnprintf</span></code> and their <code><span class="keyword">wchar_t</span></code> counterparts. </div> </li> <li> <div> Deprecated <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">is_same</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">core</span><span class="special">::</span><span class="identifier">is_same</span></code>. The header will be removed in a future release. Users are advised to use Boost.TypeTraits or C++ standard library type traits instead. </div> </li> <li> <div> Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> member functions and associated methods with <code><span class="keyword">noexcept</span></code>. </div> </li> <li> <div> Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> function with <code><span class="keyword">noexcept</span></code>, depending on whether the type supports a non-throwing swap operation. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">launder</span></code>, a portable implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">launder</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">BOOST_CORE_ALIGNOF</span></code>, a portable implementation of <code><span class="keyword">alignof</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, a portable equivalent of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align</span></code>, the alignment of <code><span class="identifier">max_align_t</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">memory_resource</span></code>, a portable equivalent of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">memory_resource</span></code> from C++17. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">serialization</span><span class="special">.</span><span class="identifier">hpp</span></code>, a collection of primitives allowing libraries to implement Boost.Serialization support for their types without including a Serialization header and thereby making their libraries depend on Serialization. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">data</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size</span></code>. </div> </li> <li> <div> Updated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code> to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code> which adds support for range construction from an <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">identity</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">identity</span></code>. This facility has been moved from Boost.Functional. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Avoid implicit cast from size_t to uint32_t, thanks to Travers Biddle for the PR <a href="https://github.com/boostorg/dll/pull/57">PR#57</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fixed compilation errors that could have been caused by <code><span class="identifier">path</span></code> conversion constructors being too permissive on the accepted arguments. (<a href="https://github.com/boostorg/filesystem/issues/273">#273</a>) </div> </li> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code> now presesrves the trailing directory separator. (<a href="https://github.com/boostorg/filesystem/issues/271">#271</a>) </div> </li> <li> <div> Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename_and_trailing_separators</span></code>, which removes the filename and directory separators preceding it from the path. This behavior is similar to <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code> in Filesystem <strong>v3</strong>, but is also usable in <strong>v4</strong>. </div> </li> <li> <div> Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_filename</span></code>, which replaces filename in a path. </div> </li> <li> <div> Updated implementation of the library version selection to avoid ODR violations. (<a href="https://github.com/boostorg/filesystem/issues/279">#279</a>) </div> </li> <li> <div> On Windows, added a workaround for querying file attributes for files in SMBv1 shares. Previously, directories in SMBv1 shares could have been reported as regular files. This does not affect SMBv2 or later. (<a href="https://github.com/boostorg/filesystem/issues/282">#282</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Major improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/1045">PR#1045</a> Support geographic buffer for (multi)linestrings and (multi)polygons </div> </li> </ul> </div> </li> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/1114">PR#1114</a> Comparable distance: Add support for dynamic geometries </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/1046">PR#1046</a> Support covered_by() for box, geometry combinations </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/705">#705</a> WKT: allow tabs and new lines </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1109">#1109</a>, <a href="https://github.com/boostorg/geometry/issues/1108">#1108</a> Fixes for union </div> </li> <li> <div> Various fixes in examples </div> </li> </ul> </div> </li> <li> <div> Breaking changes <ul> <li> <div> The WKT output presentation of an empty polygon is now POLYGON() to make it consistent with other geometries </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> Replace <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">span</span></code> and <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">make_span</span></code> with implementations in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span></code> </div> </li> <li> <div> Documentation improvements </div> </li> <li> <div> Protect usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">min</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max</span></code> in some cases, contributed by Han Jiang (min,max macros are illegially set by popular Windows headers so we need to work around) </div> </li> <li> <div> Added test to catch usage of unprotected min,max tokens in the library in the future </div> </li> <li> <div> Fixes to support latest clang-14 and deduction guides in gcc-11+ </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> <code><span class="identifier">set_at_pointer</span></code>. </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> support. </div> </li> <li> <div> Caller-provided serializer storage. </div> </li> <li> <div> <code><span class="identifier">value_to</span></code> supports missing elements for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>. </div> </li> <li> <div> Fix parser suspend inside an escape character. </div> </li> <li> <div> Make sentinel() return a unique pointer. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> <code><span class="identifier">get_system_locale</span></code> and dependents will now correctly favor <code><span class="identifier">LC_ALL</span></code> over <code><span class="identifier">LC_CTYPE</span></code> as defined by POSIX <a href="https://github.com/boostorg/locale/pull/144">PR#144</a> </div> </li> <li> <div> <code><span class="identifier">utf8_codecvt</span><span class="special">::</span><span class="identifier">out</span></code> returns <code><span class="identifier">partial</span></code> for trailing (UTF) surrogates </div> </li> <li> <div> Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">util</span><span class="special">::</span><span class="identifier">locale_data</span></code> to parse a locale </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">info</span><span class="special">::</span><span class="identifier">encoding</span><span class="special">()</span></code> result is now in uppercase as documented, e.g. "UTF-8" instead of "utf-8" </div> </li> <li> <div> Support M49 country codes such as <code><span class="identifier">en_001</span></code> or <code><span class="identifier">en_150</span></code> <a href="https://github.com/boostorg/locale/pull/148">PR#148</a> </div> </li> <li> <div> Treat <code><span class="identifier">en_US_POSIX</span></code> as an alias for the <code><span class="identifier">C</span></code> locale <a href="https://github.com/boostorg/locale/pull/148">PR#148</a> </div> </li> <li> <div> Improve error for missing segmentation support (i.e. without ICU) <a href="https://github.com/boostorg/locale/pull/149">PR#149</a> </div> </li> <li> <div> Fix compiler warnings </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> <strong>Deprecated C++11 support</strong>: We now require C++14 as a minimum standard. Our minimum tested compiler versions are now Clang-5, GCC-5 or MSVC-14.1. </div> </li> <li> <div> Added Estrin's method for polynomial evaluation. </div> </li> <li> <div> Fix various issues in non-central distributions to allow for larger non-centralities see <a href="https://github.com/boostorg/math/pull/939">939</a>. </div> </li> <li> <div> Added CMake install target. </div> </li> <li> <div> Fix special_functions.hpp to disable anything which can't be used in an exception-free environment. </div> </li> <li> <div> Get condition number calculation working in C++14. </div> </li> <li> <div> Fix <code><span class="keyword">constexpr</span></code> table driven functions to avoid massive slowdown when the code is not actually <code><span class="keyword">constexpr</span></code>, see <a href="https://github.com/boostorg/math/issues/923">923</a>. </div> </li> <li> <div> Improve tanh_sinh boundary handling, see <a href="https://github.com/boostorg/math/pull/894">894</a>. </div> </li> <li> <div> Add Linux arm64, s390x and Apple M1 testing, fix up test cases to handle 128-bit long doubles. </div> </li> <li> <div> Improve <code><span class="keyword">constexpr</span></code> math functions to better handle infinities and NaN's. </div> </li> <li> <div> Make the integrators const-correct. </div> </li> <li> <div> Fix tanh_sinh integrator in case the function underflows, see <a href="https://github.com/boostorg/math/issues/898">898</a>. </div> </li> <li> <div> Don't use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cbrt</span></code> as some platforms still don't support it. </div> </li> <li> <div> Stop non-central T from raising spurious FE_INVALID exceptions, see <a href="https://github.com/boostorg/math/pull/892">892</a>. </div> </li> <li> <div> Fix binomial distribution edge case. </div> </li> <li> <div> Improve ibeta handling of very small arguments, see <a href="https://github.com/boostorg/math/pull/884">884</a>. </div> </li> <li> <div> Improve ibeta handling of infinities and NaN's, see <a href="https://github.com/boostorg/math/issues/878">878</a>. </div> </li> <li> <div> Improve error handling in powm1, see <a href="https://github.com/boostorg/math/issues/781">781</a>. </div> </li> <li> <div> Improve root-finder bracketing to bracket faster when the exponent is super-large or small. </div> </li> <li> <div> Fix root finding edge cases, see <a href="https://github.com/boostorg/math/issues/873">873</a>. </div> </li> <li> <div> Lots of miscellaneous warning fixes. </div> </li> <li> <div> Add assertions when using features which require C++17 for better error messages when invoking the compiler in a lower std version. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Serialization now uses <code><span class="keyword">unsigned</span> <span class="keyword">long</span></code> instead of <a href="https://www.boost.org/libs/serialization/doc/wrappers.html#collection_size_type"><code><span class="identifier">collection_size_type</span></code></a>, and <code><span class="identifier">multi_index_container</span></code> serialization <a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class version</a> has been bumped from 2 to 3 to reflect this change. Reading old archives may fail for custom archive types giving special treatment to <code><span class="identifier">collection_size_type</span></code> values: if this is the case, globally define the macro <code><span class="identifier">BOOST_MULTI_INDEX_ENABLE_SERIALIZATION_COMPATIBILITY_V2</span></code> to ensure backwards compatibility in reading operations. </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> <strong>Deprecated C++11 support</strong>: We now require C++14 as a minimum standard. Our minimum tested compiler versions are now Clang-5, GCC-5 or MSVC-14.1. </div> </li> <li> <div> Added a new forward declaration header. </div> </li> <li> <div> Update Eigen interoperability so we no longer rely on Eigen's details, see <a href="https://github.com/boostorg/multiprecision/issues/479">479</a>. </div> </li> <li> <div> Add Cmake install target. </div> </li> <li> <div> Fix cpp_dec_float construction from string in standalone case for better error handling, see <a href="https://github.com/boostorg/multiprecision/issues/499">499</a>. </div> </li> <li> <div> Remove redundent definitions when in C++17 mode, see <a href="https://github.com/boostorg/multiprecision/pull/530">530</a>. </div> </li> <li> <div> Fix the error handling in standalone itrunc and ltrunc. </div> </li> <li> <div> Fix potentially uninitialized storage when parsing octal strings. </div> </li> <li> <div> Add arm64 and s390x CI testing. </div> </li> <li> <div> Add some missing expression template unpacking code for <code><span class="identifier">powm</span></code>, see <a href="https://github.com/boostorg/multiprecision/issues/506">506</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Add <code><span class="identifier">convert_string</span></code> overload accepting a (<code><span class="identifier">std</span><span class="special">::</span></code>)string instance </div> </li> <li> <div> Add <code><span class="identifier">quoted</span></code> to output (quoted UTF-8) paths (<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span></code> or <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span></code>) to streams <a href="https://github.com/boostorg/nowide/pull/170">PR#170</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> <ul> <li> <div> Implemented the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">is_implicitly_reflectable</span></code> and the machinery for specializing aggregates as reflectable or not, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/111">PR#111</a>. </div> </li> <li> <div> Implemented <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get</span></code> by type of an element in the aggregate. </div> </li> <li> <div> Implemented the <code><span class="identifier">BOOST_PFR_ENABLED</span></code> macro to detect library support for reflection, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/86">PR#86</a>. </div> </li> <li> <div> Fixed missing terminating character, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/114">PR#114</a>. </div> </li> <li> <div> Fixed the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pfr</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> compilation on older compilers, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/118">PR#118</a>. </div> </li> <li> <div> Workaround for broken C++17 stuctured binding in old compilers, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/119">PR#119</a>. </div> </li> <li> <div> Avoid -Wzero-as-null-pointer-constant warnings, thanks to Markus F.X.J. Oberhumer for the PR <a href="https://github.com/boostorg/pfr/pull/117">PR#117</a>. </div> </li> <li> <div> Fixed multiple typos, thanks to Denis Mikhailov for the fixes. </div> </li> <li> <div> Added missing <code><span class="preprocessor">#pragma</span> <span class="identifier">once</span></code>, thanks to <a href="https://github.com/caozhanhao">caozhanhao</a> for the PR <a href="https://github.com/boostorg/pfr/pull/121">PR#121</a>. </div> </li> <li> <div> Multiple fixes and improvements for the docs. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/process">Process</a>:</span> <ul> <li> <div> Added management for extern processes to V2 (still experimental) </div> </li> <li> <div> Deprecated <code><span class="identifier">wait_for</span></code> &amp; <code><span class="identifier">wait_until</span></code> in V1 - they will be removed in the future! </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Fixed typos in docs and comments, thanks to Chocobo1 for the PR <a href="https://github.com/boostorg/stacktrace/pull/132">PR#132</a>. </div> </li> <li> <div> Fixed multithreading flag detection for <code><span class="identifier">backtrace_create_state</span></code> if <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC</span></code> is defined. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/static_string/">StaticString</a>:</span> <ul> <li> <div> Boost.Core <code><span class="identifier">string_view</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> interoperability </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Fixed several unused variable warnings </div> </li> <li> <div> Fixed sprintf deprecation warnings </div> </li> <li> <div> Fixed undefined behavior in <code><span class="identifier">basic_cstring</span><span class="special">::</span><span class="identifier">rfind</span></code> </div> </li> <li> <div> Added CI through Github Actions </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> <strong>Major update.</strong> </div> </li> <li> <div> Added node-based, open-addressing containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_map</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_set</span></code>. </div> </li> <li> <div> Extended heterogeneous lookup to more member functions as specified in <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html">P2363</a>. </div> </li> <li> <div> Replaced the previous post-mixing process for open-addressing containers with a new algorithm based on extended multiplication by a constant. </div> </li> <li> <div> Fixed bug in internal <code><span class="identifier">emplace</span></code> impl where stack-local types were not properly constructed using the allocator of the container which breaks uses-allocator construction. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span> <ul> <li> <div> Add <code><span class="identifier">url</span><span class="special">::</span><span class="identifier">format</span></code> with automatic percent-encoding </div> </li> <li> <div> URL router example </div> </li> <li> <div> <code><span class="identifier">set_params</span></code> convenience function </div> </li> <li> <div> Support implicit conversions to <code><span class="identifier">string_view</span></code> </div> </li> <li> <div> Parsing constructors are implicit </div> </li> <li> <div> <code><span class="identifier">string_token</span><span class="special">::</span><span class="identifier">arg</span></code> has virtual destructor and slice protection </div> </li> <li> <div> Support <code><span class="identifier">BOOST_URL_DISABLE_THREADS</span></code> </div> </li> <li> <div> Improvements and Bug fixes: <ul> <li> <div> WIN32_LEAN_AND_MEAN macro redefinition warning </div> </li> <li> <div> Comparison differentiates absent and empty components </div> </li> <li> <div> Detect <code><span class="identifier">hier_part_rule</span></code> with empty-port-like segments </div> </li> <li> <div> Segments comparison as if normalized works above root </div> </li> <li> <div> hier-part path-rootless considers invalid segments </div> </li> <li> <div> port as number is set to 0 when it overflows </div> </li> <li> <div> ipv4 to string overflow detection algorithm </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Now uses core/addressof instead of the deprecated utility/addressof. Thanks to Michael Ford for the PR <a href="https://github.com/boostorg/variant/pull/105">PR#105</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_82_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_9_4">B2 version 4.9.4</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_82_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> GCC, C++03: 4.6.3, 11, 12 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11, 12 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang, C++03: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_82_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow and Glen Fernandes managed this release. </p> </div> Version 1.81.0https://www.boost.org/users/history/version_1_81_0.htmlhttps://www.boost.org/users/history/version_1_81_0.htmlWed, 14 Dec 2022 17:44:48 +0000 <div id="version_1_81_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span> A library for parsing, modifying, and printing URLs using only C++11, from Vinnie Falco and Alan de Freitas. Features include fast compilation, strong invariants, and strict compliance using a memory-friendly approach. </div> </li> </ul> </div> <div id="version_1_81_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added the <code><span class="identifier">consign</span></code> completion token adapter, which can be used to attach additional values to a completion handler. </div> </li> <li> <div> Added <code><span class="identifier">any_completion_handler</span><span class="special">&lt;&gt;</span></code>, which can be used to type-erase completion handlers. </div> </li> <li> <div> Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">co_composed</span></code> to enable lightweight implementations of user-defined asynchronous operations using C++20 coroutines. </div> </li> <li> <div> Add range-based <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">make_parallel_group</span><span class="special">()</span></code> overloads. </div> </li> <li> <div> Added <code><span class="identifier">any_completion_executor</span></code>, a type-erased wrapper for executors that are associated with completion handlers. </div> </li> <li> <div> Added missing <code><span class="identifier">context</span></code> query to use_future's executor. </div> </li> <li> <div> Added nothrow constructor overloads to <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">any_io_executor</span></code>. </div> </li> <li> <div> Optimised representation of empty <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span></code> objects to improve the performance of copy and move operations. </div> </li> <li> <div> Added an <code><span class="identifier">associated_cancellation_slot</span></code> specialisation for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">reference_wrapper</span></code>. </div> </li> <li> <div> Changed I/O objects to return their executors by const reference. </div> </li> <li> <div> Changed associated to use deduced return types for all two-argument <code><span class="identifier">get</span></code> functions. </div> </li> <li> <div> Fixed <code><span class="identifier">spawn</span></code> implementation to catch unhandled exceptions and rethrow them outside of the spawned "thread". </div> </li> <li> <div> Fixed <code><span class="identifier">spawn</span></code> to ensure the completion handler is dispatched through the correct executor. </div> </li> <li> <div> Fixed cleanup of of terminal-state <code><span class="identifier">spawn</span></code> "thread" objects. </div> </li> <li> <div> Fixed <code><span class="identifier">spawn</span></code> and <code><span class="identifier">co_spawn</span></code> implementations to dispatch cancellation handlers on the correct executor. </div> </li> <li> <div> Changed semantics of 'dispatch' to mean the executor is used as-is. </div> </li> <li> <div> Deprecated the <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">execute</span></code> customisation point and sender/receiver facilities. </div> </li> <li> <div> Added a C++11 <code><span class="identifier">parallel_group</span></code> example. </div> </li> <li> <div> Fixed example code to not use the deprecated <code><span class="identifier">resolve</span></code> conversions. </div> </li> <li> <div> Fixed an ambiguity in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel_traits</span></code> specialisations. </div> </li> <li> <div> Added a specialised channel implementation for the for <code><span class="identifier">R</span><span class="special">(</span><span class="identifier">error_code</span><span class="special">)</span></code> signature. </div> </li> <li> <div> Made <code><span class="identifier">cancelled</span><span class="special">()</span></code> public on the <code><span class="identifier">async_compose</span></code> 'self' object. </div> </li> <li> <div> Added io_executor_type and get_io_executor to the <code><span class="identifier">async_compose</span></code> 'self' object. </div> </li> <li> <div> Fixed implementation of <code><span class="identifier">release</span><span class="special">()</span></code> for Windows overlapped handles. </div> </li> <li> <div> Enabled deferred awaiting for <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>, regularised <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">use_coro</span></code>, and fixed allocator handling. </div> </li> <li> <div> Cleaned up <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code> and made it an asynchronous operation object. </div> </li> <li> <div> Constrained <code><span class="identifier">post</span></code>/<code><span class="identifier">defer</span></code> overloads on ability to require <code><span class="identifier">blocking</span><span class="special">.</span><span class="identifier">never</span></code>. </div> </li> <li> <div> Changed descriptor implementation to fall back to <code><span class="identifier">fcntl</span></code> if <code><span class="identifier">ioctl</span></code> fails with <code><span class="identifier">ENOTTY</span></code> when setting non-blocking mode. </div> </li> <li> <div> Fixed Xcode deprecation warnings related to use of <code><span class="identifier">sprintf</span></code>. </div> </li> <li> <div> Fixed the arguments passed to <code><span class="identifier">select_reactor</span><span class="special">::</span><span class="identifier">run</span></code> when it is run on an internal thread. </div> </li> <li> <div> Fixed compilation errors when <code><span class="identifier">BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING</span></code> is defined. </div> </li> <li> <div> Updated detection of C++20 coroutine support on clang 14 and later. </div> </li> <li> <div> Changed standard library feature detection to always enable <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code> when targeting C++17 or later. </div> </li> <li> <div> Fixed detection of return type deduction with MSVC. </div> </li> <li> <div> Updated the asynchronous operation requirements to relax the requirements on the associated executor. </div> </li> <li> <div> Added <tt>io_uring</tt> to the implementation notes. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_81_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> Add <code><span class="identifier">buffers_generator</span></code> </div> </li> <li> <div> Add <code><span class="identifier">beast</span><span class="special">::</span><span class="identifier">http</span><span class="special">::</span><span class="identifier">message_generator</span></code> </div> </li> <li> <div> Added <code><span class="identifier">buffer_ref</span></code>, so beast buffers can be used with asio. </div> </li> <li> <div> Support for per-operation cancellation </div> </li> <li> <div> C++20 awaitable examples. </div> </li> <li> <div> websocket per-message compression options </div> </li> <li> <div> websocket timeout option api </div> </li> <li> <div> multiple content length error </div> </li> <li> <div> Support for default-completion and rebind </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container_hash/">Container Hash</a>:</span> <ul> <li> <div> <strong>Major update.</strong> </div> </li> <li> <div> The specializations of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> have been removed; it now always calls <code><span class="identifier">hash_value</span></code>. </div> </li> <li> <div> Support for <code><span class="identifier">BOOST_HASH_NO_EXTENSIONS</span></code> has been removed. The extensions are always enabled. </div> </li> <li> <div> All standard containers are now supported. This includes <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward_list</span></code> and the unordered associative containers. </div> </li> <li> <div> User-defined containers (types that have <code><span class="identifier">begin</span><span class="special">()</span></code> and <code><span class="identifier">end</span><span class="special">()</span></code> member functions that return iterators) are now supported out of the box. </div> </li> <li> <div> Described structs and classes (those annotated with <code><span class="identifier">BOOST_DESCRIBE_STRUCT</span></code> or <code><span class="identifier">BOOST_DESCRIBE_CLASS</span></code>) are now supported out of the box. </div> </li> <li> <div> <code><span class="identifier">hash_combine</span></code> has been improved. </div> </li> <li> <div> The performance (and quality, as a result of the above change) of string hashing has been improved. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> for strings now passes SMHasher in 64 bit mode. </div> </li> <li> <div> The documentation has been substantially revised to reflect the changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> <code><span class="identifier">empty_value</span></code> members are now marked as <code><span class="keyword">constexpr</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">fclose_deleter</span></code>, a deleter that calls <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fclose</span></code> on a pointer to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">FILE</span></code>. </div> </li> <li> <div> Bit manipulation utilities in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code> now explicitly require unsigned integers on input. (<a href="https://github.com/boostorg/core/issues/129">#129</a>) </div> </li> <li> <div> <code><span class="identifier">bit_width</span></code> now returns <code><span class="keyword">int</span></code> instead of a value of the input argument type. This follows resolution of <a href="https://cplusplus.github.io/LWG/issue3656">LWG3656</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span> <ul> <li> <div> To allow the inclusion of <code><span class="identifier">enumerators</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">bases</span><span class="special">.</span><span class="identifier">hpp</span></code>, and <code><span class="identifier">members</span><span class="special">.</span><span class="identifier">hpp</span></code> when the option <code><span class="special">-</span><span class="identifier">pedantic</span></code> is used, the invocation of <code><span class="identifier">BOOST_DESCRIBE_ENUM</span></code> has been moved from <code><span class="identifier">modifiers</span><span class="special">.</span><span class="identifier">hpp</span></code> into a separate header, <code><span class="identifier">modifier_description</span><span class="special">.</span><span class="identifier">hpp</span></code>. As a consequence, <code><span class="identifier">modifiers</span><span class="special">.</span><span class="identifier">hpp</span></code> no longer includes <code><span class="keyword">enum</span><span class="special">.</span><span class="identifier">hpp</span></code>. Code that has been relying on this implicit inclusion may fail, and will need to be fixed to include <code><span class="keyword">enum</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fixed <code><span class="identifier">path_from_handle</span></code> implementation for Windows platforms, thanks to @SaltfishAmi for the bug report <a href="https://github.com/apolukhin/Boost.DLL/issues/57">57</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <strong>Deprecated:</strong> <code><span class="identifier">path</span></code> construction, assignment and appending from containers of characters, such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span></code> or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">wchar_t</span><span class="special">&gt;</span></code>, is deprecated in <strong>v3</strong> and removed in <strong>v4</strong>. Please use string types or iterators instead. </div> </li> <li> <div> <strong>Deprecated:</strong> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path_traits</span><span class="special">.</span><span class="identifier">hpp</span></code> header is deprecated and will be removed in a future release. The header contained implementation details of <code><span class="identifier">path</span></code> and should not be used in user's code. </div> </li> <li> <div> Previously deprecated APIs will now generate compilation warnings on use. To suppress these warnings, <code><span class="identifier">BOOST_FILESYSTEM_ALLOW_DEPRECATED</span></code> macro can be defined when compiling user's code. </div> </li> <li> <div> Fixed compilation due to a missing include on POSIX systems that do not support <code><span class="special">*</span><span class="identifier">at</span></code> APIs. (<a href="https://github.com/boostorg/filesystem/issues/250">#250</a>) </div> </li> <li> <div> On Windows prior to 10, added a workaround for network share filesystem that produces <code><span class="identifier">ERROR_INVALID_PARAMETER</span></code> when constructing directory iterators. (<a href="https://github.com/boostorg/filesystem/pull/246">PR#246</a>, <a href="https://github.com/boostorg/filesystem/issues/245">#245</a>) </div> </li> <li> <div> On Windows, fixed <code><span class="identifier">weakly_canonical</span></code> failing with an <code><span class="identifier">ERROR_INVALID_FUNCTION</span></code> error code if the path started with the "\\?\" prefix. (<a href="https://github.com/boostorg/filesystem/issues/247">#247</a>) </div> </li> <li> <div> Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">string_view</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">string</span></code> (as well as respective <code><span class="keyword">wchar_t</span></code> counterparts) in <code><span class="identifier">path</span></code> constructors, assignment and appending operations. (<a href="https://github.com/boostorg/filesystem/issues/208">#208</a>) </div> </li> <li> <div> <code><span class="identifier">path</span></code> constructors, assignment and appending operations taking a pair of iterators will no longer accept iterators with value types that are not one of the supported path character types. </div> </li> <li> <div> On Windows, improved compatibility of <code><span class="identifier">directory_iterator</span></code> with various mounted filesystems and Wine releases prior to 7.21. (<a href="https://github.com/boostorg/filesystem/issues/255">#255</a>, <a href="https://github.com/boostorg/filesystem/issues/266">#266</a>) </div> </li> <li> <div> On Windows, deduplicated files are now reported as regular files rather than reparse files. (<a href="https://github.com/boostorg/filesystem/issues/262">#262</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Added <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">identity_view</span></code> (<a href="https://github.com/boostorg/fusion/pull/240">PR#240</a>) </div> </li> <li> <div> Added support for associative sequences on <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">transform_view</span></code> (<a href="https://github.com/boostorg/fusion/pull/239">PR#239</a>) </div> </li> <li> <div> Fixed compilation for the case when <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">reverse_view</span></code> used with an associative sequence (<a href="https://github.com/boostorg/fusion/pull/237">PR#237</a>) </div> </li> <li> <div> Fixed Clang 13 -Wdeprecated-copy warnings (<a href="https://github.com/boostorg/fusion/pull/261">PR#261</a>) </div> </li> <li> <div> A small dependency reorganization. Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span></code> are used from Boost.Core (<a href="https://github.com/boostorg/fusion/pull/249">PR#249</a>) </div> </li> <li> <div> Added CI testing on Linux and MacOS for clang and gcc, fixed CI testing on Windows (<a href="https://github.com/boostorg/fusion/pull/245">PR#245</a>, <a href="https://github.com/boostorg/fusion/pull/236">PR#236</a>) </div> </li> <li> <div> Improved docs and fixed typos (<a href="https://github.com/boostorg/fusion/issues/234">#234</a>, <a href="https://github.com/boostorg/fusion/pull/235">PR#235</a>, <a href="https://github.com/boostorg/fusion/pull/238">PR#238</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1048">#1048</a> Index: Fix dangling references when Indexable is returned by value by IndexableGetter </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1076">#1076</a> Union: in rare cases it might miss one polygon </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1081">#1081</a> Union: due to precision it might miss interior rings </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1063">#1063</a> Intersection: fix a bug in intersection of simple spherical polygons </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1064">#1064</a> Formulas: fix a consistency issue in geodesic direct formulas </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/1088">#1088</a> Point: Fix regression for custom point types </div> </li> <li> <div> Various fixes for missing include files, warnings, C++20 compilation errors and documentation </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> <strong>Major update.</strong> </div> </li> <li> <div> Added new <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">fraction</span></code> to compute fractions, their variance, and confidence intervals </div> </li> <li> <div> Added interval computers for fractions: <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">clopper_pearson</span></code>, <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">wilson_interval</span></code>, <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">jeffreys_interval</span></code>, <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">wald_interval</span></code> which can compute intervals with arbitrary confidence level </div> </li> <li> <div> Added <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">confidence_level</span></code> and <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">deviation</span></code> types to pass confidence levels as probabilities or in multiples of standard deviation for all interval computers, respectively </div> </li> <li> <div> Fixed internal <code><span class="identifier">sub_array</span></code> and <code><span class="identifier">span</span></code> in C++20 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> <code><span class="identifier">function_output_iterator</span></code> now supports perfect forwarding of the assigned values to the wrapped function object. (<a href="https://github.com/boostorg/iterator/pull/73">PR#73</a>) </div> </li> <li> <div> Fixed compilation of constructing a <code><span class="identifier">function_input_iterator</span></code> from result of post-incrementing another <code><span class="identifier">function_input_iterator</span></code>. (<a href="https://github.com/boostorg/iterator/issues/75">#75</a>) </div> </li> <li> <div> The result of post-incrementing an iterator based on <code><span class="identifier">iterator_facade</span></code> now supports <code><span class="keyword">operator</span><span class="special">-&gt;</span></code>. <code><span class="special">(</span><span class="identifier">it</span><span class="special">++)-&gt;</span><span class="identifier">foo</span></code> is equivalent to <code><span class="special">(*</span><span class="identifier">it</span><span class="special">++).</span><span class="identifier">foo</span></code>, which was supported before. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> Added <code><span class="identifier">object</span><span class="special">::</span><span class="identifier">stable_erase</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">parse</span></code> overload for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span></code> and <code><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> for <code><span class="identifier">value</span></code>. </div> </li> <li> <div> Added rvalue ref-qualified accessors for <code><span class="identifier">value</span></code>. </div> </li> <li> <div> Conversion traits were redesigned. </div> </li> <li> <div> Added conversion support for described classes and enums, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span></code>, and null-like types (including <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullopt_t</span></code>, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">monotype</span></code>). </div> </li> <li> <div> Added non-throwing conversion from <code><span class="identifier">value</span></code> to user types. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Fixed compilation while casting volatile arithmetic types. Thanks to Giovanni Cerretani for the bug report <a href="https://github.com/boostorg/lexical_cast/issues/50">#50</a>. </div> </li> <li> <div> Removed usage of deprecated headers. Thanks to Michael Ford for the PR <a href="https://github.com/boostorg/lexical_cast/pull/53">PR#53</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> <strong>Major update with some breaking changes.</strong> </div> </li> <li> <div> C++11 support is now required, support for C++03 and earlier is dropped </div> </li> <li> <div> Some enums have been converted to enum classes - Avoids name clashes </div> </li> <li> <div> Replace <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code> &amp; <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code> by fine-grained configuration options as done in Boost.RegEx </div> </li> <li> <div> Fix detection of libiconv allowing Boost.Locale to be build (again) on some platforms </div> </li> <li> <div> Remove use of and support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span></code> </div> </li> <li> <div> Make the <code><span class="identifier">codecvt</span></code> using <code><span class="keyword">wchar_t</span></code> on Windows assume/use UTF-16 enconding </div> </li> <li> <div> Performance improvements: Make <code><span class="identifier">basic_format</span></code>, <code><span class="identifier">date_time</span></code> &amp; <code><span class="identifier">hold_ptr</span></code> movable, Fix use of format cache </div> </li> <li> <div> Make Boost.Locale compatible with more ICU versions (especially the tests) </div> </li> <li> <div> Fix RTTI definitions for some classes (visibility issues) </div> </li> <li> <div> Fix compatibility of the ICU backend with some libc++ versions </div> </li> <li> <div> Fix return value of some operators to correctly return non-const <code><span class="special">*</span><span class="keyword">this</span></code> </div> </li> <li> <div> Fix int-overflow on negative roll of years in <code><span class="identifier">date_time</span></code> </div> </li> <li> <div> Handle or suppress many warnings which makes the build log cleaner </div> </li> <li> <div> Add support for more Windows codepages </div> </li> <li> <div> Fix support for Windows codepages like ISO-2022-JP </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Fix build failure of tests on MSVC </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> The library <strong>does not use COM initialization any more</strong>. Thanks to Alex Guteniev for the bug report, clarifications and PR <a href="https://github.com/boostorg/stacktrace/pull/123">PR#123</a>! </div> </li> <li> <div> The library now may use <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE</span></code> macro value while detecting the libbacktrace availability in b2, thanks to Ben Gemmill for the bug report <a href="https://github.com/boostorg/stacktrace/issues/115">#115</a>. </div> </li> <li> <div> Added <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC</span></code> macro to force a single backtrace_state static instance while using the libbacktrace. Thanks to the Rasmus Thomsen for the bug report <a href="https://github.com/boostorg/stacktrace/issues/118">#118</a>! </div> </li> <li> <div> Avoid unresolved references when including only the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stacktrace</span><span class="special">/</span><span class="identifier">stacktrace</span><span class="special">.</span><span class="identifier">hpp</span></code> header. Thanks to the Long Deng for the bug report <a href="https://github.com/boostorg/stacktrace/issues/116">#116</a>. </div> </li> <li> <div> Optimized stacktrace printing by not calling <code><span class="identifier">strlen</span></code> on Windows platforms. Thanks to Alex Guteniev for the bug report <a href="https://github.com/boostorg/stacktrace/issues/122">#122</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> <ul> <li> <div> Improved detection of aggregate initializables in C++14 mode, thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/97">PR#97</a>. </div> </li> <li> <div> Suppress clang-tidy warnings, thanks to Alexander Malkov for the PRs <a href="https://github.com/boostorg/pfr/pull/109">PR#109</a>, <a href="https://github.com/boostorg/pfr/pull/104">PR#104</a>. </div> </li> <li> <div> Use fold expressions if they are supported by the compiler. Thanks to Jean-Michaël Celerier for the PR <a href="https://github.com/boostorg/pfr/pull/96">PR#96</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span> <ul> <li> <div> Fix two ill-formed <code><span class="identifier">iterator_interface</span></code> operators in pre-C++20 iterators with a <code><span class="keyword">const</span></code> <code><span class="identifier">value_type</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> The macro <code><span class="identifier">BOOST_SYSTEM_DISABLE_THREADS</span></code> can now be defined to disable the use of <code><span class="special">&lt;</span><span class="identifier">mutex</span><span class="special">&gt;</span></code> (e.g. on single-threaded libstdc++). </div> </li> <li> <div> Added <code><span class="identifier">value_type</span></code>, <code><span class="identifier">error_type</span></code>, <code><span class="identifier">in_place_value</span></code>, <code><span class="identifier">in_place_error</span></code> to <code><span class="identifier">result</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">emplace</span></code> to <code><span class="identifier">result</span><span class="special">&lt;&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> <strong>Major update.</strong> </div> </li> <li> <div> Added fast containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_map</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_set</span></code> based on open addressing. </div> </li> <li> <div> Added CTAD deduction guides for all containers. </div> </li> <li> <div> Added missing constructors as specified in <a href="https://cplusplus.github.io/LWG/issue2713">LWG issue 2713</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Avoid recursive inclusion of headers, thanks to Nathan Sidwell for the bug report <a href="https://github.com/boostorg/variant/issues/101">#101</a>. </div> </li> <li> <div> Removed usage of deprecated headers, thanks to Michael Ford for the PR <a href="https://github.com/boostorg/variant/pull/96">PR#96</a>. </div> </li> <li> <div> Fixed compilation on clang in C++23 mode, thanks to Ed Catmur for the PR <a href="https://github.com/boostorg/variant/pull/98">PR#98</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Added support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">json</span><span class="special">::</span><span class="identifier">value_from</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">json</span><span class="special">::</span><span class="identifier">value_to</span></code>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_81_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.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 </div> </li> <li> <div> GCC: 4.6.3, 11, 12 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11, 12 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_81_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow and Glen Fernandes managed this release. </p> </div> Version 1.80.0https://www.boost.org/users/history/version_1_80_0.htmlhttps://www.boost.org/users/history/version_1_80_0.htmlWed, 10 Aug 2022 21:25:15 +0000 <div id="version_1_80_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. </p> <ul> <li> <div> Config <ul> <li> <div> Support for libcpp15 which removes <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unary_function</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">binary_function</span></code>. <a href="https://www.boost.org/patches/1_80_0/0005-config-libcpp15.patch">Patch</a>. </div> </li> </ul> </div> </li> <li> <div> Filesystem <ul> <li> <div> Directory iterators may fail to construct for a network share on Windows prior to 10, see <a href="https://github.com/boostorg/filesystem/pull/246">PR#246</a> and <a href="https://github.com/boostorg/filesystem/issues/245">#245</a>. <a href="https://www.boost.org/patches/1_80_0/0001-filesystem-win-fix-dir-it-net-share.patch">Patch</a>. </div> </li> <li> <div> On Windows, <code><span class="identifier">weakly_canonical</span></code> fails to process paths that start with the "\\?\" prefix, see <a href="https://github.com/boostorg/filesystem/issues/247">#247</a>. <a href="https://www.boost.org/patches/1_80_0/0002-filesystem-fix-weakly-canonical-long-paths.patch">Patch</a>. </div> </li> <li> <div> On POSIX systems that don't support <code><span class="special">*</span><span class="identifier">at</span></code> APIs, compilation fails due to a missing include, see <a href="https://github.com/boostorg/filesystem/issues/250">#250</a>. <a href="https://www.boost.org/patches/1_80_0/0004-filesystem-posix-fix-no-at-apis-missing-include.patch">Patch</a>. </div> </li> </ul> </div> </li> <li> <div> Unordered <ul> <li> <div> Containers are not in a valid state after moving, see <a href="https://github.com/boostorg/unordered/issues/139">#139</a>. <a href="https://www.boost.org/patches/1_80_0/0003-unordered-valid-after-move.patch">Patch</a>. </div> </li> <li> <div> Fix MSVC /RTCc build runtime failures. <a href="https://www.boost.org/patches/1_80_0/0006-unordered-msvc-rtcc.patch">Patch</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_80_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> No new libraries. </div> </li> </ul> </div> <div id="version_1_80_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added a deduced trailing return type to all asynchronous operations, to enable the new form of <code><span class="identifier">async_result</span></code> for C++11. </div> </li> <li> <div> Moved <code><span class="identifier">append</span></code>, <code><span class="identifier">prepend</span></code>, <code><span class="identifier">as_tuple</span></code>, and <code><span class="identifier">deferred</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span></code> namespace, and made them compatible with C++11. </div> </li> <li> <div> Made <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> compatible with C++11. </div> </li> <li> <div> Added <code><span class="identifier">buffer</span><span class="special">()</span></code> overloads for contiguous containers, such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code>. </div> </li> <li> <div> Added the ability for <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>-based coroutines to directly <code><span class="identifier">co_await</span></code> operations that are packaged as function objects. </div> </li> <li> <div> Changed <code><span class="identifier">spawn</span><span class="special">()</span></code> to be a completion token-based asynchronous operation, and added support for cancellation. The <code><span class="identifier">basic_yield_context</span></code> token now supports move-only and variadic result types. When targeting C++11 and later, <code><span class="identifier">spawn</span><span class="special">()</span></code> and <code><span class="identifier">basic_yield_context</span></code> are implemented in terms of Boost.Context directly. </div> </li> <li> <div> Added the <code><span class="identifier">is_async_operation</span></code> trait and <code><span class="identifier">async_operation</span></code> concept. </div> </li> <li> <div> Added the <code><span class="identifier">completion_signature_of</span></code> trait. </div> </li> <li> <div> Added converting move construction/assignment to posix descriptors, serial ports, pipes, Windows <code><span class="identifier">object_handle</span></code>, Windows stream handles, and Windows random-access handles. </div> </li> <li> <div> Added <code><span class="identifier">release</span><span class="special">()</span></code> member functions to pipes, Windows stream handles, and Windows random-access handles. </div> </li> <li> <div> Enabled support for <code><span class="identifier">Endpoint</span></code> implementations that return <code><span class="keyword">void</span></code> pointers from their <code><span class="identifier">data</span><span class="special">()</span></code> member functions, as per the documented <code><span class="identifier">Endpoint</span></code> type requirements. </div> </li> <li> <div> Removed <code><span class="identifier">all</span><span class="special">()</span></code> and <code><span class="identifier">race</span><span class="special">()</span></code> from <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>, as <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> covers this functionality. </div> </li> <li> <div> Added source locations to exceptions and error codes produced by the synchronous and asynchronous operations. </div> </li> <li> <div> Fixed compatibility with OpenSSL 3.0.4 and later. </div> </li> <li> <div> Fixed compatibility with with <tt>-masm=intel</tt>. </div> </li> <li> <div> Explicitly stated that socket <code><span class="identifier">shutdown</span><span class="special">()</span></code> calls are thread-safe with respect to certain other synchronous operations on the same socket. </div> </li> <li> <div> Optimised the move construction of I/O objects where only the executor type differs. </div> </li> <li> <div> Fixed the detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code> for clang/libc++. </div> </li> <li> <div> Fixed an issue where <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> initiation incorrectly moved arguments instead of forwarding them. </div> </li> <li> <div> Fixed a sequencing issue in the implementation of <code><span class="identifier">post</span><span class="special">()</span></code>, <code><span class="identifier">dispatch</span><span class="special">()</span></code>, and <code><span class="identifier">defer</span><span class="special">()</span></code>. </div> </li> <li> <div> Fixed the <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code> implementation to propagate exceptions from awaited initiation functions through the current completion handler. </div> </li> <li> <div> Fixed detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_alloc</span></code> with <tt>gcc</tt> 7. </div> </li> <li> <div> Changed to avoid using the soon-to-be-deprecated <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_storage</span></code> on newer compilers. </div> </li> <li> <div> Fixed detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_alloc</span></code> for older Apple platforms. </div> </li> <li> <div> Removed faulty assertions from <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code> implementation. </div> </li> <li> <div> Added defence against Qt-defined macros when building with Intel C++. </div> </li> <li> <div> Changed the implementation of the <code><span class="identifier">select_reactor</span></code>, on Windows, to ensure that any exception resulting from failure to recreate its interrupter's sockets will be allowed to propagate out through <code><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">run</span><span class="special">()</span></code>. </div> </li> <li> <div> Fixed various compiler warnings. </div> </li> <li> <div> Updated all composed operations examples, and the C++11 timeouts example, to use the new <code><span class="identifier">async_result</span></code> form. </div> </li> <li> <div> Added composed operation and coroutine examples for C++20. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_80_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Improved portability of endianness checks on ARM, AArch32 and AArch64 targets. (<a href="https://github.com/boostorg/atomic/issues/59">#59</a>) </div> </li> <li> <div> Fixed compilation with MSVC 14.0 (Visual Studio 2015) in C++17 mode. (<a href="https://github.com/boostorg/atomic/issues/61">#61</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> On Windows, added a fallback implementation for querying file attributes in case if the file cannot be opened with <code><span class="identifier">ERROR_ACCESS_DENIED</span></code> error. This may allow <code><span class="identifier">status</span></code> and <code><span class="identifier">symlink_status</span></code> to succeed for system files and directories that are not reparse points or symlinks. (<a href="https://github.com/boostorg/filesystem/issues/234">#234</a>) </div> </li> <li> <div> On Windows, added a workaround for FAT/exFAT filesystems that produce <code><span class="identifier">ERROR_INVALID_PARAMETER</span></code> when querying file attributes. This affected <code><span class="identifier">status</span></code> and <code><span class="identifier">symlink_status</span></code>, which reported that files do not exist, and directory iterators, which failed to construct, as well as other dependent operations. (<a href="https://github.com/boostorg/filesystem/issues/236">#236</a>, <a href="https://github.com/boostorg/filesystem/issues/237">#237</a>) </div> </li> <li> <div> Worked around a compilation problem on <a href="https://www.rtems.org/">RTEMS</a>. (<a href="https://github.com/boostorg/filesystem/pull/240">PR#240</a>) </div> </li> <li> <div> On Linux, corrected switching to <code><span class="identifier">sendfile</span></code> <code><span class="identifier">copy_file</span></code> implementation if <code><span class="identifier">copy_file_range</span></code> failed with <code><span class="identifier">ENOSYS</span></code> in runtime. The <code><span class="identifier">sendfile</span></code> fallback implementation used to skip the filesystem type check and could fail for some filesystems. </div> </li> <li> <div> On POSIX systems supporting <code><span class="identifier">openat</span></code> and related APIs defined in POSIX.1-2008 and on Windows Vista and later, improved protection of <code><span class="identifier">remove_all</span></code> against <a href="https://www.cve.org/CVERecord?id=CVE-2022-21658">CVE-2022-21658</a> that was implemented in the previous release. The previous fix could still result in removing unintended files in <a href="https://github.com/boostorg/filesystem/issues/224#issuecomment-1183738097">certain conditions</a>. Other systems remain vulnerable. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <strong>NOTICE:</strong> We are planning BREAKING switch to C++17 as minimum required C++ language version in one or two releases after Boost 1.80 (<a href="https://github.com/boostorg/gil/issues/676">#676</a>) <ul> <li> <div> Added <ul> <li> <div> GSoC 2020: Added Perona-Malik anisotropic diffusion algorithm (<a href="https://github.com/boostorg/gil/pull/500">PR#500</a>) </div> </li> <li> <div> GSoC 2020: Added histogram class and related functionality (<a href="https://github.com/boostorg/gil/pull/499">PR#499</a>) </div> </li> <li> <div> GSoC 2020: Added histogram equalization feature (<a href="https://github.com/boostorg/gil/pull/514">PR#514</a>) </div> </li> <li> <div> GSoC 2020: Added histogram matching algorithm (<a href="https://github.com/boostorg/gil/pull/515">PR#515</a>) </div> </li> <li> <div> GSoC 2020: Added ability to stack images either horizontally (<code><span class="identifier">hstack</span></code>) or vertically (<code><span class="identifier">vstack</span></code>) (<a href="https://github.com/boostorg/gil/pull/506">PR#506</a>) </div> </li> <li> <div> GSoC 2020: Added adaptive histogram equalization algorithm (<a href="https://github.com/boostorg/gil/pull/516">PR#516</a>) </div> </li> <li> <div> GSoC 2020: Added Standard Hough Transform and circle rasterization (<a href="https://github.com/boostorg/gil/pull/512">PR#512</a>) </div> </li> <li> <div> GSoC 2020: Added Bresenham's algorithm for line rasterization (<a href="https://github.com/boostorg/gil/pull/512">PR#512</a>) </div> </li> <li> <div> GSoC 2021: Added rotation of image by arbitrary angle around its center (<a href="https://github.com/boostorg/gil/pull/565">PR#565</a>) </div> </li> <li> <div> GSoC 2021: Added rasterization support for ellipse based on "An Efficient Ellipse-Drawing Algorithm" by Jerry Van Aken (<a href="https://github.com/boostorg/gil/pull/585">PR#585</a>) </div> </li> <li> <div> Added <code><span class="identifier">image</span></code> constructor from compatible view (<a href="https://github.com/boostorg/gil/pull/520">PR#520</a>) </div> </li> <li> <div> Added inverse function for affine <code><span class="identifier">matrix3x2</span></code> (<a href="https://github.com/boostorg/gil/pull/527">PR#527</a>) </div> </li> <li> <div> Added standard morphological transformations (<a href="https://github.com/boostorg/gil/pull/541">PR#541</a>) </div> </li> <li> <div> Added <code><span class="identifier">for_each_pixel</span></code> overload for <code><span class="identifier">any_image</span></code> (<a href="https://github.com/boostorg/gil/pull/648">PR#648</a>) </div> </li> <li> <div> Added C++17 polymorphic memory resource typedefs for <code><span class="identifier">image</span></code> class (<a href="https://github.com/boostorg/gil/pull/529">PR#529</a>) </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> <strong>BREAKING:</strong> The required minimum C++ version is changed from from C++11 to C++14. Currently, large parts of GIL still compile with a C++11 compiler. However, there is no guarantee that it stays that way, and any compilers that do not support at least C++14 are considered unsupported as of now. </div> </li> <li> <div> <strong>BREAKING:</strong> <code><span class="identifier">any_color_converted_view</span><span class="special">()</span></code> is deprecated and will be removed in the next release. Use <code><span class="identifier">color_converted_view</span><span class="special">()</span></code> instead, which provides the same feature. </div> </li> <li> <div> <strong>BREAKING:</strong> <code><span class="identifier">apply_operation</span></code> for <code><span class="identifier">any_image</span></code> is deprecated and will be removed in the next release. Use <code><span class="identifier">variant2</span><span class="special">::</span><span class="identifier">visit</span></code> instead, which provides the same feature. (<a href="https://github.com/boostorg/gil/pull/656">PR#656</a>) </div> </li> <li> <div> Moved numeric extension to core (<a href="https://github.com/boostorg/gil/pull/573">PR#573</a>) </div> </li> <li> <div> Added support for C++17's <code><span class="special">&lt;</span><span class="identifier">filesystem</span><span class="special">&gt;</span></code> (<a href="https://github.com/boostorg/gil/pull/636">PR#636</a>) The availability of the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span></code> is detected automatically, unless the <code><span class="identifier">BOOST_GIL_IO_USE_BOOST_FILESYSTEM</span></code> macro is defined that forces the preference of the Boost.Filesystem. </div> </li> <li> <div> Renamed <code><span class="identifier">pixel_multiply_t</span></code> to <code><span class="identifier">pixel_multiplies_t</span></code> and <code><span class="identifier">pixel_divide_t</span></code> to <code><span class="identifier">pixel_divides_t</span></code> (<a href="https://github.com/boostorg/gil/pull/655">PR#655</a>) </div> </li> <li> <div> Renamed <code><span class="identifier">io</span><span class="special">/</span><span class="identifier">dynamic_io_new</span><span class="special">.</span><span class="identifier">hpp</span></code> to <code><span class="identifier">io</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">dynamic</span><span class="special">.</span><span class="identifier">hpp</span></code> (<a href="https://github.com/boostorg/gil/pull/653">PR#653</a>) </div> </li> <li> <div> Moved function <code><span class="identifier">construct_matched</span></code> into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">gil</span><span class="special">::</span><span class="identifier">detail</span></code> namespace as it was only used by other implementation details (<a href="https://github.com/boostorg/gil/pull/653">PR#653</a>) </div> </li> <li> <div> Made <code><span class="identifier">packed_pixel</span></code> trivially copyable and assignable (<a href="https://github.com/boostorg/gil/pull/679">PR#679</a>) </div> </li> <li> <div> Replace deprecated libtiff v4.3 typedefs with C99 fixed-size integers (<a href="https://github.com/boostorg/gil/pull/685">PR#685</a>) </div> </li> </ul> </div> </li> <li> <div> Removed <ul> <li> <div> <strong>BREAKING:</strong> Removed support for GCC 5 (<a href="https://github.com/boostorg/gil/pull/572">PR#572</a>) </div> </li> <li> <div> Removed deprecated.hpp (<a href="https://github.com/boostorg/gil/pull/627">PR#627</a>) </div> </li> </ul> </div> </li> <li> <div> Fixed <ul> <li> <div> Fixed conversion from RGB to HSL (<a href="https://github.com/boostorg/gil/pull/505">PR#505</a>) </div> </li> <li> <div> Fixed conversion from RGB to signed CMYK (<a href="https://github.com/boostorg/gil/pull/522">PR#522</a>) </div> </li> <li> <div> Removed unnecessary numeric cast in hsv.hpp (<a href="https://github.com/boostorg/gil/pull/530">PR#530</a>) </div> </li> <li> <div> Fixed default constructor for <code><span class="identifier">homogeneous_color_base</span></code> for reference pixel elements (<a href="https://github.com/boostorg/gil/pull/542">PR#542</a>) </div> </li> <li> <div> Fixed returning reference to local temporary object in <code><span class="identifier">subchroma_image_view</span></code> (<a href="https://github.com/boostorg/gil/pull/556">PR#556</a>) </div> </li> <li> <div> Added missing header guards in diffusion.hpp (<a href="https://github.com/boostorg/gil/pull/568">PR#568</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">any_image_view</span><span class="special">&lt;&gt;::</span><span class="identifier">const_t</span></code> (<a href="https://github.com/boostorg/gil/pull/526">PR#526</a>) </div> </li> <li> <div> Fixed C++20 incompatibilities in I/O extensions (<a href="https://github.com/boostorg/gil/pull/617">PR#617</a>) </div> </li> <li> <div> Ensured all examples build without errors (<a href="https://github.com/boostorg/gil/pull/628">PR#628</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">convolve_2d</span></code> for images with <code><span class="identifier">float32_t</span></code> channel model (<a href="https://github.com/boostorg/gil/pull/577">PR#577</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">for_each_pixel</span></code> for non-1d iterable views (<a href="https://github.com/boostorg/gil/pull/621">PR#621</a>) </div> </li> <li> <div> Fixed: <code><span class="identifier">is_equal_to_sixteen</span></code> in PNG I/O was less-than test (<a href="https://github.com/boostorg/gil/pull/650">PR#650</a>) </div> </li> <li> <div> Re-allow <code><span class="identifier">devicen_t</span></code> with two components (<a href="https://github.com/boostorg/gil/pull/654">PR#654</a>) It was unintentionally removed in Boost 1.72 </div> </li> <li> <div> Fixed memory leak in <code><span class="identifier">image</span></code> class for empty dimensions (<a href="https://github.com/boostorg/gil/pull/649">PR#649</a>) </div> </li> </ul> </div> </li> <li> <div> Acknowledgements <ul> <li> <div> Cypre55, Samuel Debionne, Mike-Devel, Edward Diener, Peter Dimov, Omar Emara, Dhruva Gole, Nicolas Herry, Eugene K, Avinal Kumar, Gaurav Kumar, Marco Langer, Pranam Lashkari, Mateusz Łoskot, Giovanni Mascellani, Debabrata Mandal, Gopi Krishna Menon, René Ferdinand Rivera Morell, Felix Morgner, Harshit Pant, Paul92, André Schröder, Scramjet911, Siddharth, Dirk Stolle, Prathamesh Tagore, theroyn, Olzhas Zhumabek </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Graph</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Fix bug in <code><span class="identifier">stoer_wagner_min_cut</span></code> where vertices are not merged at the end of each mincut phase (<a href="https://github.com/boostorg/graph/issues/286">#286</a>) </div> </li> <li> <div> Fix conversion warning for return type of <code><span class="identifier">strong_components</span></code> (<a href="https://github.com/boostorg/graph/issues/293">#293</a>) </div> </li> <li> <div> Fix compilation failure of <code><span class="identifier">boykov_kolmogorov_max_flow</span></code> named parameter overload (<a href="https://github.com/boostorg/graph/issues/232">#232</a>) </div> </li> </ul> </div> </li> <li> <div> General code improvements: <ul> <li> <div> Remove redundant call to <code><span class="identifier">combine</span></code> in <code><span class="identifier">astar_search_no_init_tree</span></code> (<a href="https://github.com/boostorg/graph/issues/260">#260</a>) </div> </li> <li> <div> Remove redundant <code><span class="identifier">child_idx</span></code> argument of <code><span class="identifier">d_ary_heap_indirect</span><span class="special">&lt;&gt;::</span><span class="identifier">child</span></code> (<a href="https://github.com/boostorg/graph/issues/261">#261</a>) </div> </li> <li> <div> Improve documentation for traversal categories (<a href="https://github.com/boostorg/graph/issues/303">#303</a>) </div> </li> </ul> </div> </li> <li> <div> Acknowledgements <ul> <li> <div> Viktor Pti, Sebastian Brockmeyer, Etienne dg </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> Fixed segfault in <code><span class="identifier">indexed</span></code> when trying to iterate over histogram with axes of zero size (physical or logical) under certain conditions </div> </li> <li> <div> Removed previously deprecated API <ul> <li> <div> class <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">thread_safe</span></code>: use <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">count</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">true</span><span class="special">&gt;</span></code> </div> </li> <li> <div> Methods <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">large</span></code> and <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">small</span></code>: use <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">large_part</span></code> and <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">small_part</span></code> </div> </li> <li> <div> Type alias <code><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce_option</span></code>: use <code><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce_command</span></code> </div> </li> <li> <div> Template function <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">static_options</span></code>: use <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_options</span></code> </div> </li> <li> <div> Template function <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">static_is_inclusive</span></code>: use <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_inclusive</span></code> </div> </li> <li> <div> Type alias <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">range_iterator</span></code>: use <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">iterator</span></code> </div> </li> <li> <div> Type alias <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">accessor</span><span class="special">::</span><span class="identifier">reference</span></code>: use <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">accessor</span><span class="special">::</span><span class="identifier">const_reference</span></code> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> For C++11 and later, added support for perfect forwarding of values written to <code><span class="identifier">function_output_iterator</span></code>. (<a href="https://github.com/boostorg/iterator/pull/73">PR#73</a>) </div> </li> <li> <div> Added protection against writing to <code><span class="identifier">function_output_iterator</span></code> a result of dereferencing another <code><span class="identifier">function_output_iterator</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> Added non-const <code><span class="identifier">value</span><span class="special">::</span><span class="identifier">at</span></code> overloads. </div> </li> <li> <div> Added the ability to manually choose endianness of the platform. </div> </li> <li> <div> Added <code><span class="identifier">string</span><span class="special">::</span><span class="identifier">subview</span><span class="special">()</span></code> overload. </div> </li> <li> <div> Fixed segfault in <code><span class="identifier">array</span><span class="special">::</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code>. </div> </li> <li> <div> Fixed low performance of <code><span class="identifier">serialize</span></code> on libc++. </div> </li> <li> <div> Fixed ambigious conversion to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> on GCC 8. </div> </li> <li> <div> Fixed parsing on big-endian platforms. </div> </li> <li> <div> Fixed handling of comment after trailing comma. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span> <ul> <li> <div> API breaking change: throw leaf::exception(....) now becomes leaf::throw_exception(....) </div> </li> <li> <div> Fixed a bug in support for a rare build configuration (exception handling enabled, diagnostics disabled) </div> </li> <li> <div> Using nullptr instead of 0 throughout </div> </li> <li> <div> Fixed pedantic warnings </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> Deprecated support for C++03 and earlier, C++11 will be required in the next release </div> </li> <li> <div> Provide <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code> as a temporary replacement for <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code> which is incompatible with Boost.Regex. <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code> and <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code> are deprecated and will be replaced by <code><span class="identifier">ICU_</span><span class="special">*</span><span class="identifier">_NAME</span></code> options to be compatible with Boost.Regex </div> </li> <li> <div> Fix UB/assertion failure in the ICU <code><span class="identifier">collator</span></code> implementation when transforming empty strings </div> </li> <li> <div> Fix some issues related to visibility of classes in shared libraries (Unix only) </div> </li> <li> <div> Fix compatibility with C++20 mode </div> </li> <li> <div> Fix compatibility with <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code> </div> </li> <li> <div> Fix build failures due to missing includes </div> </li> <li> <div> Handle or suppress many warnings which makes the build log cleaner </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Fixed binding incorrect local address in UDP socket-based <code><span class="identifier">syslog_backend</span></code> when IPv6 address is used for the syslog server. (<a href="https://github.com/boostorg/log/issues/181">#181</a>) </div> </li> <li> <div> Added a workaround for a <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105857">bug</a> in libstdc++ from gcc 11.2. When <code><span class="identifier">max_size_decor</span></code> was used on a formatting stream, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">::</span><span class="identifier">do_length</span></code> incorrectly accessed the input buffer and caused a buffer overflow. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> <strong>Deprecated C++11 support</strong>: from 2023 we will require C++14 as a minimum standard. This will mean GCC-5 or MSVC-14.1 as a minimal requirement. </div> </li> <li> <div> Add <code><span class="keyword">constexpr</span></code> fma support, see <a href="https://github.com/boostorg/math/pull/734">734</a>. </div> </li> <li> <div> Add support for the Chatterjee Correlation Coefficient, see <a href="https://github.com/boostorg/math/pull/770">770</a>. </div> </li> <li> <div> Added support for the logarithm of the PDF for all the distributions. </div> </li> <li> <div> Improve support for building with no exception or RTTI support. </div> </li> <li> <div> Some minor bug fixes for [sub 1]F[sub 1] corner cases, see <a href="https://github.com/boostorg/math/pull/778">778</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> <strong>Mark C++11 support as deprecated</strong>: from 2023 we will move to requiring C++14 as a minimum standard level. That will drop support for GCC versions prior to 5 and MSVC prior to 14.1. </div> </li> <li> <div> Fix conflict between <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdfloat</span><span class="special">.</span><span class="identifier">hpp</span></code> and this library. </div> </li> <li> <div> Clean up lots of gcc and clang warnings. </div> </li> <li> <div> Fix input streaming of composite types (complex, interval rational) where there is a trailing delimeter in the stream and no whitespace. </div> </li> <li> <div> Fix <code><span class="keyword">constexpr</span></code> integer square root where the input is 1, 2 or 3. </div> </li> <li> <div> Add missing <code><span class="preprocessor">#include</span></code> of <code><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code> to float128.hpp. </div> </li> <li> <div> Correct 2-arg constructor for class <code><span class="identifier">number</span></code> to prevent ambiguity in some cases. </div> </li> <li> <div> Correct and make more consistent behaviour of divide-by-zero in gmp.hpp. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Major performance improvement for Bulk I/O with files </div> </li> <li> <div> <code><span class="identifier">basic_filebuf</span></code>: Fix wrong return value of <code><span class="identifier">sync</span></code> when <code><span class="identifier">fflush</span></code> failed </div> </li> <li> <div> <code><span class="identifier">basic_filebuf</span></code>: Fix possible undefined behavior in a corner case when nothing was actually written but buffer is in "write" mode </div> </li> <li> <div> <code><span class="identifier">basic_filebuf</span></code>: Limit putback of characters (i.e. <code><span class="identifier">pbackfail</span></code>) only allowing putback of buffered characters (may be only 1 character) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Added specializations for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&gt;</span></code>. This is a breaking change for programs that define such specializations themselves. For more details see <a href="https://www.boost.org/libs/optional/doc/html/boost_optional/reference/header__boost_optional_optional_hpp_/detailed_semantics___std__hash_specializations.html#reference_std_hash_spec">specs</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span> <ul> <li> <div> Fix <a href="https://github.com/boostorg/stl_interfaces/issues/53">#53</a>: "missing 'typename' prior to dependent type name 'C::const_iterator'" </div> </li> <li> <div> Fix <a href="https://github.com/boostorg/stl_interfaces/issues/54">#54</a>: "Concept check fails on .data() of a view on contiguous iterator_interface instantiations" </div> </li> <li> <div> New additions to make it easy to write views and view adaptors that work like, and interoperate with, the ones in the standard library: <ul> <li> <div> Add workalikes for C++23's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind_back</span><span class="special">()</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">range_adaptor_closure</span></code> for pre-C++23 code. </div> </li> <li> <div> Add templates <code><span class="identifier">closure</span></code> and <code><span class="identifier">adaptor</span></code> to make writing view adaptors easier, following the examples in <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html">P2387</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> When an <code><span class="identifier">error_code</span></code> is converted to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> and then back to <code><span class="identifier">error_code</span></code>, the original is now restored, if possible. </div> </li> <li> <div> Reworked the conversion from <code><span class="identifier">error_category</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_category</span></code> to avoid the one-time allocation that shows up on leak checkers. </div> </li> <li> <div> Added a constructor that allows replacing the source location of an <code><span class="identifier">error_code</span></code>, and a corresponding <code><span class="identifier">assign</span></code>. </div> </li> <li> <div> Added a converting constructor to <code><span class="identifier">result</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> Major update: <ul> <li> <div> <a href="https://www.boost.org/libs/unordered/doc/html/unordered.html#buckets_fast_closed_addressing_implementation">Refactor</a> internal implementation to be dramatically faster </div> </li> <li> <div> Allow <code><span class="identifier">final</span></code> <code><span class="identifier">Hasher</span></code> and <code><span class="identifier">KeyEqual</span></code> objects </div> </li> <li> <div> Update documentation, adding benchmark graphs and notes on the new internal data structures </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> In <code><span class="identifier">string_view</span></code>/<code><span class="identifier">string_ref</span></code>, fixed <code><span class="identifier">max_size</span></code> returning incorrect value. (<a href="https://github.com/boostorg/utility/issues/91">#91</a>) </div> </li> <li> <div> Removed <code><span class="keyword">noexcept</span></code> specifier from <code><span class="identifier">string_view</span><span class="special">::</span><span class="identifier">compare</span></code> as it may throw on some input arguments. (<a href="https://github.com/boostorg/utility/issues/94">#94</a>) </div> </li> <li> <div> In <code><span class="identifier">string_view</span></code>/<code><span class="identifier">string_ref</span></code>, added support for calling <code><span class="identifier">substr</span></code> with no arguments. (<a href="https://github.com/boostorg/utility/issues/96">#96</a>) </div> </li> <li> <div> Added <code><span class="identifier">string_view</span><span class="special">::</span><span class="identifier">contains</span></code> methods that were introduced in C++23. (<a href="https://github.com/boostorg/utility/issues/93">#93</a>) </div> </li> <li> <div> In <code><span class="identifier">string_view</span></code>, added asserts in <code><span class="identifier">remove_prefix</span></code>/<code><span class="identifier">remove_suffix</span></code> methods to enforce the precondition that the prefix/suffix length does not exceed the string view size. The previous (undocumented) behavior of silently clamping the prefix/suffix length is deprecated and will be removed in a future release. (<a href="https://github.com/boostorg/utility/issues/92">#92</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/wave/issues/24">#24</a>: Line numbers wrong after conditional section </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/160">#160</a>: one test fails with error C2660 and error C2440 under msvc /permissive- mode </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/161">#161</a>: BOOST_WAVE_THROW_NAME_CTX does not result in a context callback and always throws </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/162">#162</a>: When Boost headers are included in the preprocessed translation unit, Wave fails in boost/integer.hpp(99) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_80_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_9_2">B2 version 4.9.2</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_80_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0 </div> </li> <li> <div> GCC: 4.6.3, 11, 12 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11, 12 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_80_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.79.0https://www.boost.org/users/history/version_1_79_0.htmlhttps://www.boost.org/users/history/version_1_79_0.htmlWed, 13 Apr 2022 14:22:59 +0000 <div id="version_1_79_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. </p> <ul> <li> <div> Boost.JSON <code><span class="identifier">array</span><span class="special">::</span><span class="identifier">erase</span></code> can segfault, see <a href="https://github.com/boostorg/json/issues/692">#692</a>. <a href="https://www.boost.org/patches/1_79_0/0001-json-array-erase-relocate.patch">Patch</a>. </div> </li> </ul> </div> <div id="version_1_79_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> No new libraries. </div> </li> </ul> </div> <div id="version_1_79_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added <code><span class="identifier">bind_allocator</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">sync_all_on_write</span></code> flag. </div> </li> <li> <div> Added missing implementation of <code><span class="identifier">basic_file</span><span class="special">::</span><span class="identifier">release</span><span class="special">()</span></code>. </div> </li> <li> <div> Added per-operation cancellation support to signal sets. </div> </li> <li> <div> Exposed <code><span class="identifier">recycling_allocator</span></code> as part of the public interface. </div> </li> <li> <div> Added the <code><span class="identifier">nodiscard</span></code> attribute to a number of functions. </div> </li> <li> <div> Added OpenSSL 3.0 compatibility. </div> </li> <li> <div> Added support for adopting an existing <code><span class="identifier">SSL</span><span class="special">*</span></code> into an <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Enabled <code><span class="identifier">executor_work_guard</span><span class="special">&lt;&gt;</span></code> in all build configurations. </div> </li> <li> <div> Enabled movable socket iostreams when using clang. </div> </li> <li> <div> Fixed <code><span class="identifier">bind_cancellation_slot</span></code> and <code><span class="identifier">bind_executor</span></code> compatibility with legacy completion tokens. </div> </li> <li> <div> Fixed <code><span class="identifier">associator</span></code> specialisations for <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">append</span></code> and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">prepend</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">associated_allocator</span></code> primary template. </div> </li> <li> <div> Fixed <tt>io_uring</tt> implementations of <code><span class="identifier">async_receive_from</span></code> for sockets and <code><span class="identifier">write_some_at</span></code> for files. </div> </li> <li> <div> Fixed <tt>io_uring</tt> feature detection. </div> </li> <li> <div> Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>'s per-operation cancellation. </div> </li> <li> <div> Fixed memory management in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>'s type-erased completion handlers. </div> </li> <li> <div> Fixed move <code><span class="keyword">operator</span><span class="special">=</span></code> implementation for <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">any_io_executor</span></code> implementation to work when both <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code> and <code><span class="identifier">BOOST_ASIO_SEPARATE_COMPILATION</span></code> are defined. </div> </li> <li> <div> Fixed implementation of <code><span class="identifier">basic_socket</span><span class="special">::</span><span class="identifier">at_mark</span><span class="special">()</span></code> when using the <code><span class="identifier">sockatmark</span><span class="special">()</span></code> system call. </div> </li> <li> <div> Changed the recycling allocator to use the default alignment as the minimum alignment for allocations. </div> </li> <li> <div> Added a workaround for apparent coroutine codegen bug with Apple's clang. </div> </li> <li> <div> On Windows, changed the file support to open files using the same sharing mode as <code><span class="identifier">fopen</span><span class="special">()</span></code>. </div> </li> <li> <div> On Linux, fixed UNIX domain sockets implementation to correctly handle <code><span class="identifier">EAGAIN</span></code>. </div> </li> <li> <div> Fixed implementation of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_channel</span><span class="special">::</span><span class="identifier">reset</span><span class="special">()</span></code> and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_concurrent_channel</span><span class="special">::</span><span class="identifier">reset</span><span class="special">()</span></code>. </div> </li> <li> <div> Fixed potential undefined behaviour in the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. </div> </li> <li> <div> Changed the <code><span class="identifier">co_spawn</span></code> implementation to dispatch cancellation signals through the executor in some circumstances. </div> </li> <li> <div> Fixed various header inclusion issues. </div> </li> <li> <div> Fixed various warnings. </div> </li> <li> <div> A number of documentation enhancements, including: <ul> <li> <div> Added an overview of Asio's asynchronous model. </div> </li> <li> <div> Reworked reference and requirements documentation in terms of asynchronous model. </div> </li> <li> <div> Updated documentation for <code><span class="identifier">dispatch</span><span class="special">()</span></code>, <code><span class="identifier">post</span><span class="special">()</span></code>, and <code><span class="identifier">defer</span><span class="special">()</span></code>. </div> </li> <li> <div> Documented per-operation cancellation for serial ports. </div> </li> <li> <div> Clarified the non-concurrency guarantees made for allocators. </div> </li> <li> <div> Reverted the <code><span class="identifier">io_context</span></code> reference documentation to use <code><span class="identifier">executor_work_guard</span></code>. </div> </li> <li> <div> Added more detailed reference documentation to <code><span class="identifier">make_strand</span><span class="special">()</span></code>, <code><span class="identifier">make_work_guard</span><span class="special">()</span></code>, <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v4</span></code>, <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v6</span></code>, <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_channel</span></code>, and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_concurrent_channel</span></code>. </div> </li> <li> <div> Re-arranged and extended the Overview documentation to cover recently added features. </div> </li> </ul> </div> </li> <li> <div> Added a C++11 example showing file descriptor passing over local sockets. </div> </li> <li> <div> Added C++14 examples of wrapping callback-based APIs in asynchronous operations. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_79_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> <ul> <li> <div> <code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">file_name</span><span class="special">()</span></code> and <code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">function_name</span><span class="special">()</span></code> now return <code><span class="string">""</span></code> instead of <code><span class="string">"(unknown)"</span></code>. </div> </li> <li> <div> Added a <code><span class="identifier">source_location</span></code> constructor from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span></code>. </div> </li> <li> <div> Changed <code><span class="identifier">BOOST_CURRENT_LOCATION</span></code> to more closely match the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">current</span><span class="special">()</span></code>, such as being usable at top level or as a default function argument. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Fixed compilation for Universal Windows Platform (UWP). (<a href="https://github.com/boostorg/atomic/issues/54">#54</a>) </div> </li> <li> <div> Added <code><span class="identifier">BOOST_ATOMIC_NO_DARWIN_ULOCK</span></code> configuration macro. The macro affects compilation on Darwin systems and disables <code><span class="identifier">ulock</span></code>-based implementation of waiting and notifying operations. This may be useful to comply with Apple App Store requirements. (<a href="https://github.com/boostorg/atomic/issues/55">#55</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> Added missing include for file_body test. </div> </li> <li> <div> Fixed WebSocket handshake response on failure. </div> </li> <li> <div> Fixed open append mode for <code><span class="identifier">file_posix</span></code> and <code><span class="identifier">file_win32</span></code>. </div> </li> <li> <div> Fixed file open with append/append_existing flag on Windows </div> </li> <li> <div> Fixed clang-cl UTF8 path handling for <code><span class="identifier">file_win32</span></code> and <code><span class="identifier">file_stdio</span></code>. </div> </li> <li> <div> Added ARM64 builds to drone CI. </div> </li> <li> <div> Fixed async_base documentation link. </div> </li> <li> <div> Added tests for file open in append/append_existing mode. </div> </li> <li> <div> Updated CI to include gcc 11, clang 12, msvc 14.3. </div> </li> <li> <div> Added individual tests to CMake workflow. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Made <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pointer_traits</span></code> SFINAE friendly, addressing LWG3545. (Glen Fernandes) </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> that uses the individual allocator access traits. This implementation supports C++03 and above. (Glen Fernandes) </div> </li> <li> <div> Updated the allocator access traits to support most of the C++11 allocator model in C++03. (Glen Fernandes) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> is deprecated and will be removed in a future release. The header defines <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code> template, which is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> in <code><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code> header. However, since <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> is itself deprecated in C++17, users are advised to remove <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code> or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> use from their code. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">verbose_terminate_handler</span></code>, a utility function intended to be passed to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">set_terminate</span></code> that prints information about the uncaught exception to <code><span class="identifier">stderr</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span> <ul> <li> <div> Enabled unions in <code><span class="identifier">BOOST_DESCRIBE_STRUCT</span></code> and updated examples to check <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_union</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Added example of defining a <code><span class="identifier">fmtlib</span></code> class formatter. </div> </li> <li> <div> Added example of defining a <code><span class="identifier">fmtlib</span></code> enum formatter. </div> </li> <li> <div> Added example of printing pointers to members. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <strong>v3:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_extension</span></code> now works in terms of <strong>v3</strong> definition of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> rather than <strong>v4</strong>. </div> </li> <li> <div> Fixed compilation of path appending and concatenation operators with arguments of types convertible to <code><span class="identifier">path</span></code> or compatible string type. (<a href="https://github.com/boostorg/filesystem/issues/223">#223</a>) </div> </li> <li> <div> On POSIX systems that support <code><span class="identifier">fdopendir</span></code> and <code><span class="identifier">O_NOFOLLOW</span></code> and on Windows, <code><span class="identifier">remove_all</span></code> is now protected against <a href="https://www.cve.org/CVERecord?id=CVE-2022-21658">CVE-2022-21658</a>. The vulnerability is a race condition that allows a third party process to replace a directory that is being concurrently processed by <code><span class="identifier">remove_all</span></code> with a directory symlink and cause <code><span class="identifier">remove_all</span></code> to follow the symlink and remove files in the linked directory instead of removing the symlink itself. (<a href="https://github.com/boostorg/filesystem/issues/224">#224</a>) </div> </li> <li> <div> On Windows, in <code><span class="identifier">remove</span></code> and <code><span class="identifier">remove_all</span></code> implementation, use POSIX semantics for file removal, when supported by the OS (Windows 10 1709 and later). When POSIX semantics is supported, the file name is removed from the filesystem namespace as soon as the file is marked for deletion, even if it is still open and in use. With legacy Windows semantics, the file name remains present in the the filesystem namespace until the last file handle to the file is closed, which allows the file marked for deletion to be opened and prevents creating new files with the same name. (<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>) </div> </li> <li> <div> On Windows, <code><span class="identifier">remove</span></code> and <code><span class="identifier">remove_all</span></code> now support deleting read-only directories. Support for removing read-only non-directory files was added previously. </div> </li> <li> <div> On Windows, <code><span class="identifier">directory_iterator</span></code> internal implementation has been reworked to better utilize modern Windows APIs, which may improve performance while handling symlinks. </div> </li> <li> <div> On Windows, initialize internal WinAPI function pointers early, if possible, to allow Boost.Filesystem operations to be invoked in global constructors. This is only supported on MSVC, GCC, Clang and compatible compilers. </div> </li> <li> <div> On Windows, <code><span class="identifier">resize_file</span></code> should no longer fail with an error if the file to be resized is opened. </div> </li> <li> <div> Disabled use of the <code><span class="identifier">statx</span></code> syscall on Android prior to 11.0 (API version 30). The syscall is blacklisted by seccomp and causes process termination in runtime. (<a href="https://github.com/boostorg/filesystem/issues/229">#229</a>) </div> </li> <li> <div> <strong>Deprecated:</strong> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">string_file</span><span class="special">.</span><span class="identifier">hpp</span></code> header is deprecated and will be removed in a future release. The header is no longer included by <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span></code> by default. Users are advised to implement the functionality themselves or migrate to other implementations. </div> </li> <li> <div> <strong>Deprecated:</strong> Windows CE support is deprecated and will be removed in a future release. Windows CE has been untested for many years and is likely non-functional. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Major change <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/977">PR#977</a> Rescaling is turned off by default. This avoids many related bugs in set operations and buffer. </div> </li> </ul> </div> </li> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/923">PR#923</a> Added algorithm closest_points for cartesian point/geometry. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/939">PR#939</a> Added algorithm closest_points for other coordinate systems and geometry combinations excl. boxes. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/961">PR#961</a> Added Web Mercator projection. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/966">PR#966</a> More efficient cartesian distance strategy used in simplify. </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/956">#956</a> Result of simplify algorithm with incorrect closure. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/962">#962</a> Runtime error in R-tree deserialization due to load factor. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/971">#971</a> R-tree insertion time impacted by use of long double on ARM platforms. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/936">PR#936</a> Envelope of polygon containing pole. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/948">PR#948</a> Spherical and geographic envelope for near meridian segments. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/974">PR#974</a> Spheroidal normalization utilities for NaN coordinates. </div> </li> <li> <div> Various fixes in set operations and buffer. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span> <ul> <li> <div> Optimized <code><span class="identifier">integer_log2</span></code> implementation to use bit operations internally. This allows to employ bit instructions available on most modern CPUs. (<a href="https://github.com/boostorg/integer/issues/31">#31</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/io/">IO</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">basic_nullbuf</span></code>, a null stream buffer, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_onullstream</span></code>, a null output stream (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> In <code><span class="identifier">counting_iterator</span></code>, added support for built-in 128-bit integer types supported by gcc and clang and compatible compilers on some target platforms. </div> </li> <li> <div> Silenced gcc warnings about deprecated implicit copy assignment operator in <code><span class="identifier">counting_iterator</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> Standalone mode of the library is removed. Users who wish to continue using standalone JSON can switch to <a href="https://github.com/CPPAlliance/standalone-json.git">the C++ Alliance fork</a>. </div> </li> <li> <div> Add <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> overloads. </div> </li> <li> <div> Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> to <code><span class="identifier">error_codes</span></code>. </div> </li> <li> <div> Add support for JSON Pointer. </div> </li> <li> <div> Naturally grow string during serialization. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span> <ul> <li> <div> Support for FreeRTOS and other embedded platforms </div> </li> <li> <div> Improved diagnostic information </div> </li> <li> <div> Improved configuration macros </div> </li> <li> <div> BOOST_LEAF_CHECK using statement expressions under __GNUC__ </div> </li> <li> <div> Fixed symbol demangling bug </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> In <code><span class="identifier">text_file_backend</span></code>, added support for appending to a previously written log file, when file rotation is used and log file names use file counters. </div> </li> <li> <div> <strong>Breaking change:</strong> The <code><span class="identifier">file_collector</span></code> interface has changed: <ul> <li> <div> <code><span class="identifier">scan_for_files</span></code> method returns a <code><span class="identifier">scan_result</span></code> structure that contains information collected during the scan; </div> </li> <li> <div> <code><span class="identifier">is_in_storage</span></code> method added for testing if a path refers to a file within the target storage directory. </div> </li> </ul> </div> </li> <li> <div> Added a new <code><span class="identifier">invoke_manip</span></code> stream manipulator that can be used for injecting user's function into a stream output expression. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed file counter being set to zero if the user calls <code><span class="identifier">text_file_backend</span><span class="special">::</span><span class="identifier">scan_for_files</span></code> multiple times, and the second and the following calls don't find any new files. (<a href="https://github.com/boostorg/log/issues/179">#179</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Improved the efficiency of <code><span class="identifier">count</span></code> operations in ranked indices from <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">count</span><span class="special">)</span></code> to <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">))</span></code>. Contributed by Damian Sawicki. </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Fix compilation issues on some platforms (e.g. GCC 11 on MinGW-w64 and Cygwin) </div> </li> <li> <div> Fix missing include when using <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code> and <code><span class="identifier">WIN32_LEAN_AND_MEAN</span></code> </div> </li> <li> <div> Add sanity check when using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat</span></code> with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat_t</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Fixed <a href="https://github.com/boostorg/optional/issues/98">issue #98</a>. </div> </li> <li> <div> Fixed <a href="https://github.com/boostorg/optional/issues/92">issue #92</a>. </div> </li> <li> <div> Added support for <code><span class="identifier">BOOST_NO_IOSTREAM</span></code>. </div> </li> <li> <div> Now aligned storage uses <code><span class="keyword">unsigned</span> <span class="keyword">char</span></code> rather than <code><span class="keyword">char</span></code> to avoid UB. </div> </li> <li> <div> Now using cv-unqualified <code><span class="identifier">value_type</span></code> with placement <code><span class="keyword">new</span></code> to avoid UB. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Version 1.14.0 </div> </li> <li> <div> Add detection of LoongArch (from Zhang Na). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/qvm/">QVM</a>:</span> <ul> <li> <div> Added constexpr under C++17 </div> </li> <li> <div> Improved single header distribution </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_allocator_pointer</span></code> to obtain the Allocator pointer from the result of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocate_unique</span></code> (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> Added a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> parameter to <code><span class="identifier">throw_exception_from_error</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">throw_exception_from_error</span></code> overloads for <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">errc_t</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">errc</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>. </div> </li> <li> <div> <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code> now automatically supplies <code><span class="identifier">BOOST_CURRENT_LOCATION</span></code> to <code><span class="identifier">throw_exception_from_error</span></code> via a default argument. </div> </li> <li> <div> Added an <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">make_error_code</span></code> overload taking a source location. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/throw_exception/">ThrowException</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_with_location</span></code>, a more lightweight alternative of <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code> for programs that do not use Boost.Exception. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> All containers have been updated to support heterogeneous <code><span class="identifier">count</span></code>, <code><span class="identifier">equal_range</span></code> and <code><span class="identifier">find</span></code>. </div> </li> <li> <div> All containers now implement the member function <code><span class="identifier">contains</span></code>. </div> </li> <li> <div> <code><span class="identifier">erase_if</span></code> has been implemented for all containers. </div> </li> <li> <div> All containers have been updated to support heterogeneous <code><span class="identifier">erase</span></code> and <code><span class="identifier">extract</span></code>. </div> </li> <li> <div> Changed behavior of <code><span class="identifier">reserve</span></code> to eagerly allocate. </div> </li> <li> <div> Various warning fixes in the test suite. </div> </li> <li> <div> Update code to internally use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code>. </div> </li> <li> <div> Switch to Fibonacci hashing. </div> </li> <li> <div> Update documentation to be written in AsciiDoc instead of QuickBook. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Added <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> for <code><span class="identifier">monostate</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> C++11 now required for building Wave itself </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/wave/issues/135">#135</a>: Comma operators in array subscripts are deprecated in C++20 </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/137">#137</a>: Simple unknown directive =&gt; found_unknown_directive is not called, stripped of pound. </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/138">#138</a>: Empty ifdef block does not emit line directive for missing whitespace </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/143">#143</a>: Parsing __has_include() fails with trailing tokens </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/145">#145</a>: Sanitizer complains about reset_version() </div> </li> <li> <div> <a href="https://github.com/boostorg/wave/issues/147">#147</a>: bitwise operations between different enumeration types are deprecated </div> </li> </ul> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_79_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_8_2">B2 version 4.8.2</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_79_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.5, 3.6, 3.7, 3.8, 3.9, 12.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0 </div> </li> <li> <div> GCC: 4.6.3, 11 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_79_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.78.0https://www.boost.org/users/history/version_1_78_0.htmlhttps://www.boost.org/users/history/version_1_78_0.htmlWed, 08 Dec 2021 03:45:49 +0000 <div id="version_1_78_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. </p> <ul> <li> <div> Boost.Build silently skips installation of library headers and binaries in some cases, see <a href="https://github.com/bfgroup/b2/issues/104">#104</a>. <ul> <li> <div> Fixed in <a href="https://github.com/bfgroup/b2/pull/113">PR#113</a>, <a href="https://www.boost.org/patches/1_78_0/0001-b2-fix-install.patch">patch</a>. </div> </li> </ul> </div> </li> <li> <div> Boost.Atomic fails to build when targeting UWP, see <a href="https://github.com/boostorg/atomic/issues/54">#54</a>. <a href="https://www.boost.org/patches/1_78_0/0002-atomic-fix-uwp-build.patch">Patch</a>. </div> </li> </ul> </div> <div id="version_1_78_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> No new libraries. </div> </li> </ul> </div> <div id="version_1_78_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added an io_uring backend that may optionally be used for all I/O objects, including sockets, timers, and posix descriptors. </div> </li> <li> <div> Added support for files, with new new classes for stream-oriented and random-access files. This feature currently supports I/O completion ports on Windows, and io_uring on Linux. </div> </li> <li> <div> Added support for portable pipes on POSIX and Windows (when I/O completion ports are available). </div> </li> <li> <div> Added support for registered buffers, which are optimised when using the io_uring backend. </div> </li> <li> <div> Added experimental support for channels, that may be used to send and queue completions as messages. </div> </li> <li> <div> Implemented improvements to <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>. </div> </li> <li> <div> Disabled <code><span class="identifier">aligned_alloc</span></code> on <tt>clang</tt> when using an MSVC runtime. </div> </li> <li> <div> Changed to use a faster implementation for <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">network_v4</span><span class="special">::</span><span class="identifier">canonical</span><span class="special">()</span></code>. </div> </li> <li> <div> Added template specialisations for common uses to improve compile time. </div> </li> <li> <div> Reduced the size of <code><span class="identifier">io_context</span></code> executors to a single pointer. </div> </li> <li> <div> Increased the small object buffer size for <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span></code> and <code><span class="identifier">any_io_executor</span></code>. </div> </li> <li> <div> Fixed multi-signature handling when variadic templates are disabled. </div> </li> <li> <div> Fixed compatibility with new versions of <tt>gcc</tt> and <tt>clang</tt>. </div> </li> <li> <div> Fixed compilation on Solaris. </div> </li> <li> <div> Fixed defence against Qt-defined macros when building with MSVC. </div> </li> <li> <div> Improved error messages emitted by <code><span class="identifier">ssl</span></code> facilities. </div> </li> <li> <div> Fixed <code><span class="identifier">bind_executor</span></code> compatibility with completion tokens. </div> </li> <li> <div> Fixed build errors when <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code> is defined. </div> </li> <li> <div> Added missing move assignment operator to <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Fixed an access violation when using coroutines with MSVC, due to incorrect alignment of allocated memory. </div> </li> <li> <div> Fixed a cleanup issue in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> that occured when the execution context was shut down with parallel operations still pending. </div> </li> <li> <div> Added clarifications to the documentation on concurrency hints. </div> </li> <li> <div> Added documentation on error handling techniques for C++20 coroutines. </div> </li> <li> <div> Fixed various warnings. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_78_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> <ul> <li> <div> Added <code><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">to_string</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Use process-local futex operations on Android for non-IPC waiting and notifying operations. </div> </li> <li> <div> Added support for Linux targets that only define <code><span class="identifier">SYS_futex_time64</span></code> syscall, such as riscv32. </div> </li> <li> <div> Added a workaround for incorrect result of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">alignment_of</span></code> on clang 8 for 64-bit types on 32-bit x86 targets. </div> </li> <li> <div> Added a ulock backend for waiting and notifying operations on Darwin systems since Mac OS 10.12, iOS 10.0, tvOS 10.0 or watchOS 3.0. </div> </li> <li> <div> On Windows, corrected discrepancy between <tt><em>atomic-type</em>::always_has_native_wait_notify</tt> and the corresponding capability macros when targeting Windows 8 or later. The library will now directly use <code><span class="identifier">WaitOnAddress</span></code> and related APIs from public headers and therefore require user to link with <code><span class="identifier">synchronization</span><span class="special">.</span><span class="identifier">lib</span></code> if the user requires Windows 8 or later by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>, <code><span class="identifier">_WIN32_WINNT</span></code> or similar macros. The library is linked automatically on compilers that support auto-linking (e.g. MSVC). </div> </li> <li> <div> Added support for types with padding bits, except unions, on compilers that provide a way to clear the padding bits. This feature is supported by gcc 11 and MSVC 14.2 (compiler version 19.27) and newer, as well as other compilers supporting similar intrinsics. On compilers that don't allow to clear the padding bits, types with padding are still generally not supported with the exception of 80-bit <code><span class="keyword">long</span> <span class="keyword">double</span></code> on x86 targets. A new <code><span class="identifier">BOOST_ATOMIC_NO_CLEAR_PADDING</span></code> capability macro is defined to indicate when clearing the padding is not supported. </div> </li> <li> <div> Initializing constructors of <code><span class="identifier">atomic_ref</span></code> and <code><span class="identifier">ipc_atomic_ref</span></code> no longer use atomic instructions to clear the padding bits in the referenced object. This reduces the cost of the atomic reference construction. </div> </li> <li> <div> Initializing constructors of <code><span class="identifier">atomic</span></code> and <code><span class="identifier">ipc_atomic</span></code> are now <code><span class="keyword">constexpr</span></code> for enums, classes and floating point types. For classes and floating point types, the constructors are <code><span class="keyword">constexpr</span></code> if the compiler supports <code><span class="keyword">constexpr</span></code> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bit_cast</span></code>, the type has no padding bytes and no padding is required to implement native atomic operations. </div> </li> <li> <div> In accordance with C++20, default constructors of <code><span class="identifier">atomic</span></code> and <code><span class="identifier">ipc_atomic</span></code> now perform value initialization of the contained object. For types without a user-defined default constructor, this means the default-constructed atomic will be zero-initialized. </div> </li> <li> <div> Added a workaround for compilation error on AIX caused by the assembler tool not supporting numeric labels. (<a href="https://github.com/boostorg/atomic/pull/50">PR#50</a>) </div> </li> <li> <div> Added a workaround for compilation error with Visual Studio 2015 prior to Update 3. (<a href="https://github.com/boostorg/atomic/issues/52">#52</a>) </div> </li> <li> <div> See <a href="https://www.boost.org/doc/html/atomic/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This maintenance update brings minor bug fixes and updated CI reporting. </div> </li> <li> <div> Fixed security vulnerability CVE-2016-9840 in zlib implementation. </div> </li> <li> <div> Fixed WebSocket permessage_deflate implementation. This should result in an increase in compression performance when using Beast WebSockets. </div> </li> <li> <div> Removed the test stream and test framework's dependency on RTTI. You can now use our handy test stream to check your embedded asynchronous communications code! </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Added a generic implementation to <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, enabled when <code><span class="identifier">BOOST_CORE_USE_GENERIC_CMATH</span></code> is defined or when the platform does not provide the necessary facilities in <code><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">type_name</span></code>, a utility function that returns the name of a type as a string. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code>, a C++11 implementation of C++20's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span> <ul> <li> <div> Added <code><span class="identifier">has_describe_enumerators</span></code>, <code><span class="identifier">has_describe_bases</span></code>, <code><span class="identifier">has_describe_members</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">enum_to_string</span></code>, <code><span class="identifier">enum_from_string</span></code>. </div> </li> <li> <div> Added relational and stream insertion operators. </div> </li> <li> <div> Added <code><span class="identifier">descriptor_by_name</span></code>, <code><span class="identifier">descriptor_by_pointer</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fixed missing #include, thanks to Denis Blank (<a href="https://github.com/boostorg/dll/pull/54">PR#54</a>) </div> </li> <li> <div> Dropped TravisCI in favor of GithubAction CI </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">filename</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">iterator</span></code> no longer return an implicit trailing dot (".") element if the path ends with a directory separator. Instead, an empty path is returned, similar to C++17 std::filesystem. This also affects other methods that are defined in terms of iterators or filename, such as <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">compare</span></code> or <code><span class="identifier">lexicographical_compare</span></code>. For example, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/"</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/."</span><span class="special">)</span></code> no longer holds true. (<a href="https://github.com/boostorg/filesystem/issues/193">#193</a>) </div> </li> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> no longer produce a trailing dot (".") element and omits a directory separator after a trailing dot-dot ("..") element in the normalized paths. </div> </li> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span></code> append operations now consider root name and root directory in the appended path. If the appended path is absolute, or root name is present and differs from the source path, the resulting path is equivalent to the appended path. If root directory is present, the result is the root directory and relative path rebased on top of the root name of the source path. Otherwise, the behavior is similar to v3. (<a href="https://github.com/boostorg/filesystem/issues/214">#214</a>) </div> </li> <li> <div> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> now converts directory separators to preferred separators in the root name of the normalized paths. </div> </li> <li> <div> Optimized overloads of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">assign</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">append</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">concat</span></code> and the corresponding operators to avoid unnecessary path copying and reduce the amount of code redundancy. </div> </li> <li> <div> On POSIX systems, fixed <code><span class="identifier">absolute</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">base</span><span class="special">)</span></code> returning a path with root name <code><span class="identifier">base</span><span class="special">.</span><span class="identifier">root_name</span><span class="special">()</span></code> if <code><span class="identifier">p</span></code> starts with a root directory. In such a case <code><span class="identifier">p</span></code> is already an absolute path and should be returned as is. </div> </li> <li> <div> <code><span class="identifier">create_directories</span></code> no longer reports an error if the input path consists entirely of dot (".") and dot-dot ("..") elements. The implementation is no longer using recursion internally and therefore is better protected from stack overflow on extremely long paths. </div> </li> <li> <div> On Windows, <code><span class="identifier">remove</span></code> now supports deleting read-only files. The operation will attempt to reset the read-only attribute prior to removal. Note that this introduces a possibility of the read-only attribute being left unset, if the operation fails and the original value of the attribute fails to be restored. This also affects <code><span class="identifier">remove_all</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>) </div> </li> <li> <div> <code><span class="identifier">remove_all</span></code> now returns <code><span class="keyword">static_cast</span><span class="special">&lt;</span> <span class="identifier">uintmax_t</span> <span class="special">&gt;(-</span><span class="number">1</span><span class="special">)</span></code> in case of error, similar to C++17 std::filesystem. </div> </li> <li> <div> Fixed a linking error about unresolved references to Boost.ContainerHash functions when user's code includes <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path</span><span class="special">.</span><span class="identifier">hpp</span></code> but not <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container_hash</span><span class="special">/</span><span class="identifier">hash</span><span class="special">.</span><span class="identifier">hpp</span></code> and the compiler is set to preserve unused inline functions. (<a href="https://github.com/boostorg/filesystem/issues/215">#215</a>) </div> </li> <li> <div> Added a workaround for MSVC and compatible compilers eliminating path globals cleanup in release builds. This could lead to a memory leak if Boost.Filesystem shared library was repeatedly loaded and unloaded in the process. (<a href="https://github.com/boostorg/filesystem/issues/217">#217</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/894">PR#894</a> Optimization and refactoring of rtree queries. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/913">PR#913</a> DynamicGeometry and GeometryCollection support in various algorithms (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/922">PR#922</a> DynamicGeometry and GeometryCollection support in distance (undocumented for now). </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/867">#867</a> Poor performance of rtree query iterator with nearest predicate for big k. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/870">#870</a> Compilation error in boost::geometry::self_turns. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/896">#896</a> Assertion failure in get_turns with BOOST_GEOMETRY_NO_ROBUSTNESS. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/906">PR#906</a> Invalid result of buffer on macos-11 with clang-12. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/921">PR#921</a> Compilation errors with c++20 (various compilers) and gcc-5. </div> </li> <li> <div> Various fixes in set operations and buffer. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> Standalone mode of the library is deprecated. </div> </li> <li> <div> Allow external libraries to forward declare <code><span class="identifier">value_to</span></code> and <code><span class="identifier">value_from</span></code>. </div> </li> <li> <div> Fixed signed integer overflow in number parsing. </div> </li> <li> <div> Add support for <code><span class="special">/</span><span class="identifier">Zc</span><span class="special">:</span><span class="identifier">implicitNoexcept</span><span class="special">-</span></code> on MSVC. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lambda2/">Lambda2</a>:</span> <ul> <li> <div> Added special cases in <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> and <code><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> when the first argument is a stream, to allow <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">_1</span></code>. </div> </li> <li> <div> Added <code><span class="keyword">operator</span><span class="special">-&gt;*</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">first</span></code>, <code><span class="identifier">second</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> Updated detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span></code> specializations for <code><span class="keyword">char16_t</span></code> and <code><span class="keyword">char32_t</span></code> for compatibility with C++17 and later. (<a href="https://github.com/boostorg/log/pull/159">PR#159</a>) </div> </li> <li> <div> Added support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byte</span></code> type to receive methods of the inter-process message queue. </div> </li> <li> <div> On Windows, when building the library for Windows 8 or later, the library will use <code><span class="identifier">nt62</span></code> tag in the version namespace to denote the target OS ABI. For example, the version namespace could be named as <code><span class="identifier">v2_mt_nt62</span></code>. This name will be part of all symbols exported by the library. Use the <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code> macro consistenly when building Boost and your code to request the minimum target Windows version. </div> </li> <li> <div> Improved performance of SSSE3 and AVX2 implementations of the <code><span class="identifier">dump</span></code> stream manipulator. </div> </li> <li> <div> Added support for CMake build system. Only library build is supported at this moment, Boost.Build is still used for running tests. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed a race condition on POSIX systems in <code><span class="identifier">reliable_message_queue</span><span class="special">::</span><span class="identifier">open_or_create</span></code> or the equivalent constructor. Multiple threads or processes calling <code><span class="identifier">open_or_create</span></code> concurrently with sending or receiving messages from the same queue could end up corrupting the queue contents and potentially crashing the process. (<a href="https://github.com/boostorg/log/issues/162">#162</a>) </div> </li> <li> <div> Added a workaround for <code><span class="identifier">b2</span> <span class="identifier">install</span></code> failing on Windows because of missing <code><span class="identifier">boost_log_setup</span></code> library if <code><span class="identifier">BOOST_LOG_WITHOUT_SETTINGS_PARSERS</span></code> is defined. (<a href="https://github.com/boostorg/log/issues/164">#164</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Add support for cubic roots. </div> </li> <li> <div> Add support for <code><span class="keyword">constexpr</span></code> versions of various standard library math routines. </div> </li> <li> <div> Add support for Bezier polynomials. </div> </li> <li> <div> Improve worst-case tanh-sinh integration performance. </div> </li> <li> <div> Disable inadvertant use of integral types in integration routines. </div> </li> <li> <div> Minor update for erf approximations when the result is with 2ulp of 1. </div> </li> <li> <div> Allow Bernoulli code to be used on platforms with no atomic integers. </div> </li> <li> <div> Improve the mode of the non-central Chi Squared distribution. </div> </li> <li> <div> Improve certain edge cases for &lt;cstdfloat&gt; complex-valued elementary functions, see <a href="https://github.com/boostorg/math/issues/507">#507</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Added <code><span class="identifier">contains</span></code> to key-based indices (issue <a href="https://github.com/boostorg/multi_index/issues/35">#35</a>). </div> </li> <li> <div> Added <code><span class="identifier">merge</span></code> operations to key-based indices. The functionality goes beyond the standard specification for (unordered) associative containers in a number of ways, most notably: </div> <ul> <li> <div> The source index can be of any type, including non key-based indices. </div> </li> <li> <div> Partial merge is provided: for instance, <code><span class="identifier">x</span><span class="special">.</span><span class="identifier">merge</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> merges only the elements of <code><span class="identifier">y</span></code> within [<code><span class="identifier">first</span></code>,<code><span class="identifier">last</span></code>). </div> </li> </ul> </li> <li> <div> Previous versions of <code><span class="identifier">splice</span></code> for sequenced and random access indices were destructive, i.e. elements were copy-inserted into the destination and then erased from the source. Now, <code><span class="identifier">splice</span></code> is based on node transfer much as <code><span class="identifier">merge</span></code> in key-based indices, and has been similarly extended to accept source indices of any type: in fact, <code><span class="identifier">splice</span></code> can be regarded as a frontend to the same functionality provided by <code><span class="identifier">merge</span></code> in key-based indices. For reasons of backwards compatibility, the destructive behavior of <code><span class="identifier">splice</span></code> has been retained in the case that the source and destination containers have unequal allocators. </div> </li> <li> <div> The fact has been documented that index iterator types do only depend on <code><span class="identifier">node_type</span></code> and the position of the index in its <code><span class="identifier">multi_index_container</span></code>, (except for hashed indices, where uniqueness/non-uniqueness is also a dependency). This has implications on the validity of iterators to elements transferred by <code><span class="identifier">merge</span></code> or <code><span class="identifier">splice</span></code>. This property is a variant of what has been called <a href="https://wg21.link/n2980">SCARY iterators</a> in the C++ standard mailing lists. SCARYness is currently (August 2021) not mandated for standard containers. </div> </li> <li> <div> Iterator SCARYness is now also preserved in <a href="https://www.boost.org/libs/multi_index/doc/tutorial/debug.html#safe_mode">safe mode</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Rework rational_adaptor to remove dependency on Boost.Rational and improve performance. </div> </li> <li> <div> Fix issue with type_traits and clang, see <a href="https://github.com/boostorg/multiprecision/issues/383">#383</a>. </div> </li> <li> <div> Fixed buggy Lehmer's GCD routine, see <a href="https://github.com/boostorg/multiprecision/issues/370">#370</a>. </div> </li> <li> <div> Fix mpc_complex constructors so that lossy conversions are explicit, see <a href="https://github.com/boostorg/multiprecision/issues/363">#363</a>. </div> </li> <li> <div> Correct miscellaneous configuration issues (Intel intrinsic usage and Apple clang). </div> </li> <li> <div> Correct some iostream operators for unsigned char types. </div> </li> <li> <div> Correct mpq_rational conversions to integer types, see <a href="https://github.com/boostorg/multiprecision/issues/342">#342</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Breaking Change: <code><span class="identifier">do_unshift</span></code> for the UTF-32 specialization of <code><span class="identifier">utf8_codecvt</span></code> now correctly returns <code><span class="identifier">noconv</span></code> instead of <code><span class="identifier">ok</span></code> </div> </li> <li> <div> Remove unnecessary branch in <code><span class="identifier">utf8_codecvt</span></code> for UTF-16 output </div> </li> <li> <div> Suppress deprecation warnings in MSVC when using <code><span class="identifier">utf8_codecvt</span></code> with unicode char types </div> </li> <li> <div> Fix possible double-free when setting a custom buffer (<code><span class="identifier">setbuf</span></code>) after <code><span class="identifier">filebuf</span></code> already allocated an internal buffer </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> <ul> <li> <div> Added missing <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code> for inclusion of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">addressof</span></code> </div> </li> <li> <div> Fixed -Wzero-length-array warning when dealing with empty aggregates </div> </li> <li> <div> Fixed compilation on msvc compilers &lt;= 1920 (thanks to Alexey Romanov aka @alexey-romanov) </div> </li> <li> <div> Added basic CMakeLists.txt support (thanks to @pdimov aka Peter Dimov) </div> </li> <li> <div> Multiple improvements for docs, including links to https://github.com/apolukhin/pfr_non_boost </div> </li> <li> <div> Added misc/strip_boost_namespace.sh script to remove <code><span class="identifier">boost</span><span class="special">::</span></code> and <code><span class="identifier">BOOST_</span></code> prefixes </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Version 1.13.1 </div> </li> <li> <div> Fix spelling of "epoch". </div> </li> <li> <div> Add missing parenthesis in sparc.h (from tkoecker). </div> </li> <li> <div> Update documentation to use Rouge code styling and Amber general style. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> <strong>Breaking Change:</strong> Change \B to be the opposite of \b as per Perl behaviour. </div> </li> <li> <div> Change w32_regex_traits.hpp so that windows.h is no longer included. </div> </li> <li> <div> Fxed fuzzing related issues <a href="https://github.com/boostorg/regex/issues/151">#151</a>, <a href="https://github.com/boostorg/regex/issues/152">#152</a>, <a href="https://github.com/boostorg/regex/issues/153">#153</a>, <a href="https://github.com/boostorg/regex/issues/156">#156</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> Added support for source locations to <code><span class="identifier">error_code</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">to_string</span></code>, <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">to_string</span></code>, <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">what</span></code>. </div> </li> <li> <div> <code><span class="identifier">system_error</span><span class="special">::</span><span class="identifier">what</span><span class="special">()</span></code> now contains the source location, if present. </div> </li> <li> <div> Added <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span> <span class="special">=</span> <span class="identifier">error_code</span><span class="special">&gt;</span></code>, a class holding either a value or an error, defined in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">result</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Library documentation converted to QuickBook (thanks to Alan de Freitas, <a href="https://github.com/boostorg/utility/pull/79">PR#79</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Added <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">unsafe_get</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">visit_by_index</span></code>. </div> </li> <li> <div> Added <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_78_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_7_2">B2 version 4.7.2</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_78_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.5, 3.6, 3.7, 3.8, 3.9, 12.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0 </div> </li> <li> <div> GCC: 4.6.3, 11 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_78_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.77.0https://www.boost.org/users/history/version_1_77_0.htmlhttps://www.boost.org/users/history/version_1_77_0.htmlWed, 11 Aug 2021 14:25:13 +0000 <div id="version_1_77_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span> A C++14 reflection library, from Peter Dimov. Provides macros for describing enumerators and struct/class members, and primitives for querying this information. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lambda2/">Lambda2</a>:</span> A C++14, dependency-free, single header lambda library, from Peter Dimov. Allows simple function objects to be constructed via expressions such as <code><span class="identifier">_1</span> <span class="special">+</span> <span class="number">5</span></code>, <code><span class="identifier">_1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">0</span></code>, <code><span class="identifier">_1</span> <span class="special">&gt;</span> <span class="identifier">_2</span></code>, or <code><span class="identifier">_1</span> <span class="special">==</span> <span class="char">' '</span> <span class="special">||</span> <span class="identifier">_1</span> <span class="special">==</span> <span class="char">'\t'</span></code>. </div> </li> </ul> </div> <div id="version_1_77_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">anys</span><span class="special">::</span><span class="identifier">basic_any</span></code> - a data type with customizable Small Object Optimization whose instances can hold instances of any type that satisfies ValueType requirements (many thanks to Ruslan Arutyunyan @rarutyun). If you are not sure that you really need it, then use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> instead. </div> </li> <li> <div> Started using GithubActions CI for additional testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added support for cancellation of individual asynchronous operations. </div> </li> <li> <div> Added the <code><span class="identifier">associator</span></code> trait, used to generically forward associators. </div> </li> <li> <div> Changed all asynchronous operations implemented in Asio to invoke their completion handlers as rvalue references. </div> </li> <li> <div> Added support for asynchronous operations with multiple completion signatures. </div> </li> <li> <div> Added <code><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code> and <code><span class="keyword">operator</span><span class="special">||</span></code> for <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>, to allow coroutines to be trivially awaited in parallel. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_tuple</span></code> completion token adapter. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">append</span></code> completion token adapter. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">prepend</span></code> completion token adapter. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">deferred</span></code> completion token, whicih allows deferred execution of asynchronous operations. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> class and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">make_parallel_group</span></code> function. </div> </li> <li> <div> Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>, which allows eager execution and synchronisation of asynchronous operations. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code> class template, a C++20 coroutine primitive with the ability to combine both asynchronous waiting (<code><span class="identifier">co_await</span></code>) and yielding (<code><span class="identifier">co_yield</span></code>). </div> </li> <li> <div> Added move assignment to <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Changed <code><span class="identifier">co_spawn</span></code> to <code><span class="identifier">dispatch</span></code> the coroutine's initial step to the executor. </div> </li> <li> <div> Enabled additional optimisations for <code><span class="identifier">any_executor</span></code> and <code><span class="identifier">any_io_executor</span></code> when used with asynchronous operations. </div> </li> <li> <div> Added the <code><span class="identifier">nodiscard</span></code> attribute to <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Increased the number of cached slots in the default recycling allocator. </div> </li> <li> <div> Changed the default allocator behaviour to respect alignment requirements, to support over-aligned types. </div> </li> <li> <div> Ensured the result strings are always initialised in reverse name resolution. </div> </li> <li> <div> Fixed recursive template instantiation issues in <code><span class="identifier">use_awaitable_t</span><span class="special">::</span><span class="identifier">executor_with_default</span></code>. </div> </li> <li> <div> Fixed the <code><span class="identifier">any_io_executor</span></code> equality operators to correctly return a result based on the target executor. </div> </li> <li> <div> Fixed <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code> to avoid using a potentially moved-from executor. </div> </li> <li> <div> Ensured <tt>gcc</tt> tests are not used for <tt>clang</tt> when detecting compiler features. </div> </li> <li> <div> Disabled coroutines support for the <tt>clang</tt> shipped with MSVC. </div> </li> <li> <div> Fixed compatibility with recent LibreSSL when <code><span class="identifier">OPENSSL_NO_SSL_INTERN</span></code> is defined. </div> </li> <li> <div> Fixed <code><span class="identifier">posix</span><span class="special">::</span><span class="identifier">basic_stream_descriptor</span></code> move operations to work with non-defaulted executors. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_77_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Added <code><span class="identifier">make_atomic_ref</span></code> and <code><span class="identifier">make_ipc_atomic_ref</span></code> factory functions for constructing atomic reference objects. </div> </li> <li> <div> Added C++17 template argument deduction guides for <code><span class="identifier">atomic_ref</span></code> and <code><span class="identifier">ipc_atomic_ref</span></code> to allow omitting template arguments when they can be deduced from constructor arguments. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This maintenance update brings minor bug fixes and updated CI reporting. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">implicit_cast</span></code> is now <code><span class="keyword">constexpr</span></code> (<a href="https://github.com/boostorg/conversion/issues/25">#25</a>). </div> </li> <li> <div> Fixed broken links (<a href="https://github.com/boostorg/conversion/pull/23">PR#23</a>). </div> </li> <li> <div> Started using GithubActions CI for additional testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">uncaught_exceptions</span><span class="special">.</span><span class="identifier">hpp</span></code> has been modified for compatibility with Mac OS 10.4 and older. (<a href="https://github.com/boostorg/core/pull/92">PR#92</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> More runtime checks for malformed ELFs in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code> </div> </li> <li> <div> In <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code> use info from <code><span class="special">.</span><span class="identifier">dynsym</span></code> ELF section if <code><span class="special">.</span><span class="identifier">symtab</span></code> is empty or missing </div> </li> <li> <div> List protected ELF symbols in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code> as they are available for import (<a href="https://github.com/boostorg/dll/issues/50">#50</a>) </div> </li> <li> <div> Remove unneeded convert from <code><span class="keyword">wchar_t</span></code> to char on POSIX environment, thanks to Vladislav Shchapov (<a href="https://github.com/boostorg/dll/pull/49">PR#49</a>) </div> </li> <li> <div> Started using GithubAction CI for additional testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <strong>Introducing Boost.Filesystem v4.</strong> This new version of the library removes all deprecated features of v3 and also makes a number of breaking API changes intended to make Boost.Filesystem more compatible with std::filesystem introduced in C++17. The differences are described in the release notes and documentation using <strong>v3</strong> and <strong>v4</strong> tags and are also summarised in a separate section. Users can select Boost.Filesystem version by defining <code><span class="identifier">BOOST_FILESYSTEM_VERSION</span></code> macro to either 3 or 4 when compiling their code. There is no need to separately compile Boost.Filesystem for each library version - a single binary supports both v3 and v4. Users should avoid using both v3 and v4 in the same application as this can lead to subtle bugs. Currently, v3 is the default. In a future release v4 will become the default, and eventually v3 will be removed. v4 is functional, but it is still a work in progress and there may be breaking API changes in the future. </div> </li> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">filename</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> no longer consider root name or root directory of the path as a filename if the path only consists of those components. For example, on Windows <code><span class="identifier">path</span><span class="special">(</span><span class="string">"C:"</span><span class="special">).</span><span class="identifier">filename</span><span class="special">()</span></code> used to return "C:" and <code><span class="identifier">path</span><span class="special">(</span><span class="string">"C:\\"</span><span class="special">).</span><span class="identifier">filename</span><span class="special">()</span></code> used to return "\" and both will return an empty path now. (<a href="https://github.com/boostorg/filesystem/issues/88">#88</a>, <a href="https://github.com/boostorg/filesystem/issues/194">#194</a>) </div> </li> <li> <div> <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> no longer treat a filename that starts with a dot and has no other dots as an extension. Filenames starting with a dot are commonly treated as filenames with an empty extension. The leading dot is used to indicate a hidden file on most UNIX-like systems. (<a href="https://github.com/boostorg/filesystem/issues/88">#88</a>) </div> </li> <li> <div> <strong>New:</strong> Improved support for various path prefixes on Windows. Added support for local device prefix ("\\.\") and experimental support for NT path prefix ("\??\"). The prefixes will be included in the root name of a path. Note that using the prefixes with Boost.Filesystem v3 can lead to surprising results (e.g. <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\.\\"</span><span class="special">).</span><span class="identifier">stem</span><span class="special">()</span> <span class="special">==</span> <span class="string">"\\\\"</span></code>). It is recommended to use the prefixes only with Boost.Filesystem v4. </div> </li> <li> <div> Reworked <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> implementation to eliminate some cases of duplicate dot (".") elements in the normalized paths. </div> </li> <li> <div> <strong>New:</strong> Added runtime detection of the <code><span class="identifier">statx</span></code> and <code><span class="identifier">getrandom</span></code> system calls on Linux. This can be useful if the syscall is present at compile time but fails with <code><span class="identifier">ENOSYS</span></code> at run time (for example, in Docker containers that restrict the syscall, even if available on the host). (<a href="https://github.com/boostorg/filesystem/issues/172">#172</a>) </div> </li> <li> <div> <strong>New:</strong> Added support for disabling usage of various system APIs at library build time. This can be useful when a certain API is detected as present by the library configuration scripts but must not be used for some reason (for example, when runtime detection does not work on the target system). See the description of configuration macros in the library documentationfor for more details. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">synchronize_data</span></code> and <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">synchronize</span></code> options for the <code><span class="identifier">copy_file</span></code> operation. These options allow to synchronize the written data and attributes with the permanent storage. These options are expensive in terms of performance, but allow to ensure reliability of the copied data. Note that <code><span class="identifier">copy_file</span></code> performed implicit data synchronization on POSIX systems since Boost.Filesystem 1.74.0. This release adds support for more platforms and disables data synchronization by default while allowing the caller to explicitly request it. (<a href="https://github.com/boostorg/filesystem/issues/186">#186</a>) </div> </li> <li> <div> Added handling of <code><span class="identifier">EINTR</span></code> error code on POSIX systems for some system calls issued internally. In particular, <code><span class="identifier">EINTR</span></code> could have been ignored on <code><span class="identifier">close</span></code>, which on HP-UX would result in a leaked file descriptor. </div> </li> <li> <div> In the <code><span class="identifier">copy_file</span></code> implementations based on Linux <code><span class="identifier">sendfile</span></code> and <code><span class="identifier">copy_file_range</span></code> system calls, added handling of error codes indicating that a particular filesystem does not support the system call and fall back to the generic <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop. This should fix <code><span class="identifier">copy_file</span></code> failing on <a href="https://www.ecryptfs.org/">eCryptFS</a> and possibly other filesystems. (<a href="https://github.com/boostorg/filesystem/issues/184">#184</a>) </div> </li> <li> <div> The <code><span class="identifier">copy_file_range</span></code> system call is now used since Linux kernel 4.5, whereas previously it was only enabled since 5.3. The <code><span class="identifier">copy_file</span></code> implementation will fall back to <code><span class="identifier">sendfile</span></code> or <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop if <code><span class="identifier">copy_file_range</span></code> fails to copy a given file across filesystems. </div> </li> <li> <div> The <code><span class="identifier">copy_file</span></code> implementations based on Linux <code><span class="identifier">sendfile</span></code> and <code><span class="identifier">copy_file_range</span></code> system calls will not be used on filesystems that are known to contain files with generated content. These system calls are incompatible with such files, and copying them would result in zero-sized files. The generic <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop will be used instead. Currently, the blacklisted filesystems are: procfs, sysfs, tracefs and debugfs. </div> </li> <li> <div> In the <code><span class="identifier">copy_file</span></code> implementation based on <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop, increased the maximum size of the buffer used for temporary storage and take into account the target filesystem block size for more optimal performance. </div> </li> <li> <div> On Windows CE, calling <code><span class="identifier">current_path</span></code> to obtain the current path for a process will now fail with an error instead of returning successfully with a root path. This platform does not support current directory. Changing the current path was already failing similarly in previous releases of Boost.Filesystem. </div> </li> <li> <div> In <code><span class="identifier">canonical</span></code>, fixed the check for a symlink referencing a directory above root, if an earlier symlink was resolved to an absolute path with a different root from the original path. </div> </li> <li> <div> In <code><span class="identifier">canonical</span></code>, added a limit for the maximum number of symlinks that can be resolved during the call. The limit is currently at least 40 symlinks. </div> </li> <li> <div> On Windows, <code><span class="identifier">canonical</span></code> and <code><span class="identifier">weakly_canonical</span></code> will now use <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">preferred_separator</span></code> for the root directory separator in the resulting paths. This fixes "file not found" errors caused by Windows API not handling generic separators in UNC paths and paths that start with the Win32 filesystem prefix ("\\?\"). (<a href="https://github.com/boostorg/filesystem/issues/87">#87</a>, <a href="https://github.com/boostorg/filesystem/issues/187">#187</a>) </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">weakly_canonical</span></code> overloads taking <code><span class="identifier">base</span></code> path as an argument. </div> </li> <li> <div> On Windows, <code><span class="identifier">weakly_canonical</span></code> no longer fails with an error if the input path contains elements that do not exist in the filesystem but are cancelled by a subsequent dot-dot ("..") element. For example, <code><span class="identifier">weakly_canonical</span><span class="special">(</span><span class="string">"C:\\a\\.."</span><span class="special">)</span></code> would previously fail if "C:\a" directory did not exist. (<a href="https://github.com/boostorg/filesystem/issues/201">#201</a>) </div> </li> <li> <div> In <code><span class="identifier">read_symlink</span></code> on Windows, corrected reparse point handling. The operation would return an empty path for some mount points (for example, created by <a href="https://www.box.com/">Box</a> cloud storage driver) and directory junction points that had empty print names. The new implementation now parses substitute name of the reparse point and attempts to reconstruct a Win32 path from it. (<a href="https://github.com/boostorg/filesystem/issues/187">#187</a>) </div> </li> <li> <div> On Windows, file streams provided in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">fstream</span><span class="special">.</span><span class="identifier">hpp</span></code> will use wide character paths on libc++ versions 7.0 and higher, when the standard library supports opening files with wide character paths. (<a href="https://github.com/boostorg/filesystem/issues/181">#181</a>) </div> </li> <li> <div> On Windows, creating symlinks should no longer require elevated privileges, if Windows is configured in <a href="https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development">Developer mode</a>. </div> </li> <li> <div> With some compilers, global objects used internally in Boost.Filesystem are now destroyed after user's global destructors are called. This allows to call Boost.Filesystem methods during the program termination stage. In particular, this concerns the path locale that is used for character code conversion and can be installed by calling <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">imbue</span></code>. The supported compilers include MSVC, GCC and Clang, as well as other compilers that support customizing program initialization order through <code><span class="preprocessor">#pragma</span> <span class="identifier">section</span></code> (for MSVC-compatible compilers) or <code><span class="identifier">__attribute__</span> <span class="special">((</span><span class="identifier">init_priority</span><span class="special">))</span></code> (for GCC-compatible compilers). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/812">PR#812</a> Umbrella strategies for distance and comparable_distance (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/840">PR#840</a> Umbrella strategies for various algorithms (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/850">PR#850</a> Introduced DynamicGeometry and GeometryCollection concepts and support in some algorithms (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/855">PR#855</a> Various improvements related to strategies. Default strategies are now included with algorithms. </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/865">#865</a> Exception thrown in rtree serialization. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/439">#439</a> Invalid box spherical area computation. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/838">#838</a> Invalid result of union_(). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/851">#851</a> Invalid geographic disjoint segment/box result. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/861">#861</a> Invalid result of intersection(). </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/832">PR#832</a> Fixed box spherical and geographic area computation. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/853">PR#853</a> Fixed geographic disjoint segment/box. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/866">PR#866</a> Fixed serialization of rtree containing lesser number of elements in root node than minimum. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/886">PR#886</a> Fixed knn rtree query bug causing it to be slow for big k. </div> </li> <li> <div> Various fixes in set operations and buffer. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> <code><span class="identifier">value_to</span></code> supports <code><span class="identifier">TupleLike</span></code> types. </div> </li> <li> <div> <code><span class="identifier">value_to</span></code> and <code><span class="identifier">value_from</span></code> support <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code> and similar types. </div> </li> <li> <div> Implicit conversion operator from <code><span class="identifier">string</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>. </div> </li> <li> <div> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specializations for json types. </div> </li> <li> <div> Fixed allocation errors in <code><span class="identifier">object</span></code> and <code><span class="identifier">key_value_pair</span></code>. </div> </li> <li> <div> Fixed crash when constructing <code><span class="identifier">array</span></code> from a pair of iterators that form an empty range. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Fixed assignment to an int of a floating point value that is out of representable range for int. </div> </li> <li> <div> Started using GithubActions CI for additional testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Fixed compilation for riscv32 target. (<a href="https://github.com/boostorg/log/pull/150">PR#150</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Added <code><span class="identifier">mp_intersperse</span></code>, <code><span class="identifier">mp_split</span></code>, <code><span class="identifier">mp_join</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Allow for usage of <code><span class="identifier">iostream</span></code> classes before <code><span class="identifier">main</span></code> (best effort, works for most environments) </div> </li> <li> <div> Fix initialization of <code><span class="identifier">rdbuf</span></code> in <code><span class="identifier">cin</span><span class="special">/</span><span class="identifier">cout</span><span class="special">/</span><span class="identifier">cerr</span></code> for redirected input/output </div> </li> <li> <div> Fix corner case in <code><span class="identifier">cin</span><span class="special">::</span><span class="identifier">unget</span><span class="special">()</span></code> after using <code><span class="identifier">putback</span><span class="special">()</span></code> </div> </li> <li> <div> Fix possibly delayed <code><span class="identifier">close</span></code> of <code><span class="identifier">filebuf</span></code> after move assignment </div> </li> <li> <div> Improve performance of <code><span class="identifier">utf8_codecvt</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> <ul> <li> <div> A MurMur Hash based implementation of hash_combine() is now used to reduce collisions count and improve quality of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">hash_value</span><span class="special">()</span></code> </div> </li> <li> <div> Visual Studio 2017 now supported in C++14 mode (thanks to Denis Mikhailov aka @denzor200) </div> </li> <li> <div> Issues found by inspect tool were fixed </div> </li> <li> <div> Fixed some warnings, including removal of extra semicolons in include/boost/pfr/detail/fields_count.hpp (<a href="https://github.com/boostorg/pfr/issues/72">#72</a>) </div> </li> <li> <div> Added a compile time assert for inherited types (thanks to Denis Mikhailov aka @denzor200) </div> </li> <li> <div> Reflection of aggregates with non movable fields is now possible if guaranteed copy elision is on </div> </li> <li> <div> Fixed spelling issues </div> </li> <li> <div> Started using GithubActions CI for additional testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/property_tree/">PropertyTree</a>:</span> <ul> <li> <div> This is a maintenance release. </div> </li> <li> <div> Extend compiler coverage in CI. </div> </li> <li> <div> Fix Boost compatibility for CMakeLists.txt. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> The conversion operator from <code><span class="identifier">error_category</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_category</span></code> has been improved and no longer requires <code><span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span></code> or <code><span class="special">&lt;</span><span class="identifier">mutex</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> The comparison operators of <code><span class="identifier">error_category</span></code> are now inline friends instead of member functions (a side effect of the previous change.) </div> </li> <li> <div> <code><span class="identifier">error_condition</span></code> now defers calling <code><span class="identifier">generic_category</span><span class="special">()</span></code> to avoid instantiating the object until it's actually needed. </div> </li> <li> <div> <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">failed</span></code> and <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">message</span></code> have been undeprecated, and <code><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span></code> now once again returns <code><span class="identifier">failed</span><span class="special">()</span></code>. </div> </li> <li> <div> The system category now doesn't call <code><span class="identifier">generic_category</span><span class="special">()</span></code>, to avoid instantiating the object. </div> </li> <li> <div> The return value of <code><span class="identifier">default_error_condition</span></code> changes in some cases into an <code><span class="identifier">error_condition</span></code> from the generic category, instead of from the system category. This happens on POSIX when the input <code><span class="identifier">error_code</span></code> is from the system category and does not correspond to any <code><span class="identifier">errc_t</span></code> value. </div> </li> <li> <div> The interoperability of <code><span class="identifier">error_code</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> has been improved substantially. It is now possible to construct <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code> from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, and it's possible to pass <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code> to functions taking <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code>. </div> </li> <li> <div> A stream insertion operator for <code><span class="identifier">error_condition</span></code> has been added. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> Added <code><span class="identifier">to_chars</span></code> for writing uuid strings without allocating (<a href="https://github.com/boostorg/uuid/pull/116">PR#116</a>) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_77_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_6_1">B2 version 4.6.1</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_77_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.5, 3.6, 3.7, 3.8, 3.9, 12.0.0 </div> </li> <li> <div> Clang, C++11: 3.4, 11.0.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0 </div> </li> <li> <div> Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0 </div> </li> <li> <div> Clang, C++20: 11.0.0, 12.0.0, 13.0.0 </div> </li> <li> <div> GCC: 4.6.3, 11 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 11 </div> </li> <li> <div> GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11 </div> </li> <li> <div> GCC, C++20: 8.0.1, 9.1.0, 10, 11 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 11.0.3 </div> </li> <li> <div> Apple Clang, C++11: 11.0.3 </div> </li> <li> <div> Apple Clang, C++14: 11.0.3 </div> </li> <li> <div> Apple Clang, C++17: 11.0.3 </div> </li> <li> <div> Apple Clang, C++20: 11.0.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_77_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.76.0https://www.boost.org/users/history/version_1_76_0.htmlhttps://www.boost.org/users/history/version_1_76_0.htmlFri, 16 Apr 2021 21:05:27 +0000 <div id="version_1_76_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> No new libraries </div> </li> </ul> </div> <div id="version_1_76_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">scope_id_type</span></code> type alias. </div> </li> <li> <div> Added <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">port_type</span></code> type alias. </div> </li> <li> <div> Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specialisations for IP addresses. </div> </li> <li> <div> Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specialisations for <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Refactored SFINAE usage to improve compile times. </div> </li> <li> <div> Added friendship support to customisation points, and made most customisations private. </div> </li> <li> <div> Changed <code><span class="identifier">any_io_executor</span></code> to a "strong typedef"-style class. </div> </li> <li> <div> Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_single</span></code> to work with handler hook deprecation. </div> </li> <li> <div> Ensured pthread condition variable attributes are cleaned up on all platforms. </div> </li> <li> <div> Clarified thread safety notes on sockets and descriptors. </div> </li> <li> <div> Ensured <code><span class="identifier">errno</span></code> is not overwritten if <code><span class="identifier">socket</span><span class="special">()</span></code> fails on macOS/FreeBSD. </div> </li> <li> <div> Fixed work tracking for <code><span class="identifier">io_context</span></code> and <code><span class="identifier">thread_pool</span></code> executors when move-assigned. </div> </li> <li> <div> Ensured internal <code><span class="identifier">call_stack</span></code> objects are accessed only from implementation files. </div> </li> <li> <div> Fixed I/O object move-assignment to ensure the executor is left in a valid state. </div> </li> <li> <div> Fixed detection of compiler support for defaulted template argument on functions with MSVC. </div> </li> <li> <div> Prevented the <code><span class="identifier">blocking</span><span class="special">.</span><span class="identifier">always</span></code> property from being used with <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code>, as it did not produce the correct semantics. </div> </li> <li> <div> Removed deprecated file <tt>asio/impl/src.cpp</tt>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Fixed compilation with MSVC for ARM. (<a href="https://github.com/boostorg/atomic/pull/49">PR#49</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This update brings minor bug fixes and revamped CI reporting. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/bind/">Bind</a>:</span> <ul> <li> <div> Add support for using the standard C++11 placeholders with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span></code>. </div> </li> <li> <div> Update <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply</span></code> to use variadic templates and perfect forwarding. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/continer/">Container</a>:</span> <ul> <li> <div> Added [[no-discard]] attribute in all containers to catch bugs related to unused return values. </div> </li> <li> <div> Replaced default standard exception classes with Boost.Container own classes, reducing considerably the included files overhead. Example: in MSVC 19 <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container</span><span class="special">/</span><span class="identifier">vector</span><span class="special">.</span><span class="identifier">hpp</span></code> preprocessed file size reduces from 1,5MB to 930KB. If you still want to use standard exception classes, you can define <code><span class="identifier">BOOST_CONTAINER_USE_STD_EXCEPTIONS</span></code> before using any Boost.Container class. </div> </li> <li> <div> Fixed bugs/issues: <ul> <li> <div> <a href="https://github.com/boostorg/container/issues/102">GitHub #102: <em>"flat_map::insert ambiguous with initializer list &amp; pairs that need to convert"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/139">GitHub #139: <em>"flat_map merge and iterators"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/141">GitHub #141: <em>"small_vector does not propagate no throw properties of move operation of contained type"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/164">GitHub #164: <em>"Compile error when using <code><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">map</span></code> with a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>; works when using a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code>"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/171">GitHub #171: <em>"deque::clear() uses undefined behaviour"</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Add implicit conversion between compatible reference wrappers. </div> </li> <li> <div> Add <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">hpp</span></code>, a portable implementation of the floating point classification functions from <code><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Add <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>, a portable implementation of the C++20 standard header <code><span class="special">&lt;</span><span class="identifier">bit</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Fix <code><span class="identifier">BOOST_TEST_EQ</span></code>, <code><span class="identifier">BOOST_TEST_NE</span></code> for character types under C++20. </div> </li> <li> <div> Revise allocator access utilities (now support VS2013, and no workarounds use <code><span class="identifier">allocator_traits</span></code>.) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> <strong>BREAKING CHANGE</strong>: <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">import</span></code> was renamed to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">import_symbol</span></code> to avoid collision with C++20 <code><span class="identifier">import</span></code> keyword. </div> </li> <li> <div> Updated docs, including FAQ section. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Updated compatibility with WASI platform. (<a href="https://github.com/boostorg/filesystem/pull/169">PR#169</a>) </div> </li> <li> <div> Fixed an exception being thrown by <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code> if the path is "////". (<a href="https://github.com/boostorg/filesystem/issues/176">#176</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">create_directories</span></code> disregarding errors from file status query operations issued internally. This could result in incorrect error codes returned by <code><span class="identifier">create_directories</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/182">#182</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/670">PR#670</a> New IOs to_wkt() and from_wkt() (thanks to Baidyanath Kundu). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/756">PR#756</a> Non cartesian and robust convex hulls. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/768">PR#768</a> Umbrella strategies for relops, setops, index, buffer and more (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/797">PR#797</a> New azimuth() algorithm. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/801">PR#801</a> Improved accuracy in geographic area computations. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/820">PR#820</a> Parameter scale added to svg_mapper. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/808">PR#808</a> Fixed compilation error with rtree serialization enabled (thanks to Tristan Carel). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/815">PR#815</a> Fixed issue in buffer(). </div> </li> <li> <div> Various fixes in set operations and buffer. </div> </li> </ul> </div> </li> <li> <div> Breaking changes <ul> <li> <div> Removed strategy convex_hull::graham_andrew. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> BREAKING: In next release, we are going to drop support for GCC 5. We will also change the required minimum C++ version from C++11 to C++14. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> This release contains critical fixes, please check that your results are not affected. </div> </li> <li> <div> See <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">Release Notes</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Reduced compile-time dependencies: <ul> <li> <div> <code><span class="identifier">linear_slist_algorithms</span></code> use a simple node_ptr instead of std::pair on return. </div> </li> <li> <div> <code><span class="identifier">list</span></code>/<code><span class="identifier">slist</span></code> use <code><span class="keyword">operator</span> <span class="special">&lt;</span></code>/<code><span class="keyword">operator</span> <span class="special">==</span></code> instead of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">equal_to</span></code>/<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span></code>. </div> </li> </ul> </div> </li> <li> <div> Fixed <a href="https://github.com/boostorg/intrusive/issues/54">GitHub #54: <em>set.rbegin() looks like O(log(N))</em></a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Added <code><span class="keyword">wchar_t</span></code> API support for named resources in operating systems that offer native wide character API (e.g. Windows). The following classes were updated with <code><span class="keyword">wchar_t</span></code> name support: <ul> <li> <div> <code><span class="identifier">file_mapping</span></code> </div> </li> <li> <div> <code><span class="identifier">managed_mapped_file</span></code> </div> </li> <li> <div> <code><span class="identifier">managed_shared_memory</span></code> </div> </li> <li> <div> <code><span class="identifier">managed_windows_shared_memory</span></code> </div> </li> <li> <div> <code><span class="identifier">shared_memory_object</span></code> </div> </li> <li> <div> <code><span class="identifier">windows_shared_memory_object</span></code> </div> </li> <li> <div> <code><span class="identifier">file_lock</span></code> </div> </li> <li> <div> <code><span class="identifier">named_condition</span></code> </div> </li> <li> <div> <code><span class="identifier">named_condition_any</span></code> </div> </li> <li> <div> <code><span class="identifier">named_mutex</span></code> </div> </li> <li> <div> <code><span class="identifier">named_recursive_mutex</span></code> </div> </li> <li> <div> <code><span class="identifier">named_semaphore</span></code> </div> </li> <li> <div> <code><span class="identifier">named_sharable_mutex</span></code> </div> </li> <li> <div> <code><span class="identifier">named_upgradable_mutex</span></code> </div> </li> <li> <div> <code><span class="identifier">message_queue</span></code> </div> </li> </ul> </div> </li> <li> <div> Added <code><span class="identifier">BOOST_INTERPROCESS_FORCE_NATIVE_EMULATION</span></code> macro option to disable the use of generic emulation code for process shared synchronization primitives instead of native POSIX or Winapi functions. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/issues/76">GitHub #76 (<em>"Cygwin compilation errors"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/83">GitHub #83 (<em>"Add BOOST_INTERPROCESS_FORCE_NATIVE_EMULATION option"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/92">GitHub #92 (<em>"bufferstream: Correct MSVC compilation warning"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/106">GitHub #106 (<em>"Use fallocate on truncate_file"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/issues/120">GitHub #120 (<em>"segment_manager customization"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/issues/122">GitHub #122 (<em>"Mark constructors/assignment/swap noexcept where possible"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/issues/126">GitHub #126 (<em>"_ReadWriteBarrier is deprecated warning when compiling with clang-cl.exe"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> <ul> <li> <div> <a href="https://cppalliance.org/pdf/C%20Plus%20Plus%20Alliance%20-%20Boost%20JSON%20Security%20Assessment%202020%20-%20Assessment%20Report%20-%2020210317.pdf">Security Report</a> from Bishop Fox. </div> </li> <li> <div> (<a href="https://github.com/boostorg/json/issues/481">#481</a>) Refactored <code><span class="identifier">value_from</span></code> implementation; user customizations are now always preferred over library-provided overloads. </div> </li> <li> <div> (<a href="https://github.com/boostorg/json/issues/484">#484</a>) Fix imprecise parsing for some floating point numbers. </div> </li> <li> <div> (<a href="https://github.com/boostorg/json/issues/485">#485</a>) Fix link errors in standalone mode, when used alongside Boost. </div> </li> <li> <div> (<a href="https://github.com/boostorg/json/issues/497">#497</a>) Fix Boost.Build builds on GCC 4.8. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Dropped dependency on Boost.Math (thanks to Peter Dimov <a href="https://github.com/boostorg/lexical_cast/issues/37">#37</a>, <a href="https://github.com/boostorg/lexical_cast/issues/39">#39</a>). </div> </li> <li> <div> Fixes for the CI and coverage (thanks to Sam Darwin from "The C++ Alliance" <a href="https://github.com/boostorg/lexical_cast/issues/38">#38</a>, <a href="https://github.com/boostorg/lexical_cast/issues/42">#42</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Corrected a formal race condition in the thread-safe log record queue implementation used in the <code><span class="identifier">unbounded_fifo_queue</span></code> policy of the <code><span class="identifier">asynchronous_sink</span></code> frontend. The race could be detected by TSAN, but it was not a real problem on most current CPU architectures and compilers. (<a href="https://github.com/boostorg/log/issues/139">#139</a>) </div> </li> <li> <div> When copying a logger with a channel attribute (e.g. <code><span class="identifier">channel_logger</span></code>), the channel attribute is now deep-copied from the original logger. This means that modifying the channel in the new logger will no longer affect the original logger. </div> </li> <li> <div> Replaced the use of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> in template parameters with a new tag type <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">log</span><span class="special">::</span><span class="identifier">use_std_allocator</span></code> to silence libc++ warnings about the former being deprecated in C++17 and later. The tag indicates that the instantiated template should be using a specialization of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code> internally to allocate dynamic memory, so the change has no functional effect. (<a href="https://github.com/boostorg/log/issues/141">#141</a>) </div> </li> <li> <div> Boost.Log no longer defines <code><span class="identifier">__MSVCRT_VERSION__</span></code> macro on MinGW and MinGW-w64. Defining this macro caused incompatibility with UCRT, which is available as an option in recent MinGW-w64. (<a href="https://github.com/boostorg/log/pull/149">PR#149</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> <strong>Breaking Change:</strong> C++03 support is now removed, a C++11 or later conformant compiler is now required to use this library. </div> </li> <li> <div> Added <span class="link">Z-test</span>. </div> </li> <li> <div> Added execution policy support to univariate and bivariate statistics: enables parallel execution (requires C++17 and <code><span class="special">&lt;</span><span class="identifier">execution</span><span class="special">&gt;</span></code>). </div> </li> <li> <div> Big update/improvement on CI testing. </div> </li> <li> <div> Bivariate statistics now have integer support. </div> </li> <li> <div> T-Test now has integer support. </div> </li> <li> <div> Linear regression now has integer support. </div> </li> <li> <div> Correct PDF of the beta distribution at the endpoints. </div> </li> <li> <div> Correct use of Stirling's approximation in certain multiprecision cases, fixes <a href="https://github.com/boostorg/math/issues/396">#396</a>. </div> </li> <li> <div> Eliminate -Wimplicit-int-float-conversion on clang. </div> </li> <li> <div> Fix some constexpr issues in quaternion/octonion. </div> </li> <li> <div> Minor performance fix to tanh_sinh integration. </div> </li> <li> <div> Update hypergeometric functions internal scaling to allow for 64-bit (long long) exponents with multiprecision types. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/move/issues/35">Git Issue #35: <em>"New nothrow move traits are incomplete"</em></a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> <strong>BREAKING CHANGE</strong>: Massive refactoring and code simplification makes C++11 an absolute requirement. </div> </li> <li> <div> Use BOOST_TRY/CATCH in headers so code can be used in exception-free environments. </div> </li> <li> <div> Correct corner case in pow, fixes <a href="https://github.com/boostorg/multiprecision/issues/277">#277</a>. </div> </li> <li> <div> Correct exception type thrown to match docs in lsb/msb: fixes <a href="https://github.com/boostorg/multiprecision/issues/257">#257</a>. </div> </li> <li> <div> Allow moves and operators between related but different types (ie types with the same allocator), fixes <a href="https://github.com/boostorg/multiprecision/issues/278">#278</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> Fix discarding of characters for text file streams when seek or sync functions are used and newlines were converted (e.g. on Windows) </div> </li> <li> <div> Fix potential use-after-free bug when reusing (via <code><span class="identifier">open</span></code>) a file stream that has been closed </div> </li> <li> <div> Fix potential invalid memory access when using a file stream that has been moved or swapped to where the source had a put-back character or was set to unbuffered mode </div> </li> <li> <div> Fix compatibility with ucrt runtime by not defining <code><span class="identifier">__MSVCRT_VERSION__</span></code> </div> </li> <li> <div> Known issues: Read performance for text files is degraded. Binary files and writing is unaffected. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Fixed MSVC warning C4702. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Announcements: <ul> <li> <div> BREAKING CHANGE: After a year and three major Boost releases announcing this upcoming change, this is the FIRST RELEASE of the v2.2 branch. This branch has a number of major breaking changes to the Outcome v2.1 which shipped in Boost 1.75 and earlier, see the documentation for details. </div> </li> </ul> </div> </li> <li> <div> Enhancements: <ul> <li> <div> VS2019.8 changed how to enable Coroutines, which caused Outcome to not compile on that compiler. </div> </li> <li> <div> If on C++ 20, we now use C++ 20 <code><span class="special">[[</span><span class="identifier">likely</span><span class="special">]]</span></code> instead of compiler-specific markup to indicate when TRY has likely success or failure. </div> </li> <li> <div> BREAKING CHANGE: Previously the value of <code><span class="identifier">spare_storage</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_result</span><span class="special">|</span><span class="identifier">basic_outcome</span> <span class="special">*)</span> <span class="keyword">noexcept</span></code> was not propagated over <code><span class="identifier">BOOST_OUTCOME_TRY</span></code>, which causes things like stack backtraces captured at the point of construction of an errored result to get dropped at every <code><span class="identifier">TRY</span></code> point. This has been fixed by adding an optional <code><span class="identifier">spare_storage</span></code> to <code><span class="identifier">success_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">failure_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>, as well as to <code><span class="keyword">auto</span> <span class="identifier">success</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&amp;&amp;,</span> <span class="special">...)</span></code> and <code><span class="keyword">auto</span> <span class="identifier">failure</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&amp;&amp;,</span> <span class="special">...)</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Boost.Outcome should now compile with <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code> defined. Thanks to Emil, maintainer of Boost.Exception, making a change for me, Boost.Outcome should now compile with C++ exceptions globally disabled. You won't be able to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception_ptr</span></code> as it can't be included if C++ exceptions are globally disabled. </div> </li> <li> <div> BREAKING CHANGE <a href="https://github.com/ned14/outcome/issues/244">#244</a> It came as a shock to learn that <code><span class="identifier">BOOST_OUTCOME_TRY</span></code> had been broken since the inception of this library for certain corner case code, which required a breaking change in how TRY works. See <a href="https://boostorg.github.io/outcome/changelog.html">the changelog in the documentation for more detail</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/parameter/">Parameter</a>:</span> <ul> <li> <div> Added a workaround for MSVC 2015 code miscompilation when an rvalue was used as a default value of a named parameter of a function. (<a href="https://github.com/boostorg/parameter/pull/109">PR#109</a>, <a href="https://github.com/boostorg/log/issues/132">#132</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> <ul> <li> <div> Fixed reflection of types with missing <code><span class="keyword">const</span></code> in SFINAE expressions in template constructor. Now reflection of aggregates with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;???&gt;&gt;</span></code> fields works on any Standard Library implementation, even if LWG3050 is not fixed. </div> </li> <li> <div> Comparison functions are now <code><span class="keyword">constexpr</span></code> <a href="https://github.com/boostorg/pfr/issues/52">#52</a> </div> </li> <li> <div> Fixed numerous typos in docs (thanks to Phil Miller <a href="https://github.com/boostorg/pfr/issues/63">#63</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Worked around <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95888">GCC bug</a> affecting GCC versions 9.3-10.2 (issue <a href="https://github.com/boostorg/poly_collection/issues/20">#20</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Version 1.13 </div> </li> <li> <div> Add <code><span class="identifier">ARCH_PPC_64</span></code> predef. </div> </li> <li> <div> Fix <code><span class="identifier">ARCH_WORD_BITS</span><span class="special">*</span></code> redefinition warnings/errors. </div> </li> <li> <div> Add <code><span class="identifier">ARCH_E2K</span></code>, Elbrus 2000, architecture from Konstantin Ivlev. </div> </li> <li> <div> Fix not handling recent C++ version that go above 10.x version. </div> </li> <li> <div> Version 1.12 </div> </li> <li> <div> Switch to using the endian.h header on OpenBSD. (Brad Smith) </div> </li> <li> <div> Fix not handling recent versions of stdcxx that go above version 9. </div> </li> <li> <div> Fix including sub-BSD OS headers directly causing redef warnings. </div> </li> <li> <div> Add CI testing of direct inclusion of all headers. </div> </li> <li> <div> Add CI testing on FreeBSD for clang and gcc. </div> </li> <li> <div> Add <code><span class="identifier">WORD_BITS</span></code> set of predefs to detect the architecture word size. Initial implementation inspired by submission from Mikhail Komarov. </div> </li> <li> <div> Add CI testing for Cygwin 32 and 64. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/property_tree/">PropertyTree</a>:</span> <ul> <li> <div> Property Tree has a new maintainer. </div> </li> <li> <div> Fix usage of deprecated Boost.Bind features. </div> </li> <li> <div> Link to Wikipedia fixed. </div> </li> <li> <div> Use BOOST_OVERRIDE to fix GCC warnings. </div> </li> <li> <div> Add extensive CI testing. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Regex is now header only except in C++03 mode. </div> </li> <li> <div> Support for C++03 is now deprecated. </div> </li> <li> <div> The library can now be used "standalone" without the rest of Boost being present. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Better support for pre-C++11 builds on clang <a href="https://github.com/boostorg/stacktrace/issues/102">#102</a>. </div> </li> <li> <div> Bigger warning for <strong>do not use boost::stacktrace::stacktrace in signal handlers</strong> <a href="https://github.com/boostorg/stacktrace/issues/71">#71</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_traits/">TypeTraits</a>:</span> <ul> <li> <div> Fix for Visual Studio managed code projects. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Improved generated code for the double buffered case. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_76_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_4_1">B2 version 4.4.1</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_76_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0, 11.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_76_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.75.0https://www.boost.org/users/history/version_1_75_0.htmlhttps://www.boost.org/users/history/version_1_75_0.htmlFri, 11 Dec 2020 19:50:02 +0000 <div id="version_1_75_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> Boost.Operators is currently <strong>incompatible with C++20</strong> compilers, which in some cases may manifest as an infinite recursion or infinite loop in runtime when a comparison operator is called. The problem is caused by the new operator rewriting behavior introduced in C++20. As a workaround, users are advised to target C++17 or older C++ standard. More details can be found in <a href="https://github.com/boostorg/utility/issues/65">#65</a>. </p> </div> <div id="version_1_75_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> JSON parsing, serialization, and DOM in C++11, from Vinnie Falco and Krystian Stasiowski. <ul> <li> <div> Fast compilation requiring only C++11 </div> </li> <li> <div> Easy and safe modern API with allocator support </div> </li> <li> <div> Compile without Boost, define <code><span class="identifier">BOOST_JSON_STANDALONE</span></code> </div> </li> <li> <div> Optional header-only, without linking to a library </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span> A lightweight error-handling library for C++11, from Emil Dotchevski. <ul> <li> <div> Small single-header format, no dependencies. </div> </li> <li> <div> Designed for maximum efficiency ("happy" path and "sad" path). </div> </li> <li> <div> No dynamic memory allocations, even with heavy payloads. </div> </li> <li> <div> O(1) transport of arbitrary error types (independent of call stack depth). </div> </li> <li> <div> Can be used with or without exception handling. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> Basic reflection without macro or boilerplate code for user defined types, from Antony Polukhin. </div> </li> </ul> </div> <div id="version_1_75_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Enabled support for UNIX domain sockets on Windows. </div> </li> <li> <div> Added executor-converting construction and assignment to <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver</span></code>. </div> </li> <li> <div> Added compatibility between polymorphic executors and the (deprecated) handler invocation hook. </div> </li> <li> <div> Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_single</span></code> completion token adapter. </div> </li> <li> <div> Added support for <code><span class="identifier">MSG_NOSIGNAL</span></code> on more platforms by using <code><span class="identifier">_POSIX_VERSION</span></code> to detect whether it is supported. </div> </li> <li> <div> Added the ability to compile using libpthread on Windows. </div> </li> <li> <div> Added workarounds for the Intel C++ compiler. </div> </li> <li> <div> Added more support for detecting and optimising for handlers that have no custom executor. </div> </li> <li> <div> Reduced lock contention for timer cancellation on Windows. </div> </li> <li> <div> Reinstated a previously removed null-pointer check, as it had a measurable impact on performance. </div> </li> <li> <div> Fixed the <code><span class="identifier">executor</span></code> concept to test for a const-qualified <code><span class="identifier">execute</span><span class="special">()</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">any_executor</span></code> support for builds without RTTI support. </div> </li> <li> <div> Fixed the <code><span class="identifier">thread_pool</span></code> unit test to work without RTTI support. </div> </li> <li> <div> Fixed C++20 coroutines compatibility with clang on Windows. </div> </li> <li> <div> Fixed some compatibility issues with Windows Runtime. </div> </li> <li> <div> Fixed shadow name warnings caused by addition of <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">query</span></code>. </div> </li> <li> <div> Fixed a "logical ‘or’ of equal expressions" warning on linux. </div> </li> <li> <div> Fixed a benign switch fallthrough warning. </div> </li> <li> <div> Added missing <code><span class="identifier">push</span><span class="special">/</span><span class="identifier">pop_options</span><span class="special">.</span><span class="identifier">hpp</span></code> includes. </div> </li> <li> <div> Suppressed zero-as-null-pointer-constant warnings. </div> </li> <li> <div> Fixed a comma-operator warning. </div> </li> <li> <div> Updated the documentation to clarify when the <tt>select</tt> reactor is used on Windows. </div> </li> <li> <div> Fixed potential ambiguity caused by <code><span class="identifier">any_executor</span></code> comparisons and conversion. </div> </li> <li> <div> Added detection of non-experimental C++20 coroutines on MSVC 19.8. </div> </li> <li> <div> Fixed compatibility with uClibc. </div> </li> <li> <div> Fixed <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code> adaptation of Networking TS executors when targeting older C++ versions or less conformant compilers. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Implemented SSE2 and SSE4.1 versions of address lookup algorithm, which is used in the internal lock pool implementation. This may improve performance of waiting and notifying operations in heavily contended cases. </div> </li> <li> <div> Fixed a possible compilation error on AArch64 targets caused by incorrect instructions generated for bitwise (logical) operations with immediate constants. (<a href="https://github.com/boostorg/atomic/issues/41">#41</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This update brings bug fixes and support for the <code><span class="identifier">BOOST_ASIO_ENBALE_HANDLER_TRACKING</span></code> compile flag from Boost.Asio: </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> New <code>devector</code> container. </div> </li> <li> <div> Fixed bugs/issues: <ul> <li> <div> <a href="https://github.com/boostorg/container/issues/152">#152</a> Tree-based containers have troubles with move-only types. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/156">#156</a> Compile error with vector. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/157">PR#157</a> Add missing include. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/159">#159</a>: pmr::monotonic_buffer_resource crashes on large single allocations. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/160">#160</a>: Usage of uses_allocator needs a remove_cvref_t. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/162">#162</a>: small_vector on MSVC x86 call-by-value crash. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/161">#161</a>: polymorphic_allocator(memory_resource*) non-standard extension causes headache. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/163">PR#163</a>: container_rebind for small_vector with options. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/165">#165</a>: Link error with shared library and memory_resource inline members. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/166">PR#166</a>: Fix encoding error in copyright headers. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/167">PR#167</a>: error: the address of 'msg' will always evaluate as 'true' warning with GCC 4.4. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/169">#169</a>: flood of warnings building dlmalloc_ext_2_8_6.c on clang11. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span> <ul> <li> <div> <code><span class="identifier">endian_arithmetic</span></code> no longer inherits from <code><span class="identifier">endian_buffer</span></code> </div> </li> <li> <div> When <code><span class="identifier">BOOST_ENDIAN_NO_CTORS</span></code> is defined, the unaligned <code><span class="identifier">endian_buffer</span></code> and <code><span class="identifier">endian_arithmetic</span></code> are C++03 PODs, to enable use of <code><span class="identifier">__attribute__</span><span class="special">((</span><span class="identifier">packed</span><span class="special">))</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <strong>New:</strong> Added <code><span class="identifier">creation_time</span></code> operation, which allows to obtain file creation time. (Inspired by <a href="https://github.com/boostorg/filesystem/pull/134">PR#134</a>) </div> </li> <li> <div> The returned value of <code><span class="identifier">last_write_time</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">)</span></code> operation in case of failure has been changed to a minimal value representable by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span></code> instead of -1. </div> </li> <li> <div> The returned value of <code><span class="identifier">hard_link_count</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">)</span></code> operation in case of failure has been changed to <code><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">uintmax_t</span><span class="special">&gt;(-</span><span class="number">1</span><span class="special">)</span></code> instead of 0. </div> </li> <li> <div> On POSIX systems, <code><span class="identifier">file_size</span></code> will now indicate error code <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">function_not_supported</span></code> if the path resolves to a non-regular file. Previously, <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">operation_not_permitted</span></code> was reported. </div> </li> <li> <div> On Linux, many operations now use <code><span class="identifier">statx</span></code> system call internally, when possible, which allows to reduce the amount of information queried from the filesystem and potentially improve performance. The <code><span class="identifier">statx</span></code> system call was introduced in Linux kernel 4.11. </div> </li> <li> <div> Removed <code><span class="keyword">const</span></code>-qualification from return types of some <code><span class="identifier">path</span></code> methods. This could prevent move construction and move assignment at the call site in some cases. (<a href="https://github.com/boostorg/filesystem/issues/160">#160</a>) </div> </li> <li> <div> On OpenBSD 4.4 and newer, use <code><span class="identifier">statvfs</span></code> system call to obtain filesystem space information. (Inspired by <a href="https://github.com/boostorg/filesystem/pull/162">PR#162</a>) </div> </li> <li> <div> On Windows, <code><span class="identifier">space</span></code> now returns with an error if the provided path does not idendify an existing file. (<a href="https://github.com/boostorg/filesystem/issues/167">#167</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> WARNING: Following the deprecation notice of C++03 issued with Boost 1.73, from now on the Boost.Geometry requires a capable C++14 compiler. </div> </li> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/726">PR#726</a> Umbrella strategies for area, envelope, expand (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/733">PR#733</a> Added example of adaptation of std::array&lt;&gt; to Point concept (thanks to Ben FrantzDale). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/745">PR#745</a> constexpr added in geometries and arithmetic. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/747">PR#747</a> Added optional traits::make (undocumented for now). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/748">PR#748</a> Modernized usage of type traits. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/759">PR#759</a> MPL_ASSERT replaced with standard static_assert. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/767">PR#767</a> Modernized usage of tuple. </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/716">#716</a> Dangling proxy references. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> Various fixes in set operations and buffer. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> BREAKING: In next release, we are going to drop support for GCC 5. We may also change the required minimum C++ version from C++11 to C++14. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> This update brings <ul> <li> <div> Bug-fixes for corner-cases </div> </li> <li> <div> Small documentation improvements </div> </li> <li> <div> Fixes for new warnings from latest compilers and when compiling against the C++20 standard </div> </li> </ul> </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/issues/127">#127</a>: static assertion failure with boost interprocess 1.74 and basic_managed_shared_memory. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/48">PR#48</a>: MSVC "assignment within conditional" warning fix. </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/49">PR#49</a>: Fix empty control statement warnings. </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/issues/52">#52</a>: Invalid casting in BOOST_INTRUSIVE_BSR_INTRINSIC. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Corrected the file counter that would be used in <code><span class="identifier">text_file_backend</span></code> when generating the target file name (based on the pattern set by <code><span class="identifier">set_target_file_name_pattern</span></code> method) when the log file is rotated. (<a href="https://github.com/boostorg/log/issues/125">#125</a>) </div> </li> <li> <div> Replaced a volatile version counter in <code><span class="identifier">basic_sink_frontend</span></code> with an atomic. (<a href="https://github.com/boostorg/log/issues/128">#128</a>) </div> </li> <li> <div> In the <code><span class="identifier">asynchronous_sink</span></code> frontend, resolved a possible conflict between <code><span class="identifier">flush</span></code> and <code><span class="identifier">run</span></code> methods, if <code><span class="identifier">run</span></code> is called from a user's thread instead of the internal dedicated thread spawned by the frontend. (<a href="https://github.com/boostorg/log/issues/131">#131</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/move/issues/30">#30</a>: (void) C-cast is a non-portable way of suppressing compiler warnings. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Added <code><span class="identifier">mp_pairwise_fold</span></code> (suggested by Barry Revzin) </div> </li> <li> <div> Removed <code><span class="identifier">mp_invoke</span></code> (use <code><span class="identifier">mp_invoke_q</span></code>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> is <code><span class="keyword">constexpr</span></code>-declared. </div> </li> <li> <div> Fixed <a href="https://github.com/boostorg/optional/issues/78">issue #78</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Announcements: <ul> <li> <div> After a year and three major Boost releases announcing this upcoming change, this is the FINAL RELEASE of the v2.1 branch. From Boost 1.76 onwards, the v2.2 branch becomes the default. This branch has a number of major breaking changes to Outcome v2.1, see the documentation for details. </div> </li> </ul> </div> </li> <li> <div> Enhancements: <ul> <li> <div> The ADL discovered event hooks have been replaced with policy-specified event hooks instead. This is due to brittleness (where hooks would quietly self-disable if somebody changed something), compiler bugs (a difference in compiler settings causes the wrong hooks, or some but not all hooks, to get discovered), and end user difficulty in using them at all. The policy-specified event hooks can be told to default to ADL discovered hooks for backwards compatibility: set <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code> to less than <code><span class="number">220</span></code> to enable emulation. </div> </li> <li> <div> Improve configuring <code><span class="identifier">OUTCOME_GCC6_CONCEPT_BOOL</span></code>. Older GCCs had boolean based concepts syntax, whereas newer GCCs are standards conforming. However the precise logic of when to use legacy and conforming syntax was not well understood, which caused Outcome to fail to compile depending on what options you pass to GCC. The new logic always uses the legacy syntax if on GCC 8 or older, otherwise we use conforming syntax if and only if GCC is in C++ 20 mode or later. This hopefully will resolve the corner case build failures on GCC. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Boost.Outcome should now compile with <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code> defined. Thanks to Emil, maintainer of Boost.Exception, making a change for me, Boost.Outcome should now compile with C++ exceptions globally disabled. You won't be able to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception_ptr</span></code> as it can't be included if C++ exceptions are globally disabled. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/236">#236</a> In the Coroutine support the <code><span class="identifier">final_suspend</span><span class="special">()</span></code> was not <code><span class="keyword">noexcept</span></code>, despite being required to be so in the C++ 20 standard. This has been fixed, but only if your compiler implements <code><span class="identifier">noop_coroutine</span></code>. Additionally, if <code><span class="identifier">noop_coroutine</span></code> is available, we use the much more efficient coroutine handle returning variant of <code><span class="identifier">await_suspend</span><span class="special">()</span></code> which should significantly improve codegen and context switching performance. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/polygon/">Polygon</a>:</span> <ul> <li> <div> C++20 fixes for <code><span class="identifier">event_comparison_type</span></code>, <code><span class="identifier">vertex_equality_predicate_type</span></code>, and <code><span class="identifier">voronoi_predicates</span></code>. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span> <ul> <li> <div> When variadic data is empty in C++20 mode with __VA_OPT__ support the variadic size has been corrected to be 0. This also means that in this C++20 mode it is now valid to convert to and from empty arrays and lists and variadic data. The end-user can read the "C++20 Support For Variadic Macros" part of the "variadic macros" topic for more information about empty variadic data in the library. </div> </li> <li> <div> The macro BOOST_PP_IS_STANDARD() has been added for identifying if the currently used preprocessor is a C++ standard conforming preprocessor. A number of preprocessors which generally work correctly with the library but need various internal workarounds, including the currently default VC++ preprocessor, are not considered C++ standard conforming preprocessors. However most preprocessors, including among others gcc, clang, and the new but currently non-default VC++ preprocessor in VS2019, are C++ standard conforming preprocessors. </div> </li> <li> <div> For C++ standard conforming preprocessors a number of the limits defined in the config/limits.hpp can now be changed to higher amounts for a TU. The end-user should read the "limitations" topic to understand how and which limits can be changed. </div> </li> <li> <div> For C++ standard conforming preprocessors, in order to allow the maximum number of FOR and WHILE iterations, the beginning 'r' and 'd' iteration numbers in the user-defined macros start at 1 and not 2, as it did in previous releases. This could be a breaking change if these iteration numbers are used in the user-defined macros ( they probably would not be ), but the change was necessary to fix some arcane bugs when dealing with numerical/logical operations with maximum numbers as well to allow the user-defined macros to be called the correct possible maximum number of times. For non-C++ conforming preprocessors, this change was not made because those non-conforming C++ preprocessors generally have limitations which disallow the maximum number of looping constructs to be run, and it was felt not to introduce a possible breaking change to those more fragile preprocessors would be better. It was also felt that besides fixing some arcane preprocessor bugs and providing the possible maximum number of user-defined macro invocations, this change could be made because it has never been documented what the starting 'r' and 'd' iteration numbers actually are but only that these numbers are incremented for each iteration. </div> </li> <li> <div> The library has been upgraded to assume variadic macro support for any compiler working with the library. Ostensibly this means that the library is now a C++11 on up library, yet most of the major compilers, including gcc, clang, and VC++, also support variadic macros in C++98/C++03 mode as long as strict compliance to C++98/C++03 is not turned on when using one of those compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/rational/">Rational</a>:</span> <ul> <li> <div> Fix Rational operators to not break under new C++20 <code><span class="keyword">operator</span><span class="special">==</span></code> rewriting rules. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/signals2/">Signals2</a>:</span> <ul> <li> <div> Correct C++ allocator model support to fix compilation in C++20 standards mode. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> The platform-specific headers <code><span class="identifier">windows_error</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">linux_error</span><span class="special">.</span><span class="identifier">hpp</span></code>, and <code><span class="identifier">cygwin_error</span><span class="special">.</span><span class="identifier">hpp</span></code> emit deprecation messages and are slated for removal. </div> </li> <li> <div> The old names for <code><span class="identifier">generic_category</span><span class="special">()</span></code> and <code><span class="identifier">system_category</span><span class="special">()</span></code> emit deprecation messages and are slated for removal. </div> </li> <li> <div> <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">failed</span></code> is deprecated and is slated for removal. <code><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span></code> for <code><span class="identifier">error_condition</span></code> has been reverted to its old meaning of <code><span class="identifier">value</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span></code>. This is done for compatibility with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_condition</span></code> as the next release is expected to improve interoperability with <code><span class="special">&lt;</span><span class="identifier">system_error</span><span class="special">&gt;</span></code> even further. <em>Note that this does not affect</em> <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">failed</span></code>, which is still alive and well. </div> </li> <li> <div> The overload of <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">message</span></code> that takes a buffer is deprecated and is slated for removal, for the same reasons. <em>Note that this does not affect</em> <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">message</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/numeric/ublas/">uBLAS</a>:</span> <ul> <li> <div> Correct C++ allocator model support to fix compilation in C++20 standards mode. (Glen Fernandes and Conrad Poelman) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/vmd/">VMD</a>:</span> <ul> <li> <div> The VMD number parsing has been upgraded to support the ability for the end-user to change the number limits in the Preprocessor library. </div> </li> <li> <div> The macro BOOST_VMD_IS_GENERAL_IDENTIFIER has been added to support the parsing of input that represents a preprocessor token which matches the VMD identifier syntax, without having to register the identifier as a specific identifier. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> Added new C++20 tokens, including the spaceship operator &lt;=&gt; </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/wave/issues/94">#94</a>: fix incorrect behavior of __LINE__ and __FILE__ under rescanning </div> </li> </ul> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_75_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0, 11.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0, 11.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_75_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.74.0https://www.boost.org/users/history/version_1_74_0.htmlhttps://www.boost.org/users/history/version_1_74_0.htmlFri, 14 Aug 2020 05:02:54 +0000 <div id="version_1_74_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span> A library of CRTP bases to ease the writing of STL views, iterators, and sequence containers, from Zach Laine. </div> </li> </ul> </div> <div id="version_1_74_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added an implementation of the proposed standard executors (<a href="http://wg21.link/P0443r13">P0443r13</a>, <a href="http://wg21.link/P1348r0">P1348r0</a>, and <a href="http://wg21.link/P1393r0">P1393r0</a>). </div> </li> <li> <div> Added support for the proposed standard executors to Asio's I/O facilities. <ul> <li> <div> The supplied executors now meet the requirements for the proposed standard executors. These classes also continue to meet the existing requirements for the Networking TS model of executors. </div> </li> <li> <div> All I/O objects, asynchronous operations, and utilities will interoperate with both new proposed standard executors, and with existing Networking TS executors. </div> </li> <li> <div> The <code><span class="identifier">any_io_executor</span></code> type alias has been introduced as the default runtime-polymorphic executor for all I/O objects. This defaults to the <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span><span class="special">&lt;&gt;</span></code> template. If required for backward compatibility, <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code> can be defined to use the old <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">executor</span></code> polymorphic wrapper instead. </div> </li> <li> <div> Support for the existing Networking TS model of executors can be disabled by defining <code><span class="identifier">BOOST_ASIO_NO_TS_EXECUTORS</span></code>. </div> </li> </ul> </div> </li> <li> <div> Added converting move construction and assignment to <code><span class="identifier">basic_waitable_timer</span></code>. </div> </li> <li> <div> Enabled C++20 coroutine support when using <tt>gcc</tt> 10. </div> </li> <li> <div> Added overloads of <code><span class="identifier">co_spawn</span></code> that launch an awaitable. </div> </li> <li> <div> Added a new constructor overload to <code><span class="identifier">use_awaitable_t</span></code>'s default executor adapter, to enable conversion between executor types. </div> </li> <li> <div> Added support for using <code><span class="identifier">detached_t</span></code> as a default completion token, by adding members <code><span class="identifier">as_default_on</span><span class="special">()</span></code> and <code><span class="identifier">as_default_on_t</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Added a move constructor to <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>. </div> </li> <li> <div> Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> write operations to linearise gather-write buffer sequences. </div> </li> <li> <div> Added compile-time detection of the deprecated <code><span class="identifier">asio_handler_invoke</span></code>, <code><span class="identifier">asio_handler_allocate</span></code>, and <code><span class="identifier">asio_handler_deallocate</span></code> hooks, when <code><span class="identifier">BOOST_ASIO_NO_DEPRECATED</span></code> is defined. </div> </li> <li> <div> Implemented a number of performance optimisations. </div> </li> <li> <div> Added source location support to handler tracking. </div> </li> <li> <div> Implemented various improvements to the <tt>handlerviz.pl</tt> tool. </div> </li> <li> <div> Added the <tt>handlerlive.pl</tt> tool, which processes handler tracking output to produce a list of "live" handlers. </div> </li> <li> <div> Added the <tt>handlertree.pl</tt> tool, which filters handler tracking output to include only those events in the tree that produced the nominated handlers. </div> </li> <li> <div> Added changes for clang-based Embarcadero C++ compilers. </div> </li> <li> <div> Fixed a deadlock that can occur when multiple threads concurrently initialise the Windows I/O completion port backend. </div> </li> <li> <div> Fixed <code><span class="identifier">async_compose</span></code> to work with copyable handlers when passed by lvalue. </div> </li> <li> <div> Fixed completion signature deduction in <code><span class="identifier">co_spawn</span></code>. </div> </li> <li> <div> Removed a spurious <code><span class="identifier">Executor</span></code> base class from the <code><span class="identifier">executor_binder</span></code> implementation. </div> </li> <li> <div> Various fixes and improvements in the documentation and examples. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_74_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Added missing <code><span class="keyword">const</span></code> qualifiers to some operations in <code><span class="identifier">atomic_ref</span></code>. </div> </li> <li> <div> Added support for <code><span class="identifier">yield</span></code> instruction on ARMv8-A. The instruction is used internally in spin loops to reduce CPU power consumption. </div> </li> <li> <div> Added support for C++20 <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_wait_notify_ops">waiting and notifying operations</a>. The implementation includes generic backend that involves the internal lock pool, as well as specialized backends for Windows, Linux, FreeBSD, DragonFly BSD and NetBSD. Atomic types provide a new method <code><span class="identifier">has_native_wait_notify</span></code>, a static boolean constant <code><span class="identifier">always_has_native_wait_notify</span></code> and a set of capability macros that allow to detect if the implementation supports native waiting and notifying operations for a given type. </div> </li> <li> <div> Changed internal representation of <code><span class="identifier">atomic_flag</span></code> to use 32-bit storage. This allows for more efficient waiting and notifying operations on <code><span class="identifier">atomic_flag</span></code> on some platforms. </div> </li> <li> <div> Added support for build-time configuration of the internal lock pool size. The user can define the <code><span class="identifier">BOOST_ATOMIC_LOCK_POOL_SIZE_LOG2</span></code> macro to specify binary logarithm of the size of the lock pool. The default value is 8, meaning that the size of the lock pool is 256, up from 64 used in the previous release. </div> </li> <li> <div> Added support for a new set of atomic types dedicated for <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_ipc">inter-process communication</a>: <code><span class="identifier">ipc_atomic_flag</span></code>, <code><span class="identifier">ipc_atomic</span></code> and <code><span class="identifier">ipc_atomic_ref</span></code>. Users are recommended to port their code using non-IPC types for inter-process communication to the new types. The new types provide the same set of operations as their non-IPC counterparts, with the following differences: <ul> <li> <div> Most operations have an added precondition that <code><span class="identifier">is_lock_free</span></code> returns <code><span class="keyword">true</span></code> for the given atomic object. The library will issue a compile time error if this precondition is known to be not satisfied at compile time. </div> </li> <li> <div> All provided operations are address-free, meaning that the atomic object (in case of <code><span class="identifier">ipc_atomic_ref</span></code> - the referenced object) may be located in process-shared memory or mapped into the same process at multiple different addresses. </div> </li> <li> <div> The new <code><span class="identifier">has_native_wait_notify</span></code> operation and <code><span class="identifier">always_has_native_wait_notify</span></code> constant indicate support for native inter-process waiting and notifying operations. When that support is not present, the operations are implemented with a busy loop, which is less efficient, but still is address-free. A separate set of capability macros is also provided to indicate this support. </div> </li> </ul> </div> </li> <li> <div> Added new <code><span class="identifier">atomic_unsigned_lock_free</span></code> and <code><span class="identifier">atomic_signed_lock_free</span></code> types introduced in C++20. The types indicate the atomic object type for an unsigned or signed integer, respectively, that is lock-free and preferably has native support for waiting and notifying operations. </div> </li> <li> <div> Added new gcc assembler backends for ARMv8-A (for both AArch32 and AArch64). The new backends are used to implement operations not supported by compiler intrinsics (including 128-bit operations on AArch64) and can also be used when compiler intrinsics are not available. Both little and big endian targets are supported. AArch64 backend supports extensions defined in ARMv8.1 and ARMv8.3. </div> </li> <li> <div> Added support for big endian targets in the legacy ARM backend based on gcc assembler blocks (this backend is used on ARMv7 and older targets). Previously, the backend assumed little endian memory layout, which is significant for 64-bit operations. </div> </li> <li> <div> Improved performance of seq_cst stores and thread fences on x86 by using <code><span class="identifier">lock</span></code>-prefixed instructions instead of <code><span class="identifier">mfence</span></code>. This means that the operations no longer affect non-temporal stores, which was also not guaranteed before. Use specialized instructions and intrinsics to order non-temporal memory accesses. </div> </li> <li> <div> Fixed capability macros for 80-bit <code><span class="keyword">long</span> <span class="keyword">double</span></code> on x86 targets not indicating lock-free operations even if 128-bit atomic operations were available. </div> </li> <li> <div> Fixed compilation of gcc asm blocks on Alpha targets. </div> </li> <li> <div> In the gcc <code><span class="identifier">__sync</span><span class="special">*</span></code> intrinsics backend, fixed that store and load operations of large objects (larger than a pointer size) could be non-atomic. The implementation currently assumes that small objects can be stored with a single instruction atomically on all modern architectures. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This update brings bug fixes and support for the following changes changes in Boost.Asio: </div> </li> <li> <div> Beast supports <code><span class="identifier">BOOST_ASIO_NO_DEPRECATED</span></code>. Define this to help identify areas of your Beast and Asio code which use deprecated Asio interfaces. </div> </li> <li> <div> Beast also supports <code><span class="identifier">BOOST_ASIO_NO_TS_EXECUTORS</span></code>. Define this to identify uses of executors from the now potentially outdated <a href="https://cplusplus.github.io/networking-ts/draft.pdf">Networking TS</a> </div> </li> <li> <div> Asio will use the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r11.html">Standard Executors</a> model by default. You can prevent this behaviour by defining <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code> in which the Networking TS model will be used by default. Setting this flag does not prevent a program from using executors from the Standard Executors model explicitly. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/bimap/">Bimap</a>:</span> <ul> <li> <div> Correct allocator usage (fixes C++20 compilation). (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Implement <code><span class="identifier">BOOST_NO_CXX11_OVERRIDE</span></code> and <code><span class="identifier">BOOST_OVERRIDE</span></code>. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Implemented the allocator access utilities which provide a replacement for <code><span class="identifier">allocator_traits</span></code> with individual traits and functions for each facility. They support the C++11 allocator model when possible and provide a fallback for C++98 compatibility. These are now used in Circular_Buffer, Wave, Lockfree, Heap, Smart_Ptr, Dynamic_Bitset, Format, Bimap and more. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Multiple fixes for the <code><span class="identifier">library_info</span></code> work on empty shared objects. </div> </li> <li> <div> Compilation fixes for C++98 and C++11 modes (<a href="https://github.com/boostorg/dll/issues/28">#28</a>). </div> </li> <li> <div> Fixes for <code><span class="identifier">smart_library</span></code> manglings (thanks to XiaLiChao82 <a href="https://github.com/boostorg/dll/issues/37">#37</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span> <ul> <li> <div> Enabled scoped enumeration types in <code><span class="identifier">endian_reverse</span></code>. </div> </li> <li> <div> Enabled <code><span class="keyword">bool</span></code>, <code><span class="keyword">enum</span></code>, <code><span class="keyword">float</span></code>, <code><span class="keyword">double</span></code> in <code><span class="identifier">endian_reverse_inplace</span></code>. </div> </li> <li> <div> Added an overload of <code><span class="identifier">endian_reverse_inplace</span></code> for arrays. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Removed compile-time checks for support for symlinks and hardlink on Windows. Instead, a runtime check is used. (<a href="https://github.com/boostorg/filesystem/pull/142">PR#142</a>) </div> </li> <li> <div> Fixed handling of reparse points in <code><span class="identifier">canonical</span></code> and <code><span class="identifier">read_symlink</span></code> on Windows. This also affects other algorithms that involve <code><span class="identifier">canonical</span></code> and <code><span class="identifier">read_symlink</span></code> in their implementation. (<a href="https://github.com/boostorg/filesystem/pull/100">PR#100</a>, <a href="https://github.com/boostorg/filesystem/issues/85">#85</a>, <a href="https://github.com/boostorg/filesystem/issues/99">#99</a>, <a href="https://github.com/boostorg/filesystem/issues/123">#123</a>, <a href="https://github.com/boostorg/filesystem/issues/125">#125</a>) </div> </li> <li> <div> Fixed that <code><span class="identifier">read_symlink</span></code> on Windows could potentially fail or cause failures elsewhere with a sharing violation error, if the same symlink was opened concurrently. (<a href="https://github.com/boostorg/filesystem/issues/138">#138</a>) </div> </li> <li> <div> Fixed that <code><span class="identifier">is_symlink</span><span class="special">(</span><span class="identifier">directory_entry</span><span class="special">)</span></code> would always return <code><span class="keyword">false</span></code>, even if the directory entry actually referred to a symlink. (<a href="https://github.com/boostorg/filesystem/pull/148">PR#148</a>) </div> </li> <li> <div> Added missing status inspection operation overloads for <code><span class="identifier">directory_entry</span></code> and <code><span class="identifier">error_code</span></code> (e.g. <code><span class="identifier">is_directory</span><span class="special">(</span><span class="identifier">directory_entry</span><span class="special">,</span> <span class="identifier">error_code</span><span class="special">&amp;)</span></code>). Removed incorrect <code><span class="keyword">noexcept</span></code> specifications for the overloads not taking the <code><span class="identifier">error_code</span></code> arguments. </div> </li> <li> <div> <code><span class="identifier">copy_file</span></code> implementation has been updated to perform checks on the source and target files, as required by C++20 ([fs.op.copy.file]/4.1). In particular, the operation will fail if the source or target file is not a regular file or the source and target paths identify the same file. </div> </li> <li> <div> <code><span class="identifier">copy_file</span></code> on POSIX systems will now also copy the source file permissions to the target file, if the target file is overwritten. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">copy_file</span></code> implementations based on <code><span class="identifier">sendfile</span></code> and <code><span class="identifier">copy_file_range</span></code> system calls on Linux, which may improve file copying performance, especially on network filesystems. </div> </li> <li> <div> <strong>Deprecated:</strong> The <code><span class="identifier">copy_option</span></code> enumeration that is used with the <code><span class="identifier">copy_file</span></code> operation is deprecated. As a replacement, the new enum <code><span class="identifier">copy_options</span></code> (note the trailing 's') has been added. The new enum contains values similar to the <code><span class="identifier">copy_options</span></code> enum from C++20. The old enum values are mapped onto the new enum. The old enum will be removed in a future release. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">skip_existing</span></code> option, which allows <code><span class="identifier">copy_file</span></code> operation to succeed without overwriting the target file, if it exists. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">update_existing</span></code> option, which allows <code><span class="identifier">copy_file</span></code> operation to conditionally overwrite the target file, if it exists, if its last write time is older than that of the replacement file. </div> </li> <li> <div> <strong>New:</strong> <code><span class="identifier">copy_file</span></code> now returns <code><span class="keyword">bool</span></code>, which indicates whether the file was copied. </div> </li> <li> <div> <strong>New, breaking change:</strong> <code><span class="identifier">copy</span></code> operation has been extended and reworked to implement behavior specified in C++20 [fs.op.copy]. This includes support for <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">recursive</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">copy_symlinks</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">skip_symlinks</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">directories_only</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">create_symlinks</span></code> and <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">create_hard_links</span></code> options. The operation performs additional checks based on the specified options. Applying <code><span class="identifier">copy</span></code> to a directory with default <code><span class="identifier">copy_options</span></code> will now also copy files residing in that directory (but not nested directories or files in those directories). </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">create_directory</span></code> overload taking two paths. The second path is a path to an existing directory, which is used as a source of permission attributes to use in the directory to create. </div> </li> <li> <div> <strong>Deprecated:</strong> <code><span class="identifier">copy_directory</span></code> operation has been deprecated in favor of the new <code><span class="identifier">create_directory</span></code> overload. Note that the two operations have reversed order of the path arguments. </div> </li> <li> <div> <code><span class="identifier">equivalent</span></code> on POSIX systems now returns the actual error code from the OS if one of the paths does not resolve to a file. Previously the function would return an error code of 1. (<a href="https://github.com/boostorg/filesystem/issues/141">#141</a>) </div> </li> <li> <div> <code><span class="identifier">equivalent</span></code> no longer considers file size and last modification time in order to test whether the two paths refer to the same file. These checks could result in a false negative if the file was modified during the <code><span class="identifier">equivalent</span></code> call. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">absolute</span></code> overloads taking <code><span class="identifier">error_code</span></code> argument. </div> </li> <li> <div> Operations that have <code><span class="identifier">current_path</span><span class="special">()</span></code> as the default value of their arguments and also have an <code><span class="identifier">error_code</span></code> argument will use the <code><span class="identifier">current_path</span><span class="special">(</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">)</span></code> overload to obtain the current path, so that its failure is reported via the <code><span class="identifier">error_code</span></code> argument instead of an exception. </div> </li> <li> <div> <code><span class="identifier">space</span></code> now initializes the <code><span class="identifier">space_info</span></code> structure members to -1 values on error, as required by C++20 ([fs.op.space]/1). </div> </li> <li> <div> <code><span class="identifier">space</span></code> on Windows now accepts paths referring to arbitrary files, not only directories. This is similar to POSIX systems and corresponds to the operation description in C++20. (<a href="https://github.com/boostorg/filesystem/issues/73">#73</a>) </div> </li> <li> <div> <strong>New:</strong> Added implementation of <code><span class="identifier">temp_directory_path</span></code> for Windows CE. (<a href="https://github.com/boostorg/filesystem/pull/25">PR#25</a>) </div> </li> <li> <div> <strong>New:</strong> Improved compatibility with <a href="https://wasi.dev/">WASI</a> platform. (<a href="https://github.com/boostorg/filesystem/pull/144">PR#144</a>) </div> </li> <li> <div> <strong>New:</strong> Improved support for Embarcadero compilers. (<a href="https://github.com/boostorg/filesystem/pull/130">PR#130</a>) </div> </li> <li> <div> <strong>New:</strong> Added implementations of <code><span class="identifier">unique_path</span></code> operation based on <code><span class="identifier">getrandom</span></code> (Linux), <code><span class="identifier">arc4random_buf</span></code> (OpenBSD/FreeBSD/CloudABI) and BCrypt (Windows) system APIs. </div> </li> <li> <div> <strong>Deprecated:</strong> Auto-linking against system libraries on Windows with MSVC-compatible compilers is deprecated and will be removed in a future release. This affects users linking against static library of Boost.Filesystem. Users are advised to update their project build systems to either use a shared library of Boost.Filesystem, or explicitly specify the dependencies of Boost.Filesystem in the linker command line. Users of shared library of Boost.Filesystem are not affected. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/format/">Format</a>:</span> <ul> <li> <div> Correct allocator usage (fixes C++20 compilation). (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/720">PR#720</a> Additional R-tree constructors (thanks to Caian Benedicto). </div> </li> <li> <div> Various improvements in buffer, set and relational operations. </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/709">#709</a> memcpy called for object with no trivial copy-assignment. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/721">#721</a> Compilation error in bgi::detail::rtree::visitors::insert. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/727">#727</a> MSVC warning: conditional expression is constant. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/700">PR#700</a> Missing cases for default strategies in distance algorithm. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/738">PR#738</a> Longitudes out of range in direct geodesic formulas. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Added <ul> <li> <div> Added new constructor initializing <code><span class="identifier">any_image</span></code> from r-value reference to any image (<a href="https://github.com/boostorg/gil/pull/486">PR#486</a>). </div> </li> <li> <div> Implemented mechanism to reverse <code><span class="identifier">kernel_2d</span></code> (<a href="https://github.com/boostorg/gil/pull/489">PR#489</a>). </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> BREAKING: Replace Boost.Variant with Boost.Variant2 (<a href="https://github.com/boostorg/gil/pull/474">PR#474</a>) which completes removal on uses of Boost.MPL (missing from Boost 1.72.0 change added <a href="https://github.com/boostorg/gil/pull/274">PR#274</a>). </div> </li> <li> <div> Use perfect forwarding from apply_operation to visit (<a href="https://github.com/boostorg/gil/pull/491">PR#491</a>). </div> </li> </ul> </div> </li> <li> <div> Removed <ul> <li> <div> BREAKING: Removed dependency on Boost.Variant </div> </li> </ul> </div> </li> <li> <div> Fixed <ul> <li> <div> Fixed invalid conversion from RGB8 to CMYK32 due to overflow (<a href="https://github.com/boostorg/gil/pull/470">PR#470</a>). </div> </li> <li> <div> Fixed <code><span class="identifier">image</span></code> constructor from other image (<a href="https://github.com/boostorg/gil/pull/477">PR#477</a>). </div> </li> <li> <div> Fixed error <code><span class="identifier">plane_view_t</span></code> is not a class or namespace name (<a href="https://github.com/boostorg/gil/pull/481">PR#481</a>). </div> </li> <li> <div> Fixed <code><span class="identifier">interleaved_view</span></code> factory using <code><span class="identifier">point</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span><span class="special">&gt;</span></code> for dimension (<a href="https://github.com/boostorg/gil/pull/487">PR#487</a>). </div> </li> <li> <div> Fixed documentation replacing uses MPL with MP11 in tutorial (<a href="https://github.com/boostorg/gil/pull/494">PR#494</a>). </div> </li> <li> <div> Fixed missing header in <code><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">kernel</span><span class="special">.</span><span class="identifier">hpp</span></code> to make it self-contained (<a href="https://github.com/boostorg/gil/pull/502">PR#502</a>). </div> </li> </ul> </div> </li> <li> <div> Acknowledgements <ul> <li> <div> Samuel Debionne, Pranam Lashkari, Mateusz Loskot, Debabrata Mandal </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/heap/">Heap</a>:</span> <ul> <li> <div> Correct destruction of top node in <code><span class="identifier">skew_heap</span></code>. (Glen Fernandes) </div> </li> <li> <div> Correct and simplify allocator use. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span> <ul> <li> <div> Fixed compilation of <code><span class="identifier">gcd</span></code> in C++20 mode with clang 10. </div> </li> <li> <div> Improved support for Embarcadero compilers. (<a href="https://github.com/boostorg/integer/pull/21">PR#21</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">function_output_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> header is now deprecated. Users should replace its inclusion with <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">/</span><span class="identifier">function_output_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code>. (<a href="https://github.com/boostorg/iterator/pull/51">PR#51</a>) </div> </li> <li> <div> Improved support for Embarcadero compilers. (<a href="https://github.com/boostorg/iterator/pull/55">PR#55</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Fixed warnings on missing <code><span class="identifier">override</span></code> (thanks to EugeneZelenko <a href="https://github.com/boostorg/lexical_cast/issues/35">#35</a>, <a href="https://github.com/boostorg/lexical_cast/issues/34">#34</a>). </div> </li> <li> <div> Fixes for the the Embarcadero compilers (thanks to Edward Diener). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> The syslog sink backend now verifies the IP version of the local and target addresses set by user. The addresses must have the same IP version as was specified in the <code><span class="identifier">ip_version</span></code> named parameter on the sink backend construction (by default, IPv4 is assumed). When an address is obtained as a result of host name resolution, only addresses with matching IP version are considered. (<a href="https://github.com/boostorg/log/issues/119">#119</a>) </div> </li> </ul> </div> </li> <li> <div> New Features: <ul> <li> <div> Move constructors and assignment operators of various components were marked <code><span class="keyword">noexcept</span></code>. </div> </li> <li> <div> Added a new <code><span class="identifier">range_manip</span></code> stream manipulator that can be used for outputting elements of a range, optionally separated by a delimiter. </div> </li> <li> <div> Added a new <code><span class="identifier">tuple_manip</span></code> stream manipulator that can be used for outputting elements of a tuple or any other heterogeneous sequence, optionally separated by a delimiter. </div> </li> <li> <div> Added a new <code><span class="identifier">optional_manip</span></code> stream manipulator that can be used for outputting optionally present values. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Improved compilation performance of <code><span class="identifier">mp_with_index</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code> for large <code><span class="identifier">N</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">tuple_transform</span></code> (contributed by Hans Dembinski.) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Added <a href="https://www.boost.org/libs/multi_index/doc/tutorial/basics.html#node_handling">node extraction and insertion</a> following the analogous interface of associative containers as introduced in C++17. This feature has also been extended to non key-based indices, in contrast to C++ standard library sequence containers, which do not provide such functionality. </div> </li> <li> <div> Clarified documentation on read/write key extractors (issue <a href="https://github.com/boostorg/multi_index/issues/32">#32</a>). </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> The library now requires a C++11-compliant compiler and stdlib </div> </li> <li> <div> LFS: Add support for files &gt; 2 GB where the underlying system supports it </div> </li> <li> <div> Generic UTF conversion functions are now available in the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">utf</span> <span class="keyword">namespace</span></code> </div> </li> <li> <div> Add support for <code><span class="identifier">stat</span></code> with UTF-8 paths </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Announcements: <ul> <li> <div> The v2.1 branch is expected to be retired end of 2020, with the v2.2 branch becoming the default. You can use the future v2.2 branch now using <a href="https://github.com/ned14/outcome/tree/better_optimisation"><code><span class="identifier">better_optimisation</span></code></a>. This branch has a number of major breaking changes to Outcome v2.1, see the front page for details. </div> </li> </ul> </div> </li> <li> <div> Enhancements: <ul> <li> <div> BREAKING CHANGE <code><span class="keyword">void</span></code> results and outcomes no longer default construct types during explicit construction. Previously if you explicitly constructed a <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> from a non-errored <code><span class="identifier">result</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code>, it default constructed <code><span class="identifier">T</span></code>. This was found to cause unhelpful surprise, so it has been disabled. </div> </li> <li> <div> New macro <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code>. The macro <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code> can be used to enable aliasing of older naming and features to newer naming and features when using a newer version of Outcome. </div> </li> <li> <div> Concepts now have snake case style naming instead of camel case style. When Outcome was first implemented, it was thought that C++ 20 concepts were going to have camel case style. This was changed before the C++ 20 release, and Outcome's concepts have been renamed similarly. This won't break any code in Outcome v2.1, as compatibility aliases are provided. However code compiled against Outcome v2.2 will need to be upgraded, unless <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code> is set to <code><span class="number">210</span></code> or lower. </div> </li> <li> <div> Concepts now live in <code><span class="identifier">OUTCOME_V2_NAMESPACE</span><span class="special">::</span><span class="identifier">concepts</span></code> namespace. Previously concepts lived in the <code><span class="identifier">convert</span></code> namespace, now they live in their own namespace. </div> </li> <li> <div> New concepts <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">basic_outcome</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> added. End users were finding an unhelpful gap in between <code><span class="identifier">is_basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">value_or_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> where they wanted a concept that matched types which were <code><span class="identifier">basic_result</span></code>, but not exactly one of those. Concepts filling that gap were added. </div> </li> <li> <div> Operation <code><span class="identifier">TRY</span></code> works differently from Outcome v2.2 onwards. This is a severely code breaking change which change the syntax of how one uses <code><span class="identifier">OUTCOME_TRY</span><span class="special">()</span></code>. A regular expression suitable for upgrading code can be found in the list of changes between Outcome v2.1 and v2.2. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <a href="https://github.com/ned14/outcome/issues/224">#224</a> The clang Apple ships in Xcode 11.4 (currently the latest) has not been patched with the fixes to LLVM clang that fix <code><span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_constructible</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">void</span><span class="special">&gt;)</span></code> failing to compile which I originally submitted years ago. So give up waiting on Apple to fix their clang, add a workaround to Outcome. </div> </li> <li> <div> Spare storage could not be used from within no-value policy classes. Due to an obvious brain fart when writing the code at the time, the spare storage APIs had the wrong prototype which prevented them working from within policy classes. Sorry. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Fixed internal ambiguity problem between <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_erasure</span><span class="special">::</span><span class="identifier">any</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> (issue <a href="https://github.com/boostorg/poly_collection/issues/17">#17</a>). </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span> <ul> <li> <div> Added <code><span class="identifier">owner_equals</span></code> to <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">weak_ptr</span></code>, <code><span class="identifier">local_shared_ptr</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">owner_hash_value</span></code> to <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">weak_ptr</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">owner_equal_to</span></code>, <code><span class="identifier">owner_hash</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specializations for <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">local_shared_ptr</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> support to, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">equal_to</span></code> specializations for, <code><span class="identifier">weak_ptr</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Fixed a build error when compiled with <code><span class="special">-</span><span class="identifier">fno</span><span class="special">-</span><span class="identifier">exceptions</span></code> (thanks to Jeremiah Rodriguez <a href="https://github.com/boostorg/stacktrace/issues/91">#91</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> <code><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span></code> now returns <code><span class="identifier">failed</span><span class="special">()</span></code> instead of <code><span class="identifier">value</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_traits/">Type_Traits</a>:</span> <ul> <li> <div> Implemented <code><span class="identifier">conjunction</span></code>, <code><span class="identifier">disjunction</span></code>, <code><span class="identifier">negation</span></code>, <code><span class="identifier">is_trivially_copyable</span></code>, <code><span class="identifier">is_scoped_enum</span></code>, and <code><span class="identifier">is_unscoped_enum</span></code>. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed warnings on missing <code><span class="identifier">override</span></code> (thanks to EugeneZelenko <a href="https://github.com/boostorg/variant/issues/78">#78</a>). </div> </li> <li> <div> Fixes for the the Embarcadero compilers (thanks to Edward Diener <a href="https://github.com/boostorg/variant/issues/79">#79</a>). </div> </li> <li> <div> Updated header locations to avoid warnings about using deprecated headers (thanks to Andrey Semashev <a href="https://github.com/boostorg/variant/issues/80">#80</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Added support for derived types in <code><span class="identifier">visit</span></code>. </div> </li> <li> <div> Improved compilation performance for many (hundreds of) alternatives. </div> </li> <li> <div> Added support for <code><span class="identifier">visit</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> Implement C++20 features for variadics, including <code><span class="identifier">__VA_OPT__</span></code> (<a href="https://github.com/boostorg/wave/pull/75">PR#75</a>) </div> </li> <li> <div> Implement <code><span class="identifier">__has_include</span></code> (<a href="https://github.com/boostorg/wave/pull/102">PR#102</a>) </div> </li> <li> <div> Introduce new sample: <code><span class="identifier">check_macro_naming</span></code>, useful with Boost itself (<a href="https://github.com/boostorg/wave/pull/97">PR#97</a>) </div> </li> <li> <div> Fix compilation issue caused by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code> member removal in C++20 (<a href="https://github.com/boostorg/wave/pull/72">PR#72</a>) </div> </li> <li> <div> Repair Xpressive lexer and <code><span class="identifier">token_statistics</span></code> sample (<a href="https://github.com/boostorg/wave/pull/79">PR#79</a>) </div> </li> <li> <div> Repair lexertl lexer (<a href="https://github.com/boostorg/wave/pull/78">PR#78</a>) </div> </li> <li> <div> Ensure hooks are run on predefined macros as well (<a href="https://github.com/boostorg/wave/pull/87">PR#87</a>) </div> </li> <li> <div> Various minor bug fixes </div> </li> <li> <div> C++98/03 support is now deprecated and will be removed in 1.77 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span> <ul> <li> <div> Fixed compilation errors for placeholders; they now work in the general case, and in particular work with yap::print(). </div> </li> <li> <div> constexpr all the YAP. </div> </li> <li> <div> Fix printing of correct value category in yap::print(). </div> </li> <li> <div> Doc clarification. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_74_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/boostbook/">Boostbook</a>:</span> <ul> <li> <div> Change encoding of generated documentation from US-ASCII to UTF-8. (Glen Fernandes) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_74_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_74_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.73.0https://www.boost.org/users/history/version_1_73_0.htmlhttps://www.boost.org/users/history/version_1_73_0.htmlTue, 28 Apr 2020 03:57:05 +0000 <div id="version_1_73_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. </p> <ul> <li> <div> Outcome <code><span class="identifier">status_code_domain</span></code> assertion removal <ul> <li> <div> <a href="https://www.boost.org/patches/1_73_0/0001-outcome-assert.patch">Outcome patch</a> </div> </li> </ul> </div> </li> <li> <div> Beast and coroutines <ul> <li> <div> <a href="https://www.boost.org/patches/1_73_0/0002-beast-coroutines.patch">Beast patch</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_73_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> Standard library functions with UTF-8 API on Windows, from Artyom Beilis. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/static_string/">StaticString</a>:</span> A dynamically resizable string of characters with compile-time fixed capacity and contiguous embedded storage, from Vinnie Falco and Krystian Stasiowski </div> </li> </ul> </div> <div id="version_1_73_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/align/">Align</a>:</span> <ul> <li> <div> Update <code><span class="identifier">aligned_alloc</span></code> to support older mingw32. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Speedup compilation by not including <code><span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Maintenance work, including CI hardening. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Fixed compatibility with C++20 concept syntax. </div> </li> <li> <div> Marked the POSIX descriptor classes' move constructors as <code><span class="keyword">noexcept</span></code>. </div> </li> <li> <div> Added the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">host_name_verification</span></code> class, which is a drop-in replacement for <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">rfc2818_verification</span></code>. The <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">rfc2818_verification</span></code> class has been marked as deprecated. As a consequence of this change, SSL support now depends on functions that were introduced in OpenSSL 1.0.2. </div> </li> <li> <div> Added an <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> constructor to take ownership of a native handle. </div> </li> <li> <div> Changed C++ language version detection with <tt>gcc</tt> to use <code><span class="identifier">__cplusplus</span></code> macro. </div> </li> <li> <div> Fixed a work counting issue in the asynchronous resolve operation for endpoints. </div> </li> <li> <div> Fixed the <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code> converting constructors and assignment operators. </div> </li> <li> <div> Ensured that resolvers are restarted correctly after a fork. </div> </li> <li> <div> Fixed compatibility with the current NetBSD release. </div> </li> <li> <div> Removed spurious handler requirement checks in some <code><span class="identifier">async_read</span></code> overloads. </div> </li> <li> <div> Changed the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> class to propagate non-EOF errors from the <code><span class="identifier">add_certificate_authority</span></code> function. </div> </li> <li> <div> Fixed a Windows-specific <code><span class="identifier">thread_pool</span></code> destructor hang that occurred when the pool had an associated I/O object. </div> </li> <li> <div> Changed the <tt>select</tt> reactor to recreate the "self pipe trick" sockets on error. This addresses an issue on some versions of Windows, where these sockets are discconected after a system sleep. </div> </li> <li> <div> Fixed a compile error in the buffered streams due to the lack of reference collapsing in C++98. </div> </li> <li> <div> Changed the <code><span class="identifier">priority_scheduler</span></code> example to demonstrate calls to <code><span class="identifier">shutdown</span><span class="special">()</span></code> and <code><span class="identifier">destroy</span><span class="special">()</span></code>. </div> </li> <li> <div> Removed some unnecessary null pointer checks. </div> </li> <li> <div> Changed Windows platform detection to recognise TV titles as Windows apps. </div> </li> <li> <div> Added some emscripten compatibility patches. </div> </li> <li> <div> Fixed a compile error in the <code><span class="identifier">use_awaitable_t</span><span class="special">::</span><span class="identifier">as_default_on</span></code> function. </div> </li> <li> <div> Changed all uses of the boost.bind placeholders to use the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">placeholders</span></code> namespace. </div> </li> <li> <div> Fixed a potential compile error in the <code><span class="identifier">async_compose</span></code> implementation due to incorrect overload selection. </div> </li> <li> <div> Suppressed some non-virtual destructor warnings. </div> </li> <li> <div> Various documentation fixes and improvements. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> <ul> <li> <div> Added <code><span class="identifier">source_location</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Implemented C++20 <code><span class="identifier">atomic_ref</span></code>. See <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref">docs</a> and especially the <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref.caveats">caveats</a> section. </div> </li> <li> <div> Implemented <code><span class="identifier">atomic_flag</span><span class="special">::</span><span class="identifier">test</span></code> operation, which was introduced in C++20. </div> </li> <li> <div> <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> should now take into account alignment requirements of <code><span class="identifier">T</span></code>, which makes a difference if those requirements are higher than that of the internal storage of <code><span class="identifier">atomic</span></code>. </div> </li> <li> <div> Added static asserts enforcing the requirements on the value type <code><span class="identifier">T</span></code> used with <code><span class="identifier">atomic</span></code> and <code><span class="identifier">atomic_ref</span></code>. This should prohibit invalid types from being used as atomics. </div> </li> <li> <div> Improved internal lock pool implementation. The pool is larger, and lock selection accounts for atomic object alignment, which should reduce the potential of thread contention. </div> </li> <li> <div> Fixed incorrect x86 code generated for <code><span class="identifier">bit_test_and_</span><span class="special">*</span></code> operations on 8 and 16-bit arguments. Other architectures are not affected. </div> </li> <li> <div> Fixed a possible unaligned memory access in <code><span class="identifier">compare_exchange_</span><span class="special">*</span></code> operations, if alignment requirements of <code><span class="identifier">value_type</span></code> are less than that of the internal storage of <code><span class="identifier">atomic</span></code>. </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">.</span><span class="identifier">hpp</span></code> no longer includes <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">/</span><span class="identifier">atomic_flag</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">atomic</span><span class="special">/</span><span class="identifier">fences</span><span class="special">.</span><span class="identifier">hpp</span></code> and only defines the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">atomic</span></code> class template and related typedefs. Include the other headers explicitly or use <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">.</span><span class="identifier">hpp</span></code> to include all parts of Boost.Atomic. </div> </li> <li> <div> The <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage</span><span class="special">()</span></code> accessor and associated <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage_type</span></code> type are deprecated. Instead, users are advised to use <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">()</span></code> and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>, respectively. Users can define <code><span class="identifier">BOOST_ATOMIC_SILENCE_STORAGE_DEPRECATION</span></code> to disable deprecation warnings for the time of transition. The deprecated pieces will be removed in a future release. </div> </li> <li> <div> Removed support for <code><span class="identifier">BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST</span></code>. This macro was used as a helper for transition to the updated returned values of <code><span class="special">*</span><span class="identifier">_and_test</span></code> operations in Boost.Atomic 1.67, which was released 2 years before 1.73. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This is a maintenance update. </div> </li> <li> <div> Nested <code><span class="identifier">mutable_data_type</span></code> in Beast dynamic buffers is deprecated. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/context/issues/133">#133</a>: IBM Z: Fix fcontext routines </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/132">#132</a>: mips64/n64: .align 3 </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/131">#131</a>: Use OSPLAT MIPS32/MIPS64 to set different ABI </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/129">#129</a>: Fix non-PIC in RISC-V assembly </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polymorphic_downcast</span></code> for references (thanks to Julien Delacroix for the patch). </div> </li> <li> <div> Significant docs update. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/date_time/">date_time</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/date_time/issues/123">#123</a>: Support constexpr in c++14 and above </div> </li> <li> <div> <a href="https://github.com/boostorg/date_time/issues/134">#134</a>: Make date_time all inline. Users no longer need to link the library for any functions. Library remains for build compatibility. </div> </li> <li> <div> <a href="https://github.com/boostorg/date_time/issues/132">#132</a>: Deprecate support for legacy io and <code><span class="identifier">USE_DATE_TIME_PRE_1_33_FACET_IO</span></code> macro </div> </li> <li> <div> Misc documentation updates and bugfixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fixes and tests for demangling in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">smart_library</span></code> (thanks to Ramil Gauss for <a href="https://github.com/boostorg/dll/issues/35">#35</a>). </div> </li> <li> <div> Make UB sanitizers happy with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span></code> <a href="https://github.com/boostorg/dll/issues/30">#30</a>. </div> </li> <li> <div> Ceased dependence on MPL improving compile times (thanks to Nikita Kniazev for <a href="https://github.com/boostorg/dll/issues/34">#34</a>). </div> </li> <li> <div> Clang and ICC on Windows fixes and CI support for those platforms (thanks to Nikita Kniazev <a href="https://github.com/boostorg/dll/issues/33">#33</a>). </div> </li> <li> <div> Maintenance work, including CI hardening and tests improving. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> <div> Fixed a portability issue in the definition of the maximum block limit. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/650">PR#650</a> Missing input combinations in <code><span class="identifier">intersection</span><span class="special">()</span></code> and introduction of tupled-output. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/671">PR#671</a> Added <code><span class="identifier">d3</span><span class="special">::</span><span class="identifier">point_xyz</span></code> geometry model (thanks to Digvijay Janartha). </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/657">#657</a> Incorrect definition of <code><span class="identifier">EPSG</span><span class="special">:</span><span class="number">3785</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/639">PR#639</a> R-tree exception-safety improvement. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/668">PR#668</a> Andoyer inverse formula fixed for close points. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/687">PR#687</a> Fixed dangling reference in distance algorithm. </div> </li> </ul> </div> </li> <li> <div> Deprecation <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/590">#590</a> Support for C++03 has been deprecated and Geometry will require C++14 from Boost 1.75 onwards. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Added <ul> <li> <div> Added move constructor and move assignment operator to <code><span class="identifier">image</span></code> class (<a href="https://github.com/boostorg/gil/pull/457">PR#457</a>). </div> </li> <li> <div> New member function <code><span class="identifier">size</span><span class="special">()</span></code> in <code><span class="identifier">any_image_view</span></code> class (<a href="https://github.com/boostorg/gil/pull/456">PR#456</a>). </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> Replace Boost.Test with Boost.LightweightTest as the only test framework used in GIL (<a href="https://github.com/boostorg/gil/pull/459">PR#459</a>) and (<a href="https://github.com/boostorg/gil/pull/464">PR#464</a>). This also restructured the <code><span class="identifier">test</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">io</span><span class="special">/</span></code> sub-tree and targets in related <code><span class="identifier">Jamfile</span></code>-s. </div> </li> <li> <div> Removed remaining uses of Boost.MPL (<a href="https://github.com/boostorg/gil/pull/459">PR#459</a>). </div> </li> <li> <div> Renamed all macros using <code><span class="identifier">BOOST_GIL_</span></code> prefix (<a href="https://github.com/boostorg/gil/pull/411">PR#411</a>). </div> </li> <li> <div> Renamed all CMake configuration options using <code><span class="identifier">BOOST_GIL_</span></code> prefix (<a href="https://github.com/boostorg/gil/pull/419">PR#419</a>). </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> Removed <code><span class="identifier">extension</span><span class="special">/</span><span class="identifier">dynamic_image</span><span class="special">/</span><span class="identifier">reduce</span><span class="special">.</span><span class="identifier">hpp</span></code> as unused and possibly unfinished (<a href="https://github.com/boostorg/gil/pull/466">PR#466</a>). An implementation attempt of techniques described in the paper <a href="http://lubomir.org/academic/MinimizingCodeBloat.pdf">Efficient Run-Time Dispatching in Generic Programming with Minimal Code Bloat</a> by Lubomir Bourdev, Jaakko Jarvi. </div> </li> <li> <div> Removed direct dependency on Boost.MPL, Boost.System and Boost.Test. </div> </li> <li> <div> Started removing public macros for compile-time configuration of I/O extension tests, i.e. <code><span class="identifier">BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES</span></code> and <code><span class="identifier">BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES</span></code>. Instead, if a test target is built, it builds all its test cases unconditionally. </div> </li> </ul> </div> </li> <li> <div> Fixed <ul> <li> <div> Avoid <code><span class="identifier">longjmp</span></code> interaction during destruction of I/O extension objects (<a href="https://github.com/boostorg/gil/pull/433">PR#433</a>). </div> </li> <li> <div> Fixed missing alignment default value in constructor of <code><span class="identifier">image</span></code> class (<a href="https://github.com/boostorg/gil/pull/429">PR#429</a>). </div> </li> <li> <div> Fixed segmentation fault when reading corrupted PNG file (<a href="https://github.com/boostorg/gil/pull/414">PR#414</a>). </div> </li> <li> <div> Fixed illegal initialization of return values in the old IOv1 interface of I/O extension (<a href="https://github.com/boostorg/gil/pull/409">PR#409</a>). </div> </li> </ul> </div> </li> <li> <div> Acknowledgements <ul> <li> <div> Samuel Debionne, Thiago Henrique Hüpner, Pranam Lashkari, Mateusz Loskot, Debabrata Mandal, Olzhas Zhumabek </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> New features <ul> <li> <div> Added <code><span class="identifier">crop</span></code> command to <code><span class="identifier">reduce</span></code> algorithm </div> </li> <li> <div> <code><span class="identifier">slice</span></code> command in <code><span class="identifier">reduce</span></code> now works on <code><span class="identifier">category</span></code> axis </div> </li> <li> <div> Added <code><span class="identifier">count</span></code> accumulator, can be used to add arbitrary metadata to each cell </div> </li> <li> <div> <code><span class="identifier">sum</span></code> algorithm gained a new argument to optionally sum only over inner bins </div> </li> </ul> </div> </li> <li> <div> Several fixes for bugs in corner cases </div> </li> <li> <div> Enhanced documentation <ul> <li> <div> How to use Boost.Histogram as a backend in an external API </div> </li> <li> <div> More on how to use Boost.Histogram with custom accumulators and Boost.Accumulators </div> </li> <li> <div> More on how to use <code><span class="identifier">reduce</span></code> </div> </li> <li> <div> Updated benchmarks </div> </li> </ul> </div> </li> <li> <div> See the <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">full changelog here</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/icl/">icl</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/icl/pull/23">PR#23</a>: Remove references to date_time compiled library. </div> </li> <li> <div> <a href="https://github.com/boostorg/icl/pull/17">PR#17</a>: Fix forward decl lower and upper less equal. </div> </li> <li> <div> Misc bugfixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/io/">IO</a>:</span> <ul> <li> <div> Made all the IOS state saver classes non-copyable. (Glen Fernandes) </div> </li> <li> <div> Correctly handle error upon first read from the input stream when reading a quoted string. (Glen Fernandes) </div> </li> <li> <div> Implemented <code><span class="identifier">ostream_joiner</span></code> for delimiter based joining. (Glen Fernandes) </div> </li> <li> <div> Relocated <code><span class="identifier">ostream_string</span></code> from the Utility library to the IO library as <code><span class="identifier">ostream_put</span></code>. </div> </li> <li> <div> Correctly handle stream width and fill in quoted output. (Glen Fernandes) </div> </li> <li> <div> Optimize quoted output to write directly to the stream buffer. (Glen Fernandes) </div> </li> <li> <div> Glen Fernandes became the maintainer of the IO library. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Maintenance work, including CI hardening and better workarounds for broken standard libraries (thanks to Nikita Kniazev <a href="https://github.com/boostorg/lexical_cast/issues/31">#31</a>, <a href="https://github.com/boostorg/lexical_cast/issues/32">#32</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> New Features: <ul> <li> <div> Default sink used in trivial logging, when no sinks are registered in the logging core, now automatically flushes output after each log record. (<a href="https://github.com/boostorg/log/issues/103">#103</a>) </div> </li> <li> <div> <code><span class="identifier">core</span><span class="special">::</span><span class="identifier">flush</span></code> now performs a flush on the default sink used for trivial logging, when no sinks are registered. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Added a workaround for some syslog API implementations (e.g. glibc), which do not save the application identification string in <code><span class="identifier">openlog</span></code> call. Such implementations could access already freed memory on each <code><span class="identifier">syslog</span></code> call, resulting in undefined behavior. (<a href="https://github.com/boostorg/log/issues/97">#97</a>) </div> </li> <li> <div> Fixed that log file rotation on a specific day of month (e.g. <code><span class="identifier">rotation_at_time_point</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">greg_day</span><span class="special">(</span><span class="number">1</span><span class="special">))</span></code>) could be silently ignored and not happen. (<a href="https://github.com/boostorg/log/issues/98">#98</a>) </div> </li> <li> <div> Fixed that <code><span class="identifier">text_file_backend</span><span class="special">::</span><span class="identifier">rotate_file</span></code> could throw if there were no log records written yet and target file name pattern was set. </div> </li> <li> <div> Ported various components of the library to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> to improve compatibility with C++20 allocators. </div> </li> <li> <div> Fixed compilation errors when building in MSYS2 Cygwin environment. (<a href="https://github.com/boostorg/log/issues/102">#102</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> IMPORTANT: C++03 support is now deprecated and will be removed from March 2021. </div> </li> <li> <div> Added Cubic Hermite Interpolation. </div> </li> <li> <div> Added Modified Akima Interpolation. </div> </li> <li> <div> Added PCHIP Interpolation. </div> </li> <li> <div> Added Quintic Hermite Interpolation. </div> </li> <li> <div> Added entropy to numerous distributions. </div> </li> <li> <div> Allow trivial quadrature case where the two end points are equal, and in addition allow bounds to be interchanged. </div> </li> <li> <div> Fix exp_sinh quadrature to work with complex types over a non-native range. </div> </li> <li> <div> Fix miscellaneous compiler warnings in factorial.hpp. </div> </li> <li> <div> Use std::chrono rather than boost::chrono in timed pFq calculations. </div> </li> <li> <div> Remove much of the old boost::mpl dependencies to improve constexpr support. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Added <code><span class="identifier">mp_unique_if</span></code> (contributed by Kris Jusiak) </div> </li> <li> <div> Added <code><span class="identifier">mp_flatten</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_rotate_left</span></code>, <code><span class="identifier">mp_rotate_right</span></code> (contributed by Duncan Barber) </div> </li> <li> <div> Added <code><span class="identifier">mp_compose</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_power_set</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_partial_sum</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_iterate</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> <code><span class="identifier">multi_index_container</span></code> is now <a href="https://en.cppreference.com/w/cpp/named_req/AllocatorAwareContainer"><code><span class="identifier">AllocatorAware</span></code></a>. </div> </li> <li> <div> Swapping of internal <code><span class="identifier">KeyFromValue</span></code>, <code><span class="identifier">Compare</span></code>, <code><span class="identifier">Hash</span></code> and <code><span class="identifier">Pred</span></code> objects now selects the appropriate <code><span class="identifier">swap</span></code> function between <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">swap</span></code> and ADL candidates, in accordance with standard specifications in <strong>[swappable.requirements]</strong> (issue <a href="https://github.com/boostorg/multi_index/issues/29">#29</a>). </div> </li> <li> <div> Provided some internal copy constructors and assignment operators whose default implicit definition is deprecated in C++11 onwards (<strong>[depr.impldec]</strong>), which was warned about on some compilers. </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> IMPORTANT: Mark C++03 support as deprecated and due for removal in 2021. </div> </li> <li> <div> Big update to cpp_int adds faster Karatsuba and Coomba multiplication routines. </div> </li> <li> <div> Fix conversion of gmp_rational to <code><span class="keyword">long</span> <span class="keyword">double</span></code> and <code><span class="identifier">__float128</span></code>, fixes #178. </div> </li> <li> <div> Fix up libtommath support to function with the latest libtom releases. </div> </li> <li> <div> Fix up some incompatibilities with the latest Intel C++ compiler. </div> </li> <li> <div> Fix up <code><span class="keyword">constexpr</span></code> arithmetic support for latest MSVC release. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Enhancements: <ul> <li> <div> Performance of Outcome-based code compiled by clang has been greatly improved. The previous implementation of Outcome's status bitfield confused clang's optimiser, which caused low quality codegen. Unlike most codegen issues, this was noticeably in empirical benchmarks of real world code, as was shown by <a href="https://wg21.link/P1886">P1886 <strong>Error speed benchmarking</strong></a>. </div> </li> <li> <div> The safe part of the <a href="https://github.com/ned14/outcome/tree/better_optimisation"><code><span class="identifier">better_optimisation</span></code></a> Outcome v2.2.0 future branch was merged to Outcome v2.1.3 which includes a new status bitfield implementation. This appears to not confuse clang's optimiser, and clang 9 produces code which routinely beats GCC 9's code for various canned use cases. </div> </li> <li> <div> Installability is now CI tested per commit. Due to installability of standalone Outcome (e.g. <code><span class="identifier">make</span> <span class="identifier">install</span></code>) breaking itself rather more frequently than is ideal, installability is now tested on CI per commit. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <a href="https://github.com/ned14/outcome/issues/214">#214</a> Newer Concepts implementing compilers were unhappy with the early check for destructibility of <code><span class="identifier">T</span></code> and <code><span class="identifier">E</span></code>, so removed template constraints, falling back to static assert which runs later in the type instantiation sequence. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/220">#220</a> A false positive undefined behaviour sanitiser failure in some use cases of Experimental Outcome was worked around to avoid the failure message. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Suppressed a potential redundant move warning in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">poly_collection</span><span class="special">::</span><span class="identifier">for_each</span></code>. </div> </li> <li> <div> Fixed a bug by which elements were copied rather than moved in allocator-extended move construction and move assigment between collections with non-propagating, unequal allocators. </div> </li> <li> <div> Allocator-extended move construction no longer decays to allocator-extended copy construction for the legacy version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Added documentation on distribution of PDBs <a href="https://github.com/boostorg/stacktrace/issues/55">#55</a>, <a href="https://github.com/boostorg/stacktrace/issues/47">#47</a> (thanks to emptyVoid and Roger Orr for information and to zlojvavan for testing). </div> </li> <li> <div> Fixed msvc-9 build </div> </li> <li> <div> Maintenance work, including test fixes <a href="https://github.com/boostorg/stacktrace/issues/86">#86</a>, fixing typos <a href="https://github.com/boostorg/stacktrace/issues/84">#84</a>, CI improvements and hardening, inspect tool fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.13 see the <a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> New feature: It is now possible to combine tolerance indication, user message and collection comparison modifier in a single <code><span class="identifier">BOOST_TEST</span></code> expression. See change logs for more details. </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> GitHub Issues: <a href="https://github.com/boostorg/test/issues/173">#173</a>, <a href="https://github.com/boostorg/test/issues/179">#179</a>, <a href="https://github.com/boostorg/test/issues/220">#220</a>, <a href="https://github.com/boostorg/test/issues/221">#221</a>, <a href="https://github.com/boostorg/test/issues/235">#235</a> <a href="https://github.com/boostorg/test/issues/237">#237</a>, <a href="https://github.com/boostorg/test/issues/241">#241</a>, <a href="https://github.com/boostorg/test/issues/245">#245</a>, <a href="https://github.com/boostorg/test/issues/246">#246</a>, <a href="https://github.com/boostorg/test/issues/251">#251</a>, <a href="https://github.com/boostorg/test/issues/253">#253</a> <a href="https://github.com/boostorg/test/issues/254">#254</a>, <a href="https://github.com/boostorg/test/issues/263">#263</a> </div> </li> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/11107">#11107</a> </div> </li> <li> <div> GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/41">PR#41</a>, <a href="https://github.com/boostorg/test/pull/114">PR#114</a>, <a href="https://github.com/boostorg/test/pull/187">PR#187</a>, <a href="https://github.com/boostorg/test/pull/239">PR#239</a>, <a href="https://github.com/boostorg/test/pull/247">PR#247</a> <a href="https://github.com/boostorg/test/pull/252">PR#252</a>, <a href="https://github.com/boostorg/test/pull/259">PR#259</a>, <a href="https://github.com/boostorg/test/pull/265">PR#265</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/throw_exception/">ThrowException</a>:</span> <ul> <li> <div> Added an overload of <code><span class="identifier">throw_exception</span></code> that takes a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> object. </div> </li> <li> <div> NOTE: Projects using <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code> with exceptions disabled will need to add a definition of this new overload. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/tti/">TTI</a>:</span> <ul> <li> <div> Added introspection of function templates for more recent C++ compilers versions from gcc and vc++. as well as all versions of clang. Older versions of vc++ before 14.0 and gcc prior to 4.8 may fail. </div> </li> <li> <div> Added specific introspection for elements of struct/class, enum, and union types, which can be used for more fine-grained introspection than the general 'type' introspection. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Maintenance work, including CI integration with inspect tool. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> The <code><span class="identifier">ostream_string</span></code> facility has moved from the Utility library to the IO library as <code><span class="identifier">ostream_put</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Removed unused includes (thanks to Nikita Kniazev <a href="https://github.com/boostorg/variant/issues/74">#74</a>). </div> </li> <li> <div> Fixed zero-as-null-pointer-constat warnings (thanks to Bart Siwek <a href="https://github.com/boostorg/variant/issues/77">#77</a>). </div> </li> <li> <div> Maintenance work, including typo fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code>. </div> </li> <li> <div> <code><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">...&gt;</span></code> is now trivial when all types in <code><span class="identifier">T</span><span class="special">...</span></code> are trivial. This improves performance by enabling it to be passed to, and returned from, functions in registers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/winapi/">WinAPI</a>:</span> <ul> <li> <div> Headers in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">winapi</span></code> are deprecated and will be removed in a future release. </div> </li> <li> <div> Boost.WinAPI headers no longer include <code><span class="identifier">winerror</span><span class="special">.</span><span class="identifier">h</span></code>. Include <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">winapi</span><span class="special">/</span><span class="identifier">error_codes</span><span class="special">.</span><span class="identifier">hpp</span></code> to get Windows error codes. (<a href="https://github.com/boostorg/winapi/issues/81">#81</a>) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_73_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> <ul> <li> <div> Includes release <a href="https://github.com/boostorg/build/releases/tag/4.2.0">4.2.0</a> of B2. </div> </li> <li> <div> WARNING: Since version 4.0.0 B2 requires a capable C++11 compiler to bootstrap. This is only needed to build B2 itself not to build Boost for your use. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_73_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_73_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow, Michael Caisse and Glen Fernandes managed this release. </p> </div> Version 1.72.0https://www.boost.org/users/history/version_1_72_0.htmlhttps://www.boost.org/users/history/version_1_72_0.htmlWed, 11 Dec 2019 18:06:09 +0000 <div id="version_1_72_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. </p> <ul> <li> <div> Revert cease dependence on range <ul> <li> <div> <a href="https://www.boost.org/patches/1_72_0/0001-revert-cease-dependence-on-range.patch">Coroutine patch</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_72_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Changed the <code><span class="identifier">async_initiate</span></code> helper function to automatically deduce its return type, for C++11 or later. </div> </li> <li> <div> Changed all asynchronous operations to use automatically deduced return types, for C++14 or later. </div> </li> <li> <div> Introduced concepts to support <code><span class="identifier">async_initiate</span></code>. </div> </li> <li> <div> Added the nested template type <code><span class="identifier">rebind_executor</span></code> to all I/O object types. </div> </li> <li> <div> Changed the initiation function objects to report their associated I/O executor via the nested type <code><span class="identifier">executor_type</span></code> and member function <code><span class="identifier">get_executor</span><span class="special">()</span></code>. </div> </li> <li> <div> Added the <code><span class="identifier">default_completion_token</span></code> trait, giving I/O executor types an associated default completion token type for use with asynchronous operations. This trait is specialised for the <code><span class="identifier">use_awaitable</span></code> completion token, for example, to allow asynchronous operations to be used as follows: <code><span class="identifier">co_await</span> <span class="identifier">socket</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">my_endpoint</span><span class="special">)</span></code>. </div> </li> <li> <div> Added missing <code><span class="identifier">async_initiate</span></code> to the Windows-specific I/O objects' asynchronous operations. </div> </li> <li> <div> Ensured that the executor type is propagated to newly accepted sockets. </div> </li> <li> <div> Changed to require that <code><span class="identifier">Protocol</span></code> copy and move operations never throw. </div> </li> <li> <div> Changed to require that <code><span class="identifier">Endpoint</span></code> default constructor and move operations never throw. </div> </li> <li> <div> Added the <code><span class="keyword">noexcept</span></code> qualifier to protocol accessors. </div> </li> <li> <div> Added the <code><span class="keyword">noexcept</span></code> qualifier to socket move constructors. </div> </li> <li> <div> Fixed issues associated with opening serial ports on Windows: <ul> <li> <div> Use the correct constant to initialise the RTS control flag. </div> </li> <li> <div> Specify a default baud rate (9600). </div> </li> </ul> </div> </li> <li> <div> Fixed a lost "outstanding work count" that can occur when an asynchronous accept operation is automatically restarted. </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Added a workaround for <code><span class="identifier">__float128</span></code> not being considered as a floating point type by some versions of libstdc++. </div> </li> <li> <div> Improved compatibility with clang-win compiler. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This is a maintenance update containing bug fixes, and updates to use the new features delivered in Boost.Asio. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/circular_buffer/">Circular Buffer</a>:</span> <ul> <li> <div> Fix issue <a href="https://github.com/boostorg/circular_buffer/issues/29">#29</a>: <code><span class="identifier">max_size</span><span class="special">()</span></code> now takes the allocator's <code><span class="identifier">max_size</span><span class="special">()</span></code> into account. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> architecture s390x supported </div> </li> <li> <div> execution_context removed </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span> <ul> <li> <div> Made <code><span class="identifier">endian_reverse</span></code>, <code><span class="identifier">conditional_reverse</span></code> and <code><span class="special">*</span><span class="identifier">_to_</span><span class="special">*</span></code> <code><span class="keyword">constexpr</span></code> on GCC and Clang </div> </li> <li> <div> Added convenience load and store functions </div> </li> <li> <div> Added floating point convenience typedefs </div> </li> <li> <div> Added a non-const overload of <code><span class="identifier">data</span><span class="special">()</span></code>; changed its return type to <code><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">*</span></code> </div> </li> <li> <div> Added <code><span class="identifier">__int128</span></code> support to <code><span class="identifier">endian_reverse</span></code> when available </div> </li> <li> <div> Added a convenience header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">endian</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Extracted <code><span class="identifier">filesystem_error</span></code> to <code><span class="identifier">exception</span><span class="special">.</span><span class="identifier">hpp</span></code>; <code><span class="identifier">file_status</span></code> and associated enums and functions to <code><span class="identifier">file_status</span><span class="special">.</span><span class="identifier">hpp</span></code>; <code><span class="identifier">directory_entry</span></code>, <code><span class="identifier">directory_iterator</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code> to <code><span class="identifier">directory</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> <strong>Deprecated:</strong> For backward compatibility <code><span class="identifier">operations</span><span class="special">.</span><span class="identifier">hpp</span></code> still includes the new headers <code><span class="identifier">exception</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">file_status</span><span class="special">.</span><span class="identifier">hpp</span></code> and <code><span class="identifier">directory</span><span class="special">.</span><span class="identifier">hpp</span></code>, unless <code><span class="identifier">BOOST_FILESYSTEM_NO_DEPRECATED</span></code> macro is defined. These implicit includes are considered deprecated and will be removed in a future release. Users are encouraged to include the new headers directly or include <code><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> The <code><span class="identifier">filesystem_error</span></code> exception is now implemented in the compiled library of Boost.Filesystem. Users may need to add linking with Boost.Filesystem library in their projects. </div> </li> <li> <div> On POSIX.1-2008 platforms, use <code><span class="identifier">utimensat</span></code> instead of <code><span class="identifier">utime</span></code>. <code><span class="identifier">utime</span></code> is declared obsolete in POSIX.1-2008 and can be disabled e.g. in uClibc-ng. (<a href="https://github.com/boostorg/filesystem/pull/115">PR#115</a>) </div> </li> <li> <div> <code><span class="identifier">directory_iterator</span></code> is now left in the end state on memory allocation errors. </div> </li> <li> <div> In <code><span class="identifier">directory_iterator</span></code> on POSIX systems, support for <code><span class="identifier">readdir</span></code>/<code><span class="identifier">readdir_r</span></code> has been reworked to avoid memory allocations for <code><span class="identifier">dirent</span></code> structures when <code><span class="identifier">readdir</span></code> is used. This reduces memory consumption and eliminates the possibility of buffer overruns in case if <code><span class="identifier">readdir</span></code> produces a very long directory name. </div> </li> <li> <div> On Windows, use Boost.WinAPI to select the target Windows version. </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">directory_options</span></code> enum, which reflects the same named enum from C++20. The enum is supported in <code><span class="identifier">directory_iterator</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code> to customize iteration behavior. In particular, the iterators now support skipping directories that can't be opened due to insufficient permissions. The <code><span class="identifier">symlink_option</span></code> enum is now deprecated and should be replaced with <code><span class="identifier">directory_options</span></code>. </div> </li> <li> <div> By default, <code><span class="identifier">recursive_directory_iterator</span></code> is now reset to the end state in case of errors, as required by C++20. (<a href="https://github.com/boostorg/filesystem/issues/112">#112</a>) </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">directory_options</span><span class="special">::</span><span class="identifier">pop_on_error</span></code> option, which configures <code><span class="identifier">recursive_directory_iterator</span></code> so that it attempts to recover from iteration errors by repeatedly invoking <code><span class="identifier">pop</span><span class="special">()</span></code> until it succeeds or the end state is reached. (<a href="https://github.com/boostorg/filesystem/issues/113">#113</a>) </div> </li> <li> <div> <strong>New:</strong> Added <code><span class="identifier">directory_options</span><span class="special">::</span><span class="identifier">skip_dangling_symlinks</span></code> option, which configures <code><span class="identifier">recursive_directory_iterator</span></code> so that it doesn't follow dangling directory symlinks and continues iteration instead of reporting an error. </div> </li> <li> <div> <strong>Deprecated:</strong> The following members of <code><span class="identifier">recursive_directory_iterator</span></code> are now marked as deprecated: <code><span class="identifier">level</span><span class="special">()</span></code>, <code><span class="identifier">no_push_pending</span><span class="special">()</span></code>, <code><span class="identifier">no_push_request</span><span class="special">()</span></code>, <code><span class="identifier">no_push</span><span class="special">()</span></code>. Users are advised to replace their use with the standard counterparts: <code><span class="identifier">depth</span><span class="special">()</span></code>, <code><span class="identifier">recursion_pending</span><span class="special">()</span></code>, <code><span class="identifier">disable_recursion_pending</span><span class="special">()</span></code>. Note that <code><span class="identifier">recursion_pending</span><span class="special">()</span></code> has the opposite meaning compared to <code><span class="identifier">no_push_pending</span><span class="special">()</span></code> and <code><span class="identifier">no_push_request</span><span class="special">()</span></code>. Deprecated methods will be removed in a future release. </div> </li> <li> <div> Fixed <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_relative</span></code> (and any dependent algorithms) to correctly handle empty, dot and dot-dot path elements in its argument. The behavior is made closer to C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_relative</span></code> in that empty and dot path elements are ignored and dot-dot path elements are accounted by decreasing the number of dot-dot path elements to generate in the resulting relative path. (<a href="https://github.com/boostorg/filesystem/issues/76">#76</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/factory/">Functional/Factory</a>:</span> <ul> <li> <div> Glen Fernandes rewrote the implementations of <code><span class="identifier">factory</span></code> and <code><span class="identifier">value_factory</span></code> to provide the following features: <ul> <li> <div> Support r-value arguments when possible </div> </li> <li> <div> Support arbitrary number of arguments via variadic templates when possible </div> </li> <li> <div> Support allocators that are final </div> </li> <li> <div> Support allocators that use fancy pointers </div> </li> <li> <div> Support for disabled exceptions (<code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code>) </div> </li> <li> <div> Improved compilation times </div> </li> </ul> </div> </li> <li> <div> The following features have been removed: <ul> <li> <div> Increasing limits for C++03 compilers through <code><span class="identifier">BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY</span></code> </div> </li> <li> <div> Using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span></code> in place of <code><span class="keyword">void</span></code> through <code><span class="identifier">BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T</span></code> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Added <ul> <li> <div> GSoC 2019: Lanczos resampling for image down scaling (<a href="https://github.com/boostorg/gil/pull/309">PR#309</a>). </div> </li> <li> <div> GSoC 2019: Methods for binary thresholding, inverted binary thresholding and truncation thresholding (<a href="https://github.com/boostorg/gil/pull/313">PR#313</a>). </div> </li> <li> <div> GSoC 2019: Otsu thresholding method (<a href="https://github.com/boostorg/gil/pull/314">PR#314</a>). </div> </li> <li> <div> GSoC 2019: Adaptive thresholding using mean or gaussian-weighted sum of the neighbourhood area (<a href="https://github.com/boostorg/gil/pull/315">PR#315</a>). </div> </li> <li> <div> GSoC 2019: Harris response calculation (corner detector without non-maximum filtering) (<a href="https://github.com/boostorg/gil/pull/350">PR#350</a>). </div> </li> <li> <div> GSoC 2019: Hessian corner detector (<a href="https://github.com/boostorg/gil/pull/364">PR#364</a>). </div> </li> <li> <div> GSoC 2019: Types for defining 2D kernel, <code><span class="identifier">kernel_2d</span></code> and <code><span class="identifier">kernel_2d_fixed</span></code>, in Numeric extension (<a href="https://github.com/boostorg/gil/pull/361">PR#361</a>). </div> </li> <li> <div> GSoC 2019: Implementation of 2D convolution as new function <code><span class="identifier">convolve_2d</span></code> (<a href="https://github.com/boostorg/gil/pull/367">PR#367</a>). </div> </li> <li> <div> GSoC 2019: Box filtering using the average filter (<a href="https://github.com/boostorg/gil/pull/383">PR#383</a>). </div> </li> <li> <div> GSoC 2019: Blur function based on normalized mean filter (<a href="https://github.com/boostorg/gil/pull/383">PR#383</a>). </div> </li> <li> <div> GSoC 2019: Sobel and Scharr operators (<a href="https://github.com/boostorg/gil/pull/392">PR#392</a>). </div> </li> <li> <div> GSoC 2019: Median filter to remove noise from image (<a href="https://github.com/boostorg/gil/pull/393">PR#393</a>). </div> </li> <li> <div> Continued adding new test cases and significantly improved overall test coverage. </div> </li> <li> <div> Documented purpose of <code><span class="identifier">cached_location_t</span></code> (<a href="https://github.com/boostorg/gil/pull/287">PR#287</a>). </div> </li> <li> <div> Function <code><span class="identifier">convolve_1d</span></code> in Numeric extension for convenient use of <code><span class="identifier">convolve_rows</span></code> and <code><span class="identifier">convolve_cols</span></code> (<a href="https://github.com/boostorg/gil/pull/347">PR#347</a>) and <a href="https://github.com/boostorg/gil/pull/367">PR#367</a>). </div> </li> <li> <div> Function <code><span class="identifier">extend_boundary</span></code> in Numeric extension to perform image boundary extension (<a href="https://github.com/boostorg/gil/pull/386">PR#386</a>). </div> </li> <li> <div> Project release notes maintained in Markdown file <code><span class="identifier">RELEASES</span><span class="special">.</span><span class="identifier">md</span></code> (<a href="https://github.com/boostorg/gil/pull/404">PR#404</a>). </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> Move all tests, core features and extensions, inside <code><span class="identifier">test</span><span class="special">/</span></code> directory (<a href="https://github.com/boostorg/gil/pull/302">PR#302</a>). </div> </li> </ul> </div> </li> <li> <div> Removed <ul> <li> <div> Replace Boost.MPL with Boost.MP11 (<a href="https://github.com/boostorg/gil/pull/274">PR#274</a>). </div> </li> <li> <div> Removed use of Boost.TypeTraits (<a href="https://github.com/boostorg/gil/pull/274">PR#274</a>). </div> </li> <li> <div> Dropped support for GCC &lt;= 4.8 (<a href="https://github.com/boostorg/gil/pull/296">PR#296</a>). </div> </li> <li> <div> Remove <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil</span><span class="special">/</span><span class="identifier">version</span><span class="special">.</span><span class="identifier">hpp</span></code> file as unused (<a href="https://github.com/boostorg/gil/pull/403">PR#403</a>). </div> </li> </ul> </div> </li> <li> <div> Fixed <ul> <li> <div> Undetermined value of default-initialized channel and pixel objects (<a href="https://github.com/boostorg/gil/pull/273">PR#273</a>). </div> </li> <li> <div> Undefined behaviour due to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_trivially_default_constructible</span></code> specializations (<a href="https://github.com/boostorg/gil/pull/284">PR#284</a>). </div> </li> <li> <div> Crash when reading PNG files with an invalid header (<a href="https://github.com/boostorg/gil/pull/385">PR#385</a>). </div> </li> <li> <div> Applied the Rule of Three for numerous types. </div> </li> <li> <div> Removed uses of deprecated implicit definition of defaulted copy assignment operator or copy constructor. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> <ul> <li> <div> Several new features and performance improvements, some bug-fixes </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">Release Notes</a> for a complete list of changes </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Improved compatibility with clang-win compiler. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mpi/">MPI</a>:</span> <ul> <li> <div> Documentation clarifications. </div> </li> <li> <div> Fixed scatterv bug when using explicit input buffer offsets. </div> </li> <li> <div> Enable usage of MPI_Probe and friend with Intel MPI &gt;= 2019.4 </div> </li> <li> <div> Symbol visibility on Windows </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Added Hypergeometric functions 1F0, 0F1, 2F0, 1F1 and pFq. </div> </li> <li> <div> Added Jacobi polynomial (and derivatives) evaluation. </div> </li> <li> <div> Added Gegenbauer polynomial (and derivatives) evaluation. </div> </li> <li> <div> Added Cardinal B-Splines (and derivatives) as polynomial functions in their own right. </div> </li> <li> <div> Added Cardinal Trigonometric Interpolation. </div> </li> <li> <div> Added new statistics sub-section. </div> </li> <li> <div> Added One Sample Student's T Test. </div> </li> <li> <div> Added Anderson Darling test for normality. </div> </li> <li> <div> Added Ljung Box test for auto-correlation. </div> </li> <li> <div> Added Runs test for random sequences. </div> </li> <li> <div> The headers <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">univariate_statistics</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">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">bivariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>, have been deprecated in favor of <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">statistics</span><span class="special">/</span><span class="identifier">univariate_statistics</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">math</span><span class="special">/</span><span class="identifier">statistics</span><span class="special">/</span><span class="identifier">bivariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Added The Empirical CDF distribution. </div> </li> <li> <div> Reworked the Sterling approximation used by multiprecision gamma functions to be applicable to all the function that use the Lanczos approximation at regular precision. Also extended Lanczos approximations up to 100 decimal digit precision. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Big <code><span class="keyword">constexpr</span></code> update allows cpp_int and float128 arithmetic to be fully <code><span class="keyword">constexpr</span></code> with gcc and clang 9 or later, or any compiler supporting <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_constant_evaluated</span><span class="special">()</span></code>. </div> </li> <li> <div> Fix bug in variable precision mpf_float which causes it to go into a tailspin trying to select the correct precision - see https://github.com/boostorg/multiprecision/issues/164. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Enhancements: <ul> <li> <div> Standalone outcome is now <code><span class="identifier">make</span> <span class="identifier">install</span></code>-able, and cmake <code><span class="identifier">find_package</span><span class="special">()</span></code> can find it. Note that you must separately install and <code><span class="identifier">find_package</span><span class="special">()</span></code> Outcome's dependency, quickcpplib, else <code><span class="identifier">find_package</span><span class="special">()</span></code> of Outcome will fail. </div> </li> <li> <div> The git submodule mechanism used by standalone Outcome of specifying dependent libraries has been replaced with a cmake superbuild of dependencies mechanism instead. Upon cmake configure, an internal copy of quickcpplib will be git cloned, built and installed into the build directory from where an internal <code><span class="identifier">find_package</span><span class="special">()</span></code> uses it. This breaks the use of the unconfigured Outcome repo as an implementation of Outcome, one must now do one of: 1. Add Outcome as subdirectory to cmake build. 2. Use cmake superbuild (i.e. <code><span class="identifier">ExternalProject_Add</span><span class="special">()</span></code>) to build and install Outcome into a local installation. 3. Use one of the single header editions. </div> </li> <li> <div> For standalone Outcome, the current compiler is now checked for whether it will compile code containing C++ Concepts, and if it does, all cmake consumers of Outcome will enable C++ Concepts. Set the cmake variable <code><span class="identifier">CXX_CONCEPTS_FLAGS</span></code> to an empty string to prevent auto detection and enabling of C++ Concepts support occurring. </div> </li> <li> <div> <code><span class="identifier">OUTCOME_TRY</span></code> operation now hints to the compiler that operation will be successful. <a href="https://wg21.link/P1886">P1886 <strong>Error speed benchmarking</strong></a> showed that there is considerable gain in very small functions by hinting to the compiler whether the expression is expected to be successful or not. <code><span class="identifier">OUTCOME_TRY</span></code> previously did not hint to the compiler at all, but now it does. A new suite of macros <code><span class="identifier">OUTCOME_TRY_FAILURE_LIKELY</span></code> hint to the compiler that failure is expected. If you wish to return to the previously unhinted behaviour, define <code><span class="identifier">OUTCOME_TRY_LIKELY</span><span class="special">(</span><span class="identifier">expr</span><span class="special">)</span></code> to <code><span class="special">(!!</span><span class="identifier">expr</span><span class="special">)</span></code>. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/199">#199</a> Support for C++ Coroutines has been added. This comes in two parts, firstly there is now an <code><span class="identifier">OUTCOME_CO_TRY</span><span class="special">()</span></code> operation suitable for performing the <code><span class="identifier">TRY</span></code> operation from within a C++ Coroutine. Secondly, in the header <code><span class="identifier">outcome</span><span class="special">/</span><span class="identifier">coroutine_support</span><span class="special">.</span><span class="identifier">hpp</span></code> there are implementations of <code><span class="identifier">eager</span><span class="special">&lt;</span><span class="identifier">OutcomeType</span><span class="special">&gt;</span></code> and <code><span class="identifier">lazy</span><span class="special">&lt;</span><span class="identifier">OutcomeType</span><span class="special">&gt;</span></code> which let you more naturally and efficiently use <code><span class="identifier">basic_result</span></code> or <code><span class="identifier">basic_outcome</span></code> from within C++ Coroutines -- specifically, if the result or outcome will construct from an exception pointer, exceptions thrown in the coroutine return an errored or excepted result with the thrown exception instead of throwing the exception through the coroutine machinery (which in current compilers, has a high likelihood of blowing up the program). Both <code><span class="identifier">eager</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">lazy</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> can accept any <code><span class="identifier">T</span></code> as well. Both have been tested and found working on VS2019 and clang 9. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/210">#210</a> <code><span class="identifier">make_error_code</span><span class="special">()</span></code> and <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code> are now additionally considered for compatible copy and move conversions for <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code>. This lets you construct a <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span><span class="special">&gt;</span></code> into a <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">error_code</span><span class="special">&gt;</span></code>, where <code><span class="identifier">E</span></code> is a custom type which has implemented the ADL discovered free function <code><span class="identifier">error_code</span> <span class="identifier">make_error_code</span><span class="special">(</span><span class="identifier">E</span><span class="special">)</span></code>, but is otherwise unrelated to <code><span class="identifier">error_code</span></code>. The same availability applies for <code><span class="identifier">exception_ptr</span></code> with <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code> being the ADL discovered free function. <code><span class="identifier">basic_outcome</span><span class="special">&lt;&gt;</span></code> has less support for this than <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code> in order to keep constructor count down, but it will accept via this mechanism conversions from <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">failure_type</span><span class="special">&lt;&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <a href="https://github.com/ned14/outcome/issues/184">#184</a> The detection of <code><span class="special">[[</span><span class="identifier">nodiscard</span><span class="special">]]</span></code> support in the compiler was very mildly broken. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span> <ul> <li> <div> Topic added which discusses emptiness </div> </li> <li> <div> Support for the C++20 <code><span class="identifier">__VA_OPT__</span></code> construct <ul> <li> <div> <code><span class="identifier">BOOST_PP_VARIADIC_HAS_OPT</span></code> whether <code><span class="identifier">__VA_OPT__</span></code> is supported at the C++20 level </div> </li> <li> <div> <code><span class="identifier">BOOST_PP_CHECK_EMPTY</span></code> test for emptiness using <code><span class="identifier">__VA_OPT__</span></code> at the C++20 level </div> </li> <li> <div> <code><span class="identifier">BOOST_PP_VA_OPT</span></code> more flexible alternative to <code><span class="identifier">__VA_OPT__</span></code> at the C++20 level </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> Implemented <code><span class="identifier">allocate_unique</span></code> for scalars and arrays. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.12 see the <a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> New feature: <ul> <li> <div> Support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> has been added. </div> </li> <li> <div> Better diagnostic on <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception</span></code> and no rtti mode (thanks to Mikhail Pilin / [pull_request 234]) </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> GitHub Issues: <a href="https://github.com/boostorg/test/issues/206">#206</a>, <a href="https://github.com/boostorg/test/issues/217">#217</a>, <a href="https://github.com/boostorg/test/issues/223">#223</a>, <a href="https://github.com/boostorg/test/issues/229">#229</a> </div> </li> <li> <div> GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/227">PR#227</a>, <a href="https://github.com/boostorg/test/pull/231">PR#231</a>, <a href="https://github.com/boostorg/test/pull/232">PR#232</a>, <a href="https://github.com/boostorg/test/pull/234">PR#234</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/vmd/">VMD</a>:</span> <ul> <li> <div> <code><span class="identifier">BOOST_VMD_IS_EMPTY</span></code> updated to use <code><span class="identifier">__VA_OPT__</span></code> at the C++20 level has 100% reliability </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_72_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_72_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow and Michael Caisse managed this release. </p> </div> Version 1.71.0https://www.boost.org/users/history/version_1_71_0.htmlhttps://www.boost.org/users/history/version_1_71_0.htmlMon, 19 Aug 2019 15:31:22 +0000 <div id="version_1_71_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> A never-valueless, strong guarantee implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span></code>, from Peter Dimov. </div> </li> </ul> </div> <div id="version_1_71_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/align/">Align</a>:</span> <ul> <li> <div> Support for any integral type in the integral versions of <code><span class="identifier">align_up</span></code> and <code><span class="identifier">align_down</span></code>. </div> </li> <li> <div> Revised the implementation of <code><span class="identifier">aligned_allocator</span></code> to no longer require a specialization for <code><span class="keyword">void</span></code>. </div> </li> <li> <div> Define <code><span class="identifier">propagate_on_container_move_assignment</span></code> and <code><span class="identifier">is_always_equal</span></code> in <code><span class="identifier">aligned_allocator</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Improved performance slightly by eliminating a redundant move construction when completed handlers are dispatched. </div> </li> <li> <div> Eliminated a compiler warning by annotating a <code><span class="keyword">case</span></code> fall-through in the free function <code><span class="identifier">connect</span><span class="special">()</span></code> implementation. </div> </li> <li> <div> Fixed the <code><span class="identifier">is_</span><span class="special">*</span><span class="identifier">_buffer_sequence</span></code> detection traits for user-defined sequence types. </div> </li> <li> <div> Fixed some Windows-specific warnings about an incompatible pointer cast when obtaining the <code><span class="identifier">CancelIoEx</span></code> entry point. </div> </li> <li> <div> Changed to automatically set the defaults when opening a serial port on Windows. </div> </li> <li> <div> Changed the serial port <code><span class="identifier">get_option</span><span class="special">()</span></code> member function to be const. </div> </li> <li> <div> Fixed a name hiding issue with the WinRT stream-oriented socket backend's <code><span class="identifier">shutdown</span></code> function. </div> </li> <li> <div> Applied a minor fix to the documentation for <code><span class="identifier">is_dynamic_buffer</span></code>. </div> </li> <li> <div> Added some support for Haiku OS. </div> </li> <li> <div> Added wolfSSL compatability. </div> </li> <li> <div> Changed to require C++17 or later for coroutines TS support with clang. </div> </li> <li> <div> Fixed a doxygen generation problem in the tutorial. </div> </li> <li> <div> Ensured example programs are correctly incorporated into the documentation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Static initialization of the default constructed <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> is now possible. </div> </li> <li> <div> Fixed performance regression in assignment on a compilers without move-semantics. </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This version consists mostly of bug fixes and performance improvements. </div> </li> <li> <div> Substantial work included for the split compilation mode, to reduce compile time when defining <code><span class="identifier">BOOST_BEAST_SEPARATE_COMPILATION</span></code>. </div> </li> <li> <div> We'd love to know how you or your company use Beast, consider adding an item to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies and Individuals Using Beast</a> list. </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/circular_buffer/">Circular Buffer</a>:</span> <ul> <li> <div> Correct doxygen generated reference to no longer show internal members. (Glen Fernandes) </div> </li> <li> <div> Eliminate ubsan warning on <code><span class="identifier">add</span></code> and <code><span class="identifier">sub</span></code>. (Glen Fernandes) </div> </li> <li> <div> Fix incorrect check in <code><span class="identifier">is_uninitialized</span></code>. (Niklas Fejes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/container/pull/47">GitHub #47: <em>"added alignment specification for small_vector"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/88">GitHub #88: <em>"Implement C++17 MoveAssignable requirements for self-move assignments"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/107">GitHub #107: <em>"Alignment ignored in resource_adaptor"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/109">GitHub #109: <em>"Get rid of integer overflow in copy_move_algo.hpp (-fsanitize=integer)"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/110">GitHub #110: <em>"Avoid gcc 9 deprecated copy warnings in new_allocator.hpp"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/112">GitHub #112: <em>"vector::resize() compilation error with msvc-10..12: data is not a member of boost::detail::aligned_storage"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/114">GitHub #114: <em>"Fix small_vector noexcept specification"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/116">GitHub #116: <em>"MSVC + boost 1.70 compilation error when windows.h is already included (detail/thread_mutex.hpp)"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/117">GitHub #117: <em>"flat_map/map::insert_or_assign with hint has wrong return types"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/118">GitHub #118: <em>"Non-unique inplace_set_difference used in in flat_tree_merge_unique and iterator invalidation in insert_unique"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/122">GitHub #122: <em>"Fix has_trivial_destructor_after_move"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/issues/123">GitHub #123: <em>"With heterogeneous lookup, <code><span class="identifier">equal_range</span></code> can result in a range with length greater than 1"</em></a>. </div> </li> </ul> </div> </li> <li> <div> <code>deque</code> can now have options, using <code>deque_options</code>. The block size/bytes can be be specified. </div> </li> <li> <div> <code>static_vector</code> can now have options, using <code>static_vector_options</code>. Alignment and throwing behaviour can be be specified. </div> </li> <li> <div> <code>small_vector</code> can now have options, using <code>small_vector_options</code>. Alignment and growth factor can be be specified. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> Add support for RISC-V LP64D </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/72">#72</a>: Fix ABI violation on ppc64 ELFv2 </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/99">#99</a>: cleanup of stack if creating ucontext fails </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Added functions <code><span class="identifier">alloc_construct</span></code>, <code><span class="identifier">alloc_construct_n</span></code>, <code><span class="identifier">alloc_destroy</span></code>, and <code><span class="identifier">alloc_destroy_n</span></code> in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">alloc_construct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> for allocator aware and exception safe construction and destruction of objects and arrays. (Glen Fernandes) </div> </li> <li> <div> Added constexpr functions <code><span class="identifier">first_scalar</span></code> in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">first_scalar</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> for obtaining a pointer to the first scalar element of an array. Given a pointer of type <code><span class="identifier">T</span><span class="special">*</span></code> they return a pointer of type <code><span class="identifier">remove_all_extents_t</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;*</span></code>. (Glen Fernandes) </div> </li> <li> <div> Added class template <code><span class="identifier">noinit_adaptor</span></code> in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">noinit_adaptor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> which is an allocator adaptor that converts any allocator into one whose <code><span class="identifier">construct</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> performs default initialization via placement new, and whose <code><span class="identifier">destroy</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> invokes the <code><span class="identifier">value_type</span></code> destructor directly. (Glen Fernandes) </div> </li> <li> <div> Added class template <code><span class="identifier">default_allocator</span></code> in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">default_allocator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, which can serve as a minimal default allocator that has interface similar to C++20 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code>, supports configurations with disabled exceptions and does not have <code><span class="identifier">std</span></code> as an associated namespace. The allocator uses <code><span class="keyword">operator</span> <span class="keyword">new</span></code> and <code><span class="keyword">operator</span> <span class="keyword">delete</span></code> for allocation. (Glen Fernandes) </div> </li> <li> <div> In <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">uncaught_exceptions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header, added workarounds for better compatibility with QNX SDP 7.0 when libc++/libc++abi libraries are used. (Andrey Semashev, <a href="https://github.com/boostorg/core/issues/59">#59</a>) </div> </li> <li> <div> The <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">sp_typeinfo</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header is now marked as deprecated and will be removed in a future release. <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">typeinfo</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> should be used instead. (Peter Dimov) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> <div> Enabled hardware-assisted popcount on MSVC (<a href="https://github.com/boostorg/dynamic_bitset/pull/38">PR#38</a>). </div> </li> <li> <div> Added support for boost::hash and std::hash (<a href="https://github.com/boostorg/dynamic_bitset/pull/45">PR#45</a>). </div> </li> <li> <div> Support copy-initialization with default constructor (<a href="https://github.com/boostorg/dynamic_bitset/pull/48">PR#48</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span> <ul> <li> <div> Clarified requirements on the value type template parameter </div> </li> <li> <div> Added support for <code><span class="keyword">float</span></code> and <code><span class="keyword">double</span></code> </div> </li> <li> <div> Added <code><span class="identifier">endian_load</span></code>, <code><span class="identifier">endian_store</span></code> </div> </li> <li> <div> Updated <code><span class="identifier">endian_reverse</span></code> to correctly support all non-<code><span class="keyword">bool</span></code> integral types </div> </li> <li> <div> Moved deprecated names to the deprecated header <code><span class="identifier">endian</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> documentation for shared_work updated </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fixed incorrect <code><span class="identifier">error_code</span></code> returned from directory iterator increment when <code><span class="identifier">readdir_r</span></code> is used. </div> </li> <li> <div> For <code><span class="identifier">path</span></code>, fixed rvalue-aware <code><span class="keyword">operator</span><span class="special">/</span></code> return type to return an rvalue instead of rvalue reference. This fixes leaving a dangling reference in the user's code if the result of <code><span class="keyword">operator</span><span class="special">/</span></code> is bound to a const reference. (<a href="https://github.com/boostorg/filesystem/issues/110">#110</a>) </div> </li> <li> <div> Fixes for better compatibility with Windows CE. (<a href="https://github.com/boostorg/filesystem/pull/24">PR#24</a>) </div> </li> <li> <div> Added minimal support for CMake. (<a href="https://github.com/boostorg/filesystem/pull/106">PR#106</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/index.html">Histogram</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Support for thread-safe storages and new thread-safe accumulators </div> </li> <li> <div> Support for compiling without exceptions/RTTI (increases performance by 10-20 %) (with Glen Fernandes) </div> </li> <li> <div> Performance improvements for 1D and 2D histograms </div> </li> <li> <div> boost::histogram::indexed now returns forward iterator range instead of input iterator range </div> </li> <li> <div> boost::histogram::indexed_range::accessor is now non-copyable and acts like reference to cell value, making more algorithms from the C++ stdlib work </div> </li> <li> <div> boost::histogram::algorithm::reduce with new slice option and option fusion </div> </li> <li> <div> boost::histogram::algorithm::project accepts runtime indices for static histograms </div> </li> </ul> </div> </li> <li> <div> Bug Fixes: <ul> <li> <div> boost::histogram::algorithm::reduce also works on histograms that have some axis types without reduction support </div> </li> <li> <div> boost::histogram::axis::traits::update now works correctly for boost::histogram::axis::variant </div> </li> </ul> </div> </li> <li> <div> Other: <ul> <li> <div> 100 % test coverage </div> </li> <li> <div> Reduced internal Boost dependencies </div> </li> <li> <div> Improved documentation and examples </div> </li> <li> <div> Guaranteed no-throw moves for all builtin axis types </div> </li> <li> <div> Compile cleanly at higher warning levels </div> </li> </ul> </div> </li> <li> <div> See <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iostreams/">IoStreams</a>:</span> <ul> <li> <div> Fixed processing of multi-stream files (<a href="https://github.com/boostorg/iostreams/pull/87">PR#87</a>). </div> </li> <li> <div> Added support for multi-threaded LZMA (<a href="https://github.com/boostorg/iostreams/pull/95">PR#95</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/85">GitHub #85 (<em>"warning: Implicit conversion loses integer precision"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/86">GitHub #86 (<em>"warning: Possible misuse of comma operator"</em>)</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/42">GitHub #42: <em>Documentation does not describe treap priority_of_value changes</em></a> </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/43">GitHub #43: <em>Fix tests with BOOST_INTRUSIVE_VARIADIC_TEMPLATES enabled</em></a> </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/45">GitHub #45: <em>Disable variadic templates for MSVC-12 to avoid ICEs</em></a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Added tests for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">path</span></code> conversions <a href="https://github.com/boostorg/lexical_cast/issues/25">#25</a>. </div> </li> <li> <div> Maintenance work, including <a href="https://github.com/boostorg/lexical_cast/issues/28">#28</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Improved support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> in <code><span class="identifier">basic_formatting_ostream</span></code>. The string view can now participate in character code conversion on output. </div> </li> <li> <div> Added <code><span class="identifier">auto_newline</span></code> formatter and stream manipulator. It can be used to ensure that formatted output always ends with a newline while avoiding duplicate newlines. </div> </li> <li> <div> In the output stream, text file and text multi-file sink backends added support for configuring behavior with regard to appending a trailing newline to every formatted log record. Use <code><span class="identifier">auto_newline_mode</span></code> named parameter of the backend constructor or call the <code><span class="identifier">set_auto_newline_mode</span></code> method on the sink backend. </div> </li> <li> <div> <strong>Note:</strong> The default behavior with regard to trailing newlines added by sink backends has changed slightly compared to the previous Boost.Log releases. The backends will now only add a trailing newline if there isn't one in the formatted log message string already. In previous releases a newline was added unconditionally. </div> </li> <li> <div> Added support for passing arbitrary function objects in the <code><span class="identifier">filter</span></code> and <code><span class="identifier">format</span></code> named parameters to sink constructors and convenience functions for initializing sinks. For example, it is now possible to specify C++11 lambda functions directly in these parameters. (<a href="https://github.com/boostorg/log/issues/63">#63</a>) </div> </li> <li> <div> In the default filter and formatter factories used in filter and formatter parsers, added support for severity level attribute values of type <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">log</span><span class="special">::</span><span class="identifier">trivial</span><span class="special">::</span><span class="identifier">severity_level</span></code>. For filters, the support is limited to attributes with "Severity" name. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed incorrect parsing of components of the rotated file names while scanning for files in the text file sink backend. If the file name pattern ended with a placeholder (for example, a file counter), the <code><span class="identifier">scan_for_files</span></code> method would not find files matching that pattern in the target storage, leaving them unmanaged. In particular, such files would not be deleted to free target storage. (<a href="https://github.com/boostorg/log/issues/78">#78</a>) </div> </li> <li> <div> Updated <code><span class="identifier">basic_formatting_ostream</span></code> and <code><span class="identifier">basic_record_ostream</span></code> to make it possible to overload stream output operators for pointers to user-defined types. User-defined <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> overloads taking <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span></code> and a pointer argument should now be picked up by the compiler when the pointer is being written to one of Boost.Log streams. (<a href="https://github.com/boostorg/log/issues/84">#84</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Catmull-Rom interpolator now works in C++11 </div> </li> <li> <div> Cardinal quadratic B-spline interpolation </div> </li> <li> <div> Domain of elliptic integrals extended </div> </li> <li> <div> sin_pi and cos_pi performance improvements </div> </li> <li> <div> Forward-mode automatic differentiation </div> </li> <li> <div> Vector valued barycentric rational interpolation </div> </li> <li> <div> Ooura's method for evaluation of Fourier integrals </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Multiple compatibility issues with Multiprecision fixed </div> </li> <li> <div> Lambert-W fixed on a rare architecture </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/metaparse/">Metaparse</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> In C++11 variadic template support for the following: <code><span class="identifier">sequence</span></code>, <code><span class="identifier">one_of_c</span></code>, <code><span class="identifier">one_of</span></code>, <code><span class="identifier">repeated_one_of</span></code>, <code><span class="identifier">repeated_one_of1</span></code>, <code><span class="identifier">one_char_except_c</span></code>, <code><span class="identifier">one_char_except</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <code><span class="identifier">BOOST_METAPARSE_STRING</span></code> does not use out of range character values as template arguments. </div> </li> <li> <div> <code><span class="identifier">any_of_c</span><span class="special">&lt;&gt;</span></code> does not create empty array in C++14. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/move/issues/26">Git Issue #26: <em>"Invalid iterator increment/decrement in the last iteration of adaptive_sort_combine_blocks"</em></a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_array/">Multi Array</a>:</span> <ul> <li> <div> Simplify allocator support by using new <code><span class="identifier">alloc_construct_n</span></code> and <code><span class="identifier">alloc_destroy_n</span></code> facilities from Core. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Added <a href="https://www.boost.org/libs/multi_index/doc/tutorial/key_extraction.html#x_mem_fun">variants of <code><span class="identifier">const_mem_fun</span></code> and <code><span class="identifier">mem_fun</span></code></a> for differently qualified member functions (issue <a href="https://github.com/boostorg/multi_index/issues/24">#24</a>). </div> </li> <li> <div> Terse <a href="https://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#key"><code><span class="identifier">key</span></code></a> specification syntax now correctly handles <code><span class="keyword">noexcept</span></code>-specified member functions (issue <a href="https://github.com/boostorg/multi_index/issues/24">#24</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> <ul> <li> <div> Enhancements: <ul> <li> <div> <a href="https://github.com/ned14/outcome/issues/184">#184</a> As per request from Boost release managers, relocated <code><span class="identifier">version</span><span class="special">.</span><span class="identifier">hpp</span></code> and <code><span class="identifier">revision</span><span class="special">.</span><span class="identifier">hpp</span></code> into detail, and added the Boost licence boilerplate to the top of every source file which was missing one (I think). Also took the opportunity to run the licence restamping script over all Outcome, so copyright dates are now up to date. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/185">#185</a> Add FAQ item explaining issue #185, and why we will do nothing to fix it right now. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/189">#189</a> Refactored the <code><span class="identifier">OUTCOME_TRY</span></code> implementation to use more clarified customisation points capable of accepting very foreign inputs. Removed the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">expected</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span><span class="special">&gt;</span></code> specialisations, as those are no longer necessary. Fixed the documentation for the customisation points which previously claimed that they are ADL discovered, which they are not. Added a recipe describing how to add in support for foreign input types. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/183">#183</a> Added a separate <code><span class="identifier">motivation</span><span class="special">/</span><span class="identifier">plug_error_code</span></code> specifically for Boost. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <code><span class="identifier">OUTCOME_VERSION_MINOR</span></code> hadn't been updated to 1. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/181">#181</a> Fix issue #181 where Outcome didn't actually implement the strong swap guarantee, despite being documented as doing so. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/190">#190</a> Fix issue #190 in Boost edition where unit test suite was not runnable from the Boost release distro. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/182">#182</a> Fix issue #182 where <code><span class="identifier">trait</span><span class="special">::</span><span class="identifier">is_exception_ptr_available</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> was always true, thus causing much weirdness, like not printing diagnostics and trying to feed everything to <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code>. </div> </li> <li> <div> <a href="https://github.com/ned14/outcome/issues/192">#192</a> Fix issue #192 where the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_outcome_failure_exception_from_error</span><span class="special">()</span></code> was being defined twice for translation units which combine standalone and Boost Outcome's. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>:</span> <ul> <li> <div> Upgraded keyword generation macro <code><span class="identifier">BOOST_PARAMETER_TEMPLATE_KEYWORD</span></code> (<a href="https://github.com/boostorg/parameter/pull/15">PR#15</a>). </div> </li> <li> <div> Moved keyword generation macro <code><span class="identifier">BOOST_PARAMETER_NESTED_KEYWORD</span></code> from <a href="https://www.boost.org/libs/accumulators/doc/html/index.html">Accumulators</a> to this library (<a href="https://github.com/boostorg/parameter/pull/28">PR#28</a>). </div> </li> <li> <div> Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">reference_wrapper</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></code> (<a href="https://github.com/boostorg/parameter/pull/16">PR#16</a>). </div> </li> <li> <div> Moved <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">required</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">optional</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">deduced</span></code> metafunction definitions to their own header files in directory boost/parameter (<a href="https://github.com/boostorg/parameter/pull/18">PR#18</a>). </div> </li> <li> <div> Added support for Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled function call operators (<a href="https://github.com/boostorg/parameter/pull/20">PR#20</a>). </div> </li> <li> <div> Added support for parameter category qualifiers "forward", "consume", and "move_from" (current qualifiers are "in", "out", and "in_out") (<a href="https://github.com/boostorg/parameter/pull/21">PR#21</a>) (<a href="https://github.com/boostorg/parameter/pull/23">PR#23</a>) based on <a href="http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters">http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters</a>. Added new usage syntax <code><span class="identifier">BOOST_PARAMETER_NAME</span><span class="special">((</span><span class="identifier">object</span><span class="special">-</span><span class="identifier">name</span><span class="special">),</span> <span class="keyword">namespace</span><span class="special">-</span><span class="identifier">name</span><span class="special">)</span> <span class="identifier">qualifier</span><span class="special">(</span><span class="identifier">tag</span><span class="special">-</span><span class="identifier">name</span><span class="special">))</span></code> and <code><span class="identifier">BOOST_PARAMETER_NAME</span><span class="special">(</span><span class="identifier">qualifier</span><span class="special">(</span><span class="identifier">name</span><span class="special">))</span></code>. (Existing code that uses qualifiers directly and correctly with <code><span class="identifier">BOOST_PARAMETER_FUNCTION</span></code> and other code generation macros should remain unaffected for now, so no breaking changes.) The reason for the change in usage is to enable applying of parameter category constraints to Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled functions and constructors invoked through argument composition. (Otherwise, it is currently possible to use argument composition to bypass parameter category constraints applied in <code><span class="identifier">BOOST_PARAMETER_FUNCTION</span></code> et. al.) </div> </li> <li> <div> Added support for perfect forwarding (<a href="https://github.com/boostorg/parameter/pull/23">PR#23</a>) (<a href="https://github.com/boostorg/parameter/pull/26">PR#26</a>), so that <code><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">parameters</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code> can accept non-<code><span class="keyword">const</span></code> rvalues. As a positive side effect, Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled functions and constructors are no longer bound by <code><span class="identifier">BOOST_PARAMETER_MAX_ARITY</span></code> on compilers that support perfect forwarding. User code can now check for this support by detecting the configuration macro <code><span class="identifier">BOOST_PARAMETER_HAS_PERFECT_FORWARDING</span></code>, or manually turn off this support by defining the configuration macro <code><span class="identifier">BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING</span></code>. </div> </li> <li> <div> Added metafunctions <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">is_argument_pack</span></code> (<a href="https://github.com/boostorg/parameter/pull/27">PR#27</a>), <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">are_tagged_arguments</span></code> (<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>), and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">compose</span></code> (<a href="https://github.com/boostorg/parameter/pull/75">PR#75</a>). </div> </li> <li> <div> Added variadic function template <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">compose</span><span class="special">()</span></code> which takes in named arguments and returns them in an argument pack (<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>). For compilers that do not support perfect forwarding, the configuration macro <code><span class="identifier">BOOST_PARAMETER_COMPOSE_MAX_ARITY</span></code> determines the maximum number of arguments that <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">compose</span><span class="special">()</span></code> can take in (<a href="https://github.com/boostorg/parameter/pull/61">PR#61</a>). </div> </li> <li> <div> Added code generation macros <code><span class="identifier">BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR</span></code>, <code><span class="identifier">BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_FUNCTION</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR</span></code>, <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR</span></code>, and <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR</span></code> (<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>). </div> </li> <li> <div> Added support for Boost.<a href="https://www.boost.org/libs/mp11/doc/html/mp11.html">MP11</a> (<a href="https://github.com/boostorg/parameter/pull/47">PR#47</a>) (<a href="https://github.com/boostorg/parameter/pull/66">PR#66</a>) (<a href="https://github.com/boostorg/parameter/pull/70">PR#70</a>). User code can now check for this support by detecting the configuration macro <code><span class="identifier">BOOST_PARAMETER_CAN_USE_MP11</span></code>, or manually turn off this support by defining the configuration macro <code><span class="identifier">BOOST_PARAMETER_DISABLE_MP11_USAGE</span></code>. </div> </li> <li> <div> Improved support for parameter-dependent return types via SFINAE (<a href="https://github.com/boostorg/parameter/pull/73">PR#73</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/ptr_container/">PtrContainer</a>:</span> <ul> <li> <div> Fix a ptr_vector regression introduced in 1.66.0 (<a href="https://github.com/boostorg/ptr_container/pull/24">PR#24</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span> <ul> <li> <div> Added aliasing constructors to <code><span class="identifier">weak_ptr</span></code> </div> </li> <li> <div> Added <code><span class="identifier">weak_ptr</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">empty</span><span class="special">()</span></code> </div> </li> <li> <div> Added <code><span class="identifier">enable_shared_from</span></code>, <code><span class="identifier">shared_from</span></code>, and <code><span class="identifier">weak_from</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Fixed output of <code><span class="identifier">name</span><span class="special">()</span></code>, <code><span class="identifier">source_location</span><span class="special">()</span></code> and <code><span class="identifier">source_line</span><span class="special">()</span></code> for the default constructed <code><span class="identifier">frame</span></code> with thread sanitizer builds in C++98 mode. </div> </li> <li> <div> Fixed output of long strings from <code><span class="identifier">name</span><span class="special">()</span></code> and <code><span class="identifier">source_location</span><span class="special">()</span></code> on MSVC <a href="https://github.com/boostorg/stacktrace/issues/78">#78</a>. </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.11 see the <a href="https://www.boost.org/users/history/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> Breaking changes: <ul> <li> <div> Boost.Test shows deprecation warnings if some very old headers as deprecated. If you encounter such warnings, please follow the indications: those headers will be removed in a future release. </div> </li> </ul> </div> </li> <li> <div> New feature: <ul> <li> <div> Now <code><span class="identifier">BOOST_TEST</span></code> can be used to compare abstract types </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> GitHub Issues: <a href="https://github.com/boostorg/test/issues/209">#209</a>, <a href="https://github.com/boostorg/test/issues/218">#218</a> </div> </li> <li> <div> GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/219">PR#219</a>, <a href="https://github.com/boostorg/test/pull/224">PR#224</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Implemented function template <code><span class="identifier">ostream_string</span></code> in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">ostream_string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to optimally write any kind of string content to an output stream. It satisfies the requirements of [ostream.formatted.reqmts]. (Glen Fernandes) </div> </li> <li> <div> Optimized the stream output operators of <code><span class="identifier">basic_string_view</span></code> and <code><span class="identifier">basic_string_ref</span></code> to write directly to the <code><span class="identifier">rdbuf</span></code> stream buffer. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> MD5 name-based uuid generation was corrected to be identical on all endian systems. Define <code><span class="identifier">BOOST_UUID_COMPAT_PRE_1_71_MD5</span></code> to keep the result in a format compatible with 1.66 through 1.70. This does not affect the default name-based uuid generation which is based on SHA1. (<a href="https://github.com/boostorg/uuid/pull/109">PR#109</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed compilation of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> with variants passed by non const reference in <a href="https://github.com/boostorg/variant/pull/68">PR#68</a>. Many thanks to Ed Catmur for providing the fix. </div> </li> <li> <div> Added support for std::hash (<a href="https://github.com/boostorg/variant/pull/49">PR#49</a>). Macro <code><span class="identifier">BOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASH</span></code> could be defined to avoid those specializations. </div> </li> <li> <div> Added micro optimizations for binary size and performance by Nikita Kniazev in <a href="https://github.com/boostorg/variant/pull/63">PR#63</a> and <a href="https://github.com/boostorg/variant/pull/66">PR#66</a>. </div> </li> <li> <div> Maintenance work, including <a href="https://github.com/boostorg/variant/pull/64">PR#64</a> by Nikita Kniazev and <a href="https://github.com/boostorg/variant/pull/67">PR#67</a> by Hans Dembinski. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span> <ul> <li> <div> Added an example showing how to make self-evaluating YAP expressions (that is, expressions that don't need an explicit call to <code><span class="identifier">evaluate</span><span class="special">()</span></code> or <code><span class="identifier">transform</span><span class="special">()</span></code>). </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_71_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_71_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Marshall Clow and Michael Caisse managed this release. </p> </div> Version 1.70.0https://www.boost.org/users/history/version_1_70_0.htmlhttps://www.boost.org/users/history/version_1_70_0.htmlFri, 12 Apr 2019 06:04:48 +0000 <div id="version_1_70_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. </p> <ul> <li> <div> Fix moved-from executor in idle ping timeout (<a href="https://github.com/boostorg/beast/issues/1599">#1599</a>) <ul> <li> <div> <a href="https://www.boost.org/patches/1_70_0/0001-beast-fix-moved-from-executor.patch">Beast patch</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_70_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span> A set of tools for reporting and handling function failures in contexts where <em>directly</em> using C++ exception handling is unsuitable, from Niall Douglas. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span> Fast and extensible multi-dimensional histograms with convenient interface for C++14, from Hans Dembinski. </div> </li> </ul> </div> <div id="version_1_70_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> This release includes a number of new features, bug fixes, performance enhancements, and documentation improvements. Notable changes include: <ul> <li> <div> Added the ability to use custom I/O executors with I/O objects (such as sockets). </div> </li> <li> <div> Added a new <code><span class="identifier">async_result</span></code> form with an <code><span class="identifier">initiate</span></code> static member function. </div> </li> <li> <div> Updated the Coroutines TS support and promoted it to the <code><span class="identifier">asio</span></code> namespace. </div> </li> <li> <div> Added a new <code><span class="identifier">DynamicBuffer_v2</span></code> concept which is CopyConstructible. </div> </li> <li> <div> Added a new <code><span class="identifier">async_compose</span></code> function that simplifies the implementation of user-defined asynchronous operations. </div> </li> <li> <div> Added a <code><span class="identifier">make_strand</span></code> helper function. </div> </li> <li> <div> Relaxed the completion condition type requirements to only require move-constructibility rather than copy-constructibility. </div> </li> <li> <div> Added a constructor for <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> that takes a <code><span class="identifier">string_view</span></code>. </div> </li> <li> <div> Added the noexcept qualifier to various functions. </div> </li> <li> <div> Added a new <code><span class="identifier">BOOST_ASIO_DISABLE_VISIBILITY</span></code> configuration <code><span class="preprocessor">#define</span></code>. </div> </li> <li> <div> Enabled recycling of the memory used to type-erase a function object with the polymorphic executor. </div> </li> <li> <div> Changed receive operations to return the correct number of bytes transferred when truncation (<code><span class="identifier">error</span><span class="special">::</span><span class="identifier">message_size</span></code>) occurs on a datagram-oriented socket. </div> </li> <li> <div> Fixed calculation of absolute timeout when the backend uses <code><span class="identifier">pthread_cond_timedwait</span></code>. </div> </li> <li> <div> Changed the range-based asynchronous connect operation to deduce the <code><span class="identifier">EndpointSequence</span></code> iterator type. </div> </li> <li> <div> Fixed <code><span class="identifier">buffer_sequence_begin</span></code> and <code><span class="identifier">buffer_sequence_end</span></code> to prevent implicit conversion. </div> </li> <li> <div> Ensured SSL handshake errors are propagated to the peer before the local operation completes. </div> </li> <li> <div> Suppressed the <code><span class="identifier">eof</span></code> error on SSL shutdown as it actually indicates success. </div> </li> <li> <div> Added a fallback error code for when we OpenSSL produces an <code><span class="identifier">SSL_ERROR_SYSCALL</span></code> result without an associated error. </div> </li> <li> <div> Changed composed asynchronous read and write operations to move buffer sequence objects. </div> </li> <li> <div> Fixed a macOS-specific warning about the deprecation of <code><span class="identifier">OSMemoryBarrier</span></code>. </div> </li> <li> <div> Fixed compile errors that occur when using the composed read and write operations with MSVC 11.0. </div> </li> <li> <div> Improved <code><span class="identifier">dispatch</span></code>, <code><span class="identifier">post</span></code> and <code><span class="identifier">defer</span></code> documentation. </div> </li> <li> <div> Fixed a Windows-specific memory leak that may occur when <code><span class="identifier">system_executor</span></code> is used. </div> </li> </ul> </div> </li> <li> <div> Consult the <a href="https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/history.html">Revision History</a> for further details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <strong>BIG Update!!!</strong> <ul> <li> <div> Some APIs have changed. </div> </li> <li> <div> The <a href="https://www.boost.org/libs/beast/doc/html/beast/quickref.html">reference</a> shows a star ★ next to each new item. </div> </li> <li> <div> Beast needs your help! <ul> <li> <div> <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Tell Us</a> how you or your company use Beast </div> </li> <li> <div> Please <a href="https://github.com/boostorg/beast/issues/new">report</a> any bugs, feature requests, or general feedback </div> </li> <li> <div> Join the <a href="https://cppalliance.org/slack/"><strong>C++ Slack Workspace</strong></a> for free and chat with us in the #beast and #boost channels </div> </li> <li> <div> Don't forget to <a href="https://github.com/boostorg/beast">star the repository</a> ⭐! </div> </li> </ul> </div> </li> <li> <div> More tutorials, code like the pros! <ul> <li> <div> <a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/asio_refresher.html">Networking Refresher</a> teaches you from the ground up. </div> </li> <li> <div> Updated <a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/writing_composed_operations/echo.html">Asynchronous Echo</a> example </div> </li> <li> <div> Updated <a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/writing_composed_operations/detect_ssl.html"><strong>Detect SSL</strong></a> composed operation tutorial </div> </li> <li> <div> <a href="https://www.boost.org/libs/beast/example/websocket/server/chat-multi">websocket-chat-multi</a> threaded chat server with a JavaScript <a href="https://www.boost.org/libs/beast/example/websocket/server/chat-multi/chat_client.html">browser client</a> </div> </li> </ul> </div> </li> <li> <div> <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__basic_stream.html"><code><span class="identifier">basic_stream</span></code></a> and <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__tcp_stream.html"><code><span class="identifier">tcp_stream</span></code></a> offer: <ul> <li> <div> Timeouts: <code><span class="identifier">async_read_some</span></code>, <code><span class="identifier">async_write_some</span></code> complete with <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__error.html"><code><span class="identifier">error</span><span class="special">::</span><span class="identifier">timeout</span></code></a> on expiration! </div> </li> <li> <div> Traffic-shaping policies <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__simple_rate_policy.html"><code><span class="identifier">simple</span></code></a> and <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__unlimited_rate_policy.html"><code><span class="identifier">unlimited</span></code></a>, or a user-defined <a href="https://www.boost.org/libs/beast/doc/html/beast/concepts/RatePolicy.html"><em>RatePolicy</em></a>! </div> </li> <li> <div> Put the strand directly on the socket using <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1322r0.html">P1322R0</a>, no more <code><span class="identifier">bind_executor</span></code> at call sites! </div> </li> </ul> </div> </li> <li> <div> Base classes <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__async_base.html"><code><span class="identifier">async_base</span></code></a> and <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__stable_async_base.html"><code><span class="identifier">stable_async_base</span></code></a> and handle all composed operation boilerplate for you. </div> </li> <li> <div> <a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__ssl_stream.html"><code><span class="identifier">ssl_stream</span></code></a> provides a movable, assignable SSL stream with a flat write optimization. </div> </li> <li> <div> All asynchronous operations use Asio's <code><span class="identifier">async_initiate</span></code> for efficient integration with Coroutines TS. </div> </li> <li> <div> ⚡ <strong><em>faster compilation</em></strong>, define <code><span class="identifier">BOOST_BEAST_SEPARATE_COMPILATION</span></code> and <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">beast</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> in one of your .cpp files! </div> </li> <li> <div> See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a> for a complete list of changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/context/issues/91">#91</a>: cleanup of stack if creating ucontext fails </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/97">#97</a>: add missing BOST_CONTEXT_DECL in stack_context </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/98">#98</a>: fix jump_i386_sysv_macho writing garbage to the x87 control word </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/28">#28</a>: don't crash on pthread_cancel </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> New macro <a href="https://www.boost.org/libs/dll/BOOST_DLL_USE_STD_FS.html">BOOST_DLL_USE_STD_FS</a>. Define it to <code><span class="number">1</span></code> to make the Boost.DLL use C++17's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">path</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">system_error</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> (<a href="https://github.com/boostorg/dll/issues/21">#21</a>). Note that exception types change from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">system_error</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">system_error</span></code>, so make sure to update <code><span class="keyword">catch</span></code>es. </div> </li> <li> <div> Significant rewrite of the dynamic loadable detection and decoration logic. More precise errors are now reported in case of loading failures. Added <code><span class="identifier">shared_library</span><span class="special">::</span><span class="identifier">decorate</span><span class="special">()</span></code> function that returns a decorated path to the library without doing any platform related queries and detections. Prefer using <code><span class="identifier">shared_library</span><span class="special">::</span><span class="identifier">load</span></code> and <code><span class="identifier">shared_library</span></code> constructors for better results (many thanks to Loïc Touraine for the work <a href="https://github.com/boostorg/dll/pull/23">PR#23</a>). </div> </li> <li> <div> CI hardening, docs updates, typos fixes, cleanups and many portability fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> <div> Disabled hardware-assisted popcount (added in 1.69.0) on MSVC due to undefined behavior on older CPUs. (<a href="https://github.com/boostorg/dynamic_bitset/issues/33">#33</a> <a href="https://github.com/boostorg/dynamic_bitset/pull/35">PR#35</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/fiber/issues/191">#191</a>: ignore unused argument warning </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/196">#196</a>: fix high contention on remote_ready_splk_ </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fixed a few instances of dereferencing <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">end</span><span class="special">()</span></code> in <code><span class="identifier">path</span></code> implementation. </div> </li> <li> <div> Fixed program termination in case of out of memory condition in directory iterators constructors and operations accepting a reference to <code><span class="identifier">error_code</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/58">#58</a>) </div> </li> <li> <div> Fixed possible linking errors caused by missing definitions of static members of <code><span class="identifier">path</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/12759">#12759</a>) </div> </li> <li> <div> Fixed possible use of uninitialized data in directory iterator increment operation on Linux. </div> </li> <li> <div> Added support for movability to directory iterators. </div> </li> <li> <div> Added file status query overloads for <code><span class="identifier">directory_entry</span></code>. This avoids a relatively expensive OS query when file status is requested for a result of dereferencing a directory iterator. (<a href="https://github.com/boostorg/filesystem/pull/55">PR#55</a>) </div> </li> <li> <div> Reworked <code><span class="identifier">current_path</span></code> and <code><span class="identifier">read_symlink</span></code> implementation to avoid possible memory exhaustion on broken or tampered with filesystems. The functions now have an internal limit of the path size they will accept from the OS, which is currently 16 MiB. </div> </li> <li> <div> Increased the size of the internal buffer used by <code><span class="identifier">copy_file</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span> <ul> <li> <div> Added Extended Euclidean Algorithm and Modular Multiplicative Inverse function. (Nick Thompson, <a href="https://github.com/boostorg/integer/pull/11">PR#11</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Added support for generating another log file name before collecting the file in the text file sink backend. This allows to combine appending to an existing log file with timestamps and file counters in log filenames, and, consequently, file collection in general. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Add Lanczos smoothing derivatives </div> </li> <li> <div> Move <code><span class="identifier">numerical_differentiation</span><span class="special">.</span><span class="identifier">hpp</span></code> from <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></code> to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">differentiation</span><span class="special">/</span><span class="identifier">finite_difference</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add mean, variance, skewness, kurtosis, median, Gini coefficient, and median absolute deviation to <code><span class="identifier">tools</span><span class="special">/</span><span class="identifier">univariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add correlation coefficients and covariance to <code><span class="identifier">tools</span><span class="special">/</span><span class="identifier">bivariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> <li> <div> Add absolute Gini coefficient, Hoyer sparsity, oracle SNR, and the <em>M</em>[sub 2]<em>M</em>[sub 4] SNR estimator to <code><span class="identifier">tools</span><span class="special">/</span><span class="identifier">signal_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add total variation, l0, l1, l2, and sup norms, as well as corresponding distance functions to <code><span class="identifier">tools</span><span class="special">/</span><span class="identifier">norms</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add move constructors for polynomials, support complex coefficients, add <code><span class="special">.</span><span class="identifier">prime</span><span class="special">()</span></code> and <code><span class="special">.</span><span class="identifier">integrate</span><span class="special">()</span></code> methods. </div> </li> <li> <div> Add <code><span class="identifier">quadratic_roots</span></code> to <code><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add support for complex-valued functions to Newton's method in <code><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Add Catmull-Rom interpolator. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Renamed <code><span class="identifier">mp_invoke</span></code> to <code><span class="identifier">mp_invoke_q</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_similar</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_set_union</span></code>, <code><span class="identifier">mp_set_intersection</span></code>, <code><span class="identifier">mp_set_difference</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_not_fn</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_transform_first</span></code>, <code><span class="identifier">mp_transform_second</span></code>, <code><span class="identifier">mp_transform_third</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_filter</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_eval_if_not</span></code>, <code><span class="identifier">mp_eval_or</span></code>, <code><span class="identifier">mp_valid_q</span></code> </div> </li> <li> <div> Added <code><span class="identifier">mp_back</span></code>, <code><span class="identifier">mp_pop_back</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> <code><span class="identifier">size_type</span></code> and <code><span class="identifier">difference_type</span></code> are now defined as the allocator's same-named types. This will not make any difference in the vast majority of cases, but allows for some degree of control of resulting internal structures via user-defined allocator types (see issue <a href="https://github.com/boostorg/multi_index/issues/17">#17</a> for motivation). For the moment being, this change is not documented in the reference section (i.e., it has semi-official status). </div> </li> <li> <div> Maintenance work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Fix various conversion issues in the traits classes, check for compatibility with Boost.Optional. </div> </li> <li> <div> Prevent instantiation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code> on any old type when checking for convertibility. See <a href="https://github.com/boostorg/multiprecision/issues/98">#98</a>. </div> </li> <li> <div> Update variable precision code to account for arbitrary precision integers. See <a href="https://github.com/boostorg/multiprecision/issues/103">#103</a>. </div> </li> <li> <div> Add support for XML serialization archives. </div> </li> <li> <div> Fix bug in fixed precision iostream formatting in <code><span class="identifier">mpf_float</span></code> and <code><span class="identifier">mpfr_float</span></code>. See <a href="https://github.com/boostorg/multiprecision/issues/113">#113</a>. </div> </li> <li> <div> Add more overloads for special functions which are better handled natively by MPFR. </div> </li> <li> <div> Fixed bug in generic <code><span class="identifier">exp</span></code> implementation which could cause invariant failure. </div> </li> <li> <div> Fixed generic conversion from float to integer to avoid undefined behaviour. See <a href="https://github.com/boostorg/multiprecision/issues/110">#110</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Improved handling of stateful allocators and allocator propagation traits, after an error reported by Billy O'Neal (<a href="https://github.com/boostorg/poly_collection/pull/9">PR#9</a>). </div> </li> <li> <div> Fixed a potentially serious bug with an internal cache structure. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/spirit/">Spirit</a>:</span> <ul> <li> <div> Removed use of deprecated <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> header. <a href="https://github.com/boostorg/spirit/pull/432">PR#432</a> </div> </li> <li> <div> X3 <ul> <li> <div> Integer parsers should now handle user defined types. <a href="https://github.com/boostorg/spirit/pull/429">PR#429</a> </div> </li> <li> <div> <strong>Note:</strong> The <code><span class="identifier">check_overflow</span></code> trait default implementation now relies on <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_bounded</span></code> instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_integral</span></code>. </div> </li> <li> <div> Removed sequence into plain parsing. Now it triggers a compile time error instead of silently parsing the the sequence and taking the last value as a result. <a href="https://github.com/boostorg/spirit/pull/439">PR#439</a> </div> </li> <li> <div> Fixed <code><span class="identifier">parse_rule</span></code> instantiation with <code><span class="identifier">BOOST_SPIRIT_INSTANTIATE</span></code> when: <ul> <li> <div> A rule has no attribute. <a href="https://github.com/boostorg/spirit/pull/455">PR#455</a> </div> </li> <li> <div> An actual attribute is not of type a rule was declared with. <a href="https://github.com/boostorg/spirit/pull/456">PR#456</a> <a href="https://github.com/boostorg/spirit/issues/457">#457</a> </div> </li> </ul> </div> </li> <li> <div> A <strong>huge</strong> thanks goes out to <a href="https://github.com/Xeverous">Xeverous</a> for reporting a regression in <a href="https://github.com/boostorg/spirit/issues/453">#453</a>. </div> </li> <li> <div> Fixed unneded attribute synthesization and no-transformation attribute reference pass-through in rules. <a href="https://github.com/boostorg/spirit/issues/444">#444</a> <a href="https://github.com/boostorg/spirit/pull/449">PR#449</a> <a href="https://github.com/boostorg/spirit/pull/452">PR#452</a> </div> </li> <li> <div> Removed broken 1.0#INF parser. It was poorly documented and never worked. <a href="https://github.com/boostorg/spirit/issues/415">#415</a> <a href="https://github.com/boostorg/spirit/pull/458">PR#458</a> <a href="https://svn.boost.org/trac/boost/ticket/8699">#8699</a> </div> </li> <li> <div> The undocumented <code><span class="identifier">make_attribute</span></code> trait was removed due to bugs <a href="https://github.com/boostorg/spirit/pull/449">PR#449</a> and to simplify attribute transformation. <a href="https://github.com/boostorg/spirit/pull/460">PR#460</a> </div> </li> <li> <div> If you were using it to workaround bugs in attribute transformation - they should not be needed anymore as of this release. </div> </li> <li> <div> The integer value parser now respects <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">digits10</span></code> value. <a href="https://github.com/boostorg/spirit/pull/469">PR#469</a> </div> </li> <li> <div> Fixed underflow check for a <code><span class="special">(</span><span class="identifier">Min</span> <span class="special">%</span> <span class="identifier">Base</span><span class="special">)</span> <span class="special">==</span> <span class="number">0</span></code> corner case. <a href="https://github.com/boostorg/spirit/pull/469">PR#469</a> </div> </li> <li> <div> Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. <a href="https://github.com/boostorg/spirit/pull/470">PR#470</a> </div> </li> <li> <div> Container attribute elements were copyied, but not moved. <a href="https://github.com/boostorg/spirit/pull/472">PR#472</a> </div> </li> <li> <div> Special handling of references in <code><span class="identifier">transform_attribute</span></code> was removed. <a href="https://github.com/boostorg/spirit/pull/480">PR#480</a> </div> </li> </ul> </div> </li> <li> <div> V2 <ul> <li> <div> Macro name collisions and namespace conflicts with Boost.Endian were fixed. <a href="https://github.com/boostorg/spirit/pull/349">PR#349</a> <a href="https://github.com/boostorg/spirit/pull/482">PR#482</a> </div> </li> <li> <div> utree <ul> <li> <div> Fixed UB in tag getter due to left shift of negative value. <a href="https://github.com/boostorg/spirit/pull/423">PR#423</a> </div> </li> <li> <div> Fixed double-conversion (<code><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">string</span> <span class="special">-&gt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">-&gt;</span> <span class="identifier">spirit</span><span class="special">::</span><span class="identifier">string</span></code>). <a href="https://github.com/boostorg/spirit/pull/462">PR#462</a> </div> </li> </ul> </div> </li> <li> <div> Qi <ul> <li> <div> Added static asserts for rule skipper type problems. <a href="https://github.com/boostorg/spirit/pull/427">PR#427</a> </div> </li> <li> <div> The <code><span class="identifier">check_overflow</span></code> trait default implementation now relies on <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_bounded</span></code> instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_integral</span></code> <a href="https://github.com/boostorg/spirit/pull/429">PR#429</a> </div> </li> <li> <div> Integer parsers should now handle user defined types. <a href="https://github.com/boostorg/spirit/pull/429">PR#429</a> </div> </li> <li> <div> <strong>Note:</strong> The <code><span class="identifier">check_overflow</span></code> trait default implementation now relies on <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_bounded</span></code> instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_integral</span></code>. </div> </li> <li> <div> Removed broken 1.0#INF parser. It was poorly documented and never worked. <a href="https://github.com/boostorg/spirit/issues/415">#415</a> <a href="https://github.com/boostorg/spirit/pull/458">PR#458</a> <a href="https://svn.boost.org/trac/boost/ticket/8699">#8699</a> </div> </li> <li> <div> The undocumented <code><span class="identifier">make_attribute</span></code> trait was merged into <code><span class="identifier">transform_attribute</span></code> trait. <a href="https://github.com/boostorg/spirit/pull/471">PR#471</a> </div> </li> <li> <div> The <code><span class="identifier">pre_transform</span></code>, <code><span class="identifier">post_transform</span></code>, and <code><span class="identifier">fail_transform</span></code> utility functions were removed in favor of directly using <code><span class="identifier">pre</span></code>/<code><span class="identifier">post</span></code>/<code><span class="identifier">fail</span></code> of the transform trait. <a href="https://github.com/boostorg/spirit/pull/467">PR#467</a> </div> </li> <li> <div> The integer value parser now respects <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">digits10</span></code> value. <a href="https://github.com/boostorg/spirit/pull/469">PR#469</a> </div> </li> <li> <div> Fixed underflow check for a <code><span class="special">(</span><span class="identifier">Min</span> <span class="special">%</span> <span class="identifier">Base</span><span class="special">)</span> <span class="special">==</span> <span class="number">0</span></code> corner case. <a href="https://github.com/boostorg/spirit/pull/469">PR#469</a> </div> </li> <li> <div> Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. <a href="https://github.com/boostorg/spirit/pull/470">PR#470</a> </div> </li> <li> <div> Special handling of references in <code><span class="identifier">transform_attribute</span></code> was removed. <a href="https://github.com/boostorg/spirit/pull/480">PR#480</a> </div> </li> </ul> </div> </li> <li> <div> Lex <ul> <li> <div> Fixed UB in default constructor of lexer with user specified token type. <a href="https://github.com/boostorg/spirit/pull/420">PR#420</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> Classic: <ul> <li> <div> Fixed <code><span class="identifier">position_iterator</span></code> forming reference to local when the underlying iterator dereference operator returns a non-reference type. <a href="https://github.com/boostorg/spirit/pull/422">PR#422</a> <a href="https://svn.boost.org/trac/boost/ticket/9737">#9737</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Build fix for iOS 32-bit ARM (many thanks to Ivan Ponomarev for providing the fix <a href="https://github.com/boostorg/stacktrace/pull/70">PR#70</a>) </div> </li> <li> <div> Fixed multiple typos, warnings and updated the docs. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.10 see the <a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> Breaking changes: <ul> <li> <div> Boost.Test <code><span class="identifier">minimal</span><span class="special">.</span><span class="identifier">hpp</span></code> is now showing a deprecation warning, </div> </li> <li> <div> Change in floating point comparison may fail tests that were silently not using the floating point comparison logic prior to this release, </div> </li> <li> <div> Internal API change to <code><span class="identifier">unit_test_log_formatter</span></code>, see detailed change log, </div> </li> </ul> </div> </li> <li> <div> New feature: <ul> <li> <div> Floating point comparison has been extended to capture non-floating point and arithmetic operands: expressions like <code><span class="identifier">BOOST_TEST</span><span class="special">(</span><span class="number">3.0001</span> <span class="special">==</span> <span class="number">3</span><span class="special">)</span></code> now use floating point support of Boost.Test, </div> </li> <li> <div> Custom datasets are not required to declare the <code><span class="identifier">sample</span></code> type field anymore, </div> </li> <li> <div> Extending template test cases from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> to any variadic definition, </div> </li> <li> <div> Windows support for timed tests, </div> </li> <li> <div> Timed test on test-suites, </div> </li> <li> <div> Removed dependency to Boost.Timer, </div> </li> <li> <div> New macro <code><span class="identifier">BOOST_TEST_INFO_SCOPE</span></code> for scoped context declaration, </div> </li> <li> <div> Improved <code><span class="identifier">BOOST_TEST_CONTEXT</span></code> syntax </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/7397">#7397</a>, <a href="https://svn.boost.org/trac/boost/ticket/9434">#9434</a>, <a href="https://svn.boost.org/trac/boost/ticket/13106">#13106</a>, <a href="https://svn.boost.org/trac/boost/ticket/13418">#13418</a> </div> </li> <li> <div> GitHub Issues: <a href="https://github.com/boostorg/test/issues/133">#133</a>, <a href="https://github.com/boostorg/test/issues/138">#138</a>, <a href="https://github.com/boostorg/test/issues/141">#141</a>, <a href="https://github.com/boostorg/test/issues/157">#157</a>, <a href="https://github.com/boostorg/test/issues/160">#160</a>, <a href="https://github.com/boostorg/test/issues/174">#174</a>, <a href="https://github.com/boostorg/test/issues/176">#176</a>, <a href="https://github.com/boostorg/test/issues/177">#177</a>, <a href="https://github.com/boostorg/test/issues/180">#180</a>, <a href="https://github.com/boostorg/test/issues/181">#181</a>, <a href="https://github.com/boostorg/test/issues/194">#194</a>, <a href="https://github.com/boostorg/test/issues/196">#196</a>, <a href="https://github.com/boostorg/test/issues/198">#198</a>, <a href="https://github.com/boostorg/test/issues/199">#199</a>, <a href="https://github.com/boostorg/test/issues/202">#202</a>, <a href="https://github.com/boostorg/test/issues/203">#203</a>, <a href="https://github.com/boostorg/test/issues/204">#204</a> </div> </li> <li> <div> GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/171">PR#171</a>, <a href="https://github.com/boostorg/test/pull/172">PR#172</a>, <a href="https://github.com/boostorg/test/pull/182">PR#182</a>, <a href="https://github.com/boostorg/test/pull/183">PR#183</a>, <a href="https://github.com/boostorg/test/pull/184">PR#184</a>, <a href="https://github.com/boostorg/test/pull/190">PR#190</a>, <a href="https://github.com/boostorg/test/pull/195">PR#195</a>, <a href="https://github.com/boostorg/test/pull/195">PR#195</a>, <a href="https://github.com/boostorg/test/pull/197">PR#197</a>, <a href="https://github.com/boostorg/test/pull/205">PR#205</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Support for the GHS C++ compiler added (many thanks to Brandon Castellano for providing the patch <a href="https://github.com/boostorg/type_index/pull/28">PR#28</a>) </div> </li> <li> <div> Optimized string and type comparisons (many thanks to Andrey Semashev for providing the patch <a href="https://github.com/boostorg/type_index/pull/23">PR#23</a>) </div> </li> <li> <div> Fixed clang-win compilation (many thanks to Peter Dimov for providing the patch <a href="https://github.com/boostorg/type_index/pull/25">PR#25</a>) </div> </li> <li> <div> CI hardening. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_traits/">TypeTraits</a>:</span> <ul> <li> <div> Added is_bounded_array and is_unbounded_array (Glen Fernandes). </div> </li> <li> <div> Added copy_reference and copy_cv_ref (Glen Fernandes). </div> </li> <li> <div> Improved support for msvc with /clr option. </div> </li> <li> <div> Misc compiler compatibility fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Many cleanups and internal improvements, many thanks to Nikita Kniazev (<a href="https://github.com/boostorg/variant/pull/55">PR#55</a>, <a href="https://github.com/boostorg/variant/pull/56">PR#56</a>, <a href="https://github.com/boostorg/variant/pull/57">PR#57</a>) and Louis Dionne (<a href="https://github.com/boostorg/variant/pull/51">PR#51</a>) </div> </li> <li> <div> CI hardening. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/numeric/ublas/">uBlas</a>:</span> <ul> <li> <div> Addition of tensor framework (many thanks to Cem Bassoy <a href="https://github.com/boostorg/ublas/pull/65">PR#65</a>) </div> </li> <li> <div> Addition of basic OpenCL support (many thanks to Fady Essam <a href="https://github.com/boostorg/ublas/pull/59">PR#59</a>) </div> </li> <li> <div> Integration of basic benchmark suite (many thanks to Stefan Seefeld <a href="https://github.com/boostorg/ublas/pull/57">PR#57</a>) </div> </li> <li> <div> CI integration and hardening </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_70_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_70_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Daniel James, Vladimir Prus, Marshall Clow and Michael Caisse managed this release. </p> </div> Version 1.69.0https://www.boost.org/users/history/version_1_69_0.htmlhttps://www.boost.org/users/history/version_1_69_0.htmlWed, 12 Dec 2018 02:58:32 +0000 <div id="version_1_69_0.notes_for_non_windows_users"> <h3><span class="link">Notes for non-Windows users</span></h3> <p> The Boost build system now supports visibilities. If you are building shared libraries, they will use hidden visibility by default. As a result Boost shared libraries become smaller, load faster and have less chances to get a symbol collision. </p> <p> See <a href="https://www.boost.org/build/manual/develop/index.html#bbv2.builtin.features.visibility">Boost.Build visibility and local-visibility</a> for more info. </p> <p> To disable that feature you can use use a command line <code><span class="special">./</span><span class="identifier">b2</span> <span class="identifier">visibility</span><span class="special">=</span><span class="identifier">global</span></code> to build. </p> </div> <div id="version_1_69_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/safe_numerics/">Safe Numerics</a>:</span> A library for guaranteed correct integer arithmetic for C++14 and later, from Robert Ramey. </div> </li> </ul> </div> <div id="version_1_69_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Fixed issue with visibility. Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> variables constructed in one shared library with hidden visibility could be used and destroyed in other shared library with hidden visibility. </div> </li> <li> <div> Maintenance: dropped some dependencies on other Boost libraries, fixes for docs. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Fixed a problem with the detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">future</span></code> availability with libstdc++. </div> </li> <li> <div> Fixed compile error in regex overload of <code><span class="identifier">read_until</span></code>. </div> </li> <li> <div> Fixed a timer heap corruption issue that can occur when moving a cancelled timer. </div> </li> <li> <div> Fixed detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">string_view</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> with newer clang/libc++. </div> </li> <li> <div> Fixed MSVC version detection for availability of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code>. </div> </li> <li> <div> Fixed the buffer sequence traits to test the new requirements, if <code><span class="keyword">decltype</span></code> is available. </div> </li> <li> <div> Fixed an MSVC issue when building with exceptions disabled. </div> </li> <li> <div> Added SSL context options for TLS v1.3. </div> </li> <li> <div> Added a compile-time test for TLS v1 support. </div> </li> <li> <div> Fixed the macro used to test for TLS v1.2 support. </div> </li> <li> <div> Prevented global objects from being created once per thread on Windows. </div> </li> <li> <div> Fixed a crash when using <code><span class="identifier">size</span><span class="special">()</span></code>, <code><span class="identifier">max_size</span><span class="special">()</span></code> or <code><span class="identifier">empty</span><span class="special">()</span></code> on default-constructed resolver results. </div> </li> <li> <div> Changed to move the return value in <code><span class="identifier">basic_resolver_results</span><span class="special">::</span><span class="identifier">begin</span><span class="special">()</span></code> to avoid copying. </div> </li> <li> <div> Enabled move support for the Intel Compiler. </div> </li> <li> <div> Fixed <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> detection issue when using clang-cl. </div> </li> <li> <div> Fixed the handler tracking operation name for <code><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">executor_type</span><span class="special">::</span><span class="identifier">dispatch</span></code>. </div> </li> <li> <div> Fixed a buffer overflow that could occur when parsing an address string with a 64-bit scope id. </div> </li> <li> <div> Added examples showing how to write composed operations. </div> </li> <li> <div> Added C++11 versions of the Timeouts, Timers, SOCKS4 and SSL examples. </div> </li> <li> <div> Fixed minor issues in documentation and examples. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/assign/">Assign</a>:</span> <ul> <li> <div> Add rvalue reference, perfect forwarding, and variadic template support (<a href="https://github.com/boostorg/assign/pull/6">PR#6</a>) (<a href="https://svn.boost.org/trac/boost/ticket/10477">#10477</a>) </div> </li> <li> <div> Avoid conversion to container's allocator (<a href="https://github.com/boostorg/assign/pull/29">PR#29</a>) (<a href="https://svn.boost.org/trac/boost/ticket/5419">#5419</a>) (<a href="https://svn.boost.org/trac/boost/ticket/7364">#7364</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This version fixes some issues in the examples, and provides a new experimental socket which supports built-in timeouts on asynchronous operations. </div> </li> <li> <div> New CppCon 2018 <a href="https://www.boost.org/doc/libs/master/libs/beast/doc/html/beast/examples.html#beast.examples.cppcon_2018">websocket chat example</a> and <a href="https://www.youtube.com/watch?v=7FQwAjELMek">presentation video</a>. </div> </li> <li> <div> For a complete list of changes, please view the official <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/circular_buffer/">CircularBuffer</a>:</span> <ul> <li> <div> Use the empty base optimization for storing allocators that are empty and not final (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/concept_check/">Concept Check</a>:</span> <ul> <li> <div> Removed dependency on mpl. (<a href="https://github.com/boostorg/concept_check/pull/14">PR#14</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/context/issues/85">#85</a>: duplicate alias should be missing GCC alias </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/87">#87</a>: the clang-win toolset (clang-cl.exe) uses masm from the underlying msvc </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/90">#90</a>: remove useless lines in Jamfile.v2 </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/91">#91</a>: add .file section for *_elf_gas.S files </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Implemented <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">empty_value</span></code>, for library authors to conveniently leverage the Empty Base Optimization to store objects of potentially empty types (Glen Fernandes). This facility is now used in Boost.Beast, Boost.CircularBuffer, Boost.MultiArray, and more. </div> </li> <li> <div> Implemented <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">quick_exit</span></code> to provide the C++11 standard library facility <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">quick_exit</span></code> functionality (Peter Dimov). </div> </li> <li> <div> Reduced the number of statics in Lightweight Test, and employ lighter abort behavior for MSVC compilers upon failure to call <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">report_errors</span></code> (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Resolved link issues with the smart library <a href="https://github.com/boostorg/dll/issues/20">#20</a>. </div> </li> <li> <div> Maintenance: fixes for docs and tests. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> <div> Performance improvements (over 2x in some cases). (<a href="https://github.com/boostorg/dynamic_bitset/pull/26">PR#26</a>) </div> </li> <li> <div> Added range-based set, reset, flip methods (<a href="https://github.com/boostorg/dynamic_bitset/pull/27">PR#27</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/fiber/issues/181">#181</a>: unbuffered_channel push not return </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/182">#182</a>: Remove UTF-8 BOM at begining of the file </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/183">#183</a>: Fix boost-install use; should only be issued once </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Don't use <code><span class="identifier">readdir_r</span></code> on Linux and Android since the <code><span class="identifier">readdir</span></code> function is already thread-safe. (<a href="https://github.com/boostorg/filesystem/pull/68">PR#68</a>, <a href="https://github.com/boostorg/filesystem/issues/72">#72</a>) </div> </li> <li> <div> Fixed crashes in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">copy</span></code> due to undefined behavior in the implementation. (<a href="https://github.com/boostorg/filesystem/pull/71">PR#71</a>) </div> </li> <li> <div> Fixed undefined behavior in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">directory_iterator</span></code> implementation. (<a href="https://github.com/boostorg/filesystem/pull/77">PR#77</a>) </div> </li> <li> <div> Fixed compilation errors when using directory iterators with <code><span class="identifier">BOOST_FOREACH</span></code>. </div> </li> <li> <div> Removed workarounds for older PGI C++ compiler versions to fix compilation on the newer ones. (<a href="https://github.com/boostorg/filesystem/pull/49">PR#49</a>) </div> </li> <li> <div> Fixed MSVC warnings about narrowing conversions. (<a href="https://github.com/boostorg/filesystem/pull/44">PR#44</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Fixed some issues in GCC related to Boost.MPL placeholder expression handling. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/function/">Function</a>:</span> <ul> <li> <div> Removed dependencies on mpl, test (<a href="https://github.com/boostorg/function/pull/20">PR#20</a>) (<a href="https://github.com/boostorg/function/pull/22">PR#22</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/486">PR#486</a> Karney's solution of direct geodesic problem for internal use (thanks to Adeel Ahmad). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/490">PR#490</a> Discrete Frechet and Hausdorff distance algorithms (thanks to Yaghyavardhan Singh Khangarot). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/496">PR#496</a> New run-time and upgraded compile-time SRS transformation interfaces (undocumented for now due to potential interface changes). </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/520">#520</a> Missing documentation for dsv(). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/521">#521</a> Wrong documentation description for distance(). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/524">#524</a> Fixed 'enumeration values not handled in switch' warnings. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/527">#527</a> Workaround for VS 2017 (msvc-15). </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/505">PR#505</a> Fixed overflow in overlay algorithms (thanks to Dane Springmeyer). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/518">PR#518</a> Fixed passing of temporaries in append() (thanks to xventura81). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/522">PR#522</a> Support python3 in building documentation. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Changed <ul> <li> <div> Refactored library includes to <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil</span><span class="special">/...&gt;</span></code> structure (<a href="https://github.com/boostorg/gil/pull/145">PR#145</a>). </div> </li> </ul> </div> </li> <li> <div> Removed <ul> <li> <div> Header <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil_all</span><span class="special">.</span><span class="identifier">hpp</span></code> file as deprecated (<a href="https://github.com/boostorg/gil/pull/145">PR#145</a>). </div> </li> <li> <div> Header <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil_concepts</span><span class="special">.</span><span class="identifier">hpp</span></code> file as deprecated (<a href="https://github.com/boostorg/gil/pull/145">PR#145</a>). </div> </li> <li> <div> Header <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil_config</span><span class="special">.</span><span class="identifier">hpp</span></code> file as unnecessary (<a href="https://github.com/boostorg/gil/pull/144">PR#144</a>). </div> </li> </ul> </div> </li> <li> <div> Fixed <ul> <li> <div> Fixed <code><span class="identifier">point</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> divide and multiply to not to hardcode result as <code><span class="identifier">point</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code> (<a href="https://github.com/boostorg/gil/pull/157">PR#157</a>). </div> </li> <li> <div> Fixed conflict between <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fill_n</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range</span><span class="special">::</span><span class="identifier">fill_n</span></code> (<a href="https://github.com/boostorg/gil/pull/152">PR#152</a>). </div> </li> <li> <div> Fixed issue with re-assignment of functor from <code><span class="identifier">for_each_pixel</span></code> (<a href="https://github.com/boostorg/gil/pull/139">PR#139</a>). </div> </li> <li> <div> Fixed missing template keyword prior to dependent name <code><span class="identifier">axis_iterator</span></code> (<a href="https://github.com/boostorg/gil/pull/129">PR#129</a>). </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pending</span><span class="special">/</span><span class="identifier">integer_log2</span><span class="special">.</span><span class="identifier">hpp</span></code> header is deprecated and will be removed in future releases. Use <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">/</span><span class="identifier">integer_log2</span><span class="special">.</span><span class="identifier">hpp</span></code> instead. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iostreams/">Iostreams</a>:</span> <ul> <li> <div> Remove call to nonexistent member seekpos() of std::fpos (<a href="https://github.com/boostorg/iostreams/pull/58">PR#58</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> Fixed compilation problems with ambiguous unqualified calls to <code><span class="identifier">advance</span></code> and <code><span class="identifier">distance</span></code> on iterators whose types involve types in the namespace <code><span class="identifier">boost</span></code>. (<a href="https://github.com/boostorg/iterator/issues/43">#43</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Fixed sign-conversion warnings <a href="https://svn.boost.org/trac/boost/ticket/8991">#8991</a>. </div> </li> <li> <div> Maintenance: dropped some dependencies on other Boost libraries, fixed build system warnings. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> Updated syslog sink backend to avoid using deprecated Boost.ASIO interfaces. (<a href="https://github.com/boostorg/log/issues/59">#59</a>) </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed a possible incorrect estimation of the total size of rotated files in the target directory of a text file sink in some cases. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/logic/">Logic</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> Use explicit operator bool when available (<a href="https://github.com/boostorg/logic/pull/5">PR#5</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Add LambertW functions. </div> </li> <li> <div> Update integration routines to support complex valued integrands and contour integrals. </div> </li> <li> <div> Added the derivative of the Barycentric rational approximation. </div> </li> <li> <div> Minor fixes to better support variable precision floating point types. </div> </li> <li> <div> Removed use of deprecated Boost.Endian in favour of Predef. </div> </li> <li> <div> Updated continued fraction and series evaluation code to support complex types. </div> </li> <li> <div> Prevent logic error leading to infinite loop in toms748_solve. See <a href="https://github.com/boostorg/math/issues/138">#138</a>. </div> </li> <li> <div> Fix mean and standard_deviation for extreme_value_distribution. See <a href="https://github.com/boostorg/math/issues/139">#139</a>. </div> </li> <li> <div> Improve heuristics used in newton_raphson_iterate. See <a href="https://github.com/boostorg/math/issues/145">#145</a>. </div> </li> <li> <div> Fix result of <code><span class="identifier">erf</span><span class="special">(</span><span class="identifier">NaN</span><span class="special">)</span></code>. See <a href="https://github.com/boostorg/math/issues/141 #141">#141 #141</a>. </div> </li> <li> <div> Big push to reduce GCC warnings. See <a href="https://github.com/boostorg/math/issues/136 #136">#136 #136</a>. </div> </li> <li> <div> Refactor polynomial addition. See <a href="https://github.com/boostorg/math/pull/132">PR#132</a>. </div> </li> <li> <div> Fix for vxWorks having a <code><span class="identifier">real</span></code> function in the global namespace. See <a href="https://github.com/boostorg/math/pull/131">PR#131</a>. </div> </li> <li> <div> Improve <code><span class="identifier">sinc</span></code> approximations and add better tests. </div> </li> <li> <div> Fix typo in Student's T hypothesis testing documentation, see <a href="https://github.com/boostorg/math/issues/143">#143</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> Implemented the <code><span class="identifier">mp_starts_with</span></code> facility (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_array/">MultiArray</a>:</span> <ul> <li> <div> Improve C++11 allocator model support including: Support for C++11 minimal allocators, support for stateful allocators, using the allocator for construction and destruction of the value type, and using the empty base optimization for storing empty or stateless allocators (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> <ul> <li> <div> Introduced an alternative <a href="https://www.boost.org/libs/multi_index/doc/tutorial/key_extraction.html#key">terse key specification syntax</a> for C++17 compliant environments. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Big update to better support variable precision types so that the precision of the result is always the largest of all the arguments. </div> </li> <li> <div> Add support for allocators that are <code><span class="identifier">final</span></code> in __cpp_int (Glen Fernandes). </div> </li> <li> <div> Removed use of deprecated Boost.Endian in favour of Predef. </div> </li> <li> <div> Add support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>. </div> </li> <li> <div> Fixed minor bug in constant initialization. See <a href="https://github.com/boostorg/multiprecision/issues/67">#67</a>. </div> </li> <li> <div> Make assignment of non-finite value to <code><span class="identifier">cpp_int</span></code> a runtime errors. See <a href="https://github.com/boostorg/multiprecision/issues/58">#58</a>. </div> </li> <li> <div> Added typedefs for <code><span class="identifier">cpp_bin_float_oct</span></code> and <code><span class="identifier">cpp_complex_oct</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Added Boost.PolyCollection-specific versions of algorithms <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each_n</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">sample</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/pool/">Pool</a>:</span> <ul> <li> <div> Replace boost::mutex use to avoid a dependency on Boost.Thread (<a href="https://github.com/boostorg/pool/pull/23">PR#23</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span> <ul> <li> <div> Supports the new C++ standard conforming preprocessor in VC++ 14.1, which is currently enabled by using the /experimental:preprocessor switch, in Visual Studio 2017 15.8 on up. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/rational/">Rational</a>:</span> <ul> <li> <div> Add constexpr support (<a href="https://github.com/boostorg/rational/pull/28">PR#28</a>) (<a href="https://github.com/boostorg/rational/pull/32">PR#32</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/spirit/">Spirit</a>:</span> <ul> <li> <div> Spirit.X3: <ul> <li> <div> Drop own FP routines in favor of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code> (<a href="https://github.com/boostorg/spirit/issues/392">#392</a>) (<a href="https://svn.boost.org/trac/boost/ticket/13531">#13531</a>) </div> </li> <li> <div> Missing visibility mark on exception types (<a href="https://github.com/boostorg/spirit/issues/409">#409</a>) </div> </li> <li> <div> to_utf8: Fixed wchar_t handling on Windows (<a href="https://github.com/boostorg/spirit/issues/413">#413</a>) (<a href="https://github.com/boostorg/spirit/issues/395">#395</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit V2 <ul> <li> <div> Drop own FP routines in favor of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code> (<a href="https://github.com/boostorg/spirit/issues/392">#392</a>) (<a href="https://svn.boost.org/trac/boost/ticket/13531">#13531</a>) </div> </li> <li> <div> Missing visibility mark on exception types (<a href="https://github.com/boostorg/spirit/issues/409">#409</a>) </div> </li> <li> <div> Fixed transform_attribute ambiguity (<a href="https://github.com/boostorg/spirit/issues/407">#407</a>) (<a href="https://github.com/boostorg/spirit/issues/396">#396</a>) </div> </li> <li> <div> to_utf8: Fixed wchar_t handling on Windows (<a href="https://github.com/boostorg/spirit/issues/413">#413</a>) (<a href="https://github.com/boostorg/spirit/issues/395">#395</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit.Classic: <ul> <li> <div> Missing visibility mark on exception types (<a href="https://github.com/boostorg/spirit/issues/409">#409</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> <code><span class="identifier">libbacktrace</span></code> usage was significantly improved. <code><span class="identifier">BOOST_STACKTRACE_USE_BACKTRACE</span></code> or <code><span class="identifier">boost_stacktrace_backtrace</span></code> users are encouraged to update: <ul> <li> <div> Memory consumprion dropped down. </div> </li> <li> <div> Stack capturing became faster by an order of magnitude. </div> </li> <li> <div> <code><span class="identifier">syminfo</span></code> fallback enabled to provide information for visible symbols even without debug information (thanks to github user driesdeschout!)<a href="https://github.com/boostorg/stacktrace/issues/60">#60</a>, <a href="https://github.com/boostorg/stacktrace/issues/61">#61</a>. </div> </li> <li> <div> Exact location of the <code><span class="identifier">backtrace</span><span class="special">.</span><span class="identifier">h</span></code> header now can be specified via <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE</span></code>, to allow <code><span class="identifier">backtrace</span><span class="special">.</span><span class="identifier">h</span></code> header usage on platforms and compilers where that header is unreachable otherwise (for example Ubuntu Xenial + Clang) <a href="https://github.com/boostorg/stacktrace/issues/59">#59</a>. </div> </li> </ul> </div> </li> <li> <div> Optimized stack capturing if <code><span class="identifier">max_depth</span></code> is set (thanks to Jan Eisenhauer for the PR!) <a href="https://github.com/boostorg/stacktrace/issues/67">#67</a>. </div> </li> <li> <div> Added <code><span class="identifier">to_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">stacktrace</span><span class="special">&amp;</span> <span class="special">)</span></code> functions for fast conversion of stacktraces to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> <a href="https://github.com/boostorg/stacktrace/issues/57">#57</a>. </div> </li> <li> <div> Maintenance: updated docs <a href="https://github.com/boostorg/stacktrace/issues/62">#62</a>, tests updated. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> Boost.System is now header-only. A stub library is still built for compatibility, but linking to it is no longer necessary. </div> </li> <li> <div> Even more functions have been marked <code><span class="keyword">constexpr</span></code>. </div> </li> <li> <div> The destructor of <code><span class="identifier">error_category</span></code> is now <code><span class="keyword">protected</span></code> and no longer <code><span class="keyword">virtual</span></code>. This is a potentially breaking change, but its impact is expected to be limited. </div> </li> <li> <div> <code><span class="identifier">error_category</span></code> now has a constructor that accepts a 64 bit identifier, enabling distinct category objects to compare equal. </div> </li> <li> <div> The constructors of <code><span class="identifier">error_category</span></code> are now <code><span class="keyword">protected</span></code>. </div> </li> <li> <div> A non-allocating, nonthrowing overload of <code><span class="identifier">message</span></code> has been added. </div> </li> <li> <div> A virtual function <code><span class="identifier">failed</span></code> has been added, allowing categories for which success is not synonymous with 0. </div> </li> <li> <div> The deprecated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">throws</span></code> object has been removed. </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throws</span><span class="special">()</span></code> is now deprecated and its use is discouraged. </div> </li> <li> <div> The constructor of <code><span class="identifier">system_error</span></code> taking a single <code><span class="identifier">error_code</span></code> argument is now <code><span class="keyword">explicit</span></code>. </div> </li> <li> <div> <code><span class="identifier">system_error</span><span class="special">::</span><span class="identifier">code</span><span class="special">()</span></code> now returns by value. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.9 see the <a href="https://www.boost.org/users/history/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> New feature: <ul> <li> <div> Official support of header-only variant of Boost.Test with multiple translation units. </div> </li> <li> <div> Now possible to manually add a test case by specifying its name, with <code><span class="identifier">BOOST_TEST_CASE_NAME</span></code> </div> </li> <li> <div> Better support of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception</span></code> in the logs </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/13380">#13380</a>, <a href="https://svn.boost.org/trac/boost/ticket/13625">#13625</a>, <a href="https://svn.boost.org/trac/boost/ticket/13637">#13637</a> </div> </li> <li> <div> GitHub Issues: <a href="https://github.com/boostorg/test/issues/149">#149</a>, <a href="https://github.com/boostorg/test/issues/150">#150</a>, <a href="https://github.com/boostorg/test/issues/156">#156</a>, <a href="https://github.com/boostorg/test/issues/158">#158</a>, <a href="https://github.com/boostorg/test/issues/163">#163</a> </div> </li> <li> <div> GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/147">PR#147</a>, <a href="https://github.com/boostorg/test/pull/148">PR#148</a>, <a href="https://github.com/boostorg/test/pull/151">PR#151</a>, <a href="https://github.com/boostorg/test/pull/154">PR#154</a>, <a href="https://github.com/boostorg/test/pull/161">PR#161</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Fix the regression and speed up parsing of the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span></code> header by 30% (thanks to Nikita Kniazev for the PR!) <a href="https://github.com/boostorg/type_index/issues/21">#21</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Added support for non-inheritable empty types to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">compressed_pair</span></code> by avoiding the empty base optimization for types which are declared as final (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed issue with visibility. Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_visit</span></code> exception could cross the boundaries of shared library with hidden visibility and could be catched in other shared library with hidden visibility. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span> <ul> <li> <div> Minor changes to support MSVC++ version 14.15 (Visual Studio 2017 version 15.8). </div> </li> <li> <div> Doc fixes. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_69_0.discontinued_libraries"> <h3><span class="link">Discontinued Libraries</span></h3> <ul> <li> <div> Signals (v1) is now removed. Its removal was announced in 1.68 and its deprecation was announced in 1.54. Boost 1.68 is the last release that provides this library. Users are encouraged to use Signals2 instead. The Boost community thanks Douglas Gregor for his work on Signals which served its users well and which also inspired Signals2. </div> </li> </ul> </div> <div id="version_1_69_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0, 10.0.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> <li> <div> Apple Clang, C++2a: 10.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_69_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Daniel James, Vladimir Prus, Marshall Clow and Michael Caisse managed this release. </p> </div> Version 1.68.0https://www.boost.org/users/history/version_1_68_0.htmlhttps://www.boost.org/users/history/version_1_68_0.htmlThu, 09 Aug 2018 03:46:16 +0000 <div id="version_1_68_0.notes_for_windows_users"> <h3><span class="link">Notes for Windows users</span></h3> <p> Boost.WinAPI has been updated to target Windows 7 by default, where possible. In previous releases Windows Vista was the default. </p> <p> Boost.WinAPI is used internally as the Windows SDK abstraction layer in a number of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll, Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and Boost.UUID. To select the target Windows version define <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code> to the numeric version similar to <code><span class="identifier">_WIN32_WINNT</span></code> while compiling Boost and user's code. For example: </p> <pre> b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage </pre> <p> The list of Windows API version numbers can be seen on <a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx">this</a> page. </p> </div> <div id="version_1_68_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span> An expression template library for C++14 and later, from Zach Laine. </div> </li> </ul> </div> <div id="version_1_68_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This version fixes a missing executor work guard in all composed operations used in the implementation. Users who are experiencing crashes related to asynchronous completion handlers are encouraged to upgrade. </div> </li> <li> <div> For a complete list of changes, please view the official <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/context/issues/78">#78</a>: Linker error with <code><span class="identifier">context</span><span class="special">-</span><span class="identifier">impl</span><span class="special">=</span><span class="identifier">ucontext</span></code>: multiple definition of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">current_rec</span></code> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/14">#14</a>: crash while stack unwinding </div> </li> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/18">#18</a>: some guidance on why to use coroutine2 </div> </li> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/20">#20</a>: failes to compile test in due to the error C2039 </div> </li> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/22">#22</a>: undefined behaviour documentation </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/fiber/issues/170">#170</a>: buffered_channel::try_push has incorrect documentation </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/172: WIN64">#172: WIN64</a>: 'invalid conversion from 'HANDLE' to 'std::thread::native_handle_type' errors for builds using mingw-w64 </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/175">#175</a>: throw exception "Operation not permitted" </div> </li> <li> <div> NUMA support moved to extra library (fiber-numa); enabled via property numa (numa=on) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Added a workaround for ambiguous call of <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">deque</span></code> constructor on GCC 4.4/c++0x (<a href="https://github.com/boostorg/fusion/pull/178">PR#178</a>, <a href="https://github.com/boostorg/fusion/pull/178/commits/9de32721749b635ff3e04e690da89cf06602c122">commit</a>). </div> </li> <li> <div> Fixed a bug with C-style array (<a href="https://github.com/boostorg/fusion/pull/177">PR#177</a>). </div> </li> <li> <div> Fixed a <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">for_each</span></code> signature to take functor by value (<a href="https://svn.boost.org/trac/boost/ticket/4427">#4427</a>). <ul> <li> <div> This may break existing code with non-copyable (non-movable) functor, but the implementation wasn't correct for a long time; the documantation was correct from the first. So, please make sure your usage. </div> </li> </ul> </div> </li> <li> <div> Fixed unintentional MPL placeholder substitution bug on <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">transform</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/5490">#5490</a>). </div> </li> <li> <div> Moved description, how to conform Fusion sequence as MPL sequence, to mpl section (<a href="https://svn.boost.org/trac/boost/ticket/4029">#4029</a>). </div> </li> <li> <div> Added notes regarding IO facility for adapted type (<a href="https://svn.boost.org/trac/boost/ticket/6091">#6091</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/469">469</a> Horizontal grid shift (nadgrids) in SRS transformations (undocumented for now due to potential interface changes). </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/478">478</a> Box-Segment distance for spherical and geographic coordinate systems. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/487">487</a> Missing combinations of geometries in distance for spherical and geographic cs </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/489">489</a> Additional direct geodesic problem formulas for internal use </div> </li> </ul> </div> </li> <li> <div> Solved issues <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/470">470</a> Assertion failure with short spherical and geographic segments. </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/471">471</a> Invalid envelope of spherical polygon </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/498">498</a> Unexpected results with expand() and make_inverse() for spherical and geographic CS </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/504">504</a> Unused parameter warnings. </div> </li> </ul> </div> </li> <li> <div> Bugfixes <ul> <li> <div> <a href="https://github.com/boostorg/geometry/pull/488">488</a> Handle non-true-references in closing_iterator and ever_circling_range_iterator </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/pull/495">495</a> VxWorks 7 cross-compilation issue. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Added <ul> <li> <div> The library now requires a C++11-compliant compiler. </div> </li> <li> <div> New top-level all-in-one <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil</span><span class="special">.</span><span class="identifier">hpp</span></code> header (<a href="https://github.com/boostorg/gil/pull/70">PR#70</a>). </div> </li> <li> <div> New Toolbox extension, <a href="https://lists.boost.org/boost-announce/2011/01/0281.php">reviewed and accepted into Boost</a>. </div> </li> </ul> </div> </li> <li> <div> Changed <ul> <li> <div> IO extensions have been entirely rewritten as IO v2, <a href="https://lists.boost.org/boost-announce/2011/01/0281.php">reviewed and accepted into Boost</a>. </div> </li> <li> <div> Documentation has been reformatted and updated. </div> </li> </ul> </div> </li> <li> <div> Removed <ul> <li> <div> IO v1 extension has been replaced with IO v2. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Conditionally replace deprecated/removed C++98 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind1st</span></code> by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span></code> by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique_ptr</span></code>, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">random_shuffle</span></code> by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shuffle</span></code>. (<a href="https://github.com/boostorg/graph/pull/89">PR#89</a>) </div> </li> <li> <div> Fix compiler error with release builds on VS2015 (<a href="https://github.com/boostorg/graph/pull/84">PR#84</a>) </div> </li> <li> <div> Fix the Stanford GraphBase examples (<a href="https://github.com/boostorg/graph/pull/87">PR#87</a>) </div> </li> <li> <div> Fix friend declarations for iterator_core_access (<a href="https://github.com/boostorg/graph/pull/103">PR#103</a>) </div> </li> <li> <div> Add missing <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> include (<a href="https://github.com/boostorg/graph/pull/104">PR#104</a>) </div> </li> <li> <div> Avoid an unused variable warning (<a href="https://github.com/boostorg/graph/pull/90">PR#90</a>) </div> </li> <li> <div> Fix some typos in documentation (<a href="https://github.com/boostorg/graph/pull/88">PR#88</a>, <a href="https://github.com/boostorg/graph/pull/98">PR#98</a>, <a href="https://github.com/boostorg/graph/pull/102">PR#102</a>) </div> </li> <li> <div> Fix some issues in tests and examples (<a href="https://github.com/boostorg/graph/pull/85">PR#85</a>, <a href="https://github.com/boostorg/graph/pull/105">PR#105</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixes for clang-tidy warnings <a href="https://svn.boost.org/trac/boost/ticket/12092">#12092</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Improved support for VxWorks. (<a href="https://github.com/boostorg/log/pull/39">PR#39</a>) </div> </li> <li> <div> Save and restore <code><span class="identifier">ebx</span></code> register on x86 PIE targets in the <code><span class="identifier">dump</span></code> stream manipulator implementation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Support for arbitrary precision complex valued quadrature and hence contour integration </div> </li> <li> <div> Improve performance of polynomial addition </div> </li> <li> <div> Continue to improve numerical integration routines, and in particular add support for contour integrals. </div> </li> <li> <div> Improve accuracy of erfc function's rational approximations. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Containers of moveable but non-copyable elements can now be serialized (ticket <a href="https://svn.boost.org/trac/boost/ticket/13478">#13478</a>). Thanks to Sébastien Paris for the report. </div> </li> <li> <div> <code><span class="identifier">multi_index_container</span></code>'s default constructor is no longer <code><span class="keyword">explicit</span></code> (ticket <a href="https://svn.boost.org/trac/boost/ticket/13518">#13518</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision">Multiprecision</a>:</span> <ul> <li> <div> Support added for complex multiprecision numbers. </div> </li> <li> <div> Changed conversion to unsigned integer types to be truncating to match standard defined behaviour. </div> </li> <li> <div> Correct bug in MPFR string formatting. </div> </li> <li> <div> Fix undefined behaviour in cpp_dec_float conversion from long long. </div> </li> <li> <div> Add support for Eigen interoperability. </div> </li> <li> <div> float128.hpp: Fix Intel on Windows build. </div> </li> <li> <div> Fix type used in temporaries when expanding expression templates containing mixed expressions. </div> </li> <li> <div> Fix infinite loop in gmp_float to fixed-point string conversion. </div> </li> <li> <div> Update the expression templates to issue static_asserts with better error messages when you try and do something unsupported. </div> </li> <li> <div> Fix bug in cpp_int where incrementing to zero doesn't set the sign correctly. </div> </li> <li> <div> Remove erroneous use of std::move, and rely on NVRO instead. </div> </li> <li> <div> Fix up support for changes to MPIR-3.0. </div> </li> <li> <div> Fix various conversion errors in cpp_bin_float when the exponent type is a <code><span class="keyword">long</span> <span class="keyword">long</span></code>, or else we're converting to an integer that is wider than we are. </div> </li> <li> <div> Fix compatibility issue with GCC-8 caused by the introduction of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byte</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Added member function <code><span class="identifier">has_value</span><span class="special">()</span></code> for compatibility with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code> (<a href="https://github.com/boostorg/optional/issues/52">issue #52</a>). </div> </li> <li> <div> Added member function <code><span class="identifier">map</span><span class="special">()</span></code> for transforming <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> into <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code> using a function of type <code><span class="identifier">T</span> <span class="special">-&gt;</span> <span class="identifier">U</span></code>. </div> </li> <li> <div> Added member function <code><span class="identifier">flat_map</span><span class="special">()</span></code> for transforming <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> into <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code> using a function of type <code><span class="identifier">T</span> <span class="special">-&gt;</span> <span class="identifier">optonal</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Add support for __ARM_ARCH macro. (from Tim Blechmann) </div> </li> <li> <div> Add detection for PTX architecture. (from Benjamin Worpitz) </div> </li> <li> <div> Add nvcc compiler detection. (from Benjamin Worpitz) </div> </li> <li> <div> Add support for detecting CUDA. (from Benjamin Worpitz) </div> </li> <li> <div> Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Support for multiple long names for an option, thanks to Eyal Rozenberg (<a href="https://github.com/boostorg/program_options/pull/53">PR#53</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/python/">Python</a>:</span> <ul> <li> <div> Bug fixes to correct autolink support (Windows) (<a href="https://github.com/boostorg/python/issues/193">#193</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/rational/">Rational</a>:</span> <ul> <li> <div> Fixed undefined behavior in normalize() (<a href="https://github.com/boostorg/rational/pull/19">PR#19</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span> <ul> <li> <div> Add constexpr to error_code and error_condition members under C++14 and above (<a href="https://github.com/boostorg/system/pull/23">PR#23</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/signals/">Signals</a>:</span> <ul> <li> <div> <strong>Removal Notice:</strong> Boost.Signals will be removed in the next release. Boost.Signals was deprecated in version 1.54.0. Transition to Boost.Signals2 now to avoid disruption. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/spirit/">Spirit</a>:</span> <ul> <li> <div> Spirit.X3: <ul> <li> <div> Small list parser optimization (<a href="https://github.com/boostorg/spirit/pull/368">PR#368</a>). </div> </li> <li> <div> Pass container attributes through sequence parser or unary ending down to a sequence parser (<a href="https://github.com/boostorg/spirit/pull/370">PR#370</a> <a href="https://svn.boost.org/trac/boost/ticket/12085">#12085</a>). </div> </li> <li> <div> More fine grained sequence attribute check message (<a href="https://github.com/boostorg/spirit/pull/371">PR#371</a>). </div> </li> <li> <div> Removed redundant check in <code><span class="identifier">skip_over</span></code> (<a href="https://github.com/boostorg/spirit/pull/373">PR#373</a>). </div> </li> <li> <div> Workaround constexpr in noexcept VS2015 bug in entire <code><span class="identifier">x3</span><span class="special">::</span><span class="identifier">variant</span></code> (<a href="https://github.com/boostorg/spirit/pull/379">PR#379</a>). </div> </li> <li> <div> Fixed calc4b example compilation (<a href="https://github.com/boostorg/spirit/pull/384">PR#384</a>). </div> </li> <li> <div> Minor code improvements (<a href="https://github.com/boostorg/spirit/pull/374">PR#374</a>). </div> </li> </ul> </div> </li> <li> <div> Spirit.Qi: <ul> <li> <div> Fixed ADT support by permutation and sequence_or operator (<a href="https://github.com/boostorg/spirit/pull/376">PR#376</a>). </div> </li> <li> <div> Specialize iterator_source for random access (<a href="https://github.com/boostorg/spirit/pull/383">PR#383</a>). </div> </li> <li> <div> Removed redundant check in <code><span class="identifier">skip_over</span></code> (<a href="https://github.com/boostorg/spirit/pull/373">PR#373</a>). </div> </li> </ul> </div> </li> <li> <div> Spirit.Karma: <ul> <li> <div> Fixed UB in <code><span class="identifier">get_absolute_value</span></code> function (<a href="https://github.com/boostorg/spirit/pull/246">PR#246</a>). </div> </li> <li> <div> Fixed use after scope bug if ADT getter returns by value (<a href="https://github.com/boostorg/spirit/pull/375">PR#375</a> <a href="https://svn.boost.org/trac/boost/ticket/6126">#6126</a>). </div> </li> </ul> </div> </li> <li> <div> Spirit.Classic: <ul> <li> <div> Fixed a regression introduced in <a href="https://github.com/boostorg/spirit/pull/336">PR#336</a> (<a href="https://github.com/boostorg/spirit/pull/386">PR#386</a>). </div> </li> <li> <div> Minor code improvements (<a href="https://github.com/boostorg/spirit/pull/367">PR#367</a>). </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Fixed compilation on Solaris and other platforms that do qualify address as const in <code><span class="identifier">dladdr</span></code> function (github 54). </div> </li> <li> <div> Dropped dependency on Boost.LexicalCast. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.8 see the <a href="https://www.boost.org/users/history/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> Breaking changes <ul> <li> <div> The <code><span class="identifier">master_test_suite_t</span></code> object is no more copyable </div> </li> </ul> </div> </li> <li> <div> New feature: <ul> <li> <div> Dataset test case can now use command line parameters </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/12095">#12095</a>, <a href="https://svn.boost.org/trac/boost/ticket/12953">#12953</a>, <a href="https://svn.boost.org/trac/boost/ticket/13504">#13504</a>, <a href="https://svn.boost.org/trac/boost/ticket/13525">#13525</a>, <a href="https://svn.boost.org/trac/boost/ticket/13528">#13528</a> </div> </li> <li> <div> Pull requests: <a href="https://github.com/boostorg/test/pull/143">PR#143</a>, <a href="https://github.com/boostorg/test/pull/145">PR#145</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Dropped dependency on Boost.MPL. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> sha1 detail namespace header redirection for backwards compatibility was removed (<a href="https://github.com/boostorg/uuid/pull/69">PR#69</a>). </div> </li> <li> <div> Added support for std::hash (<a href="https://github.com/boostorg/uuid/pull/67">PR#67</a>). </div> </li> <li> <div> Added support for move semantics on random generators (<a href="https://github.com/boostorg/uuid/pull/74">PR#74</a>). </div> </li> <li> <div> Properly handle EINTR when acquiring entropy (<a href="https://github.com/boostorg/uuid/pull/74">PR#74</a>). </div> </li> <li> <div> Use getrandom(2) instead of getentropy(3) on linux (<a href="https://github.com/boostorg/uuid/pull/75">PR#75</a>). </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_68_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, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </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.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.2, 6.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 </div> </li> <li> <div> GCC, C++17: 7.3.0, 8.0.1 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++11: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++14: 9.0.0, 9.1.0 </div> </li> <li> <div> Apple Clang, C++17: 9.1.0 </div> </li> <li> <div> Apple Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 </div> </li> <li> <div> GCC, C++17: 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_68_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> Daniel James, Vladimir Prus, and Marshall Clow managed this release. </p> </div> Version 1.67.0https://www.boost.org/users/history/version_1_67_0.htmlhttp://www.boost.org/users/history/version_1_67_0.htmlSat, 14 Apr 2018 20:37:12 +0000 <div id="version_1_67_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. </p> <ul> <li> <div> Fix compiling with FreeBSD: <ul> <li> <div> <a href="https://www.boost.org/patches/1_67_0/0001-Fiber-Use-pthread_setaffinity_np-on-FreeBSD-as-well.patch">/patches/1_67_0/0001-Fiber-Use-pthread_setaffinity_np-on-FreeBSD-as-well.patch</a> </div> </li> <li> <div> <a href="https://www.boost.org/patches/1_67_0/0002-Wave-Avoid-using-wrong-T_DIVIDE-on-BSDs.patch">/patches/1_67_0/0002-Wave-Avoid-using-wrong-T_DIVIDE-on-BSDs.patch</a> </div> </li> </ul> </div> </li> <li> <div> Fix Python auto-linking: <ul> <li> <div> <a href="https://www.boost.org/patches/1_67_0/0003-Python-Fix-auto-linking-logic-Windows-only.patch">/patches/1_67_0/0003-Python-Fix-auto-linking-logic-Windows-only.patch</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_67_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/contract/">Contract</a>:</span> Contract programming for C++. All contract programming features are supported: Subcontracting, class invariants, postconditions (with old and return values), preconditions, customizable actions on assertion failure (e.g., terminate or throw), optional compilation and checking of assertions, etc, from Lorenzo Caminiti. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/hof/">HOF</a>:</span> Higher-order functions for C++, from Paul Fultz II. </div> </li> </ul> </div> <div id="version_1_67_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added missing const qualifier to <code><span class="identifier">basic_socket_acceptor</span><span class="special">::</span><span class="identifier">get_option</span></code>. </div> </li> <li> <div> Worked around a parsing error that occurs with some versions of gcc. </div> </li> <li> <div> Fixed broken code samples in tutorial. </div> </li> <li> <div> Added new experimental features. (Note that "experimental" features may be changed without notice in subsequent releases.) <ul> <li> <div> Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">detached</span></code> completion token. </div> </li> <li> <div> Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">redirect_error</span></code> completion token. </div> </li> <li> <div> Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">co_spawn</span></code> facility for integration with the coroutines technical specification. </div> </li> <li> <div> Updated timeout examples to use latest features. </div> </li> <li> <div> Used <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">steady_timer</span></code> rather than <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">deadline_timer</span></code>. </div> </li> <li> <div> Used <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">dynamic_buffer</span></code> rather than <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">streambuf</span></code>. </div> </li> <li> <div> Used timed <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">run_for</span><span class="special">()</span></code> function for blocking clients. </div> </li> <li> <div> Added example showing a custom completion token for blocking with timeouts. </div> </li> </ul> </div> </li> <li> <div> Fixed unit tests to compile when <code><span class="identifier">BOOST_ASIO_NO_DEPRECATED</span></code> is defined. </div> </li> <li> <div> Changed socket iostreams to use chrono by default, to fix compatibility with the Networking TS. Define <code><span class="identifier">BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM</span></code> to enable the old Boost.Date_Time interface in <code><span class="identifier">basic_socket_streambuf</span></code> and <code><span class="identifier">basic_socket_iostream</span></code>. </div> </li> <li> <div> Updated examples to use chrono rather than Boost.Date_Time. </div> </li> <li> <div> Fixed an incorrect member function detector in the <code><span class="identifier">is_dynamic_buffer</span></code> trait. </div> </li> <li> <div> Fixed an <code><span class="identifier">async_result</span></code> incompatibility with deprecated <code><span class="identifier">handler_type</span></code>. </div> </li> <li> <div> Added a missing move optimisation in the SSL stream implementation. </div> </li> <li> <div> Fixed incorrect <code><span class="identifier">basic_resolver_results</span><span class="special">::</span><span class="identifier">value_type</span></code> typedef. </div> </li> <li> <div> Fixed a compile error with some OpenSSL versions when <code><span class="identifier">SSL_OP_NO_COMPRESSION</span></code> is defined. </div> </li> <li> <div> Changed <code><span class="identifier">add_certificate_authority</span></code> to process multiple certificates in a bundle. </div> </li> <li> <div> Eliminated deprecation warning with MSVC by using <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code> rather than <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">result_of</span></code>. </div> </li> <li> <div> Changed to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> for C++17 or later, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">string_view</span></code> for C++14. Define the preprocessor macro <code><span class="identifier">BOOST_ASIO_DISABLE_STD_STRING_VIEW</span></code> to force the use of std::experimental::string_view (assuming it is available) when compiling in C++17 mode. </div> </li> <li> <div> Ensured <code><span class="identifier">DynamicBuffer</span></code> template arguments are decayed before using in <code><span class="identifier">enable_if</span></code> tests. </div> </li> <li> <div> Changed documentation to distinguish legacy completion handlers (which are still required to be CopyConstructible) from new MoveConstructible handlers. </div> </li> <li> <div> Suppressed a discarded return value warning in the buffer debugging support. </div> </li> <li> <div> Fixed <code><span class="identifier">basic_yield_context</span></code> to work with completion signatures containing reference parameters. </div> </li> <li> <div> Ensured that stackful coroutines launched using <code><span class="identifier">spawn</span><span class="special">()</span></code> correctly store decayed copies of their function and handler arguments. </div> </li> <li> <div> Fixed some compatibility issues with Android. </div> </li> <li> <div> Added cross-compilation support to Jamfiles. </div> </li> <li> <div> Fixed some minor portability issues in examples. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> Changed the result of the <code><span class="special">(</span><span class="identifier">op</span><span class="special">)</span><span class="identifier">_and_test</span></code> operations added in Boost 1.66 to the opposite - the functions now return <code><span class="keyword">true</span></code> if the operation result is non-zero. This is consistent with other <code><span class="identifier">test</span></code> methods in Boost.Atomic and the C++ standard library. Users can define <code><span class="identifier">BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST</span></code> when compiling their code to emit warnings on every use of the changed functions. This way users can locate the code that needs to be updated. (<a href="https://github.com/boostorg/atomic/issues/11">#11</a>) </div> </li> <li> <div> Update for C++2a. On C++11 compilers that support scoped enums, the <code><span class="identifier">memory_order</span></code> enumeration is now scoped and contains constants with shorter names like <code><span class="identifier">acquire</span></code>, <code><span class="identifier">release</span></code> or <code><span class="identifier">seq_cst</span></code> (i.e. users can use <code><span class="identifier">memory_order</span><span class="special">::</span><span class="identifier">acquire</span></code> instead of <code><span class="identifier">memory_order_acquire</span></code>). The old constants are also provided for backward compatibility. (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html">P0439R0</a>) </div> </li> <li> <div> Update for C++2a. Added experimental support for atomic operations on floating point types. In addition to general operations, <code><span class="identifier">add</span></code>, <code><span class="identifier">sub</span></code>, <code><span class="identifier">negate</span></code> operations and their <code><span class="identifier">fetch_</span><span class="special">(</span><span class="identifier">op</span><span class="special">)</span></code> and <code><span class="identifier">opaque_</span><span class="special">(</span><span class="identifier">op</span><span class="special">)</span></code> versions are supported. Lock-free property can be tested with the new macros <code><span class="identifier">BOOST_ATOMIC_FLOAT</span><span class="special">/</span><span class="identifier">DOUBLE</span><span class="special">/</span><span class="identifier">LONG_DOUBLE_LOCK_FREE</span></code>. The support for floating point types is optional and can be disabled by defining <code><span class="identifier">BOOST_ATOMIC_NO_FLOATING_POINT</span></code>. (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0020r6.html">P0020R6</a>) </div> </li> <li> <div> Added new experimental operations: <ul> <li> <div> <code><span class="identifier">negate_and_test</span></code> and <code><span class="identifier">complement_and_test</span></code> which perform negation or bitwise complement and return <code><span class="keyword">true</span></code> if the result is not zero. </div> </li> <li> <div> <code><span class="identifier">add</span></code>, <code><span class="identifier">sub</span></code>, <code><span class="identifier">negate</span></code>, <code><span class="identifier">bitwise_and</span></code>, <code><span class="identifier">bitwise_or</span></code>, <code><span class="identifier">bitwise_xor</span></code>, <code><span class="identifier">bitwise_complement</span></code> operations which perform the operation and return its result. </div> </li> </ul> </div> </li> <li> <div> For generic <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> specialization, the default constructor is now trivial if <code><span class="identifier">T</span></code>'s default constructor is. </div> </li> <li> <div> The internal implementation of <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> has been updated to avoid undefined behavior that stems from signed integer overflows. As required by the C++ standard, the library uses two's complement representation of signed integers internally and accroding rules of overflow. Currently, the library requires the native signed integer types to also use two's complement representation (but no defined overflow semantics). </div> </li> <li> <div> Improved Clang support. In particular, fixed DCAS not being lock-free and fixed possible incorrect code generated on 32-bit x86. </div> </li> <li> <div> Improved MinGW support. For gcc versions up to 4.6, fixed compilation of DCAS on x86. </div> </li> <li> <div> In x86 PIE code, asm blocks now preserve <code><span class="identifier">ebx</span></code> value. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> This version fixes significant defects in <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span></code> which can lead to asserts or undefined behavior. Users are encouraged to update to the latest Boost release. </div> </li> <li> <div> For a complete list of changes, please view the official <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release Notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container_hash/">ContainerHash</a>:</span> <ul> <li> <div> Extracted from the functional module to break a dependency cycle. </div> </li> <li> <div> Moved headers to new location to reflect name change, the old include paths will still work. </div> </li> <li> <div> Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_condition</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">monostate</span></code> where available. </div> </li> <li> <div> Added explicit support for <code><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>, so that it will work with libc++ (<a href="https://svn.boost.org/trac/boost/ticket/13501">#13501</a>). </div> </li> <li> <div> More detail in the <a href="https://www.boost.org/doc/html/hash/changes.html#hash.changes.boost_1_67_0">library change log</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/context/issues/62">#62</a>/<a href="https://github.com/boostorg/context/pull/64">PR#64</a>: fix i386/macho routines to correctly return transfer_t in EAX/EDX </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/65">#65</a>: <code><span class="identifier">__sanitizer_finish_switch_fiber</span></code> should be called directly after context switch </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/66">#66</a>: Clang on Windows : error: No best alternative for libs/context/build/asm_sources </div> </li> <li> <div> <a href="https://github.com/boostorg/context/issues/73">#73</a>: fixing C2492 for execution_context (v1) </div> </li> <li> <div> known bug: including all.hpp + &lt;context-impl&gt;ucontext/winfib causes error 'forced_unwind: is not a member of boost::context::detail' </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Updated <code><span class="identifier">to_address</span></code> and <code><span class="identifier">pointer_traits</span></code> to reflect the design adopted for C++2a in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html">P0653R2</a> (Glen Fernandes). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/coroutine2/issues/13">#13</a>: Pull coroutine does not rethrow an exception if it is thrown on the first entry </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/date_time/">DateTime</a>:</span> <ul> <li> <div> Fixed various year 2038 (32-bit) issues (<a href="https://svn.boost.org/trac/boost/ticket/2818">#2818</a>) (<a href="https://svn.boost.org/trac/boost/ticket/2819">#2819</a>) (<a href="https://svn.boost.org/trac/boost/ticket/3487">#3487</a>) (<a href="https://svn.boost.org/trac/boost/ticket/4543">#4543</a>) (<a href="https://svn.boost.org/trac/boost/ticket/8450">#8450</a>) (<a href="https://svn.boost.org/trac/boost/ticket/9158">#9158</a>) (<a href="https://svn.boost.org/trac/boost/ticket/9489">#9489</a>) (<a href="https://svn.boost.org/trac/boost/ticket/10570">#10570</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12609">#12609</a>) </div> </li> <li> <div> Fixed a binary serialization regression introduced in 1.66.0 (<a href="https://github.com/boostorg/date_time/issues/56">#56</a>) (<a href="https://github.com/boostorg/date_time/pull/58">PR#58</a>) (<a href="https://github.com/boostorg/date_time/pull/70">PR#70</a>) </div> </li> <li> <div> Updated the timezone database file (<a href="https://svn.boost.org/trac/boost/ticket/4430">#4430</a>) (<a href="https://svn.boost.org/trac/boost/ticket/10087">#10087</a>) (<a href="https://github.com/boostorg/date_time/pull/68">PR#68</a>) </div> </li> <li> <div> Enhanced <code><span class="identifier">from_iso_string</span></code> so it can read output of <code><span class="identifier">to_iso_string</span></code> for special values (<a href="https://svn.boost.org/trac/boost/ticket/1078">#1078</a>) (<a href="https://github.com/boostorg/date_time/pull/69">PR#69</a>) </div> </li> <li> <div> Changed maximum supported year from 10000 to 9999 to resolve various issues (<a href="https://svn.boost.org/trac/boost/ticket/13159">#13159</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12630">#12630</a>) (<a href="https://github.com/boostorg/date_time/pull/71">PR#71</a>) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period_parser</span><span class="special">::</span><span class="identifier">delimiter_strings</span></code> did nothing (<a href="https://svn.boost.org/trac/boost/ticket/11142">#11142</a>) (<a href="https://github.com/boostorg/date_time/pull/63">PR#63</a>) </div> </li> <li> <div> Ensure special values are not automatically translated to integral types (<a href="https://svn.boost.org/trac/boost/ticket/11168">#11168</a>) (<a href="https://github.com/boostorg/date_time/pull/64">PR#64</a>) </div> </li> <li> <div> <code><span class="identifier">int_adapter</span><span class="special">::</span><span class="identifier">is_signed</span></code> should be const (<a href="https://svn.boost.org/trac/boost/ticket/12363">#12363</a>) (<a href="https://github.com/boostorg/date_time/pull/60">PR#60</a>) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_input_facet</span></code> throws when using <code><span class="special">%</span><span class="identifier">j</span></code> alone (<a href="https://svn.boost.org/trac/boost/ticket/12910">#12910</a>) (<a href="https://github.com/boostorg/date_time/pull/59">PR#59</a>) </div> </li> <li> <div> Time input facet is not able to parse <code><span class="special">%</span><span class="identifier">e</span></code> day (<a href="https://svn.boost.org/trac/boost/ticket/13194">#13194</a>) (<a href="https://github.com/boostorg/date_time/pull/54">PR#54</a>) </div> </li> <li> <div> Improved Github CI build environment for better project metrics and quality (<a href="https://github.com/boostorg/date_time/pull/52">PR#52</a>) (<a href="https://github.com/boostorg/date_time/pull/72">PR#72</a>) </div> </li> <li> <div> Fixed various compiler warnings (<a href="https://svn.boost.org/trac/boost/ticket/3606">#3606</a>) (<a href="https://svn.boost.org/trac/boost/ticket/9882">#9882</a>) (<a href="https://github.com/boostorg/date_time/pull/62">PR#62</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fixes for calling functions on dirty <code><span class="identifier">GetLastError</span><span class="special">()</span></code> <a href="https://github.com/boostorg/dll/issues/16">#16</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/fiber/issues/128">#128</a>: Assertion "! ctx-&gt;ready_is_linked()" when using condition_variable::wait_for </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/132">#132</a>: fatal error: 'stdexception' file not found </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/141">#141</a>: boost::fibers::async problem </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/146">#146</a>: remove unecessary lock of remote-ready-queue spinlock </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/153">#153</a>: docu: replace set_ready() by schedule() </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/154">#154</a>: Document iterators on channels </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/155">#155</a>: this_fiber is wrongly documented as being a member of boost::fibers </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/156">#156</a>: Many examples are using their own barrier.hpp </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/158">#158</a>: add BOOST_FIBERS_DECL to work_stealing class </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/162">#162</a>: remove use-coutner increment for timed wait ops </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/166">#166</a>: remove assertion for wait_is_linked() in schedule() </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/167">#167</a>: call shared_state::owner_destroyed() only if future was created from </div> </li> <li> <div> <a href="https://github.com/boostorg/fiber/issues/168">#168</a>: fiber/doc/installing.qbk not not up to date </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fix static initialization issue that caused a crash if path operations were used before main() (<a href="https://github.com/boostorg/filesystem/pull/62">PR#62</a>, <a href="https://github.com/boostorg/filesystem/pull/43">PR#43</a>, <a href="https://github.com/boostorg/filesystem/pull/50">PR#50</a>, <a href="https://github.com/boostorg/filesystem/pull/59">PR#59</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Switch to SFINAE in template parameters on <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span></code> to fix compile error on newer MSVC 2017. (<a href="https://github.com/boostorg/fusion/pull/164">PR#164</a>) </div> </li> <li> <div> Fix for compilers not compatible with CWG defect 945 on <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>. (<a href="https://github.com/boostorg/fusion/pull/166">PR#166</a>) </div> </li> <li> <div> Added limits precheck on sequence converter to make error message clearer. (<a href="https://github.com/boostorg/fusion/pull/168">PR#168</a>) </div> </li> <li> <div> Allow incomplete types in <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tag_of</span></code> and <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">is_native_fusion_sequence</span></code>. Note that this changes no behaviour from previous release, but compliant to TypeTraits's change. (<a href="https://github.com/boostorg/fusion/pull/171">PR#171</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> New map projection and SRS transformation representations (undocumented for now due to potential interface changes). </div> </li> <li> <div> New densify() algorithm. </div> </li> <li> <div> No longer using std::iterator (thanks to Daniela Engert). </div> </li> <li> <div> No longer using allocator directly in the rtree. Replaced with boost::container::allocator_traits (thanks to Daniela Engert). </div> </li> <li> <div> Default rtree allocator changed to boost::container::new_allocator to still support move semantics emulation in C++03 with boost::container::allocator_traits. </div> </li> <li> <div> Area strategies interface changed. This is potentially a breaking change. </div> </li> <li> <div> Radius or Sphere can be passed into spherical strategies. </div> </li> <li> <div> Added Point-Box and Box-Box spherical and geographic distance() strategies. </div> </li> <li> <div> Simplify (multi)polygons will discard output rings of 2 points or (for closed polygons) 3 points, but it tries to avoid creating those </div> </li> <li> <div> Simplify (multi)polygons will omit empty interior rings or polygons from output </div> </li> </ul> </div> </li> <li> <div> Solved issues: <ul> <li> <div> <a href="https://svn.boost.org/trac10/ticket/13386">13386</a> Workaround for some gcc compilers </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/13381">13381</a> Compile error with matrix_transformer in Visual C++ 2015 </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/13436">13436</a> Incorrectness in boost::geometry::model::polygon documentation </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> Add missing strategy resolving in length() algorithm, affecting Variant support. </div> </li> <li> <div> Simplify (multi)polygons now simplifies closing point </div> </li> </ul> </div> </li> <li> <div> Changes in behavior <ul> <li> <div> Simplify (multi)polygons now usually rotates input rings before simplifying to select a non collinear point on its convex hull. This improves output. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> Added support of <code><span class="identifier">unique_ptr</span></code> interface in addition to C++2003 <code><span class="identifier">auto_ptr</span></code> - in order to support C++2017, now you can use <code><span class="identifier">BOOST_LOCALE_HIDE_AUTO_PTR</span></code> definiton to remove <code><span class="identifier">auto_ptr</span></code> from the interfaces and prevent deprecated watnings. </div> </li> <li> <div> Fixed test problem with ICU &gt;60.1 </div> </li> <li> <div> Fix of solaris build </div> </li> <li> <div> Fixed wired FreeBSD/clang issue on optimized build. Probably compiler workaround </div> </li> <li> <div> Added workaround for failing MSVC tests due to 932 codepage codecvt issue </div> </li> <li> <div> Fixed bugs 6851, 12572, 12453 </div> </li> <li> <div> Fixed missing throw in case of failure in <code><span class="identifier">icu</span><span class="special">/</span><span class="identifier">date_time</span></code> </div> </li> <li> <div> Fixed build agains Boost.Thread v4 </div> </li> <li> <div> Fixed Year of week instead of year ICU backend formatting </div> </li> <li> <div> Fixed formatting test for ICU 56.1 and above </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Improved compatibility with C++17: use <code><span class="identifier">allocator_traits</span></code> to work with allocators instead of directly accessing its members. </div> </li> <li> <div> Improved compatibility with gcc 7 and later by updating library ABI namespace definition. </div> </li> <li> <div> Added documentation for the "Append" config file parameter for "TextFile" sinks. The parameter was supported previously, only the documentation was missing. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/index.html">Math</a>:</span> <ul> <li> <div> Add naive Monte Carlo integration support. </div> </li> <li> <div> Add Chebyshev interpolation routines. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Elements with overloaded <code><span class="keyword">operator</span><span class="special">&amp;</span></code> are now fully accepted (ticket <a href="https://svn.boost.org/trac/boost/ticket/13307">#13307</a>). Thanks to Daniel Frey for his updating <a href="https://www.boost.org/libs/utility/operators.htm#deref">Boost.Operators</a> to help fix this issue. </div> </li> <li> <div> Avoided usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code> members deprecated in C++17. Contributed by Daniela Engert. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/index.html">Multiprecision</a>:</span> <ul> <li> <div> <strong>Breaking Change:</strong> When converting a multiprecision integer to a narrower type, if the value is too large (or negative) to fit in the smaller type, then the result is either the maximum (or minimum) value of the target type. This was always the intended behaviour, but was somewhat haphazardly enforced before. If you really do want just the low order N bits of a value, then you will need to mask these out prior to the case, for example: <code><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">&gt;(~</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">&gt;(</span><span class="number">0</span><span class="special">)</span> <span class="special">&amp;</span> <span class="identifier">my_value</span><span class="special">)</span></code>. Note that technically (to avoid undefined behaviour) you should do the same thing with built in integer types too. See <a href="https://svn.boost.org/trac/boost/ticket/13109">#13109</a>. </div> </li> <li> <div> Fix bug in conversion of decimal to rational types (zero needs special handling), see <a href="https://svn.boost.org/trac/boost/ticket/13148">#13148</a>. </div> </li> <li> <div> Fix conversion from cpp_bin_float to a wider built in integer type, see <a href="https://svn.boost.org/trac/boost/ticket/13301">#13301</a>. </div> </li> <li> <div> Improve performance heurists used in cpp_bin_float exp function. </div> </li> <li> <div> Fix bug in floor/ceil and cpp_bin_float when the exponent type is wider than an int, see <a href="https://svn.boost.org/trac/boost/ticket/13264">#13264</a>. </div> </li> <li> <div> Disable explicit conversion operator when the target type is already constructible from this type, see <a href="https://github.com/boostorg/multiprecision/issues/30">#30</a>. </div> </li> <li> <div> Fix support for changes new to MPIR-3.0, see <a href="https://svn.boost.org/trac/boost/ticket/13124">#13124</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/index.html">Optional</a>:</span> <ul> <li> <div> Fixed issue <a href="https://github.com/boostorg/optional/issues/46">#46</a> </div> </li> <li> <div> Fixed <code><span class="special">-</span><span class="identifier">Wzero</span><span class="special">-</span><span class="identifier">as</span><span class="special">-</span><span class="identifier">null</span><span class="special">-</span><span class="identifier">pointer</span><span class="special">-</span><span class="identifier">constant</span></code> warnings. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Correct documentation and example code. (<a href="https://svn.boost.org/trac/boost/ticket/8187">#8187</a>, <a href="https://github.com/boostorg/phoenix/pull/56">PR#56</a>, <a href="https://github.com/boostorg/phoenix/pull/57">PR#57</a>) </div> </li> <li> <div> Fixed bug with initializing phoenix lazy from array types in C++11. (<a href="https://svn.boost.org/trac/boost/ticket/12733">#12733</a>, <a href="https://github.com/boostorg/phoenix/pull/58">PR#58</a>, <a href="https://github.com/boostorg/phoenix/pull/61">PR#61</a>) </div> </li> <li> <div> Use proto subscript and assignment overload operators buildins to fix compile error with some lambda experssions on recent MSVC. (<a href="https://github.com/boostorg/phoenix/issues/62">#62</a>, <a href="https://github.com/boostorg/phoenix/pull/64">PR#64</a>, <a href="https://github.com/boostorg/phoenix/pull/66">PR#66</a>, <a href="https://github.com/boostorg/phoenix/pull/67">PR#67</a>) </div> </li> <li> <div> Remove use of deprecated <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iteratror</span></code>. Thanks to Daniela Engert. (<a href="https://github.com/boostorg/phoenix/pull/59">PR#59</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/python/">Python</a>:</span> <ul> <li> <div> The library name now includes the version suffix of the Python version used to compile it. For example, a variant compiled with Python 2.7 will produce library names <code><span class="identifier">boost_python27</span></code> and <code><span class="identifier">boost_numpy27</span></code>, etc.. Combined with a related fix in Boost.Build, this means that it is now possible to build variants for multiple Python versions in a single build process. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/spirit/">Spirit</a>:</span> <ul> <li> <div> Spirit.X3: <ul> <li> <div> <strong>Breaking change:</strong> Removed <code><span class="identifier">with_context</span></code> (<a href="https://github.com/boostorg/spirit/issues/239">#239</a>) </div> </li> <li> <div> Added noexcept to <code><span class="identifier">x3</span><span class="special">::</span><span class="identifier">variant</span></code> and <code><span class="identifier">forward_ast</span></code> (<a href="https://github.com/boostorg/spirit/issues/241">#241</a>) </div> </li> <li> <div> CR+LF lines wrongly counted in <code><span class="identifier">error_handler</span><span class="special">::</span><span class="identifier">position</span><span class="special">()</span></code> (<a href="https://github.com/boostorg/spirit/issues/248">#248</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">unused_type</span></code> attribute case in <code><span class="identifier">parse_into_container</span></code> (<a href="https://github.com/boostorg/spirit/issues/266">#266</a>) </div> </li> <li> <div> Fixed parsing into associative containers (<a href="https://github.com/boostorg/spirit/issues/289">#289</a>) </div> </li> <li> <div> Fixed overflow problem in <code><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">signed</span> <span class="identifier">T</span><span class="special">&gt;</span></code> (<a href="https://github.com/boostorg/spirit/issues/297">#297</a>) </div> </li> <li> <div> Added VS2015 Update 3 support by using workarounds (<a href="https://github.com/boostorg/spirit/issues/308">#308</a>) </div> </li> <li> <div> Fixed include guard names collision with Qi (<a href="https://github.com/boostorg/spirit/issues/313">#313</a>) </div> </li> <li> <div> Added parsing into range (<a href="https://github.com/boostorg/spirit/issues/316">#316</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12928">#12928</a>) </div> </li> <li> <div> Changed iterator concept static assert from <code><span class="identifier">ForwardIterator</span></code> to <code><span class="identifier">ReadableIteratorConcept</span></code> &amp;&amp; <code><span class="identifier">ForwardTraversalConcept</span></code> (<a href="https://github.com/boostorg/spirit/issues/320">#320</a>) </div> </li> <li> <div> Reenabled <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span></code> support (<a href="https://github.com/boostorg/spirit/issues/330">#330</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">string</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code> and <code><span class="identifier">attr</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code> to single item sequence (<a href="https://github.com/boostorg/spirit/issues/337">#337</a>) </div> </li> <li> <div> Dereference a single item view instead of unwrapping sequence (<a href="https://github.com/boostorg/spirit/issues/340">#340</a>) </div> </li> <li> <div> Prevent <code><span class="identifier">parse_nan</span></code> from dereferencing out of range iterator (<a href="https://github.com/boostorg/spirit/issues/351">#351</a>) </div> </li> <li> <div> Use traits to test if container is empty (<a href="https://github.com/boostorg/spirit/issues/355">#355</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit V2 <ul> <li> <div> Fixed keyword directives compilation on C++11 (<a href="https://github.com/boostorg/spirit/issues/256">#256</a>) (<a href="https://svn.boost.org/trac/boost/ticket/11493">#11493</a>) </div> </li> <li> <div> Fixed subrules compilation (<a href="https://github.com/boostorg/spirit/issues/279">#279</a>) (<a href="https://github.com/boostorg/spirit/issues/259">#259</a>) </div> </li> <li> <div> Fixed subrules use after scope bug (<a href="https://github.com/boostorg/spirit/issues/284">#284</a>) (<a href="https://svn.boost.org/trac/boost/ticket/5270">#5270</a>) </div> </li> <li> <div> Fixed undefined behavior in sequential or operator. Underlying parsers order of execution was dependent on compiler (<a href="https://github.com/boostorg/spirit/issues/310">#310</a>) </div> </li> <li> <div> Spirit was accidentally relaying on <code><span class="identifier">types</span></code> typedef of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>. The typedef was removed in the new optional implementation (<a href="https://github.com/boostorg/spirit/issues/271">#271</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12349">#12349</a>) </div> </li> <li> <div> Fixed problems with <code><span class="identifier">BOOST_SPIRIT_NO_PREDEFINED_TERMINALS</span></code> (<code><span class="identifier">attr_cast</span></code>, <code><span class="identifier">confix</span></code>, <code><span class="identifier">distinct</span></code>, <code><span class="identifier">keywords</span></code>, and <code><span class="identifier">flush_multi_pass</span></code>) (<a href="https://github.com/boostorg/spirit/issues/314">#314</a>) (<a href="https://svn.boost.org/trac/boost/ticket/13311">#13311</a>) </div> </li> <li> <div> Added missing copy assignment operator to <code><span class="identifier">hold_any</span></code> (<a href="https://github.com/boostorg/spirit/issues/361">#361</a>) (<a href="https://svn.boost.org/trac/boost/ticket/8268">#8268</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit.Qi: <ul> <li> <div> Fixed alternate operator (<a href="https://github.com/boostorg/spirit/issues/201">#201</a>) (<a href="https://github.com/boostorg/spirit/issues/271">#271</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12349">#12349</a>) </div> </li> <li> <div> Fixed signed integer overflow in real parser (<a href="https://github.com/boostorg/spirit/issues/245">#245</a>) </div> </li> <li> <div> Fixed overflow problem in <code><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">signed</span> <span class="identifier">T</span><span class="special">&gt;</span></code> (<a href="https://github.com/boostorg/spirit/issues/297">#297</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">get_current_line</span></code>, <code><span class="identifier">get_line_start</span></code>, and added <code><span class="identifier">get_line_end</span></code> (<a href="https://github.com/boostorg/spirit/issues/304">#304</a>) </div> </li> <li> <div> Permutations parser were always initializing optionals (<a href="https://github.com/boostorg/spirit/issues/319">#319</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12473">#12473</a>) </div> </li> <li> <div> Changed iterator concept static assert from <code><span class="identifier">ForwardIterator</span></code> to <code><span class="identifier">ReadableIteratorConcept</span></code> &amp;&amp; <code><span class="identifier">ForwardTraversalConcept</span></code> (<a href="https://github.com/boostorg/spirit/issues/320">#320</a>) </div> </li> <li> <div> Added assertations to real parsers to ensure that the <code><span class="identifier">parse_frac_n</span></code> from user defined real policy does not return negative values and also to prevent static analyzers false-positives (<a href="https://github.com/boostorg/spirit/issues/358">#358</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit.Karma: <ul> <li> <div> Fixed alternate operator (<a href="https://github.com/boostorg/spirit/issues/271">#271</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">no_buffering_policy</span></code> missing copy constructor (<a href="https://github.com/boostorg/spirit/issues/261">#261</a>) </div> </li> <li> <div> The <code><span class="identifier">ostream_iterator</span></code> was inheriting <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> which is deprecated in C++17 (<a href="https://github.com/boostorg/spirit/issues/345">#345</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit.Lex: <ul> <li> <div> Store id as promoted type to allow out-of-enum values (<a href="https://github.com/boostorg/spirit/issues/247">#247</a>) </div> </li> <li> <div> Fixed C2001 'newline in constant' warning in generated lexers (<a href="https://github.com/boostorg/spirit/issues/324">#324</a>) (<a href="https://svn.boost.org/trac/boost/ticket/11540">#11540</a>) </div> </li> </ul> </div> </li> <li> <div> Spirit.Classic: <ul> <li> <div> Fixed <code><span class="identifier">remove_reference</span></code> usage without a namespace in Phoenix (<a href="https://github.com/boostorg/spirit/issues/274">#274</a>) </div> </li> <li> <div> Fixed <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code> usage without the include (<a href="https://github.com/boostorg/spirit/issues/273">#273</a>) </div> </li> <li> <div> Fixed compilation of <code><span class="identifier">match</span><span class="special">&lt;</span><span class="identifier">T</span> <span class="special">&amp;&gt;</span></code> (<a href="https://github.com/boostorg/spirit/issues/275">#275</a>) </div> </li> <li> <div> Fixed compilation with <code><span class="identifier">BOOST_DISABLE_THREADS</span></code> defined (<a href="https://github.com/boostorg/spirit/issues/323">#323</a>) (<a href="https://svn.boost.org/trac/boost/ticket/12639">#12639</a>) </div> </li> <li> <div> Increment scanner through iterator policy (<a href="https://github.com/boostorg/spirit/issues/336">#336</a>) (<a href="https://svn.boost.org/trac/boost/ticket/7371">#7371</a>) </div> </li> <li> <div> Removed deprecated in C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> usage (<a href="https://github.com/boostorg/spirit/issues/345">#345</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Async safe dumping into files on Windows OS was causing hangs on some platforms and now is disabled <a href="https://github.com/boostorg/stacktrace/issues/33">#33</a>. Users are encouraged to update to the latest Boost release. </div> </li> <li> <div> <a href="https://www.boost.org/libs/container_hash/">ContainerHash</a> library is now used to reduce dependencies. </div> </li> <li> <div> Minor fixes (including <a href="https://github.com/boostorg/stacktrace/issues/31">#31</a>, <a href="https://github.com/boostorg/stacktrace/issues/38">#38</a>, <a href="https://github.com/boostorg/stacktrace/issues/39">#39</a>, <a href="https://github.com/boostorg/stacktrace/issues/40">#40</a>, <a href="https://github.com/boostorg/stacktrace/issues/42">#42</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.7 see the <a href="https://www.boost.org/doc/libs/1_67_0/libs/test/doc/html/boost_test/change_log.html">Changes log</a> for more details. </div> </li> <li> <div> Breaking changes <ul> <li> <div> Adding test cases with the same name to the same test suite is now reported as an error. See the changes log for more details. </div> </li> </ul> </div> </li> <li> <div> New feature: <ul> <li> <div> Colour output on by default and available on Windows, </div> </li> <li> <div> Improved and clearer command line help </div> </li> <li> <div> <code><span class="identifier">BOOST_AUTO_TEST_CASE_TEMPLATE</span></code> now accepts a sequence of types in an <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> </div> </li> </ul> </div> </li> <li> <div> Bug fixes and pull requests: <ul> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/12092">#12092</a>, <a href="https://svn.boost.org/trac/boost/ticket/12596">#12596</a>, <a href="https://svn.boost.org/trac/boost/ticket/12597">#12597</a>, <a href="https://svn.boost.org/trac/boost/ticket/12969">#12969</a>, <a href="https://svn.boost.org/trac/boost/ticket/13058">#13058</a>, <a href="https://svn.boost.org/trac/boost/ticket/13149">#13149</a>, <a href="https://svn.boost.org/trac/boost/ticket/13170">#13170</a> </div> </li> <li> <div> Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/13181">#13181</a>, <a href="https://svn.boost.org/trac/boost/ticket/13371">#13371</a>, <a href="https://svn.boost.org/trac/boost/ticket/13387">#13387</a>, <a href="https://svn.boost.org/trac/boost/ticket/13398">#13398</a>, <a href="https://svn.boost.org/trac/boost/ticket/13407">#13407</a>, <a href="https://svn.boost.org/trac/boost/ticket/13435">#13435</a>, <a href="https://svn.boost.org/trac/boost/ticket/13443">#13443</a> </div> </li> <li> <div> Pull requests: <a href="https://github.com/boostorg/test/issues/112">#112</a>, <a href="https://github.com/boostorg/test/issues/118">#118</a>, <a href="https://github.com/boostorg/test/issues/118">#118</a>, <a href="https://github.com/boostorg/test/issues/121">#121</a>, <a href="https://github.com/boostorg/test/issues/122">#122</a>, <a href="https://github.com/boostorg/test/issues/125">#125</a>, <a href="https://github.com/boostorg/test/issues/127">#127</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> <a href="https://www.boost.org/libs/container_hash/">ContainerHash</a> library is now used to reduce dependencies. </div> </li> <li> <div> Minor fixes (including <a href="https://github.com/boostorg/type_index/issues/17">#17</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_traits/">TypeTraits</a>:</span> <ul> <li> <div> Added new traits <code><span class="identifier">detected</span></code>, <code><span class="identifier">detected_or</span></code>, <code><span class="identifier">is_detected</span></code>, <code><span class="identifier">is_detected_convertible</span></code>, <code><span class="identifier">is_detected_exact</span></code>, <code><span class="identifier">is_complete</span></code>. </div> </li> <li> <div> Added greatly improved code for detecting binary operators. </div> </li> <li> <div> Add assertions for completeness to traits which require complete types as arguments: this prevents various traits from giving eroneous results from incomplete types. </div> </li> <li> <div> Fix minor issue with mpl compatibility, see <a href="https://svn.boost.org/trac/boost/ticket/12212">#12212</a>. </div> </li> <li> <div> Add macro to indicate when <code><span class="identifier">is_constructible</span></code> is fully implemented, see <a href="https://svn.boost.org/trac/boost/ticket/12003">#12003</a>. </div> </li> <li> <div> Update <code><span class="identifier">is_function</span></code> and <code><span class="identifier">is_member_function_pointer</span></code> to work correctly with C++17 noexcept specifications. </div> </li> <li> <div> Add workaround for <code><span class="identifier">is_default_constructible</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>. </div> </li> <li> <div> Added fallback for <code><span class="identifier">is_nothrow_swappable</span></code> on pre-C++11 compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header no longer includes <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">next</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">prior</span></code> as they have been moved to the iterator module. Instead include <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">next_prior</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. Other uses of <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> are discouraged, it's better to use the header for the specific functionality instead. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Template deduction guides. </div> </li> <li> <div> Standard conforming <code><span class="keyword">noexcept</span></code> specifications for <code><span class="identifier">swap</span></code>, <code><span class="keyword">operator</span><span class="special">=</span></code> and node handles. </div> </li> <li> <div> Add <code><span class="identifier">element_type</span></code> to iterators, so that <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pointer_traits</span></code> will work. </div> </li> <li> <div> Support <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">piecewise_construct</span></code> on recent Visual C++ and Dinkumware libraries. </div> </li> <li> <div> Use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span></code> rather than the boost iterator traits in order to remove dependency on Boost.Iterator. </div> </li> <li> <div> Iterators no longer inherit from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>, as it's deprecated (<a href="https://github.com/boostorg/unordered/pull/7">PR#7</a>). </div> </li> <li> <div> More detail in the <a href="https://www.boost.org/doc/html/unordered/changes.html#unordered.changes.boost_1_67_0">library change log</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/units/">Units</a>:</span> <ul> <li> <div> Fix sqrt for scaled units <a href="https://svn.boost.org/trac/boost/ticket/10270">#10270</a> <a href="https://github.com/boostorg/units/issues/27">#27</a> </div> </li> <li> <div> Add constexpr support <a href="https://github.com/boostorg/units/issues/22">#22</a> </div> </li> <li> <div> minor documentation fixes </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> random_generator is no longer copyable (<a href="https://github.com/boostorg/uuid/issues/61">#61</a>) </div> </li> <li> <div> Optimized random_generator to use OS-provided entropy directly (<a href="https://github.com/boostorg/uuid/pull/53">PR#53</a>) </div> </li> <li> <div> Provide <code><span class="identifier">random_generator_mt19937</span></code> for bulk UUID generation </div> </li> <li> <div> Handle entropy acquisition errors instead of ignoring them </div> </li> <li> <div> Support for Windows UWP (<a href="https://github.com/boostorg/uuid/issues/24">#24</a>) </div> </li> <li> <div> Support for CloudABI </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Substitute function arguments on compilers with variadic templates support and do not generate substitution metafunctions using preprocessor <a href="https://github.com/boostorg/variant/issues/42">#42</a>, <a href="https://github.com/boostorg/variant/issues/46">#46</a>. Many thanks to Nikita Kniazev for providing an initial fix. </div> </li> <li> <div> Perfect forwarding for passing visitor in apply_visitor <a href="https://github.com/boostorg/variant/issues/40">#40</a>, <a href="https://svn.boost.org/trac/boost/ticket/13288">#13288</a>. Many thanks to Paweł Dac! </div> </li> <li> <div> Minor fixes (including <a href="https://github.com/boostorg/variant/issues/41">#41</a>, <a href="https://github.com/boostorg/variant/issues/44">#44</a>) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_67_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, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 7.2.0 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> GCC, C++17: 7.2.0 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 9.0.0 </div> </li> <li> <div> Clang, C++11: 9.0.0 </div> </li> <li> <div> Clang, C++14: 9.0.0 </div> </li> <li> <div> Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </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.8.1, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 4.9.2, 5.4.0, 7.2.0 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0 </div> </li> <li> <div> GCC, C++17: 7.2.0 </div> </li> <li> <div> Intel, C++14: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 9.0.0 </div> </li> <li> <div> Clang, C++11: 9.0.0 </div> </li> <li> <div> Clang, C++14: 9.0.0 </div> </li> <li> <div> Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_67_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.66.0https://www.boost.org/users/history/version_1_66_0.htmlhttp://www.boost.org/users/history/version_1_66_0.htmlMon, 18 Dec 2017 13:58:14 +0000 <div id="version_1_66_0.note_about_the_new_visual_studio"> <h3><span class="link">Note about the new Visual Studio release</span></h3> <p> Visual Studio 15.5 was released too late for us to test this release with it. </p> </div> <div id="version_1_66_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> Portable HTTP, WebSocket, and network operations using only C++11 and Boost.Asio, from Vinnie Falco. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/callable_traits/">CallableTraits</a>:</span> A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> A C++11 metaprogramming library, from Peter Dimov. </div> </li> </ul> </div> <div id="version_1_66_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Implemented interface changes to reflect the Networking TS (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4656.pdf">N4656</a>). <ul> <li> <div> See the <a href="https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/net_ts.html">list</a> of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. </div> </li> <li> <div> The service template parameters, and the corresponding classes, are disabled by default. For example, instead of <code><span class="identifier">basic_socket</span><span class="special">&lt;</span><span class="identifier">Protocol</span><span class="special">,</span> <span class="identifier">SocketService</span><span class="special">&gt;</span></code> we now have simply <code><span class="identifier">basic_socket</span><span class="special">&lt;</span><span class="identifier">Protocol</span><span class="special">&gt;</span></code>. The old interface can be enabled by defining the <code><span class="identifier">BOOST_ASIO_ENABLE_OLD_SERVICES</span></code> macro. </div> </li> </ul> </div> </li> <li> <div> Removed previously deprecated functions. </div> </li> <li> <div> Added support for customised handler tracking. </div> </li> <li> <div> Added reactor-related (i.e. descriptor readiness) events to handler tracking. </div> </li> <li> <div> Added special "concurrency hint" values that may be used to disable locking on a per <code><span class="identifier">io_context</span></code> basis. </div> </li> <li> <div> Enabled perfect forwarding for the first <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> constructor argument. </div> </li> <li> <div> Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Implemented a set of experimental extended atomic operations for integral types: <ul> <li> <div> <code><span class="identifier">fetch_negate</span></code>, <code><span class="identifier">fetch_complement</span></code> - atomically replaces the value with a negated or binary complemented value and returns the original value </div> </li> <li> <div> <code><span class="identifier">opaque_</span><span class="special">&lt;</span><span class="identifier">op</span><span class="special">&gt;</span></code> - equivalent to <code><span class="identifier">fetch_</span><span class="special">&lt;</span><span class="identifier">op</span><span class="special">&gt;</span></code> except that it doesn't return the original value </div> </li> <li> <div> <code><span class="special">&lt;</span><span class="identifier">op</span><span class="special">&gt;</span><span class="identifier">_and_test</span></code> - atomically applies <code><span class="special">&lt;</span><span class="identifier">op</span><span class="special">&gt;</span></code> and returns <code><span class="keyword">true</span></code> if the result is zero. <strong>Note:</strong> The result of these operations will change to the opposite in Boost 1.67. The code that uses these functions will need to be updated. </div> </li> <li> <div> <code><span class="identifier">bit_test_and_set</span></code>, <code><span class="identifier">bit_test_and_reset</span></code>, <code><span class="identifier">bit_test_and_complement</span></code> - atomically sets, resets or complements the specified bit and returns the original value of the bit </div> </li> </ul> </div> </li> <li> <div> Following C++17 (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf">P0558R1</a>), arithmetic operations for pointers to non-object types are no longer provided. </div> </li> <li> <div> Also following C++17 exposed <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">difference_type</span></code> member typedefs, where applicable, to the user's code. </div> </li> <li> <div> Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/date_time/">DateTime</a>:</span> <ul> <li> <div> The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. </div> </li> <li> <div> Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see <a href="https://stackoverflow.com/questions/45537280/boost-datetime-issue-with-adding-long-year-durations">here</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> synchronization with CUDA streams </div> </li> <li> <div> synchronization with ROCm/HIP streams </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/format/">Format</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> Accept new conversion specifiers: <ul> <li> <div> <a href="https://github.com/boostorg/format/pull/41"><code><span class="identifier">a</span></code></a>: sets flags <code><span class="identifier">fixed</span> <span class="special">|</span> <span class="identifier">scientific</span></code> (i.e. <code><span class="identifier">hexfloat</span></code>) </div> </li> <li> <div> <a href="https://github.com/boostorg/format/pull/43"><code><span class="identifier">b</span></code></a>: sets flag <code><span class="identifier">boolalpha</span></code> </div> </li> <li> <div> <a href="https://github.com/boostorg/format/pull/41"><code><span class="identifier">A</span></code></a>: same as <code><span class="identifier">a</span></code> plus flag <code><span class="identifier">uppercase</span></code> </div> </li> <li> <div> <a href="https://github.com/boostorg/format/pull/41"><code><span class="identifier">F</span></code></a>: same as <code><span class="identifier">f</span></code> plus flag <code><span class="identifier">uppercase</span></code> </div> </li> </ul> </div> </li> <li> <div> <a href="https://github.com/boostorg/format/pull/42">42</a> Accept new argument types <code><span class="identifier">j</span></code> and <code><span class="identifier">z</span></code> from ISO C99 (parsed and ignored like all others). </div> </li> <li> <div> <a href="https://github.com/boostorg/format/pull/44">44</a> Accept new argument types <code><span class="identifier">I</span></code>, <code><span class="identifier">I32</span></code>, <code><span class="identifier">I64</span></code>, and <code><span class="identifier">w</span></code> from Microsoft (parsed and ignored like all others). </div> </li> <li> <div> <a href="https://github.com/boostorg/format/issues/33">33</a> Added a development tool called <code><span class="identifier">format_matrix</span></code> that exercises as many different combinations of format strings as possible and logs them to a file: <ul> <li> <div> helps prevent regressions in between boost releases </div> </li> <li> <div> allows for comparison against <code><span class="identifier">snprintf</span></code> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> <a href="https://github.com/boostorg/format/issues/36">36</a> Safely allow volatile arguments to be used with operator% </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/4636">4636</a> Explicit clamping provided to allow MSVC /RTCc to succeed </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/7477">7477</a> Fix compatibility with MSVC /Za </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/10324">10324</a> Const-correct cast issue resolved </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/11632">11632</a> Fix <code><span class="special">-</span><span class="identifier">fsanitize</span><span class="special">=</span><span class="identifier">undefined</span></code> issue in <code><span class="identifier">alt_sstream</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/fusion/pull/149">PR#149</a> <code><span class="identifier">isspace</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code> is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). </div> </li> <li> <div> <a href="https://github.com/boostorg/fusion/pull/150">PR#150</a> Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). </div> </li> <li> <div> <a href="https://github.com/boostorg/fusion/pull/151">PR#151</a> Change base of <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span></code>. </div> </li> <li> <div> <a href="https://github.com/boostorg/fusion/pull/153">PR#153</a> Fixed compile error with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>. </div> </li> <li> <div> <a href="https://github.com/boostorg/fusion/pull/154">PR#154</a> Fixed bugs nesting and copying on c++03. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> Add distance for geographic PointLike/AnyGeometry. </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> Fixes in results of union/intersection/difference which could be incorrect in very complex cases </div> </li> <li> <div> Fixes in validity of union/intersection/difference/buffer </div> </li> <li> <div> Fixes in set and relational operations for non-cartesian coordinate systems. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> <code><span class="identifier">next</span><span class="special">()</span></code>/<code><span class="identifier">prior</span><span class="special">()</span></code> functions now support user's iterators that don't specify nested types such as <code><span class="identifier">iterator_category</span></code>, <code><span class="identifier">difference_type</span></code>, etc. and instead specialize <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span></code> to define those types. The compiler must support C++17-compatible <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span></code> for this to work. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Fixed a bug in <code><span class="identifier">file_collector</span><span class="special">::</span><span class="identifier">scan_for_files</span></code> that could cause incorrectly named log files in the target directory after the user's application restart. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> New Features: <ul> <li> <div> Add Gauss and Gauss-Kronrod quadrature routines. </div> </li> <li> <div> Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. </div> </li> <li> <div> Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Made <code><span class="identifier">modify</span></code> and <code><span class="identifier">modify_key</span></code> more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket <a href="https://svn.boost.org/trac/boost/ticket/12542">#12542</a>). This is technically backwards incompatible; for instance, the following code: </div> <pre><span class="identifier">c</span><span class="special">.</span><span class="identifier">modify</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),[](</span><span class="keyword">auto</span><span class="special">&amp;){</span><span class="keyword">throw</span> <span class="number">0</span><span class="special">;});</span> </pre> <div> keeps the container <code><span class="identifier">c</span></code> untouched in former versions of Boost whereas now <code><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code> is erased. Thanks to Jon Kalb for raising the issue. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/index.html">Optional</a>:</span> <ul> <li> <div> On newer compilers <code><span class="identifier">optional</span></code> is now trivially-copyable for scalar <code><span class="identifier">T</span></code>s. This uses a different storage (just <code><span class="identifier">T</span></code> rather than <code><span class="identifier">aligned_storage</span></code>). We require the compiler to support defaulted functions. </div> </li> <li> <div> Changed the implementation of <code><span class="keyword">operator</span><span class="special">==</span></code> to get rid of the <code><span class="special">-</span><span class="identifier">Wmaybe</span><span class="special">-</span><span class="identifier">uninitialized</span></code> false-positive warning from GCC. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: <ul> <li> <div> Stateful allocators are not properly supported. </div> </li> <li> <div> Allocator-extended move construction decays to allocator-extended copy construction. </div> </li> <li> <div> Copy construction crashes if an exception is thrown during element copying. </div> </li> </ul> </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Improved Windows Universal Platform detection. (from James E. King, III) </div> </li> <li> <div> Add detection for CloudABI with cloudlibc. (from James E. King, III) </div> </li> <li> <div> Various other bug fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Bug fixes: <ul> <li> <div> Numerous small fixes for security issues discovered by de-fuzzing. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Now works out-of-the-box on MinGW-w64. </div> </li> <li> <div> Now works on MinGW (without <code><span class="special">-</span><span class="identifier">w64</span></code>) if <code><span class="identifier">libbacktrace</span></code> is properly installed. See "MinGW specific notes" section in documentation for more info. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> Bugs Fixes <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12323">#12323</a> windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12730">#12730</a> windows - static threads library is incompatible with MSVC 2017 RC </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12976">#12976</a> Boost Thread Executors documentation mistakes </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12949">#12949</a> using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13019">#13019</a> ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13069">#13069</a> Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13163">#13163</a> boost::detail::heap_new does not have a variadic variant </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13226">#13226</a> getpagesize() is deprecated since 199506L </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/132">#132</a> VS 2017.4 Preview deadlocks on Test 10964 </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/133">#133</a> windows - Spurious timing test failures on windows </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/134">#134</a> VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/135">#135</a> VS 2017.4 Preview test_scheduled_tp_p.exe deadlock </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/136">#136</a> VS 2017.4 Preview test_scheduler_p.exe deadlock </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/137">#137</a> VS 2017.4 Preview executor_ex.exe deadlock </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/143">#143</a> Failures on msvc-12.0 </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/145">#145</a> Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS </div> </li> </ul> </div> </li> <li> <div> New Experimental Feature <ul> <li> <div> <a href="https://github.com/boostorg/thread/issues/116">#116</a> [Proposal] Add APIs for deferred set_value/exception </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">next_prior</span><span class="special">.</span><span class="identifier">hpp</span></code> has been moved to Boost.Iterator. No changes needed to the user's code. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> <a href="https://github.com/boostorg/uuid/issues/26">26</a> Refactored <code><span class="identifier">name_generator</span></code> to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. </div> </li> <li> <div> <a href="https://github.com/boostorg/uuid/issues/34">34</a> Added RFC-4122 namespaces in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uuids</span><span class="special">::</span><span class="identifier">ns</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> <a href="https://svn.boost.org/trac10/ticket/8630">8630</a> <a href="https://svn.boost.org/trac10/ticket/11482">11482</a> <a href="https://svn.boost.org/trac10/ticket/12253">12253</a> Various deficiencies in <code><span class="identifier">string_generator</span></code> were resolved. </div> </li> <li> <div> <a href="https://svn.boost.org/trac10/ticket/10665">10665</a> <code><span class="identifier">name_generator</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code> is now const, matching docs. </div> </li> <li> <div> Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> now does perfect forwarding of visitables <a href="https://svn.boost.org/trac/boost/ticket/6971">#6971</a>. Great thanks to Levon Tarakchyan for implementing this feature. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_66_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, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 </div> </li> <li> <div> GCC, C++17: 7.2.0 </div> </li> <li> <div> Intel: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 9.0.0 </div> </li> <li> <div> Clang, C++11: 9.0.0 </div> </li> <li> <div> Clang, C++14: 9.0.0 </div> </li> <li> <div> Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4 </div> </li> <li> <div> GCC, C++14: 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++0x: 4.4.2 </div> </li> <li> <div> QCC, C++11: 4.7.3 </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.8.1, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++0x: 3.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 </div> </li> <li> <div> Clang, C++17: 5.0.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 </div> </li> <li> <div> GCC, C++0x: 4.4.7 </div> </li> <li> <div> GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 </div> </li> <li> <div> GCC, C++17: 7.2.0 </div> </li> <li> <div> Intel: 18.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 9.0.0 </div> </li> <li> <div> Clang, C++11: 9.0.0 </div> </li> <li> <div> Clang, C++14: 9.0.0 </div> </li> <li> <div> Clang, C++1z: 9.0.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++0x: 4.6.4 </div> </li> <li> <div> GCC, C++11: 4.7.3, 4.8.1, 4.9.3 </div> </li> <li> <div> GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4 </div> </li> <li> <div> GCC, C++14: 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 4.0.0 </div> </li> <li> <div> Clang, C++11: 4.0.0 </div> </li> <li> <div> Clang, C++14: 4.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++0x: 4.4.2 </div> </li> <li> <div> QCC, C++11: 4.7.3 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_66_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.65.1https://www.boost.org/users/history/version_1_65_1.htmlhttp://www.boost.org/users/history/version_1_65_1.htmlThu, 07 Sep 2017 17:31:22 +0000 <div id="version_1_65_1.fixes_in_1_65_1"> <h3><span class="link">Fixes in 1.65.1</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Version macro changes for CUDA. </div> </li> <li> <div> Update last known MSVC version. </div> </li> <li> <div> MSVC 14.11 supports structured bindings. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> Return a continuation from functions executed by <code><span class="identifier">resume_with</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> Return a continuation from functions executed by <code><span class="identifier">resume_with</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> Fix Visual C++ version checks. </div> </li> <li> <div> Fix compilation for NVCC with host compiler clang. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> Update build testing file to detail with a MinGW issue. </div> </li> <li> <div> Change preprocessor file extensions to work with the installation system. </div> </li> <li> <div> Support FreeBSD and other OSs that do not define <code><span class="identifier">_GNU_SOURCE</span></code> but have <code><span class="identifier">_Unwind_Backtrace</span></code> function. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> Fix bug in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code> on Windows (<a href="https://github.com/boostorg/thread/issues/130">#130</a>). </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_1.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, 4.0.1, 5.0.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.0 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 5.0.0 </div> </li> <li> <div> Clang, C++17: 5.0.0 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0 </div> </li> <li> <div> GCC, C++17: 7.1.0 </div> </li> <li> <div> GCC, C++1z: 6.3.0 </div> </li> <li> <div> Intel: 17.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 8.1.0 </div> </li> <li> <div> Clang, C++11: 8.1.0 </div> </li> <li> <div> Clang, C++14: 8.1.0 </div> </li> <li> <div> Clang, C++1z: 8.1.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++11: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4 </div> </li> <li> <div> GCC, C++14: 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.8.0 </div> </li> <li> <div> Clang, C++11: 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.8.0 </div> </li> <li> <div> Clang, C++1z: 3.8.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++11: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5_next, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: , 12.5_next, 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_1.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> <div id="version_1_65_1.new_libraries_in_1_65_0"> <h3><span class="link">New Libraries in 1.65.0</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> Fast containers of polymorphic objects, from Joaquín M López Muñoz. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> Gather, store, copy and print backtraces, from Antony Polukhin. <ul> <li> <div> Note: Library has <a href="https://github.com/boostorg/stacktrace/issues/14">issue with MinGW</a> and may produce empty backtraces with that compiler. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_1.removed_libraries_in_1_65_0"> <h3><span class="link">Removed Libraries in 1.65.0</span></h3> <ul> <li> <div> TR1 </div> </li> </ul> </div> <div id="version_1_65_1.updated_libraries_in_1_65_0"> <h3><span class="link">Updated Libraries in 1.65.0</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Changed to require <tt>g++</tt> versions &gt;= 4.7 to use standard atomics, to fix a linker error when using <tt>g++</tt> 4.6 (<a href="https://svn.boost.org/trac/boost/ticket/13121">#13121</a>). </div> </li> <li> <div> Enabled use of <code><span class="keyword">constexpr</span></code> and variadic templates with recent MSVC versions. </div> </li> <li> <div> Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. </div> </li> <li> <div> Eliminated use of deprecated <code><span class="identifier">auto_ptr</span></code>. </div> </li> <li> <div> Fixed misplaced use of <code><span class="identifier">asio_handler_is_continuation</span></code> result in reactive <code><span class="identifier">async_accept</span></code> implementation. </div> </li> <li> <div> Changed to use <code><span class="identifier">poll</span><span class="special">.</span><span class="identifier">h</span></code> rather than <code><span class="identifier">sys</span><span class="special">/</span><span class="identifier">poll</span><span class="special">.</span><span class="identifier">h</span></code> on some modern POSIX platforms (<a href="https://svn.boost.org/trac/boost/ticket/12419">#12419</a>). </div> </li> <li> <div> Fixed MSVC intellisense detection. </div> </li> <li> <div> Disabled use of the <code><span class="identifier">__thread</span></code> keyword extension for android/clang/x86 targets. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> call/cc supports ucontext-API (swapcontext) </div> </li> <li> <div> call/cc supports Windows-Fiber-API </div> </li> <li> <div> call/cc supports on demand growing (segmented/split) stacks </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12719">#12719</a>: context test cases and examples segmentation fault when built with mingw-w64 toolchain </div> </li> <li> <div> #52: Failing to build callcc test with g++-4.9 </div> </li> </ul> </div> </li> <li> <div> important: <ul> <li> <div> required bug fix <a href="https://github.com/boostorg/context/commit/420554fe9ac01482990e8ae314f4f7ba81010c9a">420554fe9ac01482990e8ae314f4f7ba81010c9a</a> not included in 1.65 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Added <code><span class="identifier">BOOST_NO_CXX11_POINTER_TRAITS</span></code>, <code><span class="identifier">BOOST_NO_CXX17_FOLD_EXPRESSIONS</span></code>, <code><span class="identifier">BOOST_NO_CXX17_INLINE_VARIABLES</span></code>, <code><span class="identifier">BOOST_NO_CXX17_STRUCTURED_BINDINGS</span></code> defect detection. </div> </li> <li> <div> BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Implemented <code><span class="identifier">pointer_traits</span></code> for C++03 and higher, that implements <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r0.html">P0653r0</a> (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. </div> </li> <li> <div> Added <code><span class="identifier">BOOST_TEST_GT</span></code> and <code><span class="identifier">BOOST_TEST_GE</span></code> to Lightweight Test. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> supports ucontext-API (swapcontext) </div> </li> <li> <div> supports Windows-Fiber-API </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13064">#13064</a>: different behavior coroutine and coroutine2 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fix PE parsing on non Windows platforms. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> hardware transactional memory (Intel TSX) supported </div> </li> <li> <div> NUMA supported </div> </li> <li> <div> ucontext-API (swapcontext) supported </div> </li> <li> <div> Windows-Fiber-API supported </div> </li> <li> <div> on demand growing stacks </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> #121: failing to build static lib with GCC 4.8 and C++11 </div> </li> <li> <div> #123: assertion failure in schedule_from_remote </div> </li> <li> <div> #125: erratic crashes in testsuite </div> </li> <li> <div> #126: incorrect std::memory_order value in compare_exchange_strong? </div> </li> </ul> </div> </li> <li> <div> important: <ul> <li> <div> required bug fix <a href="https://github.com/boostorg/fiber/commit/63f1041f0e484e64dec437a0fa780ea2463abda2">63f1041f0e484e64dec437a0fa780ea2463abda2</a> not included in 1.65 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> MSVC 14.1 supports variadic containers, such as <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">deque</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">set</span></code>, and <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/12986">#12986</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> Add correct() overload taking area strategy </div> </li> <li> <div> Add is_convex() overload taking side strategy </div> </li> <li> <div> Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry </div> </li> </ul> </div> </li> <li> <div> Solved issues: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12410">12410</a> Lack of support of geographic coordinate system in correct() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13035">13035</a> Wrong result of non-cartesian intersection strategies for segments near poles. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13057">13057</a> Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring </div> </li> <li> <div> Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other </div> </li> <li> <div> Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) </div> </li> <li> <div> Fix intersection (idem), but some cases are still not yet valid </div> </li> <li> <div> Fix difference (idem), but some cases are still not yet valid </div> </li> <li> <div> Fix propagation of area strategy into the internals of various algorithms from intersection strategy </div> </li> <li> <div> Fix uninitialized variable in relate and reference to temporary in overlay </div> </li> <li> <div> Fix error in disjoint for geographic Segment/Box </div> </li> <li> <div> Fix handling of non-cartesian geometries in various algorithms </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Support for <code><span class="keyword">char16_t</span></code>, <code><span class="keyword">char32_t</span></code>, <code><span class="identifier">u16string</span></code>, <code><span class="identifier">u32string</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> Improved compatibility with Solaris. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Corrected some documentation. (<a href="https://github.com/boostorg/phoenix/pull/50">PR#50</a>) </div> </li> <li> <div> <code><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">erase</span></code> with associative container returns iterator in C++11 mode. (<a href="https://svn.boost.org/trac/boost/ticket/7423">#7423</a>) </div> </li> <li> <div> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">multiset</span></code> should be worked with predefined lazy functions. (<a href="https://github.com/boostorg/phoenix/pull/52">PR#52</a>) </div> </li> <li> <div> Disable <code><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">random_shuffle</span></code> in C++17. (<a href="https://github.com/boostorg/phoenix/pull/53">PR#53</a>) </div> </li> <li> <div> Don't forward declare, include instead. (<a href="https://svn.boost.org/trac/boost/ticket/11875">#11875</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Fix Intel C/C++ version 9999 detection to be 12.1.0. </div> </li> <li> <div> Addition of <code><span class="identifier">BOOST_PREDEF_WORKAROUND</span></code> and <code><span class="identifier">BOOST_PREDEF_TESTED_AT</span></code> macros for defect workarounds and detection. </div> </li> <li> <div> Add ARM64 MSVC SIMD detection. (from Minmin Gong) </div> </li> <li> <div> Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) </div> </li> <li> <div> Fix MinGW incorrect header guard. (from Ruslan Baratov) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Support for storing values into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>, thanks to Ed Catmur (<a href="https://svn.boost.org/trac/boost/ticket/7495">#7495</a>, <a href="https://github.com/boostorg/program_options/pull/18">PR#18</a>) </div> </li> <li> <div> Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (<a href="https://github.com/boostorg/program_options/issues/25">#25</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/python/">Python</a>:</span> <ul> <li> <div> <code><span class="identifier">eval</span><span class="special">()</span></code>, <code><span class="identifier">exec</span><span class="special">()</span></code>, and <code><span class="identifier">exec_statement</span><span class="special">()</span></code> now allow <code><span class="keyword">char</span> <span class="keyword">const</span> <span class="special">*</span></code> arguments, in addition to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">str</span></code>. </div> </li> <li> <div> The <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">numeric</span></code> API has been removed, as it is being obsoleted by <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">numpy</span></code>. </div> </li> <li> <div> Fix some build issues when using Python3 with MSVC. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> New class template<code><span class="identifier">atomic_shared_ptr</span></code>, that provides thread-safe atomic pointer operations over <code><span class="identifier">shared_ptr</span></code>. (Peter Dimov) </div> </li> <li> <div> New class template <code><span class="identifier">local_shared_ptr</span></code>, where the reference count is updated with non-atomic operations. (Peter Dimov) </div> </li> <li> <div> More optimizations in <code><span class="identifier">allocate_shared</span></code> and <code><span class="identifier">make_shared</span></code> for arrays. (Glen Fernandes) </div> </li> <li> <div> Documentation has been completely rewritten in Asciidoc format. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.6 see the <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/change_log.html">Change log</a> section for more details. </div> </li> <li> <div> New feature: <ul> <li> <div> C++17 compatibility (tested on VS2017), thanks to <a href="https://github.com/DanielaE">Daniela Engert</a> </div> </li> <li> <div> Direct comparison of C-arrays in <code><span class="identifier">BOOST_TEST</span></code> </div> </li> <li> <div> Better global fixtures mechanism, and spitting of responsibilities with <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/utf_reference/test_org_reference/test_org_boost_test_global_fixture.html"><code><span class="identifier">BOOST_TEST_GLOBAL_FIXTURE</span></code></a> for global fixtures and <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/utf_reference/link_references/link_boost_test_global_configuration.html"><code><span class="identifier">BOOST_TEST_GLOBAL_CONFIGURATION</span></code></a> for global initialization (compile time configuration). </div> </li> <li> <div> Improved support for fixtures (<code><span class="identifier">setup</span></code> / <code><span class="identifier">teardown</span></code> member function) which enables better teardown time checks </div> </li> </ul> </div> </li> <li> <div> Breaking changes <ul> <li> <div> Some API changes for the loggers </div> </li> <li> <div> Deprecating <code><span class="identifier">BOOST_GLOBAL_FIXTURE</span></code> in favor of <code><span class="identifier">BOOST_TEST_GLOBAL_FIXTURE</span></code> and <code><span class="identifier">BOOST_TEST_GLOBAL_CONFIGURATION</span></code> (see above) </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/5282">#5282</a>, <a href="https://svn.boost.org/trac/boost/ticket/5563">#5563</a>, <a href="https://svn.boost.org/trac/boost/ticket/11471">#11471</a>, <a href="https://svn.boost.org/trac/boost/ticket/11962">#11962</a>, <a href="https://svn.boost.org/trac/boost/ticket/12228">#12228</a> </div> </li> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/12631">#12631</a>, <a href="https://svn.boost.org/trac/boost/ticket/13011">#13011</a> </div> </li> <li> <div> Pull request <a href="https://github.com/boostorg/test/pull/106">PR106</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> Important Regression on Windows: <ul> <li> <div> <a href="https://github.com/boostorg/thread/issues/130">#130</a> windows: Bug in boost::condition_variable on Windows Please, merge these two patches </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657">https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657</a> </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d">https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d</a> </div> </li> </ul> </div> </li> <li> <div> Bug fixes <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/12519">#12519</a> boost::thread::try_join_for does not return after timeout </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12874">#12874</a> future&lt;&gt; extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12888">#12888</a> Linking with boost thread does not work on mingw/gcc 4.4 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12958">#12958</a> sync_bounded_queue::wait_pull_front( lve ) might throw </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13077">#13077</a> Linking to static 64bit libboost_thread fails DLL initialization </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13155">#13155</a> log doesn't build on a system with pthreads </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/121">#121</a> on_tls_prepare is broken under VS2017 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Include &lt;boost/functional/hash.hpp&gt; if required, thanks to Ed Catmur <a href="https://svn.boost.org/trac/boost/ticket/13009">#13009</a>. </div> </li> <li> <div> Use native <code><span class="identifier">hash_code</span><span class="special">()</span></code> when possible on GCC-like compilers <a href="https://svn.boost.org/trac/boost/ticket/13027">#13027</a>. </div> </li> <li> <div> Fix <code><span class="identifier">ctti_type_index</span></code> for GCC 7 and later, thanks to Benjamin Buch <a href="https://github.com/boostorg/type_index/pull/16">PR16</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/typeof/">Typeof</a>:</span> <ul> <li> <div> Fix compilation error with clang-cl <a href="https://svn.boost.org/trac10/ticket/11821">ticket 11821</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Use the same data structure for <code><span class="identifier">unordered_set</span></code> and <code><span class="identifier">unordered_multiset</span></code>, and for<code><span class="identifier">unordered_map</span></code> and <code><span class="identifier">unordered_multimap</span></code>. This is required for C++17, so that nodes can be merged and extracted between compatible containers. </div> </li> <li> <div> Add deprecated attributes to long deprecated functions. </div> </li> <li> <div> Improved use of <code><span class="identifier">allocator_traits</span></code> <code><span class="identifier">construct</span></code> and <code><span class="identifier">destroy</span></code> on C++11 compilers, using piecewise pair construction when appropriate. </div> </li> <li> <div> Fewer workarounds on newer Oracle compilers. </div> </li> <li> <div> Avoid dereferencing pointers to uninitialized memory (<a href="https://github.com/boostorg/unordered/pull/5">PR #5</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Improved compatibility of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">next</span></code>/<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">prior</span></code> with SFINAE-unfriendly iterators. <a href="https://svn.boost.org/trac/boost/ticket/10847">#10847</a>, <a href="https://svn.boost.org/trac/boost/ticket/13002">#13002</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> r-value overload for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get</span></code> was added by Albert Sverdlov <a href="https://svn.boost.org/trac/boost/ticket/13018">#13018</a>. </div> </li> <li> <div> Missing include fro <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant</span><span class="special">/</span><span class="identifier">polymorphic_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header was added by Adam Badura <a href="https://svn.boost.org/trac/boost/ticket/13037">#13037</a>. </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_variant_over</span></code> was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) <a href="https://svn.boost.org/trac/boost/ticket/8554">#8554</a>, <a href="https://svn.boost.org/trac/boost/ticket/10041">#10041</a>, <a href="https://github.com/boostorg/variant/pull/35">PR#35</a>. </div> </li> </ul> </div> </li> </ul> </div> Version 1.65.0https://www.boost.org/users/history/version_1_65_0.htmlhttp://www.boost.org/users/history/version_1_65_0.htmlMon, 21 Aug 2017 20:50:17 +0000 <div id="version_1_65_0.known_issues"> <h3><span class="link">Known Issues</span></h3> <p> These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. </p> <p> Combined patch for fixes to issues: <a href="https://www.boost.org/patches/1_65_0/boost_1_65_0.patch">boost_1_65_0.patch</a>. Use <code><span class="identifier">patch</span> <span class="special">-</span><span class="identifier">p1</span> <span class="special">&lt;</span> <span class="identifier">boost_1_65_0</span><span class="special">.</span><span class="identifier">patch</span></code> from the root of the boost repo to apply. Or you can apply the patches individually below. </p> <ul> <li> <div> Context and Fiber don't return continuations when they should: <ul> <li> <div> <a href="https://www.boost.org/patches/1_65_0/0001-context-function-executed-by-resume_with-has-to-retu.patch">Context patch</a> </div> </li> <li> <div> <a href="https://www.boost.org/patches/1_65_0/0002-fiber-resume_with-requires-tor-return-a-continuation.patch">Fiber patch</a> </div> </li> </ul> </div> </li> <li> <div> Thread: Bug in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code> on Windows: <ul> <li> <div> <a href="https://www.boost.org/patches/1_65_0/0003-thread-130-Bug-in-boost-condition_variable-on-Window.patch">Thread patch 1</a> </div> </li> <li> <div> <a href="https://www.boost.org/patches/1_65_0/0004-thread-130-Bug-in-boost-condition_variable-on-Window.patch">Thread patch 2</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> Fast containers of polymorphic objects, from Joaquín M López Muñoz. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> Gather, store, copy and print backtraces, from Antony Polukhin. <ul> <li> <div> Note: Library has <a href="https://github.com/boostorg/stacktrace/issues/14">issue with MinGW</a> and may produce empty backtraces with that compiler. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_0.removed_libraries"> <h3><span class="link">Removed Libraries</span></h3> <ul> <li> <div> TR1 </div> </li> </ul> </div> <div id="version_1_65_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Changed to require <tt>g++</tt> versions &gt;= 4.7 to use standard atomics, to fix a linker error when using <tt>g++</tt> 4.6 (<a href="https://svn.boost.org/trac/boost/ticket/13121">#13121</a>). </div> </li> <li> <div> Enabled use of <code><span class="keyword">constexpr</span></code> and variadic templates with recent MSVC versions. </div> </li> <li> <div> Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. </div> </li> <li> <div> Eliminated use of deprecated <code><span class="identifier">auto_ptr</span></code>. </div> </li> <li> <div> Fixed misplaced use of <code><span class="identifier">asio_handler_is_continuation</span></code> result in reactive <code><span class="identifier">async_accept</span></code> implementation. </div> </li> <li> <div> Changed to use <code><span class="identifier">poll</span><span class="special">.</span><span class="identifier">h</span></code> rather than <code><span class="identifier">sys</span><span class="special">/</span><span class="identifier">poll</span><span class="special">.</span><span class="identifier">h</span></code> on some modern POSIX platforms (<a href="https://svn.boost.org/trac/boost/ticket/12419">#12419</a>). </div> </li> <li> <div> Fixed MSVC intellisense detection. </div> </li> <li> <div> Disabled use of the <code><span class="identifier">__thread</span></code> keyword extension for android/clang/x86 targets. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> call/cc supports ucontext-API (swapcontext) </div> </li> <li> <div> call/cc supports Windows-Fiber-API </div> </li> <li> <div> call/cc supports on demand growing (segmented/split) stacks </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12719">#12719</a>: context test cases and examples segmentation fault when built with mingw-w64 toolchain </div> </li> <li> <div> #52: Failing to build callcc test with g++-4.9 </div> </li> </ul> </div> </li> <li> <div> important: <ul> <li> <div> required bug fix <a href="https://github.com/boostorg/context/commit/420554fe9ac01482990e8ae314f4f7ba81010c9a">420554fe9ac01482990e8ae314f4f7ba81010c9a</a> not included in 1.65 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Added <code><span class="identifier">BOOST_NO_CXX11_POINTER_TRAITS</span></code>, <code><span class="identifier">BOOST_NO_CXX17_FOLD_EXPRESSIONS</span></code>, <code><span class="identifier">BOOST_NO_CXX17_INLINE_VARIABLES</span></code>, <code><span class="identifier">BOOST_NO_CXX17_STRUCTURED_BINDINGS</span></code> defect detection. </div> </li> <li> <div> BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Implemented <code><span class="identifier">pointer_traits</span></code> for C++03 and higher, that implements <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r0.html">P0653r0</a> (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. </div> </li> <li> <div> Added <code><span class="identifier">BOOST_TEST_GT</span></code> and <code><span class="identifier">BOOST_TEST_GE</span></code> to Lightweight Test. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> supports ucontext-API (swapcontext) </div> </li> <li> <div> supports Windows-Fiber-API </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13064">#13064</a>: different behavior coroutine and coroutine2 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fix PE parsing on non Windows platforms. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> hardware transactional memory (Intel TSX) supported </div> </li> <li> <div> NUMA supported </div> </li> <li> <div> ucontext-API (swapcontext) supported </div> </li> <li> <div> Windows-Fiber-API supported </div> </li> <li> <div> on demand growing stacks </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> #121: failing to build static lib with GCC 4.8 and C++11 </div> </li> <li> <div> #123: assertion failure in schedule_from_remote </div> </li> <li> <div> #125: erratic crashes in testsuite </div> </li> <li> <div> #126: incorrect std::memory_order value in compare_exchange_strong? </div> </li> </ul> </div> </li> <li> <div> important: <ul> <li> <div> required bug fix <a href="https://github.com/boostorg/fiber/commit/63f1041f0e484e64dec437a0fa780ea2463abda2">63f1041f0e484e64dec437a0fa780ea2463abda2</a> not included in 1.65 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> MSVC 14.1 supports variadic containers, such as <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">deque</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">set</span></code>, and <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/12986">#12986</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> Add correct() overload taking area strategy </div> </li> <li> <div> Add is_convex() overload taking side strategy </div> </li> <li> <div> Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry </div> </li> </ul> </div> </li> <li> <div> Solved issues: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12410">12410</a> Lack of support of geographic coordinate system in correct() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13035">13035</a> Wrong result of non-cartesian intersection strategies for segments near poles. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/13057">13057</a> Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring </div> </li> <li> <div> Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other </div> </li> <li> <div> Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) </div> </li> <li> <div> Fix intersection (idem), but some cases are still not yet valid </div> </li> <li> <div> Fix difference (idem), but some cases are still not yet valid </div> </li> <li> <div> Fix propagation of area strategy into the internals of various algorithms from intersection strategy </div> </li> <li> <div> Fix uninitialized variable in relate and reference to temporary in overlay </div> </li> <li> <div> Fix error in disjoint for geographic Segment/Box </div> </li> <li> <div> Fix handling of non-cartesian geometries in various algorithms </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Support for <code><span class="keyword">char16_t</span></code>, <code><span class="keyword">char32_t</span></code>, <code><span class="identifier">u16string</span></code>, <code><span class="identifier">u32string</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> Improved compatibility with Solaris. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Corrected some documentation. (<a href="https://github.com/boostorg/phoenix/pull/50">PR#50</a>) </div> </li> <li> <div> <code><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">erase</span></code> with associative container returns iterator in C++11 mode. (<a href="https://svn.boost.org/trac/boost/ticket/7423">#7423</a>) </div> </li> <li> <div> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">multiset</span></code> should be worked with predefined lazy functions. (<a href="https://github.com/boostorg/phoenix/pull/52">PR#52</a>) </div> </li> <li> <div> Disable <code><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">random_shuffle</span></code> in C++17. (<a href="https://github.com/boostorg/phoenix/pull/53">PR#53</a>) </div> </li> <li> <div> Don't forward declare, include instead. (<a href="https://svn.boost.org/trac/boost/ticket/11875">#11875</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Fix Intel C/C++ version 9999 detection to be 12.1.0. </div> </li> <li> <div> Addition of <code><span class="identifier">BOOST_PREDEF_WORKAROUND</span></code> and <code><span class="identifier">BOOST_PREDEF_TESTED_AT</span></code> macros for defect workarounds and detection. </div> </li> <li> <div> Add ARM64 MSVC SIMD detection. (from Minmin Gong) </div> </li> <li> <div> Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) </div> </li> <li> <div> Fix MinGW incorrect header guard. (from Ruslan Baratov) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Support for storing values into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>, thanks to Ed Catmur (<a href="https://svn.boost.org/trac/boost/ticket/7495">#7495</a>, <a href="https://github.com/boostorg/program_options/pull/18">PR#18</a>) </div> </li> <li> <div> Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (<a href="https://github.com/boostorg/program_options/issues/25">#25</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/python/">Python</a>:</span> <ul> <li> <div> <code><span class="identifier">eval</span><span class="special">()</span></code>, <code><span class="identifier">exec</span><span class="special">()</span></code>, and <code><span class="identifier">exec_statement</span><span class="special">()</span></code> now allow <code><span class="keyword">char</span> <span class="keyword">const</span> <span class="special">*</span></code> arguments, in addition to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">str</span></code>. </div> </li> <li> <div> The <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">numeric</span></code> API has been removed, as it is being obsoleted by <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">numpy</span></code>. </div> </li> <li> <div> Fix some build issues when using Python3 with MSVC. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> New class template<code><span class="identifier">atomic_shared_ptr</span></code>, that provides thread-safe atomic pointer operations over <code><span class="identifier">shared_ptr</span></code>. (Peter Dimov) </div> </li> <li> <div> New class template <code><span class="identifier">local_shared_ptr</span></code>, where the reference count is updated with non-atomic operations. (Peter Dimov) </div> </li> <li> <div> More optimizations in <code><span class="identifier">allocate_shared</span></code> and <code><span class="identifier">make_shared</span></code> for arrays. (Glen Fernandes) </div> </li> <li> <div> Documentation has been completely rewritten in Asciidoc format. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.6 see the <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/change_log.html">Change log</a> section for more details. </div> </li> <li> <div> New feature: <ul> <li> <div> C++17 compatibility (tested on VS2017), thanks to <a href="https://github.com/DanielaE">Daniela Engert</a> </div> </li> <li> <div> Direct comparison of C-arrays in <code><span class="identifier">BOOST_TEST</span></code> </div> </li> <li> <div> Better global fixtures mechanism, and spitting of responsibilities with <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/utf_reference/test_org_reference/test_org_boost_test_global_fixture.html"><code><span class="identifier">BOOST_TEST_GLOBAL_FIXTURE</span></code></a> for global fixtures and <a href="https://www.boost.org/doc/libs/1_65_0/libs/test/doc/html/boost_test/utf_reference/link_references/link_boost_test_global_configuration.html"><code><span class="identifier">BOOST_TEST_GLOBAL_CONFIGURATION</span></code></a> for global initialization (compile time configuration). </div> </li> <li> <div> Improved support for fixtures (<code><span class="identifier">setup</span></code> / <code><span class="identifier">teardown</span></code> member function) which enables better teardown time checks </div> </li> </ul> </div> </li> <li> <div> Breaking changes <ul> <li> <div> Some API changes for the loggers </div> </li> <li> <div> Deprecating <code><span class="identifier">BOOST_GLOBAL_FIXTURE</span></code> in favor of <code><span class="identifier">BOOST_TEST_GLOBAL_FIXTURE</span></code> and <code><span class="identifier">BOOST_TEST_GLOBAL_CONFIGURATION</span></code> (see above) </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/5282">#5282</a>, <a href="https://svn.boost.org/trac/boost/ticket/5563">#5563</a>, <a href="https://svn.boost.org/trac/boost/ticket/11471">#11471</a>, <a href="https://svn.boost.org/trac/boost/ticket/11962">#11962</a>, <a href="https://svn.boost.org/trac/boost/ticket/12228">#12228</a> </div> </li> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/12631">#12631</a>, <a href="https://svn.boost.org/trac/boost/ticket/13011">#13011</a> </div> </li> <li> <div> Pull request <a href="https://github.com/boostorg/test/pull/106">PR106</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> Important Regression on Windows: <ul> <li> <div> <a href="https://github.com/boostorg/thread/issues/130">#130</a> windows: Bug in boost::condition_variable on Windows Please, merge these two patches </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657">https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657</a> </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d">https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d</a> </div> </li> </ul> </div> </li> <li> <div> Bug fixes <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/12519">#12519</a> boost::thread::try_join_for does not return after timeout </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12874">#12874</a> future&lt;&gt; extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12888">#12888</a> Linking with boost thread does not work on mingw/gcc 4.4 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12958">#12958</a> sync_bounded_queue::wait_pull_front( lve ) might throw </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13077">#13077</a> Linking to static 64bit libboost_thread fails DLL initialization </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/13155">#13155</a> log doesn't build on a system with pthreads </div> </li> <li> <div> <a href="https://github.com/boostorg/thread/issues/121">#121</a> on_tls_prepare is broken under VS2017 </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Include &lt;boost/functional/hash.hpp&gt; if required, thanks to Ed Catmur <a href="https://svn.boost.org/trac/boost/ticket/13009">#13009</a>. </div> </li> <li> <div> Use native <code><span class="identifier">hash_code</span><span class="special">()</span></code> when possible on GCC-like compilers <a href="https://svn.boost.org/trac/boost/ticket/13027">#13027</a>. </div> </li> <li> <div> Fix <code><span class="identifier">ctti_type_index</span></code> for GCC 7 and later, thanks to Benjamin Buch <a href="https://github.com/boostorg/type_index/pull/16">PR16</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/typeof/">Typeof</a>:</span> <ul> <li> <div> Fix compilation error with clang-cl <a href="https://svn.boost.org/trac10/ticket/11821">ticket 11821</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Use the same data structure for <code><span class="identifier">unordered_set</span></code> and <code><span class="identifier">unordered_multiset</span></code>, and for<code><span class="identifier">unordered_map</span></code> and <code><span class="identifier">unordered_multimap</span></code>. This is required for C++17, so that nodes can be merged and extracted between compatible containers. </div> </li> <li> <div> Add deprecated attributes to long deprecated functions. </div> </li> <li> <div> Improved use of <code><span class="identifier">allocator_traits</span></code> <code><span class="identifier">construct</span></code> and <code><span class="identifier">destroy</span></code> on C++11 compilers, using piecewise pair construction when appropriate. </div> </li> <li> <div> Fewer workarounds on newer Oracle compilers. </div> </li> <li> <div> Avoid dereferencing pointers to uninitialized memory (<a href="https://github.com/boostorg/unordered/pull/5">PR #5</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Improved compatibility of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">next</span></code>/<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">prior</span></code> with SFINAE-unfriendly iterators. <a href="https://svn.boost.org/trac/boost/ticket/10847">#10847</a>, <a href="https://svn.boost.org/trac/boost/ticket/13002">#13002</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> r-value overload for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get</span></code> was added by Albert Sverdlov <a href="https://svn.boost.org/trac/boost/ticket/13018">#13018</a>. </div> </li> <li> <div> Missing include fro <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant</span><span class="special">/</span><span class="identifier">polymorphic_get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header was added by Adam Badura <a href="https://svn.boost.org/trac/boost/ticket/13037">#13037</a>. </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_variant_over</span></code> was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) <a href="https://svn.boost.org/trac/boost/ticket/8554">#8554</a>, <a href="https://svn.boost.org/trac/boost/ticket/10041">#10041</a>, <a href="https://github.com/boostorg/variant/pull/35">PR#35</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_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.8.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 </div> </li> <li> <div> GCC, C++17: 7.1.0 </div> </li> <li> <div> GCC, C++1z: 6.3.0 </div> </li> <li> <div> Intel: 16.0, 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 8.1.0 </div> </li> <li> <div> Clang, C++11: 8.1.0 </div> </li> <li> <div> Clang, C++14: 8.1.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++11: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4 </div> </li> <li> <div> GCC, C++14: 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.8.0 </div> </li> <li> <div> Clang, C++11: 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.8.0 </div> </li> <li> <div> Clang, C++1z: 3.8.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++11: 4.7.3 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5_next, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5_next, 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.8.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 </div> </li> <li> <div> Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 </div> </li> <li> <div> Clang, C++1z: 4.0.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 </div> </li> <li> <div> GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 </div> </li> <li> <div> GCC, C++17: 7.1.0 </div> </li> <li> <div> GCC, C++1z: 6.3.0 </div> </li> <li> <div> Intel: 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 8.1.0 </div> </li> <li> <div> Clang, C++11: 8.1.0 </div> </li> <li> <div> Clang, C++14: 8.1.0 </div> </li> <li> <div> Clang, C++1z: 8.1.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 </div> </li> <li> <div> GCC, C++11: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4 </div> </li> <li> <div> GCC, C++14: 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.8.0 </div> </li> <li> <div> Clang, C++11: 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.8.0 </div> </li> <li> <div> Clang, C++1z: 3.8.0 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5_next, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5_next, 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_65_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.64.0https://www.boost.org/users/history/version_1_64_0.htmlhttp://www.boost.org/users/history/version_1_64_0.htmlWed, 19 Apr 2017 17:42:32 +0000 <div id="version_1_64_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/process/">Process</a>:</span> Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: </div> <ul> <li> <div> create child processes </div> </li> <li> <div> setup streams for child processes </div> </li> <li> <div> communicate with child processes through streams (synchronously or asynchronously) </div> </li> <li> <div> wait for processes to exit (synchronously or asynchronously) </div> </li> <li> <div> terminate processes </div> </li> </ul> <div> Broken feature: </div> <ul> <li> <div> <a href="https://github.com/klemens-morgenstern/boost-process/issues/67">GitHub #67: <em>"group.wait() does not return"</em></a>. </div> </li> </ul> </li> </ul> </div> <div id="version_1_64_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Suppressed false warnings about returning reference to temporary </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">addressof</span></code> is now used instead of directly taking the address <a href="https://svn.boost.org/trac/boost/ticket/12615">#12615</a> </div> </li> <li> <div> Headers are not included using double quotes any more <a href="https://svn.boost.org/trac/boost/ticket/12053">#12053</a> </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code>, <code><span class="identifier">leak</span></code>, and <code><span class="identifier">undefined</span></code> sanitizers </div> </li> <li> <div> Added more test </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Added <code><span class="identifier">BOOST_NO_CXX11_SFINAE_EXPR</span></code> defect detection. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12749">Trac #12749: <em>"container::pmr::polymorphic_allocator compilation error"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11333">Trac #11333: <em>"boost::basic_string_ref should interop with boost::container::basic_string"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/45">GitHub #45: <em>"emplace_back must return reference to back(), not to *end()"</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> new API: call/cc </div> </li> <li> <div> deprecated API:execution-context </div> </li> <li> <div> stack manipulation on MIPS fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12719">#12719</a> segmentation fault when built with mingw-w64 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12948">#12948</a> Unexpected snprintf result is on Android ARM </div> </li> <li> <div> #38: context_entry() crashes on macOS </div> </li> <li> <div> #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android </div> </li> <li> <div> #41: std::bind() fails with invoke() </div> </li> <li> <div> #46: "rename of continuation member functions" missed a spot </div> </li> <li> <div> #50: bad assembly for fcontext on ppc64/sysv/elf </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) </div> </li> <li> <div> Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code>, <code><span class="identifier">leak</span></code>, and <code><span class="identifier">undefined</span></code> sanitizers </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> Implemented <code><span class="keyword">constexpr</span></code> <code><span class="identifier">addressof</span></code> on compilers that support C++11 <code><span class="keyword">constexpr</span></code> and SFINAE expressions (Glen Fernandes). <code><span class="identifier">BOOST_CORE_NO_CONSTEXPR_ADDRESSOF</span></code> macro indicates when <code><span class="keyword">constexpr</span></code> <code><span class="identifier">addressof</span></code> is not available. </div> </li> <li> <div> In <code><span class="identifier">lightweight_test</span><span class="special">.</span><span class="identifier">hpp</span></code>, added new macros <code><span class="identifier">BOOST_TEST_ALL_EQ</span></code> and <code><span class="identifier">BOOST_TEST_ALL_WITH</span></code> for testing container contents (Bjorn Reese). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> #4: coroutine2&lt;&gt; does not accept std::bind </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Fixed WinCE compilation </div> </li> <li> <div> Added <code><span class="identifier">boost</span><span class="special">:</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">symbol_location_ptr</span></code> function for getting location of a symbol by pointer that could not be dereferenced (<code><span class="keyword">void</span></code> pointer for example) </div> </li> <li> <div> Fixed UB in <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">aggressive_ptr_cast</span></code> for member pointers </div> </li> <li> <div> Fixed leaks in experimental smart imports </div> </li> <li> <div> Fixed warnings </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code> and <code><span class="identifier">leak</span></code> sanitizers </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> (un)bounded_channel&lt;&gt; removed </div> </li> <li> <div> #100: ASIO: unbuffered_channel / scheduler notify issue </div> </li> <li> <div> #105: skynet variants crash on windows </div> </li> <li> <div> #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile </div> </li> <li> <div> #110: Compile error on ARMv6 </div> </li> <li> <div> #111: endless-loop in buffered_channel::try_value_pop() </div> </li> <li> <div> #114: buffered_channel::try_push<code> <span class="identifier">does</span> <span class="keyword">not</span> <span class="identifier">wake</span> <span class="identifier">fibers</span> <span class="identifier">in</span> </code>pop` </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Improvements: <ul> <li> <div> matrix transformation is now based on Boost.QVM instead of Boost.Ublas </div> </li> </ul> </div> </li> <li> <div> Breaking changes: <ul> <li> <div> ublas_transformer is renamed to matrix_transformer </div> </li> <li> <div> explicit modifier is added to constructors of rtree index::dynamic_* parameters </div> </li> <li> <div> strategy::area::huiller replaced by strategy::area::spherical </div> </li> </ul> </div> </li> <li> <div> Solved issues: <ul> <li> <div> <a href="https://github.com/boostorg/geometry/issues/363">363</a> Missing includes in geometry/index/parameters.hpp </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/364">364</a> within(Linear, Areal) compilation error when arguments use different point types </div> </li> <li> <div> <a href="https://github.com/boostorg/geometry/issues/370">370</a> Buffer Seg Faults with Ring as Input </div> </li> </ul> </div> </li> <li> <div> Solved tickets: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11899">11899</a> boost::geometry::equals doesn't handle open polygons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11930">11930</a> Inaccuracy of area::huiller strategy </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11931">11931</a> Wrong spherical area with pole encircling polygons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12410">12410</a> Lack of support of geographic coordinate system in correct() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12566">12566</a> Ambiguous template instantiation in equal_to&lt;&gt; when pair value contains raw pointer </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12861">12861</a> Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12885">12885</a> Use BOOST_THROW_EXCEPTION instead of throw </div> </li> </ul> </div> </li> <li> <div> Bugfixes: <ul> <li> <div> Fix distance_measure in get_turn_info </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Stop using <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unary_function</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">binary_function</span></code> when they're not available. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://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/12617">Trac #12617 (<em>"clock_gettime not available on OS X 10.11"</em>)</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12744">Trac #12744 (<em>"winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/32">GitHub Pull #32 (<em>"Conform to std::pointer_traits requirements"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/33">GitHub Pull #33 (<em>"explicit cast to derived class" and "64/32 bit processes sharing"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/34">GitHub Pull #34 (<em>"Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/35">GitHub Pull #35 (<em>"Fixed options for cross-compilation"</em>)</a>. </div> </li> </ul> </div> </li> <li> <div> New experimental option <code><span class="identifier">BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED</span></code> from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12745">Boost Trac #12745: <em>key_nodeptr_comp broken if the key type is void*</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12761">Boost Trac #12761: <em>intrusive::set::swap doesn't swap the comparison function*</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> <ul> <li> <div> Fixed multiple warnings <a href="https://svn.boost.org/trac/boost/ticket/11842">#11842</a> </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code>, <code><span class="identifier">leak</span></code>, and <code><span class="identifier">undefined</span></code> sanitizers </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Big push to ensure all functions in also in C99 are compatible with Annex F. </div> </li> <li> <div> Improved accuracy of the Bessel functions I0, I1, K0 and K1, see <a href="https://svn.boost.org/trac/boost/ticket/12066">12066</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket <a href="https://svn.boost.org/trac/boost/ticket/12955">#12955</a>). </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> In <code><span class="identifier">cpp_bin_float</span></code> prevent double rounding when converting to a denormalized float. See <a href="https://svn.boost.org/trac/boost/ticket/12527">#12527</a>. </div> </li> <li> <div> Fix bug in integer sqrt for very small integers. See <a href="https://svn.boost.org/trac/boost/ticket/12559">#12559</a>. </div> </li> <li> <div> Fix conversion to signed-zero in <code><span class="identifier">cpp_bin_float</span></code>. </div> </li> <li> <div> Change <code><span class="identifier">cpp_bin_float</span></code> rounding code to round at arbitrary location so we can use it for conversions, see <a href="https://svn.boost.org/trac/boost/ticket/12527">#12527</a>. </div> </li> <li> <div> Improve performance of 128-bit bit-scan operations. </div> </li> <li> <div> Fix subtraction of very small quantities in <code><span class="identifier">cpp_bin_float</span></code>. See: <a href="https://svn.boost.org/trac/boost/ticket/12580">#12580</a>. </div> </li> <li> <div> Bring error handling into line with C99 Annex F. See <a href="https://svn.boost.org/trac/boost/ticket/12581">#12581</a>. </div> </li> <li> <div> Fix bitwise export of trivial <code><span class="identifier">cpp_int</span></code>'s, see <a href="https://svn.boost.org/trac/boost/ticket/12627">#12627</a>. </div> </li> <li> <div> Fix <code><span class="identifier">ilogb</span></code> (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see <a href="https://svn.boost.org/trac/boost/ticket/12625">#12625</a>. </div> </li> <li> <div> Allow conversion from <code><span class="identifier">__float128</span></code> to <code><span class="identifier">cpp_bin_float</span></code>. </div> </li> <li> <div> Fix bug in left shift of <code><span class="identifier">cpp_int</span></code> which would result in bit-loss, see <a href="https://svn.boost.org/trac/boost/ticket/12790">#12790</a>. </div> </li> <li> <div> Fixed bugs in bounded but variable precision <code><span class="identifier">cpp_int</span></code>'s caused by over-aggressive constexpr optimization, see <a href="https://svn.boost.org/trac/boost/ticket/12798">#12798</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Fix Intel C/C++ compiler version specification. </div> </li> <li> <div> Add <code><span class="identifier">BOOST_VERSION_NUMBER_MAJOR</span></code>, <code><span class="identifier">BOOST_VERSION_NUMBER_MINOR</span></code>, <code><span class="identifier">BOOST_VERSION_NUMBER_PATCH</span></code> macros to extract components from valid version numbers. </div> </li> <li> <div> Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Compiling with Oracle C++ toolset is no longer restricted to static linking. </div> </li> <li> <div> Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: <a href="https://svn.boost.org/trac/boost/ticket/12818">#12818</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> Rewrite of <code><span class="identifier">allocate_shared</span></code> and <code><span class="identifier">make_shared</span></code> for arrays for a more optimal and more maintainable implementation (Glen Fernandes) </div> </li> <li> <div> Pointer cast functions with move semantics (Chris Glover) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.5 see the <a href="https://www.boost.org/doc/libs/1_64_0/libs/test/doc/html/boost_test/change_log.html">Change log</a> section for more details. </div> </li> <li> <div> New feature: <ul> <li> <div> Now Boost.Test provides <strong>customization points</strong> for logging user defined types </div> </li> <li> <div> JUnit output format can now have a <em>log-level</em> </div> </li> <li> <div> JUnit output format has not better performances when the test modules have a lot of checks </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/11756">#11756</a>, <a href="https://svn.boost.org/trac/boost/ticket/12540">#12540</a>, <a href="https://svn.boost.org/trac/boost/ticket/12712">#12712</a>, <a href="https://svn.boost.org/trac/boost/ticket/12748">#12748</a>, <a href="https://svn.boost.org/trac/boost/ticket/12778">#12778</a> </div> </li> <li> <div> Pull request <a href="https://github.com/boostorg/test/pull/107">PR107</a>, <a href="https://github.com/boostorg/test/pull/108">PR108</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Added <code><span class="identifier">BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST</span></code>, which implements the functionality for <code><span class="identifier">runtime_cast</span></code> but does not include the <code><span class="identifier">BOOST_TYPE_INDEX_REGISTER_CLASS</span></code> macro (thanks to Chris Glover for imlpementing it) </div> </li> <li> <div> Fixed undefined macro warning in stl_type_index.hpp <a href="https://svn.boost.org/trac/boost/ticket/12739">#12739</a> </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code>, <code><span class="identifier">leak</span></code>, and <code><span class="identifier">undefined</span></code> sanitizers </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_traits/">TypeTraits</a>:</span> <ul> <li> <div> Added new traits <code><span class="identifier">make_void</span></code> and <code><span class="identifier">void_t</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Initial support for new C++17 member functions: <code><span class="identifier">insert_or_assign</span></code> and <code><span class="identifier">try_emplace</span></code> in <code><span class="identifier">unordered_map</span></code>, <code><span class="identifier">merge</span></code> and <code><span class="identifier">extract</span></code> in all containers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed construction of variant from <code><span class="identifier">recursive_variant_</span></code> (thanks to Mikhail Maksimov for the fix) <a href="https://svn.boost.org/trac/boost/ticket/12508">#12508</a>, <a href="https://svn.boost.org/trac/boost/ticket/12645">#12645</a> </div> </li> <li> <div> Do not enable variadic templates for MSVC2015Update1 as it still has issues <a href="https://svn.boost.org/trac/boost/ticket/12236">#12236</a> </div> </li> <li> <div> Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) <a href="https://svn.boost.org/trac/boost/ticket/12680">#12680</a>, <a href="https://svn.boost.org/trac/boost/ticket/7120">#7120</a> </div> </li> <li> <div> Made <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polymorphic_</span><span class="special">*</span><span class="identifier">get</span></code> to work as <code><span class="identifier">boost</span><span class="special">::*</span><span class="identifier">get</span></code> in undocumented border cases and fixed tests <a href="https://svn.boost.org/trac/boost/ticket/11950">#11950</a> </div> </li> <li> <div> CI tests now run with <code><span class="identifier">address</span></code>, <code><span class="identifier">leak</span></code>, and <code><span class="identifier">undefined</span></code> sanitizers </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_64_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.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++1z: 3.9.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.1, 6.2.0, 6.3.0 </div> </li> <li> <div> GCC, C++1z: 6.2.0 </div> </li> <li> <div> Intel: 16.0, 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0, 17.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> <li> <div> Apple Clang, C++11: 7.0.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.8 </div> </li> <li> <div> Clang, C++11: 3.8 </div> </li> <li> <div> Clang, C++14: 3.8 </div> </li> <li> <div> Clang, C++1z: 3.8 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 </div> </li> <li> <div> Clang, C++1z: 3.9.1, 4.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 </div> </li> <li> <div> GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 </div> </li> <li> <div> GCC, C++1z: 6.2.0 </div> </li> <li> <div> Intel: 16.0, 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0, 17.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.2 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang, C++98: 3.8 </div> </li> <li> <div> Clang, C++11: 3.8 </div> </li> <li> <div> Clang, C++14: 3.8 </div> </li> <li> <div> Clang, C++1z: 3.8 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_64_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.63.0https://www.boost.org/users/history/version_1_63_0.htmlhttp://www.boost.org/users/history/version_1_63_0.htmlMon, 26 Dec 2016 23:43:57 +0000 <div id="version_1_63_0.post_release_patches"> <h3><span class="link">Post-release Patches</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Using 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers can result in generation of incorrect code. This problem is fixed in <a href="https://github.com/boostorg/atomic/commit/a67cc1b055cf09f371e2eca544884634a1ccc886">this</a> commit. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_63_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Added the static constant <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_always_lock_free</span></code> for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations. </div> </li> <li> <div> Improved support of Oracle Studio on x86 targets. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12534">Trac #12534: <em>"flat_map fails to compile if included after type_traits is instantiated under gcc"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12577">Trac #12577: <em>"Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/40">GitHub #40: <em>Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -&gt; allocator_traits::size_type</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/41">GitHub #41: <em>Avoid -Wunreachable-code in do_allocate()</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11687">#11687</a> Xcode (Apple clang) and thread_local </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12114">#12114</a> context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12411">#12411</a> fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12551">#12551</a> building boost on arm64 causes error: unknown directive </div> </li> <li> <div> reduced signatur for ontop-functions </div> </li> <li> <div> unit-test for private fcontext-API </div> </li> <li> <div> performance-test for ucontext and fcontext fixed </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fiber/">Fiber</a>:</span> <ul> <li> <div> unbounded_channel and bounded_channel marked as deprecated </div> </li> <li> <div> new classes buffered_channel and unbuffered_channel </div> </li> <li> <div> performance improved </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Fixed <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code> buggy constructors (Thanks to Lee Clagett). </div> </li> <li> <div> <code><span class="identifier">BOOST_FUSION_ADAPT</span><span class="special">*</span></code> and <code><span class="identifier">BOOST_FUSION_DEFINE</span><span class="special">*</span></code> now allow empty structures. (<a href="https://svn.boost.org/trac/boost/ticket/6592">#6592</a>) </div> </li> <li> <div> <code><span class="identifier">BOOST_FUSION_DEFINE</span><span class="special">*</span></code> allows move constructor and assignment. (<a href="https://svn.boost.org/trac/boost/ticket/10099">#10099</a>) </div> </li> <li> <div> Adaptor for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code> (Thanks to Mateusz Łoskot). (<a href="https://svn.boost.org/trac/boost/ticket/8241">#8241</a>) </div> </li> <li> <div> Fixed returning temporary variable warnings on MSVC. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry">Geometry</a>:</span> <ul> <li> <div> <em>Improvements:</em> <ul> <li> <div> Intersection: take care that output is valid (work in progres, not yet finished - but more is valid) </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12289">#12289</a> Avoid warning/compilation error for std::cout </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12412">#12412</a> Invalid result of covered_by() with geographic Points and Boxes </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12413">#12413</a> rtree::remove() not working properly with geographic Points </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash">Hash</a>:</span> <ul> <li> <div> Fixed some warnings. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://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/12499">Trac #12499 (<em>"Memory allocation fails"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/30">GitHub Pull #30 (<em>"Provide extension point so library user can provide default temp folder"</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/31">GitHub Pull #31 (<em>"Add xsi_key(key_t) constructor"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12556">Boost Trac #12556: <em>member_value_traits.hpp has a missing #include</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed issue found by <code><span class="special">-</span><span class="identifier">fsanitize</span><span class="special">=</span><span class="identifier">undefined</span></code> <a href="https://github.com/boostorg/lexical_cast/issues/21">#21</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> Removed the previously deprecated <code><span class="identifier">type_info_wrapper</span></code>. </div> </li> </ul> </div> </li> <li> <div> New features: <ul> <li> <div> Added a way to access the current file name from the text file sink backend. The file name can be obtained with the <code><span class="identifier">get_current_file_name</span></code> method. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed compilation errors for Android API prior to version 21. </div> </li> <li> <div> Streaming operators now take scalar types and enums by value. This allows to output static constants and bitfields directly into formatting stream and record stream. (<a href="https://svn.boost.org/trac/boost/ticket/11998">#11998</a>) </div> </li> <li> <div> Fixed auto-detection of native syslog API. (<a href="https://svn.boost.org/trac/boost/ticket/12600">#12600</a>) </div> </li> <li> <div> In UDP socket based syslog backend implementation, changed the syslog message format for better compliance with RFC3164. </div> </li> <li> <div> File close handler installed in text file sink backend is no longer called if the file is not open yet. </div> </li> </ul> </div> </li> <li> <div> See <a href="https://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="https://www.boost.org/libs/metaparse/">Metaparse</a>:</span> <ul> <li> <div> Improved the implementation of <code><span class="identifier">BOOST_METAPARSE_STRING</span></code> <ul> <li> <div> The maximal string length limit has been increased to 2048 </div> </li> <li> <div> The maximal string length limit can be extended beyond 2048 by regenerating some of the Boost headers using a script (part of the library) </div> </li> <li> <div> The string length limit can be changed within a compilation unit </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Improved experimental adaptive sort algorithm performance </div> </li> <li> <div> Activate BOOST_MOVE_FORCEINLINE </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Added two new in-place constructors. They work similarly to <code><span class="identifier">emplace</span><span class="special">()</span></code> functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition. </div> </li> <li> <div> Syntax <code><span class="identifier">o</span> <span class="special">=</span> <span class="special">{}</span></code> now correctly un-initializes an <code><span class="identifier">optional</span></code>, just like in <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>. </div> </li> <li> <div> Fixed <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;&gt;</span></code> initialization. (<a href="https://svn.boost.org/trac/boost/ticket/12203">#12203</a>) </div> </li> <li> <div> Optional constructors are sfinae-friendly. This fixes interaction with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/12563">#12563</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Most of modules now support C++11 variadic templates. </div> </li> <li> <div> Fixed type deduction failure with result type. </div> </li> <li> <div> Suppress unused warnings. </div> </li> <li> <div> Fixed too few arguments error on binary math functions. </div> </li> <li> <div> Added workarounds for older compiler. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/python/">Python</a>:</span> <ul> <li> <div> Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr) </div> </li> <li> <div> Incorporated an extension API to wrap <a href="http://www.numpy.org/">NumPy</a> </div> </li> <li> <div> Removed obsolete bits and pieces </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.4 see the <a href="https://www.boost.org/doc/libs/1_63_0/libs/test/doc/html/boost_test/change_log.html">Change log</a> section for more details. </div> </li> <li> <div> New feature: <code><span class="identifier">per_element</span></code> and <code><span class="identifier">lexicographic</span></code> modifiers of <code><span class="identifier">BOOST_TEST</span></code> can also be applied to string comparison </div> </li> <li> <div> Breaking change: colons that appear in test case names are replaced with underscores </div> </li> <li> <div> Bug fixes <ul> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/11756">#11756</a>, <a href="https://svn.boost.org/trac/boost/ticket/11907">#11907</a>, <a href="https://svn.boost.org/trac/boost/ticket/12339">#12339</a>, <a href="https://svn.boost.org/trac/boost/ticket/12506">#12506</a>, <a href="https://svn.boost.org/trac/boost/ticket/12507">#12507</a>, <a href="https://svn.boost.org/trac/boost/ticket/12530">#12530</a>, </div> </li> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/12531">#12531</a> </div> </li> <li> <div> Pull request <a href="https://github.com/boostorg/test/pull/103">PR103</a>, <a href="https://github.com/boostorg/test/pull/104">PR104</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Added <code><span class="identifier">runtime_cast</span></code> to the library as an emulation of <code><span class="keyword">dynamic_cast</span></code>. Thanks to Chris Glover for the implementation. See <a href="https://www.boost.org/doc/html/boost_typeindex_header_reference.html#header.boost.type_index.runtime_cast_hpp">runtime_cast reference</a> for more info. </div> </li> <li> <div> Internals of the CTTI were made more platform independant, due to change of the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code> type to <code><span class="keyword">unsigned</span> <span class="keyword">int</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/units/">Units</a>:</span> <ul> <li> <div> Fix inspection warnings </div> </li> <li> <div> updated physico-chemical constants to CODATA 2014 values </div> </li> <li> <div> define biot correctly as 10 Ampere </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Fix an exception safety issue in assignment. </div> </li> <li> <div> Use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> where available, and support modern style rebind (<a href="https://svn.boost.org/trac/boost/ticket/12459">#12459</a>). </div> </li> <li> <div> Add some allocator aware constructors. </div> </li> <li> <div> Use the hint iterator in <code><span class="identifier">emplace_hint</span></code>. </div> </li> <li> <div> Fixed some warnings. </div> </li> <li> <div> See the <a href="https://www.boost.org/doc/html/unordered/changes.html">changelog</a> for more details. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_63_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.8.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 </div> </li> <li> <div> Clang, C++1z: 3.8.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 </div> </li> <li> <div> GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0 </div> </li> <li> <div> Intel: 16.0, 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0, 17.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> <li> <div> Apple Clang, C++11: 7.0.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.2 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.8.1 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 </div> </li> <li> <div> Clang, C++1z: 3.8.1 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 </div> </li> <li> <div> GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental) </div> </li> <li> <div> GCC, C++1z: 6.1.1 </div> </li> <li> <div> Intel: 16.0, 17.0 </div> </li> <li> <div> Intel, C++11: 16.0, 17.0 </div> </li> <li> <div> Intel, C++14: 16.0, 17.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> <li> <div> Apple Clang, C++11: 7.0.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.2 </div> </li> <li> <div> GCC,C++14: 6.1.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_63_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.62.0http://www.boost.org/users/history/version_1_62_0.htmlhttp://www.boost.org/users/history/version_1_62_0.htmlWed, 28 Sep 2016 10:17:52 -0500 <div id="version_1_62_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fiber/">Fiber</a>:</span> Framework for userland-threads/fibers, from Oliver Kowalke. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/qvm/doc/index.html">QVM</a>:</span> Boost QVM is a generic library for working with quaternions, vectors and matrices of static size with the emphasis on 2, 3 and 4-dimensional operations needed in graphics, video games and simulation applications, from Emil Dotchevski. </div> </li> </ul> </div> <div id="version_1_62_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Improved support for Oracle Studio and SPARC. The library now provides native atomic operations on SPARCv8+. </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/11330">#11330</a> boost::chrono::duration default constructor doesn't initialize rep_ </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11618">#11618</a> Chrono IO V2 doc ios_state.hpp does not exist </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11631">#11631</a> boost chrono io v2 does not let you support custom clocks </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> Debug implementation is no longer used by default in debug mode. Debug implementation does not have the same thread safety guarantees as the normal (release) implementation or other containers. As a result of this change <code><span class="identifier">BOOST_CB_DISABLE_DEBUG</span></code> macro is no longer used. <code><span class="identifier">BOOST_CB_ENABLE_DEBUG</span><span class="special">=</span><span class="number">1</span></code> should be defined instead to enable debug support. (<a href="https://svn.boost.org/trac/boost/ticket/6277">#6277</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> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9481">Trac #9481: <em>"Minor comment typo in Boost.Container"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9689">Trac #9689: <em>"Add piecewise_construct to boost::container"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11170">Trac #11170: <em>"Doc slip for index_of"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11802">Trac #11802: <em>"Incorrect ordering after using insert() with ordered_range_t on a flat_multiset with a non-default sort order"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12117">Trac #12117: <em>"flat_set constructor with ordered_unique_range"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12177">Trac #12177: <em>"vector::priv_merge uses unqualified uintptr_t"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12183">Trac #12183: <em>"GCC 6.1 thinks boost::container::string violates strict aliasing"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12256">Trac #12256: <em>"set&lt;std::pair&lt;int,int&gt;&gt;::insert cause compilation error in debug configuration in Visual Studio 2012"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12273">Trac #12273: <em>"static_vector max_size() and capacity() should be constant expressions"</em></a>. Added constant <code><span class="identifier">static_vector</span><span class="special">&lt;&gt;::</span><span class="identifier">static_capacity</span></code> to use the configured capacity in constant expressions. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12286">Trac #12286: <em>"PMR flat_map from Boost Container does not compile"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12296">Trac #12296: <em>"{deque,string} combine for a memory leak"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12319">Trac #12319: <em>"<code><span class="identifier">flat_set</span></code> should be nothrow move constructible"</em></a>. </div> </li> </ul> </div> </li> <li> <div> Revised noexcept expressions of default and move constructors in all containers. </div> </li> <li> <div> Implemented C++17 <code><span class="identifier">insert_or_assign</span></code>/<code><span class="identifier">try_emplace</span></code> for <code>map</code> and <code>flat_map</code>. </div> </li> <li> <div> Implemented C++17 <code><span class="identifier">extract</span></code>/<code><span class="identifier">insert</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span></code> for <code>map</code>, <code>multimap</code>, <code>set</code>, <code>multiset</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> <a href="https://svn.boost.org/trac/boost/ticket/12215">#12215</a> all stack corrupted on Windows using default fixedsize_stack </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12242">#12242</a> build issue with Intel C++ compiler for MacOS </div> </li> <li> <div> fix stack unwinding for execution_context_v1 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> deprecated in favour of Coroutine2 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12221">#12221</a> coroutine&lt;&gt;::push_type function starts without pushing </div> </li> <li> <div> do not swallow exceptions thrown at coroutine&lt;&gt;::push_type construction </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> Mangled symbols and classes loading was implemented by Klemens Morgenstern </div> </li> <li> <div> Suppress a 'unused parameter' warning in detail::aggressive_ptr_cast <a href="https://github.com/apolukhin/Boost.DLL/pull/9">pull-request 9</a> </div> </li> <li> <div> Allowed to query non-existant sections <a href="https://github.com/apolukhin/Boost.DLL/pull/32">pull-request 32</a> </div> </li> <li> <div> More tests and docs </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/functional/forward/">Functional/Forward</a>:</span> <ul> <li> <div> Fix C++11 compile error. </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> Union: take care that output is valid (with some exceptions), also with self-tangent polygons or shared edges </div> </li> <li> <div> SVG: support boost::variant of geometries </div> </li> <li> <div> SVG: coordinates are now written as double (by default) to svg </div> </li> <li> <div> Rename namespace concept to concepts to avoid conflicts with the newest compilers </div> </li> <li> <div> New spherical intersection strategy used in relational and set operations for spherical and geographic Geometries (previously cartesian intersection strategy was used for all coordinate systems). </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12189">#12189</a> Relational operations not compiling when point types of inputs are different </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12287">#12287</a> Invalid result of rtree.query() for contains() predicate </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Fixed bug <a href="https://github.com/boostorg/interprocess/pull/27">GitHub Pull #27 (<em>"Fix undefined behavior"</em>)</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> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11476">Boost Trac #11476: <em>has_member_function_callable_with.hpp is massively broken with BOOST_NO_CXX11_DECLTYPE</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11994">Boost Trac #11994: <em>Support intrusive container key extractors that return the key by value</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12184">Boost Trac #12184: <em>clang -Wdocumentation warning</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12190">Boost Trac #12190: <em>Intrusive List + Flat Map combination crashes</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12229">Boost Trac #12229: <em>intrusive::unordered_set&lt;T&gt;::rehash() broken</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12245">Boost Trac #12245: <em>bstree uses a shared static size_traits for constant_time_size&lt;false&gt;</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> Fix incorrect static assertion <a href="https://svn.boost.org/trac/boost/ticket/11759">#11759</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> New features: <ul> <li> <div> Added new tools for inter-process logging on a local machine. The implementation includes a resource name wrapper, an inter-process message queue and a sink backend. </div> </li> <li> <div> Added a new character decorator called <code><span class="identifier">max_size_decor</span></code>. The new decorator allows to limit the output of its adopted formatter up to the specified length. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed that logging streams could retain formatting settings across different log records. (<a href="https://svn.boost.org/trac/boost/ticket/12178">#12178</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> New Features: <ul> <li> <div> Enabled all the special function code to work correctly with types whose precision can change at runtime: for example type <code><span class="identifier">mpfr_float</span></code> from Boost.Multiprecision. </div> </li> </ul> </div> </li> <li> <div> Patches: <ul> <li> <div> Fix <code><span class="identifier">tgamma_delta_ratio</span></code> for cases where the delta is small compared to the base. </div> </li> <li> <div> Fix misc GCC-4.4 test failures. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Fixed <a href="https://svn.boost.org/trac/boost/ticket/12179">Trac #12179</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Fix compilation for MSVC 10. <a href="https://github.com/boostorg/phoenix/pull/18">pull-request 18</a> </div> </li> <li> <div> Remove unused preprocessed files. <a href="https://github.com/boostorg/phoenix/pull/28">pull-request 28</a> </div> </li> <li> <div> Fix erroneous doc for switch_ statement. <a href="https://svn.boost.org/trac/boost/ticket/8156">#8156</a> </div> </li> <li> <div> Cleanup config unordered. <a href="https://github.com/boostorg/phoenix/pull/33">pull-request 33</a> </div> </li> <li> <div> Suppress unused placeholder warnings. </div> </li> <li> <div> Fix too few arguments error on binary math functions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Fix buffer over-run error when parsing certain invalid regexes, see <a href="https://svn.boost.org/trac/boost/ticket/12222">#12222</a>. </div> </li> <li> <div> Fix detection of ICU in library build, see <a href="https://svn.boost.org/trac/boost/ticket/12152">#12152</a>. </div> </li> <li> <div> Fix bug in case sensitivity change, see <a href="https://svn.boost.org/trac/boost/ticket/11940">#11940</a>. </div> </li> <li> <div> Allow types wider than int in <code><span class="special">\</span><span class="identifier">x</span><span class="special">{}</span></code> expressions (for char32_t etc), see <a href="https://svn.boost.org/trac/boost/ticket/11988">#11988</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.3 see the <a href="http://www.boost.org/doc/libs/1_62_0/libs/test/doc/html/boost_test/change_log.html">Change log</a> section for more details. </div> </li> <li> <div> New features <ul> <li> <div> dataset driven test-cases have now a unique name and all sample tests of a dataset live inside the same test suite </div> </li> <li> <div> Boost.test learned a new command line switch, <code><span class="special">--</span><span class="identifier">logger</span></code> for setting a test logger as well as its parameter in one command </div> </li> <li> <div> Boost.test learned to have several loggers at the same time, each of which having their own log level and output stream </div> </li> <li> <div> Boost.test learned a new logger, <code><span class="identifier">JUNIT</span></code>, that is able to output Junit/xUnit compatible streams </div> </li> <li> <div> It is now possible to specify several test filters through the environment variable <code><span class="identifier">BOOST_TEST_RUN_FILTERS</span></code> </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/8707">#8707</a>, <a href="https://svn.boost.org/trac/boost/ticket/8834">#8834</a>, <a href="https://svn.boost.org/trac/boost/ticket/11128">#11128</a>, <a href="https://svn.boost.org/trac/boost/ticket/11845">#11845</a>, <a href="https://svn.boost.org/trac/boost/ticket/11859">#11859</a>, <a href="https://svn.boost.org/trac/boost/ticket/12024">#12024</a>, </div> </li> <li> <div> Trac tickets <a href="https://svn.boost.org/trac/boost/ticket/12093">#12093</a>, <a href="https://svn.boost.org/trac/boost/ticket/12103">#12103</a>, <a href="https://svn.boost.org/trac/boost/ticket/12224">#12224</a>, <a href="https://svn.boost.org/trac/boost/ticket/12241">#12241</a>, <a href="https://svn.boost.org/trac/boost/ticket/12257">#12257</a>, <a href="https://svn.boost.org/trac/boost/ticket/12378">#12378</a> </div> </li> <li> <div> Pull request <a href="https://github.com/boostorg/test/pull/81">PR81</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12102">#12102</a> condition_variable_fwd.hpp fails to compile when BOOST_THREAD_PROVIDES_INTERRUPTIONS is disabled </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12120">#12120</a> Performance improvement in thread/barrier.hpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12146">#12146</a> make_exceptional_future is not mentioned in the docs </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12202">#12202</a> shared_lock should be in shared_mutex header </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/12371">#12371</a> boost thread/future.hpp fails to build </div> </li> <li> <div> #88 fix typos in boost::upgrade_lock </div> </li> <li> <div> #89 fix a bug in upgrade_to_unique_lock&lt;&gt;::operator=() </div> </li> <li> <div> #90 fix a bug in try_lock_wrapper&lt;&gt;::operator=() </div> </li> <li> <div> #91 Add shared_lock_guard to the included lock types </div> </li> <li> <div> #92 Fixed compilation with MSVC-8. </div> </li> <li> <div> #93 Fix variable shadowing warnings (Clang) </div> </li> <li> <div> #94 fix bugs in boost::barrier </div> </li> <li> <div> #95 fix a mistake in boost::completion_latch </div> </li> <li> <div> #96 rename async_func.hpp to invoker.hpp. </div> </li> <li> <div> #97 fix a mistake in sync_timed_queue&lt;&gt;::pull_until() </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">ctti_type_index</span></code> was made constexpr in C++14. Now it is possible to retrieve actual name of the type as <code><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span></code> at compile time. So we can do a lot of interesting things at <strong>compile time</strong>: check namespace of a type, sort types according to their lexical representation, check that type is a template type and so on... A few examples were provided. </div> </li> <li> <div> Fixed issue with <code><span class="keyword">noexcept</span></code> on MSVC in type names and issue with space in type name (pulled from klemens-morgenstern/develop) </div> </li> <li> <div> Fixed typos <a href="https://github.com/boostorg/type_index/pull/7">pull-request 7</a> </div> </li> <li> <div> Improved CI testing </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Remove use of deprecated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code>. </div> </li> <li> <div> Fixed an exception safety issue in assignment of <code><span class="identifier">unordered_multiset</span></code> and <code><span class="identifier">unordered_multimap</span></code>. </div> </li> <li> <div> See the <a href="http://www.boost.org/doc/html/unordered/changes.html">changelog</a> for more details. </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 variant construction from classes derived from variant <a href="https://svn.boost.org/trac/boost/ticket/7120">#7120</a>, <a href="https://svn.boost.org/trac/boost/ticket/10278">#10278</a>, <a href="https://svn.boost.org/trac/boost/ticket/12155">#12155</a> </div> </li> <li> <div> Variant constructors and assignment operators now do not participate in overload resolutions if variant can not hold the input type <a href="https://svn.boost.org/trac/boost/ticket/5871">#5871</a>, <a href="https://svn.boost.org/trac/boost/ticket/11602">#11602</a> </div> </li> <li> <div> Fixed the issue with implicit conversion operator in C++11 <a href="https://svn.boost.org/trac/boost/ticket/8555">#8555</a> </div> </li> <li> <div> Fixed comparisons when variant holds non-const reference <a href="https://svn.boost.org/trac/boost/ticket/11751">#11751</a> </div> </li> <li> <div> Fixed noexcept for variant's move-assignment <a href="https://svn.boost.org/trac/boost/ticket/11696">#11696</a> </div> </li> <li> <div> Fixed double quotes in includes <a href="https://svn.boost.org/trac/boost/ticket/12057">#12057</a> </div> </li> <li> <div> Dropped BOOST_VARIANT_NO_REFERENCE_SUPPORT macro and dropped support for compilers without SFINAE <a href="https://svn.boost.org/trac/boost/ticket/12250">#12250</a> </div> </li> <li> <div> Suppress implicit instantiation of MPL end iterator </div> </li> <li> <div> Multiple minor fixes (typos, missing includes) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_62_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.8.0 </div> </li> <li> <div> Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6, 3.7, 3.8.0, 3.8.1, 3.9.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1 </div> </li> <li> <div> GCC, C++14: 5.2.0, 5.3.0, 5.4.1, 6.1.1 </div> </li> <li> <div> Intel: 16.0 </div> </li> <li> <div> Intel, C++11: 16.0 </div> </li> <li> <div> Intel, C++14: 16.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 6.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.4.1, 3.7 </div> </li> <li> <div> GCC: 4.8.5, 5.4.0, 6.1.1 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.8 </div> </li> <li> <div> Clang, c++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8 </div> </li> <li> <div> Clang, c++14: 3.5, 3.6, 3.7, 3.8, 3.9 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 4.8.4, 5.2.0, 6.1.1 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1 </div> </li> <li> <div> GCC, C++14: 5.2.0, 5.3.0, 5.4.1, 6.1.1, 7.0.0 (experimental) </div> </li> <li> <div> Intel: 16.0 </div> </li> <li> <div> Intel, C++11: 16.0 </div> </li> <li> <div> Intel, C++14: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.3.0 </div> </li> <li> <div> G++: 6.1.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Clang: 3.8.1 </div> </li> <li> <div> GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 </div> </li> <li> <div> GCC, cygwin: 5.4.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7, 3.8 </div> </li> <li> <div> GCC: 4.9, 5.4, 6.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang, C++11: 3.4.1, 3.7.0 </div> </li> <li> <div> GCC, C++11: 4.8.5. 5.4.0, 6.1.1 </div> </li> </ul> </div> </li> <li> <div> Haiku: <ul> <li> <div> GCC, C++11: 5.4.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_62_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.61.0http://www.boost.org/users/history/version_1_61_0.htmlhttp://www.boost.org/users/history/version_1_61_0.htmlThu, 12 May 2016 21:58:28 -0500 <div id="version_1_61_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/compute/">Compute</a>:</span> Parallel/GPU-computing library </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/dll/">DLL</a>:</span> Library for comfortable work with DLL and DSO. Library provides a portable across platforms way to: <ul> <li> <div> load libraries </div> </li> <li> <div> import any native functions and variables </div> </li> <li> <div> make alias names for C++ mangled functions and symbols </div> </li> <li> <div> query libraries for sections and exported symbols </div> </li> <li> <div> self loading and self querying </div> </li> <li> <div> getting program and module location by exported symbol </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/hana/">Hana</a>:</span> A modern C++ metaprogramming library. It provides high level algorithms to manipulate heterogeneous sequences, allows writing type-level computations with a natural syntax, provides tools to introspect user-defined types and much more. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/metaparse/">Metaparse</a>:</span> A library for generating compile time parsers parsing embedded DSL code as part of the C++ compilation process. The library is similar to Spirit, however while parsers built with Spirit parse at run-time, parsers built with Metaparse parse at compile-time. </div> </li> </ul> </div> <div id="version_1_61_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> More tests and maintainance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> <code><span class="identifier">small_vector</span></code> supports more constructors and assignments. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11820">Trac #11820 : <em>"compiler error when using operator[] of map"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11856">Trac #11856 : <em>"pool_resource.cpp error: declaration changes meaning"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11866">Trac #11866 : <em>"small_vector does not have range constructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11867">Trac #11867 : <em>"small_vector should have constructor and assignment operator taking other small_vector"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11912">Trac #11912 : <em>"flat_map use of vector::priv_forward_range_insert_expand_backwards may cause move with same source"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11957">Trac #11957 : <em>"static_vector::max_size() is higher than the capacity"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12014">Trac #12014 : <em>"boost::container::set can not insert const (ref) range"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/33">GitHub #33: <em>Make sure std::string constructor is available</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11246">#11246</a> fails to build for mingw because of undefined symbols </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11365">#11365</a> execution_context.hpp gives errors when building with VS2015RC </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11652">#11652</a> checking __cpp_lib_integer_sequence </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11946">#11946</a> crashes on x86_64/MinGW </div> </li> <li> <div> fcontext_t: no longer part of public API </div> </li> <li> <div> support for WinFiber API removed </div> </li> <li> <div> execution_context: relaxed to C++11 </div> </li> <li> <div> execution_context: type-safe transfer of data </div> </li> <li> <div> execution_context: execute function on top of stack </div> </li> <li> <div> execution_context: improved performance </div> </li> <li> <div> execution_context: static member-fn <code><span class="identifier">current</span><span class="special">()</span></code> removed </div> </li> <li> <div> execution_context: new call semantic </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> attribute related to FPU-env removed </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> <ul> <li> <div> attribute related to FPU-env removed </div> </li> <li> <div> improved performance </div> </li> <li> <div> relaxed to C++11 </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Mitigate massive warnings about use of <code><span class="identifier">BOOST_PP_IS_EMPTY</span></code> on MSVC8. <a href="https://svn.boost.org/trac/boost/ticket/11157">#11157</a> </div> </li> <li> <div> Container's conversion ctor and SFINAE. <a href="https://svn.boost.org/trac/boost/ticket/11766">#11766</a> </div> </li> <li> <div> Drop trailing <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">void_</span></code> support from C++11 <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>. <a href="https://github.com/boostorg/fusion/pull/120">pull-request 120</a> </div> </li> <li> <div> Workarounds for GCC 4.0 and 4.1 ICE. <a href="https://svn.boost.org/trac/boost/ticket/5808">#5808</a> <a href="https://svn.boost.org/trac/boost/ticket/7229">#7229</a> </div> </li> <li> <div> Workaround for ambiguous call of <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">convert</span></code> on GCC 3.4. <a href="https://github.com/boostorg/fusion/pull/130">pull-request 130</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality:</em> <ul> <li> <div> Support within and covered_by for Box/Box in spherical and geographic coordinate systems. </div> </li> </ul> </div> </li> <li> <div> <em>Improvements:</em> <ul> <li> <div> Overlay: handle_tangencies replaced by clusters, fixing many cases with colocated turns </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9162">#9162</a> Invalid result of relational operations for non-cartesian Point/Areal. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10866">#10866</a> union_ doesn't work in 1.56 and 1.57. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11018">#11018</a> Invalid geometry intersection </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11576">#11576</a> Intersection gives wrong results. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11637">#11637</a> Unused parameter warning. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11725">#11725</a> union_ fails to create holes </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11789">#11789</a> Assertion failure or invalid result of set operations for spherical_equatorial coordinate system. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11917">#11917</a> Andoyer distance strategy returns 0 for antipodal points (default geographic distance). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11928">#11928</a> Improvement of the accuracy of surveyor area strategy. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11966">#11966</a> Compilation error in svg() for box and non-int coordinate type. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11984">#11984</a> union_() generates self-intersecting polygon </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11987">#11987</a> rtree::remove() not compiling for geographic CS. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12000">#12000</a> Uninitialized reference in (unused) constructor of relate's mask_handler. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/12106">#12106</a> Invalid assertion failure in envelope() for non-cartesian very short segments. </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Fix intersects and disjoint for Segment/Box in cartesian coordinate system when Segment is parallel to Box's face. </div> </li> <li> <div> Fix relation operations for Point/Areal in spherical and geographic coordinate systems for edge cases. </div> </li> <li> <div> Fix intersects and disjoint for Point/Box and Box/Box in spherical and geographic coordinate systems for some cases. </div> </li> <li> <div> Fix within and covered_by for Point/Box in spherical and geographic coordinate systems for some cases. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/23">GitHub Pull #23 (<em>"Fixed case sensetive for linux mingw"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11832">Boost Trac #11832: <em>clang-cl + boost intrusive = miscompile</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11865">Boost Trac #11865: <em>Intrusive list explicit ctor error with Clang 3.6 (C++11/14)</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11992">Boost Trac #11992: <em>Add an overload of insert_check taking a key_type</em></a> </div> </li> <li> <div> <a href="https://github.com/boostorg/intrusive/pull/19">GitHub Pull #19: <em>ebo_functor_holder: compile fix for copy constructor</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed Sun Studio related issues </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_ref</span></code> and its specializations is deprecated; users are encouraged to switch to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_view</span></code>. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_ref</span></code> will be removed in future releases. </div> </li> <li> <div> Added support for limiting the number of stored log files in the target directory of the file collector. Thanks to Erich Keane for the patch. (<a href="https://svn.boost.org/trac/boost/ticket/8746">#8746</a>) </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed various compilation problems for Windows CE. </div> </li> <li> <div> Fixed compilation problems on Solaris. </div> </li> <li> <div> Added a workaround for MSVC-10 generating broken code for formatters in some cases. (<a href="https://svn.boost.org/trac/boost/ticket/12025">#12025</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Polynomial arithmetic added to tools. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Experimental: asymptotically optimal bufferless merge and sort algorithms: adaptive_merge and adaptive_sort. </div> </li> <li> <div> Fixed bug: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11758">Trac #11758: <em>"BOOST_MOVABLE_BUT_NOT_COPYABLE doesn't reset private access with rvalue ref version"</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Fixed bug in stream input for integer types, see <a href="https://svn.boost.org/trac/boost/ticket/11857">#11857</a>. </div> </li> <li> <div> Fixed some ambiguous conversions involving expression templates see <a href="https://svn.boost.org/trac/boost/ticket/11922">#11922</a>. </div> </li> <li> <div> Add expression template aware min/max overloads see <a href="https://svn.boost.org/trac/boost/ticket/11149">#11149</a>. </div> </li> <li> <div> Fix bug in right shifting negative small integers in cpp_int see <a href="https://svn.boost.org/trac/boost/ticket/11999">#11999</a>. </div> </li> <li> <div> Use memmove for bitshifts in cpp_int when possible see <a href="https://svn.boost.org/trac/boost/ticket/9233">#9233</a>. </div> </li> <li> <div> Use memcpy for data import into cpp_int where possible, see <a href="https://svn.boost.org/trac/boost/ticket/9235">#9235</a>. </div> </li> <li> <div> Changed <code><span class="identifier">cpp_bin_float</span><span class="special">.</span><span class="identifier">convert_to</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span></code> to a function template rather than proceding via <code><span class="keyword">long</span> <span class="keyword">double</span></code> to avoid double-rounding bug, see <a href="https://svn.boost.org/trac/boost/ticket/12039">#12039</a>. </div> </li> <li> <div> Fixed conversions from NaN's and Infinities, see <a href="https://svn.boost.org/trac/boost/ticket/12112">#12112</a>. </div> </li> <li> <div> Enabled better support for Clang on Windows. </div> </li> <li> <div> Fixed handling of NaN's and Infinities in basic arithmetic for cpp_dec_float and cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12090">#12090</a>. </div> </li> <li> <div> Fixed fencepost error in cpp_bin_float subtraction. </div> </li> <li> <div> Fixed double-rounding in conversion to float routines for cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12039">#12039</a>. </div> </li> <li> <div> Make float128 denorm aware, see <a href="https://svn.boost.org/trac/boost/ticket/12075">#12075</a>. </div> </li> <li> <div> Allow the library and tests to be used without exception handling support, see <a href="https://svn.boost.org/trac/boost/ticket/12070">#12070</a>. </div> </li> <li> <div> Fixed buggy comparison operator overloads for boost::rational. </div> </li> <li> <div> Added some workarounds for Oracle C++. </div> </li> <li> <div> Fixed some missing typecasts for cases where cpp_int's limb_type is wider than unsigned. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code> is specialized for reference parameters. This addresses a couple of issues: <ul> <li> <div> the <code><span class="keyword">sizeof</span></code> of optional reference is that of a pointer, </div> </li> <li> <div> some bugs connected to copying optional references are gone, </div> </li> <li> <div> all run-time bugs caused by incorrect reference binding on some compilers are now turned into compile-time errors, </div> </li> <li> <div> you can swap optional references: it is like swapping pointers: shalow, underlying objects are not affected, </div> </li> <li> <div> optional references to abstract types work. </div> </li> </ul> </div> </li> <li> <div> Documented nested typedefs (<a href="https://svn.boost.org/trac/boost/ticket/5193">Trac #5193</a>). </div> </li> <li> <div> Made the perfect-forwarding constructor SFINAE-friendly, which fixes <a href="https://svn.boost.org/trac/boost/ticket/12002">Trac #12002</a>. However, this only works in the newer platforms that correctly implement C++11 <code><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>. </div> </li> <li> <div> Fixed <a href="https://svn.boost.org/trac/boost/ticket/10445">Trac #10445</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Change to lockfree implementation of memory cache, see <a href="https://github.com/boostorg/regex/pull/23">PR#23</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.2 see the '<a href="http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/change_log.html">Change log</a>' section for details. </div> </li> <li> <div> New features <ul> <li> <div> dataset driven test-cases learned to support fixtures and variadic number of arguments </div> </li> <li> <div> dataset driven test-cases sample types now honor move semantics </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6767">#6767</a>, <a href="https://svn.boost.org/trac/boost/ticket/8905">#8905</a>, <a href="https://svn.boost.org/trac/boost/ticket/9443">#9443</a>, <a href="https://svn.boost.org/trac/boost/ticket/11854">#11854</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11887">#11887</a>, <a href="https://svn.boost.org/trac/boost/ticket/11889">#11889</a>, <a href="https://svn.boost.org/trac/boost/ticket/11983">#11983</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Maintainance fixes. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_61_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1 </div> </li> <li> <div> Clang, C++14: 3.7.1, 3.8.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.4, 4.8.5, 4.9.3, 5.3.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 5.2.1, 5.3.1 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1, 5.2 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9, 5.3 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.4.1, 3.7 </div> </li> <li> <div> GCC: 4.8.5, 5.3 </div> </li> </ul> </div> </li> <li> <div> Haiku: <ul> <li> <div> GCC, C++11: 4.8.5 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1 </div> </li> <li> <div> Clang, c++14: 3.7.1, 3.8.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.5, 4.9.3, 5.3.0, 5.3.1, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 5.2.1 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 7.0.2 </div> </li> <li> <div> G++: 5.3.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1, 5.2 </div> </li> <li> <div> GCC, cygwin: 5.3.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9, 5.3, 6.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.41, 3.7.0 </div> </li> <li> <div> GCC, C++11: 4.8.5, 5.3.0, 6.0 </div> </li> <li> <div> GCC: 6.0 </div> </li> </ul> </div> </li> <li> <div> Haiku: <ul> <li> <div> GCC, C++11: 4.8.5 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> <li> <div> Oracle Solaris Studio, C++11: 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_61_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.60.0http://www.boost.org/users/history/version_1_60_0.htmlhttp://www.boost.org/users/history/version_1_60_0.htmlThu, 17 Dec 2015 07:52:06 -0800 <div id="version_1_60_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/vmd/">VMD</a>:</span> Variadic Macro Data library, from Edward Diener. </div> </li> </ul> </div> <div id="version_1_60_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> <ul> <li> <div> Enforced proper alignment of <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code> storage. This should fix possible issues on platforms that support atomic operations on data units larger than the native word size. This may also change binary layout of user's data structures that have <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code> members. </div> </li> <li> <div> Fixed compilation for PowerPC with IBM XL C++ compiler. Corrected memory barriers in PowerPC assembler. </div> </li> <li> <div> Fixed compilation with MSVC-8 for ARM. </div> </li> <li> <div> Fixed compilation with gcc 4.4 for x86-64, when 128-bit atomic operations were used. (<a href="https://svn.boost.org/trac/boost/ticket/10994">#10994</a>) </div> </li> <li> <div> Optimized some gcc assembler blocks for x86/x86-64 to reduce the number of used registers. This may require binutils 2.10 or later. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono - 2.0.5</a>:</span> <ul> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10778">#10778</a> VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10840">#10840</a> Missing std:: qualifier for puts call in test_7868.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10851">#10851</a> Missing std:: qualifier for puts call in time_point_output.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10893">#10893</a> Minor doc typo in Boost.Chrono </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10992">#10992</a> Chrono IO state savers inconsistent with Boost.IO state savers </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10995">#10995</a> duration_put::put_value truncates fractional part </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11006">#11006</a> Impossible to instantiate time_fmt_io_saver due to several errors. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11012">#11012</a> chrono_io v2 fail to compile with boost::chrono::duration&lt; boost::rational&lt;int&gt; &gt; </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Implemented <span class="link">Polymorphic Memory Resources</span>. </div> </li> <li> <div> Add more BOOST_ASSERT checks to test preconditions in some operations (like <code><span class="identifier">pop_back</span></code>, <code><span class="identifier">pop_front</span></code>, <code><span class="identifier">back</span></code>, <code><span class="identifier">front</span></code>, etc.) </div> </li> <li> <div> Added C++11 <code><span class="identifier">back</span></code>/<code><span class="identifier">front</span></code> operations to <code>basic_string</code>. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11627">Trac #11627: <em>"small_vector&lt;T,n&gt;::swap() appears to be broken"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11628">Trac #11628: <em>"small_vector&lt;int,n&gt; iterates over elements in destructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11697">Trac #11697: <em>"Wrong initialization order in tuple copy-constructor"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11698">Trac #11698: <em>"Missing return statement in static_storage_allocator"</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/29">GitHub #29: <em>Doc fixes for flap_map complexity requirements</em></a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/31">GitHub #31: <em>DL_SIZE_IMPL also dereference addr</em></a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11603">#11603</a> typo in PPC32/MACH-O asm </div> </li> <li> <div> support for CYGWIN </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/core/">Core</a>:</span> <ul> <li> <div> In symbol demangling tools, added support for gabi++ ABI implementation used in Android NDK. </div> </li> <li> <div> Added a new <code><span class="identifier">enable_if_has_type</span></code> tool for performing SFINAE checks for presence of a nested type. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> <em>New Features:</em> <ul> <li> <div> Added functions <a href="http://www.boost.org/libs/filesystem/doc/reference.html#lex-normal"><code><span class="identifier">lexically_normal</span></code></a>, <a href="http://www.boost.org/libs/filesystem/doc/reference.html#lex-relative"><code><span class="identifier">lexically_relative</span></code></a>, <a href="http://www.boost.org/libs/filesystem/doc/reference.html#op-relative"><code><span class="identifier">relative</span></code></a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#weakly_canonical"><code><span class="identifier">weakly_canonical</span></code></a>. Many thanks to Jamie Allsop for his help and perseverance. Resolves tickets <a href="https://svn.boost.org/trac/boost/ticket/1976">#1976</a>, <a href="https://svn.boost.org/trac/boost/ticket/5897">#5897</a>, <a href="https://svn.boost.org/trac/boost/ticket/6249">#6249</a>. </div> </li> <li> <div> Class <code><span class="identifier">path</span></code> added types <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">reverse_iterator</span></code></a> and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">const_reverse_iterator</span></code></a>, and added functions <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">rbegin</span><span class="special">()</span></code></a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators"><code><span class="identifier">rend</span><span class="special">()</span></code></a>. </div> </li> <li> <div> C++11 <code><span class="keyword">noexcept</span></code> supplied as specified in the Filesystem TS if supported by the compiler. </div> </li> <li> <div> C++11 move constructors and move assignments supplied as specified in the Filesystem TS if supported by the compiler. Resolves <a href="https://svn.boost.org/trac/boost/ticket/10291">#10291</a>. </div> </li> <li> <div> Existing functions whose names changed in the Filesystem TS are now supported under both the old and new names. </div> </li> <li> <div> Added <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-size"><code><span class="identifier">size</span><span class="special">()</span></code></a> function to class <code><span class="identifier">path</span></code>. Resolves <a href="https://svn.boost.org/trac/boost/ticket/6874">#6874</a>, Path should have a <code><span class="identifier">size</span><span class="special">()</span></code> member function. </div> </li> </ul> </div> </li> <li> <div> <em>Tickets:</em> <ul> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11733">#11733</a>, Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp, by apply a patch from Idar Tollefsen. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5706">#5706</a>, unique_path Fails on Windows for Temporary User Profiles, by applying <a href="https://github.com/boostorg/filesystem/pull/15">pull request #15</a> from Sebastian Redl to fix a race condition in <code><span class="identifier">unique_path</span></code>. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/10591">#10591</a>, boost::filesystem does not build on iOS 8, by applying a patch submitted by Daniel Seither. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/9454">#9454</a>, Boost Filesystem [library build] not compiling when BOOST_FILESYSTEM_NO_DEPRECATED is defined, by applying a patch submitted by Makesim. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11447">#11447</a>, <code><span class="identifier">__OpenBSD__</span></code> macro name misspelled, by applying a patch submitted by Jasper Lievisse Adriaanse. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/11288">#11288</a>, A patch to avoid redundant string allocations, by applying a patch submitted by Yevhen Ivannikov. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/11175">#11175</a>, out-of-date documentation causing users to incorrectly expect that the library could be used with exceptions disabled. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/11166">#11166</a>, by mitigating (i.e. reducing the likelihood of) a possible external file system race in <code><span class="identifier">remove</span><span class="special">()</span></code>. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a>, <code><span class="identifier">create_directories</span></code> returns false if the path ends with a slash. Also fix related issues if path contains dot or dot-dot elements, and added test cases to the test suite. </div> </li> <li> <div> Resolve <a href="https://svn.boost.org/trac/boost/ticket/10766">#10766</a>, <code><span class="identifier">parent_path</span><span class="special">()</span></code> with redundant separator returns wrong value, by adding examples and notes to the reference documentation to show why the returned value is in fact correct, and to provide rationale for that behavior. See <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators">path.itr</a>, and <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-decomposition">path.decompose</a> <code><span class="identifier">parent_path</span><span class="special">()</span></code> and <code><span class="identifier">filename</span><span class="special">()</span></code> sections of the reference docs. </div> </li> <li> <div> Close <a href="https://svn.boost.org/trac/boost/ticket/7607">#7607</a>, path should not infer an invisible "." at the end of a path that ends with a slash, as resolved by <a href="https://svn.boost.org/trac/boost/ticket/7258">#7258</a> and <a href="https://svn.boost.org/trac/boost/ticket/10766">#10766</a>. </div> </li> <li> <div> Close <a href="https://svn.boost.org/trac/boost/ticket/11061">#11061</a>, <a href="https://svn.boost.org/trac/boost/ticket/11062">#11062</a>, Impossible to traverse the path of the reverse iterator, as effectively resolved by the addition of the class <code><span class="identifier">path</span></code> reverse iteration feature. The reference documentation has also been updated with a <a href="http://www.boost.org/libs/filesystem/doc/reference.html#path-iterators">note</a> warning about the limitations of class <code><span class="identifier">path</span></code> iterators. </div> </li> </ul> </div> </li> <li> <div> <em>Other fixes:</em> <ul> <li> <div> Clear several spurious GCC warnings. </div> </li> <li> <div> Fix bug in <code><span class="identifier">file_status</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code>: C++ turns an explicit constructor with all arguments except first defaulted into non-explicit single argument constructor. </div> </li> <li> <div> Apply Reference docs editorial cleanups: Use same style sheet as the rest of the documentation. Tweak tab font size. Fix excessively long lines in tables, synopsis. </div> </li> <li> <div> Minor fixes, including pull requests from Jonathan Wakely and Marcel Raad. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> All of fusion containers and generators now support C++11 variadic templates. (<a href="https://github.com/boostorg/fusion/pull/89">pull-request 89</a>, <a href="https://github.com/boostorg/fusion/pull/97">pull-request 97</a>, <a href="https://github.com/boostorg/fusion/pull/100">pull-request 100</a>) <ul> <li> <div> <strong>Special notice for <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code></strong> <ul> <li> <div> Due to implementation limitation, numbered form (i.e. <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vectorN</span></code>) is provided via C++11 aliasing templates and deprecated in C++11 or later. In this case, you should check <code><span class="identifier">BOOST_FUSION_HAS_VARIADIC_VECTOR</span></code> macro and switch usage because some partial specialization would become compile error (e.g. <a href="https://github.com/boostorg/spirit/pull/158/files#diff-250ce096dee927d2b7eb5a4e24afb8cd">pull-request for Spirit</a>). </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">nview</span></code> now support C++11 variadic templates. (<a href="https://github.com/boostorg/fusion/pull/90">pull-request 90</a>) </div> </li> <li> <div> <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">fold</span></code> is now SFINAE-friendly. (<a href="https://github.com/boostorg/fusion/pull/102">pull-request 102</a>) </div> </li> <li> <div> <em>Bug fixes:</em> <ul> <li> <div> The generic fusion sequence convert to a deque fails with a compiler error. (<a href="https://svn.boost.org/trac/boost/ticket/11572">#11572</a>) </div> </li> <li> <div> (doc) Return type of functions incorrect. (<a href="https://svn.boost.org/trac/boost/ticket/3358">#3358</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10803">#10803</a> Union algorithm returning invalid geometry </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11522">#11522</a> Namespace clash in buffer for traits::detail </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11533">#11533</a> Assert failure in rtree caused by a bug in remove() if min elements number is 1 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11607">#11607</a> Private geometry::exception::what() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11709">#11709</a> is_simple segfault </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11710">#11710</a> is_simple - empty geometry logic </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11711">#11711</a> is_simple and is_valid - Points that are NaN or Infinity </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Fix colocations of touching interior ring / exterior ring, where it also touches another polygon </div> </li> <li> <div> Fix removing values from an empty rtree - no effect and 0 returned instead of assertion failure </div> </li> <li> <div> Fix segfault in centroid for multi geometries containing empty single geometries (thanks to Jiri Drbalek) </div> </li> <li> <div> Fix liang_barsky strategy for integral coordinates (thanks to Dane Springmeyer) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Improved <code>offset_ptr</code> performance and removed any undefined behaviour. No special cases needed for different compilers. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11699">Trac #11699 (<em>"Forward declarations of std templates causes stack corruption under Visual Studio 2015"</em>)</a>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> <span class="link">Advanced lookup and insertions</span> in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as <code><span class="identifier">key_compare</span></code>, the container must be partitioned in regards to the passed comparison object. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11701">Boost Trac #11701: <em>Regression in boost::intrusive::set::equal_range</em></a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11765">Boost Trac #11765: <em>sgtree.hpp:830: bad if test ?</em></a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed usage of <code><span class="identifier">lexical_cast</span></code> with move only types <a href="https://svn.boost.org/trac/boost/ticket/11570">#11570</a> </div> </li> <li> <div> Fixed crash when <code><span class="identifier">BOOST_LCAST_NO_COMPILE_TIME_PRECISION</span></code> is defined <a href="https://svn.boost.org/trac/boost/ticket/11669">#11669</a> </div> </li> <li> <div> Suppress some of the warning reported in <a href="https://svn.boost.org/trac/boost/ticket/11570">#11570</a> and <a href="https://svn.boost.org/trac/boost/ticket/4946">#4946</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/locale">Locale</a>:</span> <ul> <li> <div> Implemented generic codecvt facet and add general purpose utf8_codecvt facet </div> </li> <li> <div> Added posix locale support for FreeBSD 10.0 and above </div> </li> <li> <div> Fixed issues <a href="https://svn.boost.org/trac/boost/ticket/10017">#10017</a> (sun redefinition on SunOS), <a href="https://svn.boost.org/trac/boost/ticket/11163">#11163</a> (set_default_messages_domain incorrect behavior), <a href="https://svn.boost.org/trac/boost/ticket/11673">#11673</a> build issues </div> </li> <li> <div> Some warning cleanup </div> </li> <li> <div> Fixed tests for latest ICU versions </div> </li> <li> <div> Added workaround for <code><span class="identifier">libc</span><span class="special">++</span></code> issues </div> </li> <li> <div> Added new defines <code><span class="identifier">BOOST_LOCALE_ENABLE_CHAR16_T</span></code> and <code><span class="identifier">BOOST_LOCALE_ENABLE_CHAR32_T</span></code> to enable C++11 <code><span class="keyword">char16_t</span></code> and <code><span class="keyword">char32_t</span></code> instead of deprecated ones </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> On Windows, the configuration macro <code><span class="identifier">BOOST_LOG_USE_WINNT6_API</span></code> is no longer used by the library. The target Windows version should be configured by defining macro <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed compilation for Android using Google NDK. (<a href="https://svn.boost.org/trac/boost/ticket/11559">#11559</a>) </div> </li> <li> <div> Fixed compilation of some logging statements, where the first object to be put into stream is not directly supported by <code><span class="identifier">formatting_ostream</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11549">#11549</a>) </div> </li> <li> <div> Added a workaround for Solaris Studio 12.4, which should fix the compilation of <code><span class="identifier">formatting_ostream</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11545">#11545</a>) </div> </li> <li> <div> Fixed compilation when native <code><span class="keyword">wchar_t</span></code> type is disabled. (<a href="https://svn.boost.org/trac/boost/ticket/11541">#11541</a>) </div> </li> <li> <div> Fixed exporting symbols from the <code><span class="identifier">boost_log_setup</span></code> library on POSIX-like systems. </div> </li> <li> <div> Fixed compilation of character decorators. </div> </li> <li> <div> Added a workaround for incorrect file name generation in text file sink backend, when the file name contains date/time placeholders. (<a href="https://svn.boost.org/trac/boost/ticket/11691">#11691</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/11615">Trac #11615: <em>"Boost.Move should use the qualified name for std::size_t in type_traits.hpp"</em></a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Fixed an interoperability problem with <a href="http://www.qt.io/">Qt</a> due to the optional definition of a macro with name <code><span class="identifier">foreach</span></code> in this framework. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/numeric/odeint">odeint</a>:</span> <ul> <li> <div> New features: <ul> <li> <div> Added functionality to throw an exception if too many ODE steps are performed. </div> </li> <li> <div> Added possibility to limit maximal step size in adaptive methods. </div> </li> </ul> </div> </li> <li> <div> several Bug fixes, see https://github.com/headmyshoulder/odeint-v2/issues </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Changed the implementation of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> again. Now it is a const object with internal linkage (as any other tag). This fixes <a href="https://svn.boost.org/trac/boost/ticket/11203">#11203</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Add detection of SIMD hardware. </div> </li> <li> <div> See <a href="http://www.boost.org/libs/predef/doc/html/predef/history.html#predef.history.1_4">history</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Test</a>:</span> <ul> <li> <div> Boost.test v3.1 see the '<a href="http://www.boost.org/doc/libs/1_60_0/libs/test/doc/html/boost_test/change_log.html">Change log</a>' section for details. </div> </li> <li> <div> New features <ul> <li> <div> Improved Command Line Interface </div> </li> <li> <div> Improved dataset API </div> </li> </ul> </div> </li> <li> <div> Bug fixes <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3384">#3384</a>, <a href="https://svn.boost.org/trac/boost/ticket/3897">#3897</a>, <a href="https://svn.boost.org/trac/boost/ticket/6032">#6032</a>, <a href="https://svn.boost.org/trac/boost/ticket/6859">#6859</a>, <a href="https://svn.boost.org/trac/boost/ticket/7257">#7257</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9228">#9228</a>, <a href="https://svn.boost.org/trac/boost/ticket/10317">#10317</a>, <a href="https://svn.boost.org/trac/boost/ticket/11279">#11279</a>, <a href="https://svn.boost.org/trac/boost/ticket/11478">#11478</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11571">#11571</a>, <a href="https://svn.boost.org/trac/boost/ticket/11623">#11623</a>, <a href="https://svn.boost.org/trac/boost/ticket/11624">#11624</a>, <a href="https://svn.boost.org/trac/boost/ticket/11625">#11625</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/">Thread - 4.6.0</a>:</span> <em>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11231">#11231</a> Allow to set continuation future's destructor behavior to non-blocking </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11424">#11424</a> Provide shared_timed_mutex as an alternative name for shared_mutex and deprecate the use of shared_mutex as a timed mutex </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11734">#11734</a> future::then(Cont) should be able to execute the contination on undetermined thread </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11736">#11736</a> Allow to use launch::executor on future::then(launch::executor, cont) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11737">#11737</a> Add a launch::inherit policy that can be used on ::then() to use the policy of the parent future <em>Fixed Bugs:</em> </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3926">#3926</a> thread_specific_ptr + dlopen library causes a SIGSEGV. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6377">#6377</a> Condition variable blocks when changing time </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6787">#6787</a> boost::thread::sleep() hangs if system time is rolled back </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7665">#7665</a> this_thread::sleep_for no longer uses steady_clock in thread </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7720">#7720</a> exception lock_error while intensive locking/unlocking of mutex </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9309">#9309</a> test_latch fails often on clang-darwin-tot11 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10788">#10788</a> GetLogicalProcessor isn't available for Windows platform less or equals to 0x0502 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11090">#11090</a> ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11158">#11158</a> Pthread thread deadlock when faketime used </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11174">#11174</a> boost::condition_variable::timed_wait with predicate unexpectedly wakes up while should wait infinite </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11185">#11185</a> Incorrect URL redirection </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11192">#11192</a> boost::future&lt;&gt;::then() with an executor doesn't compile when the callback returns a future </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11250">#11250</a> future made from make_exceptional fails on assertion in destructor </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11256">#11256</a> future&lt;&gt;::is_ready() == false in continuation function </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11261">#11261</a> bad use of scoped threads in basic_thread_pool </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11262">#11262</a> bad use of direct pointer in shared_state_nullary_task </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11263">#11263</a> lock already locked lock </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11266">#11266</a> boost::packaged_task has invalid variadic signature </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11302">#11302</a> boost thread doesn't build with BOOST_THREAD_PATCH. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11322">#11322</a> sleep_for() nanoseconds overload will always return too early on windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11329">#11329</a> using declarative for GetProcessHeap, .... fails </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11368">#11368</a> boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11377">#11377</a> Boost condition variable always waits for system clock deadline </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11435">#11435</a> gcc compiler warning in future.hpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11555">#11555</a> devector.hpp assumes allocator_traits_type is always present </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11562">#11562</a> Timer (using steady_clock) expires after computer time is set forward on Ubuntu 64-bit </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11672">#11672</a> Thread: Should use unique_ptr, not auto_ptr </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11688">#11688</a> thread::try_join_until: Avoid busy wait if system clock changes </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11672">#11716</a> ::then(f) should inherit the parent Executor </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/uuid/">UUID</a>:</span> <ul> <li> <div> Added a workaround for MSVC codegen bug that could cause crashes when comparing UUIDs. </div> </li> <li> <div> Added detection of AVX being enabled with MSVC compiler switches. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_60_0.news"> <h3><span class="link">News</span></h3> <div id="version_1_60_0.news.notes_for_windows_users"> <h3><span class="link">Notes for Windows users</span></h3> <p> This release of Boost will by default compile for Windows Vista/Windows Server 2008, if the compiler supports a recent enough Windows SDK, and for Windows XP otherwise. Binaries compiled with default options may not run on the older Windows versions. </p> <p> It is still possible to explicitly specify target Windows version by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code> to a numeric version of Windows API. For example, building Boost for Windows XP can be done with the following command: </p> <pre> b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 </pre> <p> The list of Windows API version numbers can be seen on <a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx">this</a> page. </p> <p> This change only concerns libraries that use the common Windows API abstraction layer. Currently, these libraries are: Boost.Chrono, Boost.Dll, Boost.Log, Boost.UUID. This will also affect all dependent libraries. </p> </div> <div id="version_1_60_0.news.release_of_hana_postponed"> <h3><span class="link">Release of Hana postponed</span></h3> <p> Due to time constraints, the release of <a href="https://github.com/boostorg/hana">Hana</a> will be postponed to a later release of Boost. This will also allow some known issues to be addressed properly before releasing the library officially as a part of Boost. More information can be found on the <a href="http://article.gmane.org/gmane.comp.lib.boost.devel/263964">mailing list</a>. </p> </div> <div id="version_1_60_0.news.release_of_boost_dll_library_pos"> <h3><span class="link">Release of Boost.DLL library postponed</span></h3> <p> In order to provide superior support of uncommon toolsets and platforms, the release of Boost.DLL was postponed to a later release of Boost. This also allows to test better a recently added ability to copy construct and copy assign instances of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code> and provide examples on importing functions with non default calling conventions. Latest version and developer documentation of the library could be found at <a href="https://github.com/boostorg/dll">GitHub repo</a>. </p> </div> </div> <div id="version_1_60_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4, 3.6 </div> </li> <li> <div> Clang, C++14: 3.7 </div> </li> <li> <div> GCC: 4.4.7, 4.8.4, 4.9.3, 5.1.0, 5.2.1 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9.0, 5.2.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4.2, 3.6.0, 3.8.0 </div> </li> <li> <div> Clang, C++14: 3.7.0 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.9.3, 5.1.0, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.2.1 </div> </li> <li> <div> IBM XL C++: 13.1.2.0 </div> </li> <li> <div> Intel: 16.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: 7.0.0 </div> </li> <li> <div> GCC: 5.2.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, C++03, mingw: 3.4.5 </div> </li> <li> <div> GCC, C++11, mingw: 4.7.3, 4.8.1 </div> </li> <li> <div> GCC, C++14, mingw: 4.9.3, 5.1.0 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.9.0, 5.2.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang, C++11: 3.4.1, 3.7.0 </div> </li> <li> <div> GCC, C++11: 4.8.5, 5.2.0, 6.0.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Oracle Solaris Studio: 12.4, 12.5 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_60_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.59.0http://www.boost.org/users/history/version_1_59_0.htmlhttp://www.boost.org/users/history/version_1_59_0.htmlThu, 13 Aug 2015 08:23:03 -0700 <div id="version_1_59_0.known_issue"> <h3><span class="link">Known Issue</span></h3> <ul> <li> <div> Boost.Log contains has a regression that prevents some of the logging statements from compiling (<a href="https://svn.boost.org/trac/boost/ticket/11549">#11549</a>). This is fixed in <a href="https://github.com/boostorg/log/commit/7da193fde1a9c1bc925ee980339f4df2e1a66fa7">git</a>. </div> </li> </ul> </div> <div id="version_1_59_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/convert/">Convert</a>:</span> An extendible and configurable type-conversion framework, from Vladimir Batov. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine2/">Coroutine2</a>:</span> (C++14) Coroutine library, from Oliver Kowalke. </div> </li> </ul> </div> <div id="version_1_59_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> <a href="https://github.com/boostorg/container/pull/26">GitHub #26: <em>Fix bug in stable_vector::capacity()</em></a>. Thanks to timsong-cpp/Arindam Mukerjee. </div> </li> <li> <div> <a href="https://github.com/boostorg/container/pull/27">GitHub #27: <em>fix stable_vector's index_of's doxygen comment</em></a>. Thanks to kariya-mitsuru. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11380">Trac #11380: <em>&quot;Container library std forward declarations incorrect in std_fwd.hpp on libc++ with gcc&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11388">Trac #11388: <em>&quot;boost::container::list::emplace_back broken on Visual Studio 2010&quot;</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11339">Trac #11339: <em>&quot;VC12 LNK2005 error with boost::container::adaptive_pool&quot;</em></a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/context/">Context</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11223">#11223</a> check support for std::integer_sequence </div> </li> <li> <div> execution_context uses internally Windows Fibers with BOOST_USE_WINFIBERS </div> </li> <li> <div> support of assember for MinGW on Windows (32bit) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10978">#10978</a> remove additional semicolons </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11230">#11230</a> coroutine_error returns dangling exception message pointer </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11234">#11234</a> doesn't compile when used with boost::range::algorithms </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11356">#11356</a> coroutines segfaults with BOOST_USE_SEGMENTED_STACKS </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/">Fusion</a>:</span> <ul> <li> <div> Add a new concept, <code><span class="identifier">Unbounded</span> <span class="identifier">Sequence</span></code> for sequence and <code><span class="identifier">Unbounded</span> <span class="identifier">Iterator</span></code> for iterator. Currently, <code><span class="identifier">Unbounded</span> <span class="identifier">Sequence</span></code> affects the behaviour of <code><span class="identifier">fusion</span><span class="special">::(</span><span class="identifier">value_</span><span class="special">)</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">_c</span><span class="special">)</span></code> and <code><span class="identifier">fusion</span><span class="special">::(</span><span class="identifier">value_</span><span class="special">)</span><span class="identifier">at_key</span></code>. <code><span class="identifier">Unbounded</span> <span class="identifier">Iterator</span></code> has no effect (reserved for future release). For more details, see <a href="http://www.boost.org/users/history/libs/fusion/doc/html/fusion/sequence/concepts/unbounded_sequence.html">Unbounded Sequence</a> and <a href="http://www.boost.org/libs/fusion/doc/html/fusion/iterator/concepts/unbounded_iterator.html">Unbounded Iterator</a>. (<a href="https://github.com/boostorg/fusion/pull/85">pull-request 85</a>) </div> </li> <li> <div> Support C++11 variadic templates for <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">list</span></code>. (<a href="https://github.com/boostorg/fusion/pull/84">pull-request 84</a>) </div> </li> <li> <div> <em>Fixed bugs:</em> <ul> <li> <div> Fix missing include <code><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/11161">#11161</a>) </div> </li> <li> <div> Revert some constexpr support, regression in 1.58.0. (<a href="https://svn.boost.org/trac/boost/ticket/11211">#11211</a>, <a href="https://svn.boost.org/trac/boost/ticket/11267">#11267</a>) </div> </li> <li> <div> Fix compile error with fold due to missing include. (<a href="https://svn.boost.org/trac/boost/ticket/11249">#11249</a>) </div> </li> <li> <div> Fix compile error with adapting an empty struct, regression in 1.58.0. (<a href="https://svn.boost.org/trac/boost/ticket/11269">#11269</a>) </div> </li> <li> <div> Remove use of obsolete (and incorrect) workaround for sequence comparison, it affects MSVC-8 and earlier. (<a href="https://github.com/boostorg/fusion/pull/78">pull-request 78</a>) </div> </li> <li> <div> Fix compile error while copying a sequece which derived from fusion::list, regression in 1.58.0. (<a href="https://github.com/boostorg/fusion/pull/87">pull-request 87</a>) </div> </li> <li> <div> Fix compile error on copying a fusion::tuple. (<a href="https://svn.boost.org/trac/boost/ticket/11140">#11140</a>) </div> </li> <li> <div> Add workarounds for GCC 4.6 with constexpr. (<a href="https://svn.boost.org/trac/boost/ticket/11517">#11517</a>) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality:</em> <ul> <li> <div> Added rtree const_iterator, begin(), end() and the support for Boost.Range. </div> </li> <li> <div> The support for C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> in geometries models. </div> </li> <li> <div> Disjoint and intersects support the following geometry combinations: multipoint/linestring, multipoint/multilinestring. </div> </li> <li> <div> Added relate() and relation() algorithms. </div> </li> <li> <div> Intersection has been implemented for combinations of pointlike and linear geometries </div> </li> <li> <div> Added implementation for difference(pointlike, linear) </div> </li> <li> <div> New algorithm is_empty, returning true if the geometry represents the empty set </div> </li> <li> <div> The envelope algorithm supports pointlike and linear geometries in the spherical equatorial coordinate system </div> </li> <li> <div> The envelope algorithm supports pointlike geometries in the geographic coordinate system </div> </li> </ul> </div> </li> <li> <div> <em>Improvements:</em> <ul> <li> <div> Upgraded rtree const_query_iterator category to ForwardIterator. </div> </li> <li> <div> Buffer performance of buffers around multi-points is improved significantly </div> </li> </ul> </div> </li> <li> <div> <em>Breaking changes:</em> <ul> <li> <div> buffer side strategy now returns error_code instead of bool. If you have your own custom side strategy, it should be adapted </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11113">#11113</a> Support easy enumeration of all elements with BOOST_FOREACH </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11232">#11232</a> Feature request - relate() </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11236">#11236</a> Invalid result of centroid() for integer coordinate type </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11268">#11268</a> Regression in boost::geometry::intersection interface with multi_linestring and box -- does not compile on 1.57 VS 1.55 </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11332">#11332</a> Assertion failure in buffer for extreme coordinate differences </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11346">#11346</a> Segment iterator does not work with ranges returning values instead of references </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11436">#11436</a> sym_difference(py1, py2, mpy) returns invalid multipolygon </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes:</em> <ul> <li> <div> Buffer: use a more robust way to calculate the side of an intersection, this fixes several errors in buffer generation </div> </li> <li> <div> Fix in selection of segment to which calculate from IP from, in intersection of two segments. Now is selected the one close to a segment-point point, or else the one on the shortest segment. This avoids (rarely occuring) generation of tiny triangles making output polygons invalid </div> </li> <li> <div> In rescaling round instead of truncate to the integer grid (this fix and the previous mentioned can have some impact on output geometries) </div> </li> <li> <div> Fix potential infinite loop in detail::has_spikes (the loop can happen if the points passed have NaN coordinates) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5139">( Trac #5139 ( (<em>&quot;Initial Stream Position in Boost.Interprocess.Vectorstream&quot;</em>)</a>. </div> </li> <li> <div> <a href="https://github.com/boostorg/interprocess/pull/19">GitHub Pull #19 (<em>&quot;Fix exception visibility&quot;</em>)</a>. Thanks to Romain-Geissler. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Implemented <span class="link">map and multimap-like interfaces</span>. </div> </li> <li> <div> Refactored hashtable containers to reduce template instantiations. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lexical_cast/">Lexical Cast</a>:</span> <ul> <li> <div> Fixed warnings </div> </li> <li> <div> Simplified metaprogramming (thanks to Edward Diener) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> General changes: <ul> <li> <div> On systems with <a href="https://gcc.gnu.org/wiki/Visibility">symbol visibility</a> support (e.g. Linux) the library is now built with all internal symbols hidden. </div> </li> <li> <div> <strong>Breaking change:</strong> The library has been ported to Boost.TypeIndex for its underlying type info management tool. This affected the following public interfaces: <ul> <li> <div> <code><span class="identifier">invalid_type</span></code> exceptions thrown by the library now have <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> attached as the description of the offending type. The type was previously identified by <code><span class="identifier">type_info_wrapper</span></code>. </div> </li> <li> <div> Boost.Exception <code><span class="identifier">type_info_info</span></code> error information now contains <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> instead of <code><span class="identifier">type_info_wrapper</span></code>. </div> </li> <li> <div> <code><span class="identifier">attribute_value</span><span class="special">::</span><span class="identifier">get_type</span><span class="special">()</span></code> now returns <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code> instead of <code><span class="identifier">type_info_wrapper</span></code>. User-defined attribute value implementations should be similarly changed (the <code><span class="identifier">attribute_value</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">get_type</span><span class="special">()</span></code> virtual method now also returns <code><span class="identifier">typeindex</span><span class="special">::</span><span class="identifier">type_index</span></code>). </div> </li> </ul> </div> </li> <li> <div> <code><span class="identifier">type_info_wrapper</span></code> component has been deprecated and will be removed in future releases. Boost.TypeIndex is recommended as a replacement. </div> </li> <li> <div> Removed the previously deprecated headers: <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">intrusive_ref_counter</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">explicit_operator_bool</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">log</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">empty_deleter</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> <li> <div> Added support for building the library for OpenBSD. (<a href="https://svn.boost.org/trac/boost/ticket/11446">#11446</a>) </div> </li> <li> <div> Improved internal implementation of the event synchronization primitive used for asynchronous logging. (<a href="https://svn.boost.org/trac/boost/ticket/11398">#11398</a>) </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> Fixed incorrect behavior of <code><span class="identifier">attribute_value_set</span><span class="special">::</span><span class="identifier">insert</span><span class="special">()</span></code> and <code><span class="identifier">attribute_value_set</span></code> constructor in some cases. (<a href="https://svn.boost.org/trac/boost/ticket/11190">#11190</a>) </div> </li> </ul> </div> </li> <li> <div> See <a href="http://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/move/">Move</a>:</span> <ul> <li> <div> Changed <code><span class="identifier">unique_ptr</span></code>'s converting constructor taking the source by value in C++03 compilers to allow simple conversions from convertible types returned by value. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11229">Trac #11229: <em>&quot;vector incorrectly copies move-only objects using memcpy&quot;</em></a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Added <a href="http://www.boost.org/libs/multi_index/doc/tutorial/indices.html#rnk_indices">ranked indices</a>. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Fix many problems with <code><span class="identifier">predef_check</span></code> functionality. </div> </li> <li> <div> Update SunPro detection to accomodate latest version of compiler from Oracle. </div> </li> <li> <div> Add <code><span class="keyword">and</span></code> and <code><span class="keyword">or</span></code> logical operators for <code><span class="identifier">predef_check</span></code> expression on the Boost Build side. </div> </li> <li> <div> Fix <code><span class="identifier">BOOST_ARCH_PARISC</span></code> to correctly spelled name. </div> </li> <li> <div> Fix <code><span class="identifier">MAKE_YYYYM</span></code> macros to correctly limit the month. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Fix compilation errors, missing dllexport and warnings with MSVC and MinGW (Daniela Engert, Marcel Raad). </div> </li> <li> <div> Fix unintialized fields (Zoey Greer). </div> </li> <li> <div> Stop options with implicit value from consuming separate tokens (Michael John Decker). </div> </li> <li> <div> Make multitoken limit be max int, not 32K (Hans Hohenfeld). </div> </li> <li> <div> Code formatting and documentation fixes (Jurko Gospodnetić, Lauri Nurmi). </div> </li> <li> <div> Minimal support for no-rtti build (Minmin Gong) </div> </li> <li> <div> Don't increment environment pointer past the end (Vladimir Prus) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/property_tree/">Property Tree</a>:</span> <ul> <li> <div> A new JSON parser with full Unicode support. </div> </li> <li> <div> <strong>Breaking change:</strong> The new parser does not support comments or string concatenation in JSON files. These features were non-standard extensions of the old parser but their removal could break code which was relying on them. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/test/">Boost.Test v3</a>:</span> <ul> <li> <div> Major new features <ul> <li> <div> <code><span class="identifier">BOOST_TEST</span></code> generic assertion </div> </li> <li> <div> data driven test cases </div> </li> <li> <div> test units can now have <em>attributes</em> for finer control over tests behavior (logical grouping, test dependencies, test enabling/disabling) </div> </li> <li> <div> CLI learned <code><span class="identifier">colour_output</span></code> and <code><span class="identifier">list_content</span></code>, extended unit test filtering (negation, labels) </div> </li> <li> <div> refactored and rewritten documentation using quickbook </div> </li> </ul> </div> </li> <li> <div> Addressed issues: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2018">#2018</a> <a href="https://svn.boost.org/trac/boost/ticket/2450">#2450</a> <a href="https://svn.boost.org/trac/boost/ticket/2600">#2600</a> <a href="https://svn.boost.org/trac/boost/ticket/2717">#2717</a> <a href="https://svn.boost.org/trac/boost/ticket/2759">#2759</a> <a href="https://svn.boost.org/trac/boost/ticket/3182">#3182</a> <a href="https://svn.boost.org/trac/boost/ticket/3316">#3316</a> <a href="https://svn.boost.org/trac/boost/ticket/3392">#3392</a> <a href="https://svn.boost.org/trac/boost/ticket/3402">#3402</a> <a href="https://svn.boost.org/trac/boost/ticket/3445">#3445</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3463">#3463</a> <a href="https://svn.boost.org/trac/boost/ticket/3542">#3542</a> <a href="https://svn.boost.org/trac/boost/ticket/3481">#3481</a> <a href="https://svn.boost.org/trac/boost/ticket/3495">#3495</a> <a href="https://svn.boost.org/trac/boost/ticket/3592">#3592</a> <a href="https://svn.boost.org/trac/boost/ticket/3595">#3595</a> <a href="https://svn.boost.org/trac/boost/ticket/3623">#3623</a> <a href="https://svn.boost.org/trac/boost/ticket/3664">#3664</a> <a href="https://svn.boost.org/trac/boost/ticket/3784">#3784</a> <a href="https://svn.boost.org/trac/boost/ticket/3785">#3785</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3811">#3811</a> <a href="https://svn.boost.org/trac/boost/ticket/3834">#3834</a> <a href="https://svn.boost.org/trac/boost/ticket/3896">#3896</a> <a href="https://svn.boost.org/trac/boost/ticket/3932">#3932</a> <a href="https://svn.boost.org/trac/boost/ticket/3938">#3938</a> <a href="https://svn.boost.org/trac/boost/ticket/3964">#3964</a> <a href="https://svn.boost.org/trac/boost/ticket/3978">#3978</a> <a href="https://svn.boost.org/trac/boost/ticket/3979">#3979</a> <a href="https://svn.boost.org/trac/boost/ticket/4161">#4161</a> <a href="https://svn.boost.org/trac/boost/ticket/4275">#4275</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4389">#4389</a> <a href="https://svn.boost.org/trac/boost/ticket/4434">#4434</a> <a href="https://svn.boost.org/trac/boost/ticket/4587">#4587</a> <a href="https://svn.boost.org/trac/boost/ticket/4806">#4806</a> <a href="https://svn.boost.org/trac/boost/ticket/4911">#4911</a> <a href="https://svn.boost.org/trac/boost/ticket/4923">#4923</a> <a href="https://svn.boost.org/trac/boost/ticket/4924">#4924</a> <a href="https://svn.boost.org/trac/boost/ticket/4982">#4982</a> <a href="https://svn.boost.org/trac/boost/ticket/5008">#5008</a> <a href="https://svn.boost.org/trac/boost/ticket/5036">#5036</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5262">#5262</a> <a href="https://svn.boost.org/trac/boost/ticket/5374">#5374</a> <a href="https://svn.boost.org/trac/boost/ticket/5412">#5412</a> <a href="https://svn.boost.org/trac/boost/ticket/5563">#5563</a> <a href="https://svn.boost.org/trac/boost/ticket/5582">#5582</a> <a href="https://svn.boost.org/trac/boost/ticket/5599">#5599</a> <a href="https://svn.boost.org/trac/boost/ticket/5718">#5718</a> <a href="https://svn.boost.org/trac/boost/ticket/5729">#5729</a> <a href="https://svn.boost.org/trac/boost/ticket/5870">#5870</a> <a href="https://svn.boost.org/trac/boost/ticket/5972">#5972</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6002">#6002</a> <a href="https://svn.boost.org/trac/boost/ticket/6071">#6071</a> <a href="https://svn.boost.org/trac/boost/ticket/6074">#6074</a> <a href="https://svn.boost.org/trac/boost/ticket/6161">#6161</a> <a href="https://svn.boost.org/trac/boost/ticket/6766">#6766</a> <a href="https://svn.boost.org/trac/boost/ticket/6712">#6712</a> <a href="https://svn.boost.org/trac/boost/ticket/6748">#6748</a> <a href="https://svn.boost.org/trac/boost/ticket/7046">#7046</a> <a href="https://svn.boost.org/trac/boost/ticket/7136">#7136</a> <a href="https://svn.boost.org/trac/boost/ticket/7410">#7410</a> <a href="https://svn.boost.org/trac/boost/ticket/7894">#7894</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8201">#8201</a> <a href="https://svn.boost.org/trac/boost/ticket/8272">#8272</a> <a href="https://svn.boost.org/trac/boost/ticket/8467">#8467</a> <a href="https://svn.boost.org/trac/boost/ticket/8862">#8862</a> <a href="https://svn.boost.org/trac/boost/ticket/8895">#8895</a> <a href="https://svn.boost.org/trac/boost/ticket/9179">#9179</a> <a href="https://svn.boost.org/trac/boost/ticket/9272">#9272</a> <a href="https://svn.boost.org/trac/boost/ticket/9390">#9390</a> <a href="https://svn.boost.org/trac/boost/ticket/9409">#9409</a> <a href="https://svn.boost.org/trac/boost/ticket/9537">#9537</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9539">#9539</a> <a href="https://svn.boost.org/trac/boost/ticket/9581">#9581</a> <a href="https://svn.boost.org/trac/boost/ticket/9960">#9960</a> <a href="https://svn.boost.org/trac/boost/ticket/10318">#10318</a> <a href="https://svn.boost.org/trac/boost/ticket/10394">#10394</a> <a href="https://svn.boost.org/trac/boost/ticket/10888">#10888</a> <a href="https://svn.boost.org/trac/boost/ticket/11054">#11054</a> <a href="https://svn.boost.org/trac/boost/ticket/11347">#11347</a> <a href="https://svn.boost.org/trac/boost/ticket/11358">#11358</a> <a href="https://svn.boost.org/trac/boost/ticket/11359">#11359</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Removed dependencies on some of the Boost libraries to improve compilation times and modularity </div> </li> <li> <div> Warnings fixed in tests and other maintainance improvements were done. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Fixed missing include in element_index.hpp <a href="https://svn.boost.org/trac/boost/ticket/11196">#11196</a>, <a href="https://svn.boost.org/trac/boost/ticket/11283">#11283</a> </div> </li> <li> <div> Fixed <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> usage with C++14 and const references <a href="https://svn.boost.org/trac/boost/ticket/11251">#11251</a>, <a href="https://svn.boost.org/trac/boost/ticket/11285">#11285</a> </div> </li> <li> <div> Relaxed compile time checks for all the <code><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">reference</span><span class="special">&gt;(</span><span class="identifier">variant_variable</span><span class="special">)</span></code> functions (thanks to Nicolas Cornu) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_59_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4 </div> </li> <li> <div> Clang, C++14: 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.8.2, 4.9.3 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3 </div> </li> <li> <div> Intel: 15.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> SunOS: <ul> <li> <div> Sun: 6.0 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4 </div> </li> <li> <div> Clang, C++14: 3.6, 3.7 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 5.1.0, 6.0.0 </div> </li> <li> <div> GCC, C++11: 4.4.7 </div> </li> <li> <div> GCC, C++14: 4.9.3, 5.1.1 </div> </li> <li> <div> Intel: 15.0 </div> </li> </ul> </div> </li> <li> <div> Android: <ul> <li> <div> Clang: 3.6 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> Clang: 3.4.1 </div> </li> <li> <div> GCC: 4.8.5, 5.1.0, 6.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_59_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> Version 1.58.0http://www.boost.org/users/history/version_1_58_0.htmlhttp://www.boost.org/users/history/version_1_58_0.htmlFri, 17 Apr 2015 08:53:58 +0100 <div id="version_1_58_0.known_issue"> <h3><span class="link">Known Issue</span></h3> <ul> <li> <div> Boost.Python will fail to build if it is compiled against a version of python that is one of: 3.0.X, 3.1.X, 3.2.X, 3.3.X. Versions 2.X and 3.4+ are not affected. This is fixed in <a href="https://github.com/boostorg/python/commit/3e405b6fd5db5615bbef241763de070118222ca7">git</a>. </div> </li> <li> <div> Boost.Fusion has a regression with non-constexpr types. <a href="https://svn.boost.org/trac/boost/ticket/11211">#11211</a> This is fixed in some PRs: <a href="https://github.com/boostorg/fusion/pull/70">Github PR #70</a>, <a href="https://github.com/boostorg/fusion/pull/71">Github PR #71</a>, <a href="https://github.com/boostorg/fusion/pull/72">Github PR #72</a> </div> </li> </ul> <p> Patches: </p> <ul> <li> <div> <a href="http://www.boost.org/patches/1_58_0/0001-Fix-exec_file-for-Python-3-3.4.patch">0001-Fix-exec_file-for-Python-3-3.4.patch</a> (for libs/python). </div> </li> <li> <div> <a href="http://www.boost.org/patches/1_58_0/0002-Fix-a-regression-with-non-constexpr-types.patch">0002-Fix-a-regression-with-non-constexpr-types.patch</a> (for libs/fusion). </div> </li> </ul> </div> <div id="version_1_58_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/endian">Endian</a>:</span> Types and conversion functions for correct byte ordering and more regardless of processor endianness. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/sort/">Sort</a>:</span> Includes spreadsort, a general-case hybrid radix sort that is faster than O(n*log(n)) </div> </li> </ul> </div> <div id="version_1_58_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Ensured errors generated by Windows' <code><span class="identifier">ConnectEx</span></code> function are mapped to their portable equivalents (<a href="https://svn.boost.org/trac/boost/ticket/10744">#10744</a>). </div> </li> <li> <div> Added new macro <code><span class="identifier">BOOST_ASIO_DISABLE_CONNECTEX</span></code> to allow use of <code><span class="identifier">ConnectEx</span></code> to be explicitly disabled. </div> </li> <li> <div> Fixed a race condition in <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">object_handle</span></code> when there are pending wait operations on destruction (<a href="https://svn.boost.org/trac/boost/ticket/10624">#10624</a>). </div> </li> <li> <div> Fixed IPv6 address parsing on FreeBSD, where a trailing scope ID would cause conversion to fail with <code><span class="identifier">EINVAL</span></code>. </div> </li> <li> <div> Worked around shared library visibility issues by ensuring Asio types use default visibility (<a href="https://svn.boost.org/trac/boost/ticket/9465">#9465</a>, <a href="https://svn.boost.org/trac/boost/ticket/11070">#11070</a>). </div> </li> <li> <div> Changed the SSL wrapper to call the password callback when loading an in-memory key (<a href="https://svn.boost.org/trac/boost/ticket/10828">#10828</a>). </div> </li> <li> <div> Fixed false SSL error reports by ensuring that the SSL error queue is cleared prior to each operation. </div> </li> <li> <div> Fixed an <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> bug that may result in spurious 'short read' errors. </div> </li> <li> <div> Removed a redundant null pointer check in the SSL engine (<a href="https://svn.boost.org/trac/boost/ticket/10088">#10088</a>). </div> </li> <li> <div> Added options for disabling TLS v1.1 and v1.2 (<a href="https://svn.boost.org/trac/boost/ticket/10690">#10690</a>). </div> </li> <li> <div> Removed use of deprecated OpenSSL function <code><span class="identifier">ERR_remove_state</span></code>. </div> </li> <li> <div> Fixed detection of various C++11 features with Clang (<a href="https://svn.boost.org/trac/boost/ticket/8835">#8835</a>, <a href="https://svn.boost.org/trac/boost/ticket/10884">#10884</a>). </div> </li> <li> <div> Fixed detection of C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">addressof</span></code> with <tt>g++</tt> (<a href="https://svn.boost.org/trac/boost/ticket/10982">#10982</a>). </div> </li> <li> <div> Changed multicast test to treat certain <code><span class="identifier">join_group</span></code> failures as non-fatal. </div> </li> <li> <div> Decoupled Asio unit tests from Boost.Test (<a href="https://svn.boost.org/trac/boost/ticket/11116">#11116</a>). </div> </li> <li> <div> Changed the tutorial to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span></code> to ensure output is flushed. </div> </li> <li> <div> Fixed an unsigned integer overflow reported by Clang's integer sanitizer. </div> </li> <li> <div> Added support for move-only return types when using a <code><span class="identifier">yield_context</span></code> object with asynchronous operations. </div> </li> <li> <div> Changed <code><span class="identifier">yield_context</span></code> to allow reentrant calls to the completion handler from an initiating function. </div> </li> <li> <div> Updated detection of Windows Runtime to work with latest Windows SDK. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono</a>:</span> <ul> <li> <div> <em>Version</em> 2.0.5 </div> </li> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10778">#10778</a> VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10840">#10840</a> Missing std:: qualifier for puts call in test_7868.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10851">#10851</a> Missing std:: qualifier for puts call in time_point_output.cpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10893">#10893</a> Minor doc typo in Boost.Chrono </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10992">#10992</a> Chrono IO state savers inconsistent with Boost.IO state savers </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10995">#10995</a> duration_put::put_value truncates fractional part </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11006">#11006</a> Impossible to instantiate time_fmt_io_saver due to several errors. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11012">#11012</a> chrono_io v2 fail to compile with boost::chrono::duration&lt; boost::rational&lt;int&gt; &gt; </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/">Container</a>:</span> <ul> <li> <div> Experimental <code><span class="identifier">small_vector</span></code> container. </div> </li> <li> <div> Massive dependency reorganization. Now <em>Boost.Container</em> depends on very basic utilities like Boost.Core and <em>Boost.Intrusive</em>. Preprocessed code size have decreased considerably and compilation times have improved. </div> </li> <li> <div> Added <code><span class="identifier">nth</span></code> and <code><span class="identifier">index_of</span></code> functions to containers with random-access iterators (except <code><span class="identifier">basic_string</span></code>). </div> </li> <li> <div> Added C++17's <code><span class="identifier">allocator_traits</span><span class="special">&lt;</span><span class="identifier">Allocator</span><span class="special">&gt;::</span><span class="identifier">is_always_equal</span></code>. </div> </li> <li> <div> Updated containers to implement new constructors as specified in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2210">2210. Missing allocator-extended constructor for allocator-aware containers</a>. </div> </li> <li> <div> Fixed bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/9931">#9931: <em>"flat_map::insert(ordered_unique_range_t...) fails with move_iterators"</em></a> (reopened). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/11076">#11076: <em>"Unqualified calls to memmove/memcpy in container/detail/copy_move_algo.hpp"</em></a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/10790">Trac #10790 (<em>long long errors from container"</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"</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/functional/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>"haiku: we don't have XSI shared memory, so don't try to use it"</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>"boost::rv inherits off union, when such passed as template argument"</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">"boost"</span><span class="special">);</span> <span class="comment">// passed a const char*, not a std::string </span> </pre> <div> In previous versions of the library, the <code><span class="identifier">find</span></code> operation generates several temporary <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>s (one every time an internal comparison is made). In sufficiently advanced compilers, this is now avoided so that only one temporary is created. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> <ul> <li> <div> Changed <code><span class="identifier">frexp</span></code> to always be non-expression template generating, see: <a href="https://svn.boost.org/trac/boost/ticket/10993">10993</a>. </div> </li> <li> <div> Improved support of cpp_dec_float on Cygwin and other platforms with missing long double support, see <a href="https://svn.boost.org/trac/boost/ticket/10924">10924</a>. </div> </li> <li> <div> Improved noexcept support and added some more tests, see <a href="https://svn.boost.org/trac/boost/ticket/10990">10990</a>. </div> </li> <li> <div> Various workarounds applied for Intel-15.0 and Solaris-12.4 compilers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/optional/">Optional</a>:</span> <ul> <li> <div> Improved documentation; documented IO operations and header files. </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span></code> is no longer convertible from literal 0. This avoids a bug where <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">rational</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;&gt;</span> <span class="identifier">oi</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span></code> would initialize an optional object with no contained value. </div> </li> <li> <div> Added a way to manually disable move semantics: just define macro <code><span class="identifier">BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES</span></code>. This can be used to work around <a href="http://svn.boost.org/trac/boost/ticket/10399">#10399</a>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10825">#10825</a> Improved the trick that prevents streaming out <code><span class="identifier">optional</span></code> without header <code><span class="identifier">optional_io</span><span class="special">.</span><span class="identifier">hpp</span></code> by using safe-bool idiom. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11087">#11087</a> It is no longer possible to assign <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code> to <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> when <code><span class="identifier">U</span></code> is not assignable or convertible to <code><span class="identifier">T</span></code>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10839">#10839</a> Value accessors now work correctly on rvalues of <code><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span></code>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Version 3.2.0 </div> </li> <li> <div> <em>New Features:</em> <ul> <li> <div> Phoenix now has a <em>lazy list</em> implementation as an optional extension. </div> </li> </ul> </div> </li> <li> <div> <em>New Example:</em> <ul> <li> <div> A new example <em>bind_goose</em> shows the compatibility between <em>boost bind</em> and <em>boost phoenix bind</em>. </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10927">#10927</a> Missing <code><span class="identifier">std</span><span class="special">::</span></code> qualifier for <code><span class="identifier">fabs</span></code> in <code><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">cpp</span></code> </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11085">#11085</a> Missing qualifier for pow call in <code><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">function_tests</span><span class="special">.</span><span class="identifier">cpp</span></code> </div> </li> <li> <div> Fixes for a number of cases failing with <em>bind</em>, <em>lambda</em> and <em>let</em>. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/predef/">Predef</a>:</span> <ul> <li> <div> Version 1.2 </div> </li> <li> <div> Added Visual Studio 2015 detection. </div> </li> <li> <div> Added detection of Haiku OS. </div> </li> <li> <div> Fix Android endian detection. </div> </li> <li> <div> Added <code><span class="identifier">predef_check</span></code> program and BBv2 integration for build configuration checks. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/random/">Random</a>:</span> <ul> <li> <div> Added non_central_chi_squared_distribution. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> <em>Version</em> 4.5.0 </div> </li> <li> <div> <em>New Experimental Features:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/9600">#9600</a> Async: Add task_region </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10611">#10611</a> Add emplace promise::set_value and emplace make_ready_future </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10826">#10826</a> Add scheduled executor operations </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11048">#11048</a> Add a serial_executor based on continuations </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6787">#6787</a> boost::thread::sleep() hangs if system time is rolled back </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10734">#10734</a> Submit method work differently on different executors, some throw exception and some silently ignore error (thread_executor and inline_executor) </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10736">#10736</a> Task exceptions silently ignored. I think std::terminate solution from N3785 and std::thread is better choice and more consistent. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10737">#10737</a> In serial_executor we have infinite wait if task throw exception. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10822">#10822</a> Boost.Thread fails to compile on Android </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10824">#10824</a> Boost.Thread 1.57 breaks Windows XP compatibility for SP2 and below. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10963">#10963</a> future&lt;future&lt;T&gt;&gt;::then Has No Implementation </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10964">#10964</a> future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10968">#10968</a> The futures returned by async() and future::then() are not blocking. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10971">#10971</a> shared_future::get()/get_or() must be const </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10972">#10972</a> shared_future::then() can be called multiple times. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10979">#10979</a> Support T&amp; type deduction when the make_ready_future parameter is reference_wrapper&lt;T&gt; </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/10996">#10996</a> Thread physical_concurrency() is failing on Windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11035">#11035</a> BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE not defined for Android </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/11053">#11053</a> The attached code results in a R6025 - pure virtual function call in run_thread_exit_callbacks </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_erasure/">TypeErasure</a>:</span> <ul> <li> <div> Fixed compilation with MSVC 12. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_index/">TypeIndex</a>:</span> <ul> <li> <div> Link time assertions added on platforms that support it </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/units">Units</a>:</span> <ul> <li> <div> Fix for base units with arbitrary dimensions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered">Unordered</a>:</span> <ul> <li> <div> Fix move assignment with stateful, propagate_on_container_move_assign allocators (<a href="https://svn.boost.org/trac/boost/ticket/10777">#10777</a>). </div> </li> <li> <div> Fix potential overflow when calculating number of buckets to allocate (<a href="https://github.com/boostorg/unordered/pull/4">GitHub #4</a>). </div> </li> <li> <div> Other minor changes, see <a href="http://www.boost.org/doc/html/unordered/changes.html">changelog</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> <strong>Breaking change:</strong> Compile time checked getter is now used by default in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;(</span><span class="identifier">VariantT</span><span class="special">)</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polymorphic_get</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;(</span><span class="identifier">VariantT</span><span class="special">)</span></code>. New getter asserts that type <code><span class="identifier">U</span></code> is one of the types that can be stored in <code><span class="identifier">VariantT</span></code>. Define <code><span class="identifier">BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT</span></code> to change default behavior. See <a href="http://www.boost.org/doc/html/variant/reference.html#header.boost.variant.get_hpp">get.hpp</a> and <a href="http://www.boost.org/doc/html/variant/reference.html#header.boost.variant.polymorphic_get_hpp">polymorphic_get.hpp</a> descriptions for more info <a href="https://svn.boost.org/trac/boost/ticket/547">#547</a>. </div> </li> <li> <div> Added missing comparison operators to variant <a href="https://svn.boost.org/trac/boost/ticket/8620">#8620</a>, <a href="https://svn.boost.org/trac/boost/ticket/10811">#10811</a> </div> </li> <li> <div> Multiple documentations fixes <a href="https://svn.boost.org/trac/boost/ticket/10273">#10273</a>, <a href="https://svn.boost.org/trac/boost/ticket/10653">#10653</a> </div> </li> <li> <div> Variadic templats enabled on Clang <a href="https://svn.boost.org/trac/boost/ticket/10832">#10832</a> </div> </li> <li> <div> Autodetection of return types for visitors in C++14, which makes it possible to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code> with generic lambdas <a href="https://svn.boost.org/trac/boost/ticket/10837">#10837</a>: </div> <pre><span class="keyword">auto</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span><span class="special">(</span> <span class="special">[](</span><span class="keyword">auto</span> <span class="identifier">v</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">);</span> <span class="special">},</span> <span class="identifier">variant_instance</span> <span class="special">);</span> </pre> </li> <li> <div> Improved swap functions <a href="https://svn.boost.org/trac/boost/ticket/10882">#10882</a> </div> </li> <li> <div> Many improvements to variadic templates, even more methods support variadics. </div> </li> <li> <div> Multiple bugfixes and testing improvements including Coveralls integration </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_58_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.4 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.9.2 </div> </li> <li> <div> GCC, C++98: 4.8.1, 4.8.2 </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.4, 4.9.2 </div> </li> <li> <div> GCC, C++14: 4.9.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.7, 4.5.4, 4.6.3, 4.7.3, 4.8.2 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: 3.0, 3.1, 3.2, 3.3, 3.4 </div> </li> <li> <div> Clang, C++14: 3.5, 3.6 </div> </li> <li> <div> GCC: 4.4.7, 4.6.4, 4.7.3, 4.8.1, 4.9.2, 5.0.0 (experimental) </div> </li> <li> <div> GCC, C++11: 4.4.7, 4.8.4, 4.9.2 </div> </li> <li> <div> GCC, C++14: 4.9.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> GCC, mingw: 4.4.7, 4.5.4, 4.6.4, 4.7.3 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 </div> </li> </ul> </div> </li> <li> <div> Android <ul> <li> <div> Clang: 3.4, 3.5 </div> </li> <li> <div> GCC: 4.8, 4.9 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC: 4.4.2 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_58_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="http://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="http://www.boost.org/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James, Vladimir Prus and Marshall Clow managed this release. </p> </div> 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.0https://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="https://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="https://www.boost.org/patches/1_55_0/001-log_fix_dump_avx2.patch">Log patch</a>: fixes incorrect output of the <a href="https://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="https://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="https://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="https://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="https://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 "80" rather than "http". </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="https://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="https://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="https://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: " type qualifiers ignored on function return type" 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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://www.boost.org/libs/functional/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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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">"color"</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">"pos"</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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> See the <a href="https://www.boost.org/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://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="https://www.boost.org/tools/quickbook">Quickbook</a>:</span> <ul> <li> <div> Quickbook 1.6 finalized, see the <a href="https://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="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.54.0http://www.boost.org/users/history/version_1_54_0.htmlhttp://www.boost.org/users/history/version_1_54_0.htmlMon, 1 Jul 2013 10:10:02 -0700 <div id="version_1_54_0.patches"> <h3><span class="link">Patches</span></h3> <p> These are patches from library authors which were found too late to be fixed in the 1.54.0 release. Be careful as they have not been through the normal testing process. </p> <ol> <li> <div> <a href="http://www.boost.org/patches/1_54_0/001-coroutine.patch">Coroutine patch</a> </div> </li> <li> <div> <a href="http://www.boost.org/patches/1_54_0/002-date-time.patch">Date Time patch</a> </div> </li> <li> <div> <a href="http://www.boost.org/patches/1_54_0/003-log.patch">Log patch</a> </div> </li> <li> <div> <a href="http://www.boost.org/patches/1_54_0/004-thread.patch">Thread patch</a> </div> </li> </ol> </div> <div id="version_1_54_0.news"> <h3><span class="link">News</span></h3> <div id="version_1_54_0.news.supported_cpus"> <h3><span class="link">Supported CPUs</span></h3> <p> Boost no longer supports the 80386 target CPU, the minimum x86 32-bit target is i486. The 80386 target was not properly supported by <a href="http://www.boost.org/libs/smart_ptr/">Boost.SmartPtr</a> and <a href="http://www.boost.org/libs/atomic/">Boost.Atomic</a> (as well as the libraries that used them internally) even before this release. Some Boost libraries may have higher requirements on the minimum target CPU (like <a href="http://www.boost.org/libs/log/">Boost.Log</a> for example), see the respective library documentation for details. </p> <p> Also by default, when building Boost for x86 32-bit targets it will compile for i686 (Pentium Pro) and later CPUs. This can be changed by specifying the <tt>instruction-set</tt> property in <tt>b2</tt> or <tt>bjam</tt> command line, for example: </p> <pre>b2 variant=release architecture=x86 instruction-set=i486 stage </pre> <p> Possible values for the <tt>instruction-set</tt> are: </p> <ul> <li> <div> Target for the host CPU: <tt>native</tt> </div> </li> <li> <div> Generic x86 CPUs: <tt>i486</tt>, <tt>i586</tt>, <tt>i686</tt> </div> </li> <li> <div> Intel CPUs: <tt>pentium</tt>, <tt>pentium-mmx</tt>, <tt>pentiumpro</tt>, <tt>pentium2</tt>, <tt>pentium3</tt>, <tt>pentium3m</tt>, <tt>pentium-m</tt>, <tt>pentium4</tt>, <tt>pentium4m</tt>, <tt>prescott</tt>, <tt>nocona</tt>, <tt>core2</tt>, <tt>corei7</tt>, <tt>corei7-avx</tt>, <tt>core-avx-i</tt>, <tt>conroe</tt>, <tt>conroe-xe</tt>, <tt>conroe-l</tt>, <tt>allendale</tt>, <tt>merom</tt>, <tt>merom-xe</tt>, <tt>kentsfield</tt>, <tt>kentsfield-xe</tt>, <tt>penryn</tt>, <tt>wolfdale</tt>, <tt>yorksfield</tt>, <tt>nehalem</tt>, <tt>sandy-bridge</tt>, <tt>ivy-bridge</tt>, <tt>haswell</tt>, <tt>atom</tt> </div> </li> <li> <div> AMD CPUs: <tt>k6</tt>, <tt>k6-2</tt>, <tt>k6-3</tt>, <tt>athlon</tt>, <tt>athlon-tbird</tt>, <tt>athlon-4</tt>, <tt>athlon-xp</tt>, <tt>athlon-mp</tt>, <tt>k8</tt>, <tt>opteron</tt>, <tt>athlon64</tt>, <tt>athlon-fx</tt>, <tt>k8-sse3</tt>, <tt>opteron-sse3</tt>, <tt>athlon64-sse3</tt>, <tt>amdfam10</tt>, <tt>barcelona</tt>, <tt>bdver1</tt>, <tt>bdver2</tt>, <tt>bdver3</tt>, <tt>btver1</tt>, <tt>btver2</tt> </div> </li> <li> <div> VIA CPUs: <tt>c3</tt>, <tt>c3-2</tt> </div> </li> <li> <div> IDT CPUs: <tt>winchip-c6</tt>, <tt>winchip2</tt> </div> </li> </ul> <p> Note that not all these values may be supported by a particular compiler. </p> </div> <div id="version_1_54_0.news.signals_deprecated"> <h3><span class="link">Signals deprecated</span></h3> <p> Boost.Signals is no longer being actively maintained, so it has been deprecated. Do not use Boost.Signals for new development (use <a href="http://www.boost.org/libs/signals2/">Boost.Signals2</a> instead). If you have existing Boost.Signals-based code, it will continue to work, but consider moving to Boost.Signals2. There is <a href="http://www.boost.org/doc/html/signals2/api_changes.html#signals2.porting">a porting guide</a> in the Signals2 documentation. </p> </div> </div> <div id="version_1_54_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/log/">Log</a>:</span> Logging library, from Andrey Semashev. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/tti/">TTI</a>:</span> Type Traits Introspection library, from Edward Diener. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_erasure/">Type Erasure</a>:</span> Runtime polymorphism based on concepts. </div> </li> </ul> </div> <div id="version_1_54_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> Fixes comment typos (<a href="http://svn.boost.org/trac/boost/ticket/7917">#7917</a>) </div> </li> <li> <div> Silence unused variable warnings (<a href="http://svn.boost.org/trac/boost/ticket/6926">#6926</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/algorithm/">Algorithm</a>:</span> <ul> <li> <div> The return types for copy_while and copy_until have been changed. This is an interface change. If you were using the return values from these functions, then you will have to modify your code. Instead of just returning the modified <code><span class="identifier">OutputIterator</span></code>, these functions now return a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span></code>. If this change affects your code, the simplest change is to add a <code><span class="special">.</span><span class="identifier">second</span></code> to the end of the call, which will get you the same behavior that you had before. </div> </li> <li> <div> Added C++14 versions of 'is_permutation', 'equal' and 'mismatch'. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/any/">Any</a>:</span> <ul> <li> <div> Added C++11 features support <a href="https://svn.boost.org/trac/boost/ticket/6999">#6999</a>: <ul> <li> <div> Move assignment and move constructors. </div> </li> <li> <div> Added <code><span class="keyword">noexcept</span></code> modifiers. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Added new traits classes, <code><span class="identifier">handler_type</span></code> and <code><span class="identifier">async_result</span></code>, that allow the customisation of the return type of an initiating function. </div> </li> <li> <div> Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code> function, a high-level wrapper for running stackful coroutines, based on the Boost.Coroutine library. The <code><span class="identifier">spawn</span><span class="special">()</span></code> function enables programs to implement asynchronous logic in a synchronous manner. For example: <code><span class="identifier">size_t</span> <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">yield</span><span class="special">);</span></code>. </div> </li> <li> <div> Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span></code> special value, which provides first-class support for returning a C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">future</span></code> from an asynchronous operation's initiating function. For example: <code><span class="identifier">future</span><span class="special">&lt;</span><span class="identifier">size_t</span><span class="special">&gt;</span> <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span><span class="special">);</span></code>. </div> </li> <li> <div> Promoted the stackless coroutine class and macros to be part of Asio's documented interface, rather than part of the HTTP server 4 example. </div> </li> <li> <div> Added a new handler hook called <code><span class="identifier">asio_handler_is_continuation</span></code>. Asynchronous operations may represent a continuation of the asynchronous control flow associated with the current executing handler. The <code><span class="identifier">asio_handler_is_continuation</span></code> hook can be customised to return <code><span class="keyword">true</span></code> if this is the case, and Asio's implementation can use this knowledge to optimise scheduling of the new handler. To cover common cases, Asio customises the hook for strands, <code><span class="identifier">spawn</span><span class="special">()</span></code> and composed asynchronous operations. </div> </li> <li> <div> Added four new generic protocol classes, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">datagram_protocol</span></code>, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">raw_protocol</span></code>, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code> and <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span></code>, which implement the <code><span class="identifier">Protocol</span></code> type requirements, but allow the user to specify the address family (e.g. <code><span class="identifier">AF_INET</span></code>) and protocol type (e.g. <code><span class="identifier">IPPROTO_TCP</span></code>) at runtime. </div> </li> <li> <div> Added C++11 move constructors that allow the conversion of a socket (or acceptor) into a more generic type. For example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span></code> can be converted into a <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> via move construction. </div> </li> <li> <div> Extended the <code><span class="identifier">basic_socket_acceptor</span><span class="special">&lt;&gt;</span></code> class's <code><span class="identifier">accept</span><span class="special">()</span></code> and <code><span class="identifier">async_accept</span><span class="special">()</span></code> functions to allow a new connection to be accepted directly into a socket of a more generic type. For example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">acceptor</span></code> can be used to accept into a <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> object. </div> </li> <li> <div> Moved existing examples into a C++03-specific directory, and added a new directory for C++11-specific examples. A limited subset of the C++03 examples have been converted to their C++11 equivalents. </div> </li> <li> <div> Various SSL enhancements. Thanks go to Nick Jones, on whose work these changes are based. <ul> <li> <div> Added support for SSL handshakes with re-use of data already read from the wire. New overloads of the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> class's <code><span class="identifier">handshake</span><span class="special">()</span></code> and <code><span class="identifier">async_handshake</span><span class="special">()</span></code> functions have been added. These accept a <code><span class="identifier">ConstBufferSequence</span></code> to be used as initial input to the ssl engine for the handshake procedure. </div> </li> <li> <div> Added support for creation of TLSv1.1 and TLSv1.2 <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> objects. </div> </li> <li> <div> Added a <code><span class="identifier">set_verify_depth</span><span class="special">()</span></code> function to the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> and <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> classes. </div> </li> <li> <div> Added the ability to load SSL certificate and key data from memory buffers. New functions, <code><span class="identifier">add_certificate_authority</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate_chain</span><span class="special">()</span></code>, <code><span class="identifier">use_private_key</span><span class="special">()</span></code>, <code><span class="identifier">use_rsa_private_key</span><span class="special">()</span></code> and <code><span class="identifier">use_tmp_dh</span><span class="special">()</span></code>, have been added to the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> class. </div> </li> <li> <div> Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> to automatically disable SSL compression by default. To enable, use the new <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">clear_options</span><span class="special">()</span></code> function, as in <code><span class="identifier">my_context</span><span class="special">.</span><span class="identifier">clear_options</span><span class="special">(</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">no_compression</span><span class="special">)</span></code>. </div> </li> </ul> </div> </li> <li> <div> Fixed a potential deadlock in <code><span class="identifier">signal_set</span></code> implementation. </div> </li> <li> <div> Fixed an error in acceptor example in documentation <a href="https://svn.boost.org/trac/boost/ticket/8421">#8421</a>. </div> </li> <li> <div> Fixed copy-paste errors in waitable timer documentation <a href="https://svn.boost.org/trac/boost/ticket/8602">#8602</a>. </div> </li> <li> <div> Added assertions to satisfy some code analysis tools <a href="https://svn.boost.org/trac/boost/ticket/7739">#7739</a>. </div> </li> <li> <div> Fixed a malformed <code><span class="preprocessor">#warning</span></code> directive <a href="https://svn.boost.org/trac/boost/ticket/7939">#7939</a>. </div> </li> <li> <div> Fixed a potential data race in the Linux <code><span class="identifier">epoll</span></code> implementation. </div> </li> <li> <div> Fixed a Windows-specific bug, where certain operations might generate an <code><span class="identifier">error_code</span></code> with an invalid (i.e. <code><span class="identifier">NULL</span></code>) <code><span class="identifier">error_category</span></code> <a href="https://svn.boost.org/trac/boost/ticket/8613">#8613</a>. </div> </li> <li> <div> Fixed <code><span class="identifier">basic_waitable_timer</span></code>'s underlying implementation so that it can handle any <code><span class="identifier">time_point</span></code> value without overflowing the intermediate duration objects. </div> </li> <li> <div> Fixed a problem with lost thread wakeups that can occur when making concurrent calls to <code><span class="identifier">run</span><span class="special">()</span></code> and <code><span class="identifier">poll</span><span class="special">()</span></code> on the same <code><span class="identifier">io_service</span></code> object <a href="https://svn.boost.org/trac/boost/ticket/8354">#8354</a>. </div> </li> <li> <div> Fixed implementation of asynchronous connect operation so that it can cope with spurious readiness notifications from the reactor <a href="https://svn.boost.org/trac/boost/ticket/7961">#7961</a>. </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/8079">#8079</a> Chrono memory leak </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8318">#8318</a> BOOST_FORCEINLINE constructors of time_point and duration </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8367">#8367</a> chrono does not compile with clang from XCode 4.5.2 with -std=c++11 -stdlib=libc++ and -arch armv7 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8370">#8370</a> typo in chrono reference </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8435">#8435</a> Can't compile Chrono on HP-UX due to no CLOCK_REALTIME macro. </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> Fixed warnings (<a href="https://svn.boost.org/trac/boost/ticket/8032">#8032</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 experimental <code><span class="identifier">static_vector</span></code> class, based on Andrew Hundt's and Adam Wulkiewicz's high-performance <code><span class="identifier">varray</span></code> class. </div> </li> <li> <div> Speed improvements in <code><span class="identifier">vector</span></code> constructors/copy/move/swap, dispatching to memcpy when possible. </div> </li> <li> <div> Support for <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code> <a href="https://svn.boost.org/trac/boost/ticket/7227">#7227</a>. </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/7921">#7921</a>, <a href="https://svn.boost.org/trac/boost/ticket/7969">#7969</a>, <a href="https://svn.boost.org/trac/boost/ticket/8118">#8118</a>, <a href="https://svn.boost.org/trac/boost/ticket/8294">#8294</a>, <a href="https://svn.boost.org/trac/boost/ticket/8553">#8553</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> Support for SPARC architecture added. </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 for segmented stacks (stack grows on demand) added. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7805">#7805</a> Typo </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7972">#7972</a> GCC warnings </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7988">#7988</a> C++11 range-for </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8023">#8023</a> Using iterator traits </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8024">#8024</a> Create const_iterator </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8101">#8101</a> Postfix operator++ for iterator </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8526">#8526</a> memory leak </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8544">#8544</a> calling managed DLL </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> <em>Additional functionality</em> <ul> <li> <div> added Spatial Index, developed for Boost.Geometry by Adam Wulkiewicz. The spatial index was originally started by Federico J. Fernandez during the Google Summer of Code 2008 program, mentored by Hartmut Kaiser. </div> </li> <li> <div> added SVG-output, this was already in extensions for several years </div> </li> </ul> </div> </li> <li> <div> <em>Documentation</em> <ul> <li> <div> small fixes of missing words </div> </li> </ul> </div> </li> <li> <div> <em>Bugfixes</em> <ul> <li> <div> collinear opposite segments did sometimes (in circles) have a robustness issue, fixed </div> </li> <li> <div> fixed insertion of false intersection point (found by buffer) </div> </li> <li> <div> applied patch of Vladimir Petrovic for debugging traversals </div> </li> </ul> </div> </li> <li> <div> <em>Solved tickets</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7462">7462</a> degenerate union result for float, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7465">7465</a> wrong construtors access type in scale_transformer class, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7802">7802</a> cart_intersect.hpp unused parameter warnings, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8254">8254</a> faulty intersection, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8393">8393</a> polygon model doesn't adhere to stated Polygon concept rules, doc updated. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8403">8403</a> silenced compiler warning C4127: conditional expression is constant </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8405">8405</a> silenced compiler warning C4189: '...' : local variable is initialized but not referenced </div> </li> </ul> </div> </li> <li> <div> <em>Internal changes</em> <ul> <li> <div> Made several algorithms variant-aware (append, area, clear, convert, equals, length, num_points) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph">Graph</a>:</span> <ul> <li> <div> Bugs fixed from Trac: <a href="https://svn.boost.org/trac/boost/ticket/6780">#6780</a>, <a href="https://svn.boost.org/trac/boost/ticket/7016">#7016</a>, <a href="https://svn.boost.org/trac/boost/ticket/7155">#7155</a>, <a href="https://svn.boost.org/trac/boost/ticket/7845">#7845</a>, <a href="https://svn.boost.org/trac/boost/ticket/7863">#7863</a>, <a href="https://svn.boost.org/trac/boost/ticket/7877">#7877</a>, <a href="https://svn.boost.org/trac/boost/ticket/8166">#8166</a>, <a href="https://svn.boost.org/trac/boost/ticket/8192">#8192</a>, <a href="https://svn.boost.org/trac/boost/ticket/8398">#8398</a>, <a href="https://svn.boost.org/trac/boost/ticket/8411">#8411</a>, <a href="https://svn.boost.org/trac/boost/ticket/8427">#8427</a>, <a href="https://svn.boost.org/trac/boost/ticket/8428">#8428</a>, <a href="https://svn.boost.org/trac/boost/ticket/8434">#8434</a>, <a href="https://svn.boost.org/trac/boost/ticket/8490">#8490</a>, <a href="https://svn.boost.org/trac/boost/ticket/8681">#8681</a>. </div> </li> <li> <div> Added updates to VF2 subgraph isomorphism from Jakob Lykke Andersen and Flavio De Lorenzi. </div> </li> <li> <div> Added maximum adjacency search from Fernando Vilas. </div> </li> <li> <div> Added timeout support from Brammert Ottens to resource-constrained shortest paths (r_c_shortest_paths) algorithm. </div> </li> <li> <div> Various fixes to documentation and examples and removal of outdated compiler workarounds. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Added support for platform-specific flags to mapped_region (ticket #8030) </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/7484">#7484</a>, <a href="https://svn.boost.org/trac/boost/ticket/7598">#7598</a>, <a href="https://svn.boost.org/trac/boost/ticket/7682">#7682</a>, <a href="https://svn.boost.org/trac/boost/ticket/7923">#7923</a>, <a href="https://svn.boost.org/trac/boost/ticket/7924">#7924</a>, <a href="https://svn.boost.org/trac/boost/ticket/7928">#7928</a>, <a href="https://svn.boost.org/trac/boost/ticket/7936">#7936</a>, <a href="https://svn.boost.org/trac/boost/ticket/8521">#8521</a>, <a href="https://svn.boost.org/trac/boost/ticket/8595">#8595</a>. </div> </li> <li> <div> <strong>ABI breaking</strong>: Changed bootstamp function in Windows to use EventLog service start time as system bootup time. Previously used <code><span class="identifier">LastBootupTime</span></code> from WMI was unstable with time synchronization and hibernation and unusable in practice. If you really need to obtain pre Boost 1.54 behaviour define <code><span class="identifier">BOOST_INTERPROCESS_BOOTSTAMP_IS_LASTBOOTUPTIME</span></code> from command line or <code><span class="identifier">detail</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</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> Added <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code> support (bug <a href="https://svn.boost.org/trac/boost/ticket/7849">#7849</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/iostreams/">Iostreams</a>:</span> <ul> <li> <div> <code><span class="identifier">tee</span></code> now works correctly for std::streams (<a href="https://svn.boost.org/trac/boost/ticket/8315">#8315</a>). </div> </li> <li> <div> Documentation fixes (<a href="https://svn.boost.org/trac/boost/ticket/8385">#8385</a>, <a href="https://svn.boost.org/trac/boost/ticket/8460">#8460</a>). </div> </li> <li> <div> Avoid warning from Clang's <code><span class="special">-</span><span class="identifier">Wimplicit</span><span class="special">-</span><span class="identifier">fallthrough</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/8482">#8482</a>). </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> Converting to character pointer now triggers compile time assert instead of runtime <a href="https://svn.boost.org/trac/boost/ticket/8334">#8334</a>. </div> </li> <li> <div> Lexical cast is now capable of converting <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> <a href="https://svn.boost.org/trac/boost/ticket/7909">#7909</a>. </div> </li> <li> <div> Changed internal stream buffer handling, now works with libc++ <a href="https://svn.boost.org/trac/boost/ticket/8267">#8267</a>, <a href="https://svn.boost.org/trac/boost/ticket/7704">#7704</a>. </div> </li> <li> <div> Restored getting address of <code><span class="identifier">lexical_cast</span></code> function that was broken in 1.53.0 <a href="https://svn.boost.org/trac/boost/ticket/7421">#7421</a>. </div> </li> <li> <div> Fixed warnings, internals and tests <a href="https://svn.boost.org/trac/boost/ticket/2558">#2558</a>, <a href="https://svn.boost.org/trac/boost/ticket/7949">#7949</a>, <a href="https://svn.boost.org/trac/boost/ticket/8162">#8162</a>, <a href="https://svn.boost.org/trac/boost/ticket/8369">#8369</a>, <a href="https://svn.boost.org/trac/boost/ticket/8547">#8547</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> Major reorganization to incorporate other Boost.Math like Integer Utilities (Greatest Common Divisor and Least Common Multiple), quaternions and octonions. Making new chapter headings. </div> </li> <li> <div> Added many references to Boost.Multiprecision and <code><span class="identifier">cpp_dec_float_50</span></code> as an example of a User-defined Type (UDT). </div> </li> <li> <div> Added Clang to list of supported compilers. </div> </li> <li> <div> Fixed constants to use a thread-safe cache of computed values when used at arbitrary precision. </div> </li> <li> <div> Added finding zeros of Bessel functions <code><span class="identifier">cyl_bessel_j_zero</span></code>, <code><span class="identifier">cyl_neumann_zero</span></code>, <code><span class="identifier">airy_ai_zeros</span></code> and <code><span class="identifier">airy_bi_zeros</span></code>(by Christopher Kormanyos). </div> </li> <li> <div> More accuracy improvements to the Bessel J and Y functions from Rocco Romeo. </div> </li> <li> <div> Fixed nasty cyclic dependency bug that caused some headers to not compile <a href="https://svn.boost.org/trac/boost/ticket/7999">#7999</a>. </div> </li> <li> <div> Fixed bug in __tgamma that caused spurious overflow for arguments between 142.5 and 143. </div> </li> <li> <div> Fixed bug in raise_rounding_error that caused it to return an incorrect result when throwing an exception is turned off <a href="https://svn.boost.org/trac/boost/ticket/7905">#7905</a>. </div> </li> <li> <div> Added minimal __float128 support. </div> </li> <li> <div> Fixed bug in edge-cases of poisson quantile <a href="https://svn.boost.org/trac/boost/ticket/8308">#8308</a>. </div> </li> <li> <div> Adjusted heuristics used in Halley iteration to cope with inverting the incomplete beta in tricky regions where the derivative is flatlining. Example is computing the quantile of the Fisher F distribution for probabilities smaller than machine epsilon. See ticket <a href="https://svn.boost.org/trac/boost/ticket/8314">#8314</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> Bugfix: Exit points broken for the favor_compile_time policy. </div> </li> <li> <div> Bugfix: copy breaks exit points of subsubmachines. </div> </li> <li> <div> Bugfix: <a href="https://svn.boost.org/trac/boost/ticket/8046">#8046</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> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/7969">#7969</a>), <a href="https://svn.boost.org/trac/boost/ticket/8231">#8231</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> <strong>Breaking change</strong> renamed <code><span class="identifier">rational_adapter</span></code> to <code><span class="identifier">rational_adaptor</span></code>. </div> </li> <li> <div> Add support for <a href="http://perso.ens-lyon.fr/nathalie.revol/software.html">MPFI</a>. </div> </li> <li> <div> Add logged_adaptor. </div> </li> <li> <div> Add support for 128-bit floats via GCC's <code><span class="identifier">__float128</span></code> or Intel's <code><span class="identifier">_Quad</span></code> data types. </div> </li> <li> <div> Add support for user-defined literals in cpp_int, improve <code><span class="keyword">constexpr</span></code> support. </div> </li> <li> <div> Fixed bug in integer division of <code><span class="identifier">cpp_int</span></code> that results in incorrect sign of <code><span class="identifier">cpp_int</span></code> when both arguments are small enough to fit in a <code><span class="identifier">double_limb_type</span></code>. See <a href="https://svn.boost.org/trac/boost/ticket/8126">8126</a>. </div> </li> <li> <div> Fixed bug in subtraction of a single limb in <code><span class="identifier">cpp_int</span></code> that results in incorrect value when the result should have a 0 in the last limb: <a href="https://svn.boost.org/trac/boost/ticket/8133">8133</a>. </div> </li> <li> <div> Fixed bug in <code><span class="identifier">cpp_int</span></code> where division of 0 by something doesn't get zero in the result: <a href="https://svn.boost.org/trac/boost/ticket/8160">8160</a>. </div> </li> <li> <div> Fixed bug in some transcendental functions that caused incorrect return values when variables are reused, for example with <code><span class="identifier">a</span> <span class="special">=</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>. See <a href="https://svn.boost.org/trac/boost/ticket/8326">8326</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/polygon/">Polygon</a>:</span> <ul> <li> <div> Updates and fixes to the Voronoi documentation. </div> </li> <li> <div> Bugs fixed from Trac: <a href="https://svn.boost.org/trac/boost/ticket/8026">#8026</a>, <a href="https://svn.boost.org/trac/boost/ticket/8197">#8197</a>, <a href="https://svn.boost.org/trac/boost/ticket/8257">#8257</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/property_map/">PropertyMap</a>:</span> <ul> <li> <div> Added <code><span class="identifier">compose_property_map</span></code> from Guillaume Pinot. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/range/">Range</a>:</span> <ul> <li> <div> <em>Bug fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6944">#6944</a> Some Range concepts use the incorrect Iterator concept </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7407">#7407</a> istream_range does not compile with wcin </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7408">#7408</a> istream_range should not pull istream </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7731">#7731</a> irange doesn't end iteration properly when step_size is 3 or more </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7827">#7827</a> [range] cant compile r | indexed to range algorithm </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8338">#8338</a> Iterator range does not work with pointer to array as iterator </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/8453">#8453</a> Incorrect configuration macro BOOST_NO_PARTIAL_TEMPLATE_SPECIALIZATION </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/signals/">Signals</a>:</span> <ul> <li> <div> No longer actively maintained, so it is deprecated. Use <a href="http://www.boost.org/libs/signals2">Signals2</a> for new development. </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/7285">#7285</a> C++11 compliance: Allow to pass movable arguments for call_once. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7445">#7445</a> Async: Add future&lt;&gt;.then </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7449">#7449</a> Synchro: Add a synchronized value class </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4878">#4878</a> MinGW 4.5.0 undefined reference to bool interruptible_wait(detail::win32::handle handle_to_wait_for,detail::t imeout target_time). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4882">#4882</a> Win32 shared_mutex does not handle timeouts correctly. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5752">#5752</a> boost::call_once() is unreliable on some platforms </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6652">#6652</a> Boost.Thread shared_mutex.hpp:50:99: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6843">#6843</a> [Intel C++] Compile Errors with '#include &lt;atomic&gt;' </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6966">#6966</a> future boost::future_category inconsistent dll linkage </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7720">#7720</a> exception lock_error while intensive locking/unlocking of mutex </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7755">#7755</a> Thread: deadlock with shared_mutex on Windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7980">#7980</a> Build error: msvc-11.0 and BOOST_THREAD_DONT_USE_DATETIME </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7982">#7982</a> pthread_delay_np() parm compile error on AIX </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8027">#8027</a> thread library fails to compile with Visual Studio 2003 </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/8136">#8136</a> boost::this_thread::sleep_for() sleeps longer than it should in Windows </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8212">#8212</a> Boost thread compilation error on Solaris 10 </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8237">#8237</a> fix documentation for 'thread_group' </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8239">#8239</a> barrier::wait() not marked as interruption_point </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8323">#8323</a> boost::thread::try_join_for/try_join_until may block indefinitely due to a combination of problems in Boost.Thread and Boost.Chrono </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8337">#8337</a> The internal representation of &quot;std::string(this-&gt;code()-&gt;message())&quot; escapes, but is destroyed when it exits scope. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8371">#8371</a> C++11 once_flag enabled when constexpr is not available </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8443">#8443</a> Header file inclusion order may cause crashes </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8451">#8451</a> Missing documented function 'boost::scoped_thread::joinable' </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8530">#8530</a> [Coverity] Unused variable thread_handle, uninitialized variable cond_mutex in thread/pthread/thread_data.hpp </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/8596">#8596</a> With C++0x enabled, boost::packaged_task stores a reference to function objects, instead of a copy. </div> </li> </ul> </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> New type traits implemented <a href="https://svn.boost.org/trac/boost/ticket/8189">#8189</a>: <ul> <li> <div> is_nothrow_move_constructible </div> </li> <li> <div> is_nothrow_move_assignable </div> </li> <li> <div> has_trivial_move_assign </div> </li> <li> <div> has_trivial_move_constructor </div> </li> </ul> </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> <a href="https://svn.boost.org/trac/boost/ticket/6511">#6511</a> Division by scalar should use <code><span class="identifier">enable_if</span><span class="special">&lt;&gt;</span></code> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7297">#7297</a> Make the free functions 'num_columns' and 'num_rows' support the uBLAS traits system and better work with expression types </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6010">#6010</a> fixed linkage problems in assignment.hpp </div> </li> <li> <div> updated doc </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Some very basic <code><span class="keyword">noexcept</span></code> support. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Fix <code><span class="identifier">basic_string_ref</span><span class="special">::</span><span class="identifier">find</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/8067">#8067</a>). </div> </li> <li> <div> Fix <code><span class="identifier">string_ref</span></code>'s logical operators. </div> </li> <li> <div> Update noncopyable for C++11 (<a href="https://svn.boost.org/trac/boost/ticket/6578">#6578</a>). </div> </li> <li> <div> Fix noncopyable compiler warning when used in DLL interface (<a href="https://svn.boost.org/trac/boost/ticket/6935">#6935</a>). </div> </li> <li> <div> Fix using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">addressof</span></code> with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code> on SolarisStudio compiler (<a href="https://svn.boost.org/trac/boost/ticket/7079">#7079</a>). </div> </li> <li> <div> Disable annoying MSVC warning about operator comma (<a href="https://svn.boost.org/trac/boost/ticket/7663">#7663</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> Now uses new type traits from Boost.TypeTrait to detect <code><span class="keyword">noexcept</span></code> constructors and assignment operators <a href="https://svn.boost.org/trac/boost/ticket/8296">#8296</a>. This shall increase performance of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span></code> for many types in C++11. </div> </li> <li> <div> Multivisitation implemented <a href="https://svn.boost.org/trac/boost/ticket/8459">#8459</a>. </div> </li> <li> <div> Documentation updated to reflect C++11 features support. </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> Remove unused variables, fixes <a href="https://svn.boost.org/trac/boost/ticket/8039">#8039</a> </div> </li> <li> <div> Avoid name clash with macro <code><span class="identifier">None</span></code> in glx.h, fixes <a href="https://svn.boost.org/trac/boost/ticket/8204">#8204</a> </div> </li> <li> <div> Silence a gcc warning, fixes <a href="https://svn.boost.org/trac/boost/ticket/8138">#8138</a> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_54_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> GCC: 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.3 </div> </li> <li> <div> GCC, C++98 mode: 4.7.3 </div> </li> <li> <div> GCC, C++11 mode: 4.7.2, 4.7.3, 4.8.0 </div> </li> <li> <div> Clang: 3.0, 3.1, 3.2 </div> </li> <li> <div> Clang, C++11 mode: 3.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> GCC: 4.2 </div> </li> <li> <div> Apple Clang: 4.2.1 </div> </li> <li> <div> Apple Clang, C++11 mode: 4.2.1 </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.8.0 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </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, from Subversion </div> </li> <li> <div> Clang, with libc++: 3.2 </div> </li> <li> <div> GCC: 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.2, 4.7.3 </div> </li> <li> <div> GCC, C++98 mode: 4.7.3 </div> </li> <li> <div> GCC, C++11 mode: 4.7.3, 4.8.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang: 4.2.1 </div> </li> <li> <div> Apple Clang, C++11 mode: 4.2.1 </div> </li> <li> <div> Clang: from Subversion </div> </li> <li> <div> Clang, C++11 mode: from Subversion </div> </li> <li> <div> GCC: 4.2 </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.8.0 </div> </li> <li> <div> Visual C++: 9.0, 10.0, 11.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition: 12.1.0.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_54_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.53.0http://www.boost.org/users/history/version_1_53_0.htmlhttp://www.boost.org/users/history/version_1_53_0.htmlMon, 4 Feb 2013 10:29:19 -0800 <div id="version_1_53_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/atomic/">Atomic</a>:</span> C++11-style <code><span class="identifier">atomic</span><span class="special">&lt;&gt;</span></code>, from Helge Bahmann, maintained by Tim Blechmann. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/coroutine/">Coroutine</a>:</span> Coroutine library, from Oliver Kowalke. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/lockfree/">Lockfree</a>:</span> Lockfree data structures, from Tim Blechmann. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/numeric/odeint/">Odeint</a>:</span> Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky. </div> </li> </ul> </div> <div id="version_1_53_0.news"> <h3><span class="link">News</span></h3> <p> This release contains a fix for ticket <a href="https://svn.boost.org/trac/boost/ticket/7743">#7743</a>, in Boost.Locale. For more details, see the <a href="http://www.boost.org/users/news/boost_locale_security_notice.html">security notice</a>. </p> </div> <div id="version_1_53_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/algorithm/">Algorithm</a>:</span> <ul> <li> <div> Fixed non-ASCII char in comment (<a href="https://svn.boost.org/trac/boost/ticket/7781">#7781</a>). </div> </li> <li> <div> Updated the Knuth-Morris-Pratt docs (<a href="https://svn.boost.org/trac/boost/ticket/7656">#7656</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/array/">Array</a>:</span> <ul> <li> <div> Added support for boost::get and std::get (<a href="https://svn.boost.org/trac/boost/ticket/7652">#7652</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 some 64-to-32-bit conversion warnings (<a href="https://svn.boost.org/trac/boost/ticket/7459">#7459</a>). </div> </li> <li> <div> Fixed some small errors in documentation and comments (<a href="https://svn.boost.org/trac/boost/ticket/7761">#7761</a>). </div> </li> <li> <div> Fixed an error in the example embedded in <code><span class="identifier">basic_socket</span><span class="special">::</span><span class="identifier">get_option</span></code>'s documentation (<a href="https://svn.boost.org/trac/boost/ticket/7562">#7562</a>). </div> </li> <li> <div> Changed to use <code><span class="keyword">long</span></code> rather than <code><span class="keyword">int</span></code> for SSL_CTX options, to match OpenSSL (<a href="https://svn.boost.org/trac/boost/ticket/7209">#7209</a>). </div> </li> <li> <div> Changed to use <code><span class="identifier">_snwprintf</span></code> to address a compile error due to the changed <code><span class="identifier">swprintf</span></code> signature in recent versions of MinGW (<a href="https://svn.boost.org/trac/boost/ticket/7373">#7373</a>). </div> </li> <li> <div> Fixed a deadlock that can occur on Windows when shutting down a pool of <code><span class="identifier">io_service</span></code> threads due to running out of work (<a href="https://svn.boost.org/trac/boost/ticket/7552">#7552</a>). </div> </li> <li> <div> Enabled the <code><span class="identifier">noexcept</span></code> qualifier for error categories (<a href="https://svn.boost.org/trac/boost/ticket/7797">#7797</a>). </div> </li> <li> <div> Changed UNIX domain socket example to treat errors from <code><span class="identifier">accept</span></code> as non-fatal (<a href="https://svn.boost.org/trac/boost/ticket/7488">#7488</a>). </div> </li> <li> <div> Added a small block recycling optimisation to improve default memory allocation behaviour. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/bimap/">Bimap</a>:</span> <ul> <li> <div> Refactor map_view_iterator to improve error messages. </div> </li> <li> <div> Fixed replace_(left/right/key/data) bug when using relations with info. </div> </li> <li> <div> Fixed vector_of and list_of views <code><span class="identifier">assign</span><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span><span class="identifier">value_type</span><span class="special">)</span></code> bug. </div> </li> <li> <div> Fixed vector_of views <code><span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span><span class="special">)</span></code> and <code><span class="identifier">at</span><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span></code> functions return value. </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>Deprecated:</em> <ul> <li> <div> The chrono i/o version included in Boost.Chrono 1.2.x has been completly refactored in version 2.0.0 </div> </li> <li> <div> chrono I/O: The manipulators __duration_short, __duration_long are depreceated. You should use the parameterized form __duration_fmt or the renamed manipulators __duration_symbol and __duration_prefix instead. </div> </li> <li> <div> chrono I/O: The __duration_punct&lt;&gt; facet is depreceated. You should use the __get_duration_style free function to get the informations and use the __duration_units facet for localization purposes. </div> </li> <li> <div> When BOOST_CHRONO_VERSION==2 the preceding deprecated functions are not available. </div> </li> </ul> </div> </li> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7546">#7546</a> time_point&lt;system_clock&gt; output version 2 fails to compile </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7547">#7547</a> time_point&lt;system_clock&gt; input version 2 fails to compile </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7868">#7868</a> chrono_io parses time incorrectly (1.53 and 1.52) </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> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/7650">#7650</a>. </div> </li> <li> <div> Improved <code><span class="identifier">vector</span></code>'s insertion performance. </div> </li> <li> <div> Changed again experimental multiallocation interface for better performance (still experimental). </div> </li> <li> <div> Added no exception support for those willing to disable exceptions in their compilers. </div> </li> <li> <div> Fixed GCC -Wshadow warnings. </div> </li> <li> <div> Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. </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 iOS on ARM and MacOS X on x86 (32bit) added. </div> </li> <li> <div> Support for SEH Overwrite Protection on Win32. </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>Bugfixes</em> <ul> <li> <div> avoid generating output polygons with interior rings below minimum size (e.g. one or two points) </div> </li> <li> <div> <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">disjoint</span></code> for degenerate segments (patched by Karsten Ahnert) </div> </li> <li> <div> problem in <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">difference</span></code> for missing handling tangency, reported by H2 </div> </li> <li> <div> fixed <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">for_each</span></code> for use with Lambda's </div> </li> <li> <div> fixed <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">comparable_distance</span></code> point-linestring (and -range, -polygon) </div> </li> </ul> </div> </li> <li> <div> <em>Additional functionality</em> <ul> <li> <div> combinations for <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">disjoint</span></code>: point/ring, point/polygon, point/multi_polygon </div> </li> <li> <div> combinations for <code><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">intersects</span></code>: point/ring, point/polygon, point/multi_polygon </div> </li> </ul> </div> </li> <li> <div> <em>Internal changes</em> <ul> <li> <div> updates in specializations/not_implemented for various algorithms (as in an earlier version, these changes are still going on; they take care for simplified structs, better error reporting, and automatized documentation) </div> </li> <li> <div> fixes in unit tests </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/gil/">GIL</a>:</span> <ul> <li> <div> Fixed self-assignment warnings (<a href="https://svn.boost.org/trac/boost/ticket/4919">#4919</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Fixed the following bugs from Trac: <a href="https://svn.boost.org/trac/boost/ticket/3468">#3468</a>, <a href="https://svn.boost.org/trac/boost/ticket/4386">#4386</a>, <a href="https://svn.boost.org/trac/boost/ticket/5269">#5269</a>, <a href="https://svn.boost.org/trac/boost/ticket/7428">#7428</a>, <a href="https://svn.boost.org/trac/boost/ticket/7457">#7457</a>, <a href="https://svn.boost.org/trac/boost/ticket/7467">#7467</a>, <a href="https://svn.boost.org/trac/boost/ticket/7600">#7600</a>, <a href="https://svn.boost.org/trac/boost/ticket/7648">#7648</a>, <a href="https://svn.boost.org/trac/boost/ticket/7684">#7684</a>, <a href="https://svn.boost.org/trac/boost/ticket/7728">#7728</a>, <a href="https://svn.boost.org/trac/boost/ticket/7741">#7741</a>, <a href="https://svn.boost.org/trac/boost/ticket/7766">#7766</a>, <a href="https://svn.boost.org/trac/boost/ticket/7771">#7771</a>, <a href="https://svn.boost.org/trac/boost/ticket/7773">#7773</a>, <a href="https://svn.boost.org/trac/boost/ticket/7780">#7780</a>, <a href="https://svn.boost.org/trac/boost/ticket/7787">#7787</a>, <a href="https://svn.boost.org/trac/boost/ticket/7801">#7801</a> plus other bugs not in Trac. </div> </li> <li> <div> Added support for reading from GraphML files containing multiple graphs. </div> </li> <li> <div> Added versions of A* search specifically for trees, removing the need for a color map when it is acceptable to visit the same vertex multiple times. </div> </li> <li> <div> Added VF2 subgraph isomorphism algorithm (contributed by Flavio De Lorenzi). </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> Add support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> where available. </div> </li> <li> <div> On platforms that are known to have standard floating point functions, don't use the automatic detection (<a href="https://svn.boost.org/trac/boost/ticket/7221">#7221</a>, <a href="https://svn.boost.org/trac/boost/ticket/7470">#7470</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 GCC -Wshadow warnings. </div> </li> <li> <div> Experimental multiple allocation interface improved and changed again. Still unstable. </div> </li> <li> <div> Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. </div> </li> <li> <div> <em>ABI breaking</em>: changed node pool allocators internals for improved efficiency. </div> </li> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/7795">#7795</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> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/7174">#7174</a>, <a href="https://svn.boost.org/trac/boost/ticket/7529">#7529</a>, <a href="https://svn.boost.org/trac/boost/ticket/7815">#7815</a>. </div> </li> <li> <div> Fixed GCC -Wshadow warnings. </div> </li> <li> <div> Added missing <code><span class="keyword">explicit</span></code> keyword in several intrusive container constructors. </div> </li> <li> <div> Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. </div> </li> <li> <div> Small documentation fixes. </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> New character type detection algorithm for user defined types <a href="https://svn.boost.org/trac/boost/ticket/6786">#6786</a>. </div> </li> <li> <div> Documentation updates (<a href="https://svn.boost.org/trac/boost/ticket/7582">#7582</a>, <a href="https://svn.boost.org/trac/boost/ticket/7831">#7831</a>). </div> </li> <li> <div> Fixed bugs with std::array <a href="https://svn.boost.org/trac/boost/ticket/7799">#7799</a>. </div> </li> <li> <div> Fixed compilation with -ftrapv and numeric to numeric conversions <a href="https://svn.boost.org/trac/boost/ticket/7814">#7814</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> Security related bug fix, some invalid UTF-8 sequences where accepted as valid <a href="https://svn.boost.org/trac/boost/ticket/7743">#7743</a> </div> </li> <li> <div> Invalid Windows codepage names used <a href="https://svn.boost.org/trac/boost/ticket/7386">#7386</a> </div> </li> <li> <div> Fixed missing documentation, caused by a error in Doxygen formatting <a href="https://svn.boost.org/trac/boost/ticket/7734">#7734</a> </div> </li> <li> <div> Fixed missing std:: in some places <a href="https://svn.boost.org/trac/boost/ticket/7701">#7701</a> </div> </li> <li> <div> Spelling, grammar, typos fixes <a href="https://svn.boost.org/trac/boost/ticket/7368">#7368</a>, <a href="https://svn.boost.org/trac/boost/ticket/7762">#7762</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> Fixed issues <a href="https://svn.boost.org/trac/boost/ticket/7325">#7325</a>, <a href="https://svn.boost.org/trac/boost/ticket/7415">#7415</a>, <a href="https://svn.boost.org/trac/boost/ticket/7416">#7416</a>, <a href="https://svn.boost.org/trac/boost/ticket/7183">#7183</a>, <a href="https://svn.boost.org/trac/boost/ticket/7649">#7649</a>, <a href="https://svn.boost.org/trac/boost/ticket/7694">#7694</a>, <a href="https://svn.boost.org/trac/boost/ticket/4445">#4445</a> and <a href="https://svn.boost.org/trac/boost/ticket/7492">#7492</a>. </div> </li> <li> <div> Fixed mistake in calculating pooled standard deviation in two-sample students t example <a href="https://svn.boost.org/trac/boost/ticket/7402">#7402</a>. </div> </li> <li> <div> Improve complex acos/asin/atan, see <a href="https://svn.boost.org/trac/boost/ticket/7290">#7290</a>, <a href="https://svn.boost.org/trac/boost/ticket/7291">#7291</a>. </div> </li> <li> <div> Improve accuracy in some corner cases of cyl_bessel_j and gamma_p/gamma_q thanks to suggestions from Rocco Romeo. </div> </li> <li> <div> Improve accuracy in Bessel J and Y with integer orders thanks to suggestions from Rocco Romeo. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/algorithm/minmax/">MinMax</a>:</span> <ul> <li> <div> Fixed a misuse of the comma operator (<a href="https://svn.boost.org/trac/boost/ticket/7752">#7752</a>). </div> </li> <li> <div> Updated the docs to fix broken link (<a href="https://svn.boost.org/trac/boost/ticket/7751">#7751</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> Better header segregation (bug <a href="https://svn.boost.org/trac/boost/ticket/6524">#6524</a>). </div> </li> <li> <div> Small documentation fixes </div> </li> <li> <div> Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. </div> </li> <li> <div> Fixed <a href="https://svn.boost.org/trac/boost/ticket/7830">#7830</a>, <a href="https://svn.boost.org/trac/boost/ticket/7832">#7832</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/polygon/">Polygon</a>:</span> <ul> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6366">#6366</a> Bug in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polygon</span><span class="special">::</span><span class="identifier">contains</span></code> for polygon_90 type. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7678">#7678</a> multiple definitions of <code><span class="keyword">bool</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">polygon</span><span class="special">::</span><span class="identifier">belongs</span><span class="special">(...)</span></code> by multiple <code><span class="preprocessor">#include</span></code>. </div> </li> </ul> </div> </li> <li> <div> <em>Internal changes:</em> <ul> <li> <div> refactored point/segment/interval data/concept/traits. </div> </li> <li> <div> added unit tests for point and interval data/concept/traits. </div> </li> <li> <div> simplified <code><span class="identifier">transform</span><span class="special">.</span><span class="identifier">hpp</span></code> to operate only in 2D. </div> </li> <li> <div> removed point_3d data/concept/traits. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/random/">Random</a>:</span> <ul> <li> <div> Now compiles with exceptions disabled (<a href="https://svn.boost.org/trac/boost/ticket/5399">#5399</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/range/">Range</a>:</span> <ul> <li> <div> <em>Bug fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5603">#5603</a> the &quot;range/any_range.hpp&quot; header is not self-sufficient </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6103">#6103</a> boost::range_detail vs. boost::range::range_detail compiler error </div> </li> </ul> </div> </li> <li> <div> <em>Documentation fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5160">#5160</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5314">#5314</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5440">#5440</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5775">#5775</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6212">#6212</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7585">#7585</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7843">#7843</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7916">#7916</a> </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7926">#7926</a> </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/ratio/">Ratio</a>:</span> <ul> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7616">#7616</a> br_mul::nan - warning C4293: '&lt;&lt;' : shift count negative or too big, undefined behavior`. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/">Regex</a>:</span> Fixed Issues: <a href="https://svn.boost.org/trac/boost/ticket/7744">#7744</a>, <a href="https://svn.boost.org/trac/boost/ticket/7644">#7644</a>. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span> <ul> <li> <div> <em>New Features:</em> <ul> <li> <div> Glen Fernandes provided implementations of make_shared and allocate_shared for arrays. They achieve a single allocation for an array that can be initialized with constructor arguments or initializer lists as well as overloads for default initialization and no value initialization. See the '<a href="http://www.boost.org/libs/smart_ptr/make_shared_array.html">make_shared and allocate_shared for arrays</a>' page for more information. </div> </li> <li> <div> <code><span class="identifier">shared_ptr</span></code> can now be used to hold a pointer to a dynamically allocated array. This is accomplished by using an array type (<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>) as the template parameter. </div> </li> <li> <div> Smart pointers now use <code><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="keyword">bool</span></code> on C++11 compilers. This can break code that passes a smart pointer to a function taking a <code><span class="keyword">bool</span></code>, or that returns a smart pointer from a function with a <code><span class="keyword">bool</span></code> return type. Please use <code><span class="identifier">p</span> <span class="special">!=</span> <span class="number">0</span></code> or <code><span class="special">!!</span><span class="identifier">p</span></code> in such cases. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/algorithm/string">StringAlgo</a>:</span> <ul> <li> <div> Fixed a bug where it wouldn't find overlapping patterns (<a href="https://svn.boost.org/trac/boost/ticket/7784">#7784</a>). </div> </li> <li> <div> Disambiguated some calls to insert (<a href="https://svn.boost.org/trac/boost/ticket/7346">#7346</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>Deprecated features:</em> <ul> <li> <div> Deprecated features since boost 1.53 will be available only until boost 1.58. </div> </li> <li> <div> C++11 compliance: packaged_task&lt;R&gt; is deprecated, use instead packaged_task&lt;R()&gt;. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7537">#7537</a> deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition </div> </li> </ul> </div> </li> <li> <div> <em>New Features:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6270">#6270</a> C++11 compliance: Add thread constructor from movable callable and movable arguments </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7279">#7279</a> C++11 compliance: Add noexcept in system related functions </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7280">#7280</a> C++11 compliance: Add promise::...at_thread_exit functions </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7281">#7281</a> C++11 compliance: Add ArgTypes to packaged_task template. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7282">#7282</a> C++11 compliance: Add packaged_task::make_ready_at_thread_exit function </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7412">#7412</a> C++11 compliance: Add async from movable callable and movable arguments </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7413">#7413</a> C++11 compliance: Add async when the launch policy is deferred. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7414">#7414</a> C++11 compliance: future::get post-condition should be valid()==false. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7422">#7422</a> Provide a condition variable with zero-overhead performance penality. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7444">#7444</a> Async: Add make_future/make_shared_future. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7540">#7540</a> Threads: Add a helper class that join a thread on destruction. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7541">#7541</a> Threads: Add a thread wrapper class that joins on destruction. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7575">#7575</a> C++11 compliance: A future created by async should &quot;join&quot; in the destructor. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7587">#7587</a> Synchro: Add strict_lock and nested_strict_lock. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7588">#7588</a> Synchro: Split the locks.hpp in several files to limit dependencies. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7590">#7590</a> Synchro: Add lockable concept checkers based on Boost.ConceptCheck. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7591">#7591</a> Add lockable traits that can be used with enable_if. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7592">#7592</a> Synchro: Add a null_mutex that is a no-op and that is a model of UpgardeLockable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7593">#7593</a> Synchro: Add a externally_locked class. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7590">#7594</a> Threads: Allow to disable thread interruptions. </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7464">#7464</a> BOOST_TEST(n_alive == 1); fails due to race condition in a regression test tool. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7657">#7657</a> Serious performance and memory consumption hit if condition_variable methods condition notify_one or notify_all is used repeatedly. </div> </li> <li> <div> <a href="https://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="https://svn.boost.org/trac/boost/ticket/7668">#7668</a> thread_group::join_all() should check whether its threads are joinable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7669">#7669</a> thread_group::join_all() should catch resource_deadlock_would_occur. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7671">#7671</a> Error including boost/thread.hpp header on iOS. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7672">#7672</a> lockable_traits.hpp syntax error: &quot;defined&quot; token misspelled. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7798">#7798</a> boost::future set_wait_callback thread safety issues. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7808">#7808</a> Incorrect description of effects for this_thread::sleep_for and this_thread::sleep_until. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7812">#7812</a> Returns: cv_status::no_timeout if the call is returning because the time period specified by rel_time has elapsed, cv_status::timeout otherwise. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7874">#7874</a> compile warning: thread.hpp:342: warning: type attributes are honored only at type definition. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7875">#7875</a> BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not be enabled by default. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7882">#7882</a> wrong exception text from condition_variable::wait(unique_lock&lt;mutex&gt;&amp;). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7890">#7890</a> thread::do_try_join_until() is missing a return type. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Remove support for the old pre-standard variadic pair constructors, and equality implementation. Both have been deprecated since Boost 1.48. </div> </li> <li> <div> More internal implementation changes, including a much simpler implementation of <code><span class="identifier">erase</span></code>, and removed more deprecated config macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/">Utility</a>:</span> <ul> <li> <div> Added <a href="http://www.boost.org/libs/utility/doc/html/string_ref.html">string_ref</a>, a non-owning reference to a contiguous sequence of characters. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/variant/">Variant</a>:</span> <ul> <li> <div> Added rvalue constructors and rvalue assignment operators (for C++11 compatible compilers only). Library now can be used with move-only types (<a href="https://svn.boost.org/trac/boost/ticket/7620">#7620</a>, <a href="https://svn.boost.org/trac/boost/ticket/7718">#7718</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> Accomodate recent smart pointer changes (<a href="https://svn.boost.org/trac/boost/ticket/7809">#7809</a>). </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_53_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/tools/build/index.html">Boost Build System</a>:</span> <ul> <li> <div> Qt5 toolset </div> </li> <li> <div> improved rcc support (<a href="https://svn.boost.org/trac/boost/ticket/7576">#7576</a>) </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_53_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> GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.2 </div> </li> <li> <div> Intel: 11.1, 12.1 </div> </li> <li> <div> LLVM Clang: 2.8 </div> </li> <li> <div> LLVM Clang, with libc++: 3.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> GCC: 4.4.7 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4 </div> </li> <li> <div> Intel: 11.1, 12.0 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 9.0, 10.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Cray: 4.6.1 </div> </li> <li> <div> Clang: from subversion </div> </li> <li> <div> LLVM Clang, with libc++: 3.2 </div> </li> <li> <div> GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2 </div> </li> <li> <div> pgCC: 11.9 </div> </li> <li> <div> Intel: 10.1, 11.1, 12.1 </div> </li> <li> <div> Intel, C++11 mode: 13.0.1 </div> </li> <li> <div> Visual Age: </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: from subversion </div> </li> <li> <div> Clang, C++11 mode: from subversion </div> </li> <li> <div> Intel: 11.1, 12.0 </div> </li> <li> <div> GCC: 4.4.7 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 10.0, 11.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition: V12.1.0.1 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_53_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.52.0http://www.boost.org/users/history/version_1_52_0.htmlhttp://www.boost.org/users/history/version_1_52_0.htmlMon, 5 Nov 2012 08:05:58 -0800 <div id="version_1_52_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> Fix long-standing dependency tracking bug, <a href="https://svn.boost.org/trac/boost/ticket/7409">#7409</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> Define <code><span class="identifier">BOOST_NO_SFINAE_EXPR</span></code> for gcc-4.4, since the support was found to be too buggy. </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>New Features:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5980">#5980</a> Enhance chrono I/O with H. Hinnant proposal <a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html">proposal</a> which has the advantage to provide I/O for system clocks using the Gregorian Calendar. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5981">#5981</a> Add i/o state savers for duration and time_point formatting state. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7059">#7059</a> Add low level i/o facilities. </div> </li> </ul> </div> </li> <li> <div> <em>Deprecated features:</em> <ul> <li> <div> The chrono i/o version included in Boost.Chrono 1.2.x has been completly refactored in version 2.0.0 </div> </li> <li> <div> chrono I/O: The manipulators <code><span class="identifier">__duration_short</span></code>, <code><span class="identifier">__duration_long</span></code> are depreceated. You should use the parameterized form <code><span class="identifier">__duration_fmt</span></code> or the renamed manipulators <code><span class="identifier">__duration_symbol</span></code> and <code><span class="identifier">__duration_prefix</span></code> instead. </div> </li> <li> <div> chrono I/O: The <code><span class="identifier">__duration_punct</span><span class="special">&lt;&gt;</span></code> facet is deprecated. You should use the <code><span class="identifier">__get_duration_style</span></code> free function to get the informations and use the <code><span class="identifier">__duration_units</span></code> facet for localization purposes. </div> </li> <li> <div> When <code><span class="identifier">BOOST_CHRONO_VERSION</span><span class="special">==</span><span class="number">2</span></code> the preceding deprecated functions are not available. </div> </li> </ul> </div> </li> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7381">#7381</a> C++11 compliance: unresolved symbol when assigning a constexpr duration to a non-const local variable. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7479">#7479</a> Compile fails with compilers supporting constexpr fails if the standard library doesn't provides the constexpr interface </div> </li> </ul> </div> </li> <li> <div> <em>Would not fix:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6871">#6871</a> chrono_io.hpp: <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">os</span><span class="special">,</span> <span class="special">...)</span></code> modifies the state of os. The neww io interface provided in version 2 solves this issue. You should move to the new version. </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> Improved <code><span class="identifier">stable_vector</span></code>'s template code bloat and type safety. </div> </li> <li> <div> Changed typedefs and reordered functions of sequence containers to improve doxygen documentation. </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/6615">#6615</a>, <a href="https://svn.boost.org/trac/boost/ticket/7139">#7139</a>, <a href="https://svn.boost.org/trac/boost/ticket/7215">#7215</a>, <a href="https://svn.boost.org/trac/boost/ticket/7232">#7232</a>, <a href="https://svn.boost.org/trac/boost/ticket/7269">#7269</a>, <a href="https://svn.boost.org/trac/boost/ticket/7439">#7439</a>. </div> </li> <li> <div> Implemented LWG Issue #149 (range insertion now returns an iterator) &amp; cleaned up insertion code in most containers </div> </li> <li> <div> Corrected aliasing errors. </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> Document <code><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/6077">#6077</a>). </div> </li> <li> <div> Fix <code><span class="identifier">nth_as_str</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/7022">#7022</a>). </div> </li> <li> <div> Fix some warnings (<a href="https://svn.boost.org/trac/boost/ticket/7234">#7234</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/foreach/">Foreach</a>:</span> <ul> <li> <div> Fix alignment warning on gcc. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/function/">Function</a>:</span> <ul> <li> <div> Move constructors and move assignment operators added (only for compilers with C++11 rvalue references support) <a href="https://svn.boost.org/trac/boost/ticket/7330">#7330</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/6950">#6950</a>, <a href="https://svn.boost.org/trac/boost/ticket/7226">#7226</a>,<a href="https://svn.boost.org/trac/boost/ticket/7308">#7308</a>, <a href="https://svn.boost.org/trac/boost/ticket/7327">#7327</a>, <a href="https://svn.boost.org/trac/boost/ticket/7338">#7338</a>, <a href="https://svn.boost.org/trac/boost/ticket/7341">#7341</a>, <a href="https://svn.boost.org/trac/boost/ticket/7378">#7378</a>, <a href="https://svn.boost.org/trac/boost/ticket/7380">#7380</a>, <a href="https://svn.boost.org/trac/boost/ticket/7398">#7398</a>, and <a href="https://svn.boost.org/trac/boost/ticket/7428">#7428</a>, plus others not in Trac. </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> Restore <code><span class="keyword">enum</span></code> support, which was accidentally removed in the last version (<a href="https://svn.boost.org/trac/boost/ticket/7437">#7437</a>). </div> </li> <li> <div> New floating point hasher - will hash the binary representation on more platforms, which should be faster. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/">Interprocess</a>:</span> <ul> <li> <div> Added <code><span class="identifier">shrink_by</span></code> and <code><span class="identifier">advise</span></code> functions in <code><span class="identifier">mapped_region</span></code>. </div> </li> <li> <div> <em>ABI breaking:</em> Reimplemented <code><span class="identifier">message_queue</span></code> with a circular buffer index (the old behavior used an ordered array, leading to excessive copies). This should greatly increase performance but breaks ABI. Old behaviour/ABI can be used undefining macro <code><span class="identifier">BOOST_INTERPROCESS_MSG_QUEUE_CIRCULAR_INDEX</span></code> in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interprocess</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</span></code> </div> </li> <li> <div> Improved <code><span class="identifier">message_queue</span></code> insertion time avoiding priority search for common cases (both array and circular buffer configurations). </div> </li> <li> <div> Implemented <code><span class="identifier">interproces_sharable_mutex</span></code> and <code><span class="identifier">interproces_condition_any</span></code>. </div> </li> <li> <div> Improved <code><span class="identifier">offset_ptr</span></code> performance. </div> </li> <li> <div> Added integer overflow checks. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> Fixed: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5825">#5825</a> constructing function_input_iterator without consuming an item </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7194">#7194</a> Error in documentation of make_function_input_iterator </div> </li> </ul> </div> </li> <li> <div> <em>Breaking changes:</em> <ul> <li> <div> Due to the fix for <a href="https://svn.boost.org/trac/boost/ticket/5825">#5825</a>, a function_input_iterator will no longer make unnecessary invokations to the wrapped nullary function. For example, constructing an end iterator will now not trigger an invokation; and dereferencing-and-incrementing an iterator N times will trigger N invokations, not N+1 as before. User code that relied on the old behavior will need to be adjusted. </div> </li> </ul> </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> Restored compilation on MSVC-2003 (was broken in 1.51.0) <a href="https://svn.boost.org/trac/boost/ticket/7255">#7255</a>. </div> </li> <li> <div> Added <code><span class="identifier">lexical_cast</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharType</span><span class="special">*</span> <span class="identifier">chars</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">)</span></code> function overload. <a href="https://svn.boost.org/trac/boost/ticket/6663">#6663</a>. </div> </li> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/7228">#7228</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 Airy functions and Jacobi Elliptic functions. </div> </li> <li> <div> In several distributions (particulary the Students T) corrected moments for small degrees of freedom <a href="https://svn.boost.org/trac/boost/ticket/7177">#7177</a> (reported by Thomas Mang). </div> </li> <li> <div> Corrected failure to detect bad parameters in many distributions <a href="https://svn.boost.org/trac/boost/ticket/6934">#6934</a> (reported by Florian Schoppmann) by adding a function <code><span class="identifier">check_out_of_range</span></code> to test many possible bad parameters. This test revealed several distributions where the checks for bad parameters were ineffective, and these have been rectified. </div> </li> <li> <div> Fixed issue in Hankel functions that causes incorrect values to be returned for <em>x &lt; 0</em> and <em>ν</em> odd, see <a href="https://svn.boost.org/trac/boost/ticket/7135">#7135</a>. </div> </li> <li> <div> In non-central T permitted infinite degrees of freedom <a href="https://svn.boost.org/trac/boost/ticket/7259">#7259</a> implemented using the normal distribution (requested by Thomas Mang). Also much enhanced accuracy for large degrees of freedom and/or large non-centrality parameters by switching to use the Students t distribution (or Normal distribution for infinite degrees of freedom) centered at delta, when delta / (4 * v) &lt; epsilon for the floating-point type in use. See <a href="https://svn.boost.org/trac/boost/ticket/7259">#7259</a>. It was also found that the incomplete beta was suffering from serious cancellation errors when degrees of freedom was very large. (That has now been fixed in our code, but any code based on Didonato and Morris's original papers (probably every implementation out there actually) will have the same issue). </div> </li> <li> <div> Fixed minor issues <a href="https://svn.boost.org/trac/boost/ticket/6517">#6517</a>, <a href="https://svn.boost.org/trac/boost/ticket/6362">#6362</a>, <a href="https://svn.boost.org/trac/boost/ticket/7053">#7053</a>, <a href="https://svn.boost.org/trac/boost/ticket/2693">#2693</a>, <a href="https://svn.boost.org/trac/boost/ticket/6937">#6937</a>, <a href="https://svn.boost.org/trac/boost/ticket/7099">#7099</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/phoenix/">Phoenix</a>:</span> <ul> <li> <div> Make Phoenix work with <code><span class="identifier">decltype</span></code>-based <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/polygon/">Polygon</a>:</span> <ul> <li> <div> Included Voronoi diagram extensions. </div> </li> <li> <div> Introduced new Segment concept. </div> </li> <li> <div> Fixed compilation issues. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/proto/">Proto</a>:</span> <ul> <li> <div> The data parameter to primitive transforms can now optionally have slots indexed by key. </div> </li> <li> <div> Primitive transforms can now operatate on temporary expressions that are non-const qualified. </div> </li> <li> <div> Add callable function object types for the free functions in <code><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code> and also for some Boost.Range functions. </div> </li> <li> <div> Boost.MPL algorithms work on Proto expression nodes. </div> </li> <li> <div> <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">pass_through</span></code> primitive transform now accepts an optional <code><span class="identifier">Domain</span></code> template parameter for specifying the target domain of the resulting expression. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/ratio/">Ratio</a>:</span> <ul> <li> <div> <em>Features:</em> <ul> <li> <div> Replace the <code><span class="identifier">short_name</span></code> and <code><span class="identifier">long_name</span></code> functions by symbol and prefix functions respectively. </div> </li> </ul> </div> </li> <li> <div> <em>Deprecated:</em> <ul> <li> <div> The <code><span class="identifier">ratio_string</span><span class="special">&lt;&gt;::</span><span class="identifier">short_name</span></code> and <code><span class="identifier">ratio_string</span><span class="special">&lt;&gt;::</span><span class="identifier">long_name</span></code> are deprecated. Use <code><span class="identifier">ratio_string</span><span class="special">&lt;&gt;::</span><span class="identifier">symbol</span></code> and <code><span class="identifier">ratio_string</span><span class="special">&lt;&gt;::</span><span class="identifier">prefix</span></code> respectively. These functions be removed in 1.55. </div> </li> </ul> </div> </li> <li> <div> <em>Fixes:</em> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/7478">#7478</a> Compiles fails with compilers supporting char16_t and char32_t fails if the library doesn't provides std::u16string and std::u32string. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/utility.htm#result_of">Result_of</a>:</span> <ul> <li> <div> Switch <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code> to use <code><span class="identifier">decltype</span></code> on compilers for which support is deemed &quot;good enough&quot;. That means if the compiler implements <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf">n3276</a>. (For now, that only includes very recent versions of clang.) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code> is now &quot;sfinae-friendly&quot; when it uses <code><span class="identifier">decltype</span></code>. See <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3436.html">n3436</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread/index.html">Thread</a>:</span> <ul> <li> <div> <em>Deprecated Features</em>: Deprecated features since boost 1.50 available only until boost 1.55. These deprecated features will be provided by default up to boost 1.52. If you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. Since 1.53 these features will not be included any more by default. Since this version, if you want to include the deprecated features yet you could define BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features will be only available until boost 1.55, that is you have yet 1 year to move to the new features. <ul> <li> <div> Time related functions don't using the Boost.Chrono library, use the chrono overloads instead. </div> </li> </ul> </div> </li> <li> <div> Breaking changes when <code><span class="identifier">BOOST_THREAD_VERSION</span><span class="special">==</span><span class="number">3</span></code> (Default value since Boost 1.53): There are some new features which share the same interface but with different behavior. These breaking features are provided by default when BOOST_THREAD_VERSION is 3, but the user can however choose the version 2 behavior by defining the corresponding macro. As for the deprecated features, these broken features will be only available until boost 1.55. <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6229">#6229</a> C++11 compliance &amp; Breaking change: Rename the unique_future to future following the c++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6266">#6266</a> C++11 compliance &amp; Breaking change: thread destructor should call terminate if joinable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6269">#6269</a> C++11 compliance &amp; Breaking change: thread move assignment should call terminate if joinable. </div> </li> </ul> </div> </li> <li> <div> <em>New Features:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4710">#4710</a> C++11 compliance: Missing <code><span class="identifier">async</span><span class="special">()</span></code>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7283">#7283</a> C++11 compliance: Add <code><span class="identifier">notify_all_at_thread_exit</span></code>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7345">#7345</a> C++11 compliance: Add <code><span class="identifier">noexcept</span></code> to recursive mutex <code><span class="identifier">try_lock</span></code>. </div> </li> </ul> </div> </li> <li> <div> <em>Fixed Bugs:</em> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2361">#2361</a> <code><span class="identifier">thread_specific_ptr</span></code>: document nature of the key, complexity and rationale. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2797">#2797</a> Two problems with <code><span class="identifier">thread_specific_ptr</span></code>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5274">#5274</a> failed to compile <code><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span></code> with stlport 5.1.5 under msvc8.1, because of undefined class. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5431">#5431</a> compile error in Windows CE 6.0(interlocked). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5752">#5752</a> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span><span class="special">()</span></code> is unreliable on some platforms. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7045">#7045</a> Thread library does not automatically compile date_time. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7173">#7173</a> wrong function name <code><span class="identifier">interrupt_point</span><span class="special">()</span></code>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7200">#7200</a> Unable to build boost.thread modularized. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7220">#7220</a> gcc 4.6.2 warns about inline+dllimport functions. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7238">#7238</a> <code><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">sleep_for</span><span class="special">()</span></code> does not respond to interrupt(). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7245">#7245</a> Minor typos on documentation related to version 3. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7272">#7272</a> <code><span class="identifier">win32</span><span class="special">/</span><span class="identifier">thread_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>: (Unneccessary) Warning. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7284">#7284</a> Clarify that there is no access priority between lock and shared_lock on shared mutex. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7329">#7329</a> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">thread</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span></code> does not compile on HPUX. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7336">#7336</a> <code><span class="identifier">BOOST_THREAD_DONT_USE_SYSTEM</span></code> doesn't work. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7349">#7349</a> <code><span class="identifier">packaged_task</span></code> holds reference to temporary. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7350">#7350</a> <code><span class="identifier">allocator_destructor</span></code> does not destroy object </div> </li> </ul> </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> improved performance of inplace_solve (issue <a href="https://svn.boost.org/trac/boost/ticket/4024">#4024</a>) </div> </li> <li> <div> fixed coordinate_matrix for use with gcc 4.7 (issue <a href="https://svn.boost.org/trac/boost/ticket/7363">#7363</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> In assignment, reuse existing nodes where possible. </div> </li> <li> <div> Fix bugs when erasing ranges (<a href="https://svn.boost.org/trac/boost/ticket/7471">#7471</a>). </div> </li> <li> <div> Some work on the implementation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> Fixes <a href="https://svn.boost.org/trac/boost/ticket/6118">#6118</a>, <a href="https://svn.boost.org/trac/boost/ticket/6788">#6788</a>, <a href="https://svn.boost.org/trac/boost/ticket/7375">#7375</a>. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7128">#7128</a> - fixed bug in <code><span class="identifier">sha1</span><span class="special">.</span><span class="identifier">hpp</span></code> for messages longer than 536,870,912 bytes. </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> Make <code><span class="identifier">sub_match</span></code> work with Boost.Range. Fixes <a href="https://svn.boost.org/trac/boost/ticket/7237">#7237</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_52_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> GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7.2 </div> </li> <li> <div> GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2 </div> </li> <li> <div> Intel: 11.1, 12.0, 12.1 </div> </li> <li> <div> LLVM Clang: 2.8 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4 </div> </li> <li> <div> Intel: 11.1, 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.0 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Cray: 8.0 </div> </li> <li> <div> Clang: from subversion </div> </li> <li> <div> LLVM Clang: </div> </li> <li> <div> GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1, 4.7.2 </div> </li> <li> <div> GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1 </div> </li> <li> <div> pgCC: 11.9 </div> </li> <li> <div> Intel: 10.1, 11.1, 12.0, 12.1 </div> </li> <li> <div> Visual Age: 10.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: from subversion </div> </li> <li> <div> Clang, C++11 mode: from subversion </div> </li> <li> <div> Intel: 11.1, 12.0 </div> </li> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++11 mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 8.0, 9.0, 10.0, 11.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition: V12.1.0.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1, 64 bit </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun: 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_52_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.51.0https://www.boost.org/users/history/version_1_51_0.htmlhttp://www.boost.org/users/history/version_1_51_0.htmlMon, 20 Aug 2012 16:00:21 -0700 <div id="version_1_51_0.patches"> <h3><span class="link">Patches</span></h3> <ul> <li> <div> <a href="http://cppcms.com/files/locale/boost_locale_utf.patch">Locale Patch</a> - Fixes a bug which causes <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">utf</span><span class="special">::</span><span class="identifier">utf_traits</span></code> to accept some invalid UTF-8 sequences, which is a possible security flaw. </div> </li> </ul> </div> <div id="version_1_51_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span> Context switching library, from Oliver Kowalke. </div> </li> </ul> </div> <div id="version_1_51_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/algorithm/">Algorithm</a>:</span> <ul> <li> <div> Fixed <code><span class="identifier">is_sorted_until</span></code> ; now matches the c++11 standard behavior on ranges with duplicate values. </div> </li> <li> <div> Added range support for the rest of the search algorithms. </div> </li> <li> <div> <code><span class="identifier">unhex</span></code> now uses Boost.Exception to signal bad input. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Fixed an incompatibility between <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">iostream</span></code> and C++11 (<a href="https://svn.boost.org/trac/boost/ticket/7162">#7162</a>). </div> </li> <li> <div> Decorated GCC attribute names with underscores to prevent interaction with user-defined macros (<a href="https://svn.boost.org/trac/boost/ticket/6415">#6415</a>). </div> </li> <li> <div> Added missing <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cctype</span><span class="special">&gt;</span></code>, needed for some versions of MinGW. </div> </li> <li> <div> Changed to use <tt>gcc</tt>'s atomic builtins on ARM CPUs, when available (<a href="https://svn.boost.org/trac/boost/ticket/7140">#7140</a>). </div> </li> <li> <div> Changed strand destruction to be a no-op, to allow strand objects to be destroyed after their associated <code><span class="identifier">io_service</span></code> has been destroyed. </div> </li> <li> <div> Added support for some newer versions of glibc which provide the <code><span class="identifier">epoll_create1</span><span class="special">()</span></code> function but always fail with <code><span class="identifier">ENOSYS</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/7012">#7012</a>). </div> </li> <li> <div> Changed the SSL implementation to throw an exception if SSL engine initialisation fails (<a href="https://svn.boost.org/trac/boost/ticket/6303">#6303</a>). </div> </li> <li> <div> Fixed another regression in <code><span class="identifier">buffered_write_stream</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/6310">#6310</a>). </div> </li> <li> <div> Implemented various minor performance improvements, primarily targeted at Linux x86 and x86-64 platforms. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span> <ul> <li> <div> Deprecated a whole bunch of macros that were c++11 specific, but not named to show that they were c++11 specific. Made new macros with better names, and paired the old macros with the new ones. Updated the documentation to list the deprecated macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span> <ul> <li> <div> <a href="https://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="https://svn.boost.org/trac/boost/ticket/6241">#6241</a> boost::chrono compilation problems without std::wstring support. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6987">#6987</a> Documentation &amp; C++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7041">#7041</a> time_point.hpp depends on Boost.System. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7042">#7042</a> Avoiding time_point and duration dependency on time.h and CLOCK_REALTIME. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7058">#7058</a> Make it work when BOOST_NO_EXCEPTIONS is defined. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7069">#7069</a> Misspellings in clock_string&lt;thread_clock&gt;. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7081">#7081</a> WinError.h capitalization in boost/detail/win/basic_types.hpp. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> points accessed through a pointer (e.g. in a linestring) should now be specialized without the pointer. In previous versions a type <code><span class="identifier">my_point</span></code> used like <code><span class="identifier">linestring</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">*&gt;</span></code> had to be specalized like: <code><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">tag</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">*&gt;</span></code>. Now the library itself removes the pointer before calling the traits class, so now it should be like: <code><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">tag</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">&gt;</span></code> </div> </li> <li> <div> intersection was sometimes wrong for integer points, fixed </div> </li> <li> <div> documentation, order of parameters in simplify was wrong, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7030">7030</a> spherical distance, fixed (by patch of Karsten Ahnert) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Refactored support for internal and bundled properties in Boost.Graph-provided graph types, and cleaned up named parameter functionality: <ul> <li> <div> Enabled old-style (non-bundled) internal properties in <code><span class="identifier">compressed_sparse_row_graph</span></code>. </div> </li> <li> <div> Bundled properties should work correctly for all graph types and adaptors. </div> </li> </ul> </div> </li> <li> <div> Bugs fixed: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6993">#6993</a>: Typo Bundled Properties document </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7002">#7002</a>: Problem with initialization of CSR bidirectional graph </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7023">#7023</a>: Enclose internal type graphml_reader in anonymous namespace </div> </li> <li> <div> Other bugs and warnings not in Trac </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Support the standard smart pointers. </div> </li> <li> <div> <code><span class="identifier">hash_value</span></code> now implemented using SFINAE to avoid implicit casts to built in types when calling it. </div> </li> <li> <div> Updated to use the new config macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/lexical_cast.htm">Lexical cast</a>:</span> <ul> <li> <div> Better performance, less memory usage for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> conversions. </div> </li> <li> <div> Fixed bug with volatile input parameter <a href="https://svn.boost.org/trac/boost/ticket/7157">#7157</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Updated to use the new config macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/msm/">MSM</a>:</span> <ul> <li> <div> Support for boost::any <a href="https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s03.html#any-event">https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s03.html#any-event</a> or kleene <a href="https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html#kleene-event">https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html#kleene-event</a> as acceptable events </div> </li> <li> <div> Bugfix: compiler error with fsm internal table and none (compound) event. </div> </li> <li> <div> Bugfix: euml::defer_ leading to stack overflow. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/proto/">Proto</a>:</span> <ul> <li> <div> Proto transforms get pseudo-parameter pack expansion support for unpacking expressions. See the <a href="https://www.boost.org/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_51">Release Notes</a> for more information. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7075">#7075</a> Workaround for error: the type of partial specialization template parameter constant "n1" depends on another template parameter. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Updated to use the new config macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4258">#4258</a> Linking with boost thread does not work on mingw/gcc 4.5. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4885">#4885</a> Access violation in set_tss_data at process exit due to invalid assumption about TlsAlloc. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6931">#6931</a> mutex waits forwever with Intel Compiler and /debug:parallel </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7044">#7044</a> boost 1.50.0 header missing. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7052">#7052</a> Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only masks thread::operator==, thread::operator!= forward declarations, not definitions. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7066">#7066</a> An attempt to fix current_thread_tls_key static initialization order. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7074">#7074</a> Multiply defined symbol boost::allocator_arg. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7078">#7078</a> Trivial 64-bit warning fix on Windows for thread attribute stack size </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/7089">#7089</a> BOOST_THREAD_WAIT_BUG limits functionality without solving anything </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Fix construction/destruction issue when using a C++11 compiler with a C++03 allocator (<a href="https://svn.boost.org/trac/boost/ticket/7100">#7100</a>). </div> </li> <li> <div> Remove a <code><span class="keyword">try</span><span class="special">..</span><span class="keyword">catch</span></code> to support compiling without exceptions. </div> </li> <li> <div> Adjust SFINAE use to try to supprt g++ 3.4 (<a href="https://svn.boost.org/trac/boost/ticket/7175">#7175</a>). </div> </li> <li> <div> Updated to use the new config macros. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> <ul> <li> <div> See the <a href="https://www.boost.org/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/xpressive/">xpressive</a>:</span> <ul> <li> <div> Work around buggy wide ctype facet on cygwin and mingw. </div> </li> <li> <div> Work around absence of __isctype on some glibc implementations. </div> </li> <li> <div> <code><span class="identifier">op</span><span class="special">::</span><span class="identifier">as</span></code> shouldn't assume <code><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span></code> != <code><span class="keyword">char</span><span class="special">*</span></code>. </div> </li> <li> <div> Fix assertion in <code><span class="identifier">cpp_regex_traits</span></code> on libc++, thanks to John Fletcher. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_51_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> GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7 </div> </li> <li> <div> GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2 </div> </li> <li> <div> Intel: 11.1, 12.0, 12.1 </div> </li> <li> <div> LLVM Clang 2.8 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> GCC: 4.4 </div> </li> <li> <div> GCC, C++11 mode: 4.4 </div> </li> <li> <div> Intel: 11.1, 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 </div> </li> <li> <div> Visual C++: 8.0, 9.0, 10.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang: from subversion </div> </li> <li> <div> LLVM Clang: 3.0 </div> </li> <li> <div> GCC: 4.2.4, 4.3.4, 4.4.4, 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1 </div> </li> <li> <div> GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3 </div> </li> <li> <div> pgCC: 11.9 </div> </li> <li> <div> Intel: 10.1, 11.1, 12.0, 12.1 </div> </li> <li> <div> Visual Age: 10.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang: from subversion </div> </li> <li> <div> Clang, C++11 mode: from subversion </div> </li> <li> <div> Intel: 11.1, 12.0 </div> </li> <li> <div> GCC: 4.4 </div> </li> <li> <div> GCC, C++11 mode: 4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++: 8.0, 9.0, 10.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.6.3, 4.7.0 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition: V12.1.0.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC: 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun: 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_51_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.50.0https://www.boost.org/users/history/version_1_50_0.htmlhttp://www.boost.org/users/history/version_1_50_0.htmlThu, 28 Jun 2012 08:48:57 -0400 <div id="version_1_50_0.patches"> <h3><span class="link">Patches</span></h3> <ul> <li> <div> <a href="https://www.boost.org/patches/1_50_0/001-unordered.patch">Boost.Unordered patch</a> - Fixes a bug when compiled using a C++11 compiler, but with a C++03 allocator. When inserting elements, <code><span class="identifier">allocator_traits</span></code> detects that the node can be constructed using an accidental implicit conversion which causes several problems. </div> </li> <li> <div> <a href="http://cppcms.com/files/locale/boost_locale_utf.patch">Locale Patch</a> - Fixes a bug which causes <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">utf</span><span class="special">::</span><span class="identifier">utf_traits</span></code> to accept some invalid UTF-8 sequences, which is a possible security flaw. </div> </li> </ul> </div> <div id="version_1_50_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/algorithm/">Algorithm</a>:</span> A collection of useful generic algorithms, from Marshall Clow. This includes several different searching algorithms, as well as most of the new algorithms from the C++11 standard library </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/overloaded_function/">Functional/OverloadedFunction</a>:</span> Overload different functions into a single function object, from Lorenzo Caminiti. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/local_function/">LocalFunction</a>:</span> Program functions locally, within other functions, directly within the scope where they are needed, from Lorenzo Caminiti. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/utility/identity_type/">Utility/IdentityType</a>:</span> Wrap types within round parenthesis so they can always be passed as macro parameters, from Lorenzo Caminiti. </div> </li> </ul> </div> <div id="version_1_50_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/libs/accumulators/">Accumulators</a>:</span> <ul> <li> <div> add missing <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">throw_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, fixes <a href="https://svn.boost.org/trac/boost/ticket/6702">#6702</a>. </div> </li> <li> <div> work around for msvc which allows ctor templates to be copy ctors, fixes <a href="https://svn.boost.org/trac/boost/ticket/6535">#6535</a>. </div> </li> <li> <div> shorten filenames to meet boost guidelines, fixes <a href="https://svn.boost.org/trac/boost/ticket/6196">#6196</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> <ul> <li> <div> add support for Boost.Hash <a href="https://svn.boost.org/trac/boost/ticket/6791">#6791</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> <ul> <li> <div> Changed the <code><span class="identifier">epoll_reactor</span></code> backend to do lazy registration for <code><span class="identifier">EPOLLOUT</span></code> events. </div> </li> <li> <div> Fixed the <code><span class="identifier">epoll_reactor</span></code> handling of out-of-band data, which was broken by an incomplete fix in the last release. </div> </li> <li> <div> Changed Asio's SSL wrapper to respect OpenSSL's <code><span class="identifier">OPENSSL_NO_ENGINE</span></code> feature test <code><span class="preprocessor">#define</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/6432">#6432</a>). </div> </li> <li> <div> Fixed <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">object_handle</span></code> so that it works with Windows compilers that support C++11 move semantics (such as <tt>g++</tt>). </div> </li> <li> <div> Improved the performance of strand rescheduling. </div> </li> <li> <div> Added support for <tt>g++</tt> 4.7 when compiling in C++11 mode (<a href="https://svn.boost.org/trac/boost/ticket/6620">#6620</a>). </div> </li> <li> <div> Fixed a problem where <code><span class="identifier">signal_set</span></code> handlers were not being delivered when the <code><span class="identifier">io_service</span></code> was constructed with a <code><span class="identifier">concurrency_hint</span></code> of 1 (<a href="https://svn.boost.org/trac/boost/ticket/6657">#6657</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/bimap/">Bimap</a>:</span> <ul> <li> <div> Remove spurious dependency on Boost.Serialization, fixes <a href="https://svn.boost.org/trac/boost/ticket/3868">#3868</a>. </div> </li> <li> <div> Solve unused constructor parameter warning, fixes <a href="https://svn.boost.org/trac/boost/ticket/5749">#5749</a>. </div> </li> <li> <div> Add key_type and mapped_type (leaving data_type for backward compatibility) typedefs to map views, fixes <a href="https://svn.boost.org/trac/boost/ticket/6031">#6031</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6361">#6361</a> integer overflow in boost::chrono::process_real_cpu_clock::now() under Windows 32bits. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6628">#6628</a> compiler warning in process_cpu_clocks.hpp. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6666">#6666</a> thread_clock.hpp needs pthread.h. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/concept_check/">Concept Check</a>:</span> <ul> <li> <div> Fixed: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6738">#6738</a> Shadowed variable warning. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Remove Filesystem Version 2 from the distribution. Version 3 is now the only distributed version. Those still using V2 are urged to migrate to V3 as soon as possible. </div> </li> <li> <div> Add constexpr value_type preferred_separator to class path. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5118">#5118</a>, <code><span class="identifier">replace_extension</span></code> doesn't work as specified in documentation. The documentation, implementation, and test cases have all had fixes applied. The documentation had failed to mention that any existing extension is removed. The behavior for simple cases has been reverted to the Version 2 behavior, but with corrections so that complex replacements now work. Two test cases from <a href="https://svn.boost.org/trac/boost/ticket/5118">#5118</a> have been added. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/3737">#3737</a>, Boost.Filesystem does not compile on Windows Mobile. On Windows, <code><span class="special">&lt;</span><span class="identifier">sys</span><span class="special">/</span><span class="identifier">stat</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> is no longer included. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/4065">#4065</a>, Boost Filesystem lexicographic path comparison inconsistent. This required multiple source code bug fixes and code cleanup, correcting problems not related to lexicographical issues. </div> </li> <li> <div> Add class path member function compare for consistency with std::string. </div> </li> <li> <div> Tighten <code><span class="identifier">BOOST_FILESYSTEM_DYN_LINK</span></code> and <code><span class="identifier">BOOST_FILESYSTEM_STATIC_LINK</span></code> logic in <code><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> so that one or the other is always defined, and both being defined is a <code><span class="preprocessor">#error</span></code>. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/6690">#6690</a> and <a href="https://svn.boost.org/trac/boost/ticket/6737">#6737</a>, resolving static linking related problems with VC++ 8 through 11. Note that this fix may reintroduce codecvt thread safety problems <a href="https://svn.boost.org/trac/boost/ticket/4889">#4889</a>, <a href="https://svn.boost.org/trac/boost/ticket/6320">#6320</a>, for these compilers if static linking is used. </div> </li> <li> <div> Add <code><span class="identifier">path</span><span class="special">::</span><span class="keyword">operator</span><span class="special">+=</span></code> and concat functions to tack on things like suffixes or numbers. Suggested by Ed Smith-Rowland and others. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/6809">#6809</a>, Implementation of <code><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">rename</span><span class="special">()</span></code> method for MS Windows is wrong, by adding <code><span class="identifier">MOVEFILE_COPY_ALLOWED</span></code> to deal with renames across drives, volumes, file systems. Fix has no effect on non-Windows systems. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/6819">#6819</a>, A path operand with a source that was a one character array was treated as empty, even if it wasn't empty. Such arrays can occur in unions or in code using C variable length array idioms. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/6932">#6932</a>, create_directories throws exception even if <code><span class="identifier">error_code</span></code> is specified. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/foreach/">Foreach</a>:</span> <ul> <li> <div> Revert fix for <a href="https://svn.boost.org/trac/boost/ticket/6131">#6131</a> which caused more harm than good. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> the return type of comparable projected point strategy for integer points was wrong (integer), fixed </div> </li> <li> <div> several robustness issues in intersection of segments and polygons, fixed </div> </li> <li> <div> invalid intersection output is filtered out </div> </li> <li> <div> disjoint for multi_polygon's might incorrectly return true, fixed </div> </li> </ul> </div> </li> <li> <div> Solved tickets <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6585">6585</a> patch for alternative syntax multipoint, applied </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6584">6584</a> patch for bug in distance, applied </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5730">5730</a> same issue as 6584, fixed </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6166">6166</a> patch for missing transformation, applied </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6696">6696</a> invalid intersection output, was (by chance) already fixed in Trunk before reported </div> </li> </ul> </div> </li> <li> <div> Additional functionality <ul> <li> <div> added algorithm "touches" (OGC SF compliant) for *polygon/*polygon </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4622">#4622</a> clear_vertex on a vertex with a self-loop can cause a segmentation fault. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6033">#6033</a> Lowpoint map calculated by biconnected_components(...) is sometimes wrong. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6242">#6242</a> isomorphism doesn't reset mapping. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6435">#6435</a> cube_topology documentation should say 3D, not 2D. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6520">#6520</a> small_world_1_70_6_0p02.png is broken in documentation of graph_parallel. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6564">#6564</a> BGL copy constructor for subgraph does not track local vertices/edges. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6573">#6573</a> BGL: boost::isomorphism routine fails with large graphs. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6583">#6583</a> Dijkstra Visitor Concept docs probably show wrong type for variable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6647">#6647</a> BGL strong_components do not compile on MSVC 8. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6656">#6656</a> Dependent type in subgraph used without typename. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6707">#6707</a> is_straight_line_drawing.hpp missing #include &lt;map&gt;. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6708">#6708</a> Make bool boost::intersects() in is_straight_line_drawing.hpp inline? </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6739">#6739</a> Cannot use write_graphviz_dp with a constified subgraph. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6858">#6858</a> boost::get() calls wrongly resolved by g++. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6892">#6892</a> VertexIndexGraph concept not required for bron_kerbosch_all_cliques(). </div> </li> <li> <div> Other bugs and warnings not in Trac. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/functional/hash/">Hash</a>:</span> <ul> <li> <div> Support <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> when available (<a href="https://svn.boost.org/trac/boost/ticket/6806">#6806</a>). </div> </li> <li> <div> Avoid gcc's <code><span class="special">-</span><span class="identifier">Wfloat</span><span class="special">-</span><span class="identifier">equal</span></code> warning (<a href="https://svn.boost.org/trac/boost/ticket/6771">#6771</a>). </div> </li> <li> <div> Add deprecation warning to the long deprecated <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">container_fwd</span><span class="special">.</span><span class="identifier">hpp</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iostreams/">Iostreams</a>:</span> <ul> <li> <div> Improved gzip support (<a href="https://svn.boost.org/trac/boost/ticket/5908">#5908</a>). </div> </li> <li> <div> Update tests for latest Boost.Filesystem and Boost.Test. </div> </li> <li> <div> Fix some documentation errors (<a href="https://svn.boost.org/trac/boost/ticket/6530">#6530</a>, <a href="https://svn.boost.org/trac/boost/ticket/6650">#6650</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> Fixed: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5127">#5127</a> Incorrect result_of usage in transform_iterator </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5697">#5697</a> iterator_facade::operator-&gt; is broken for proxy references </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/multi_array/">MultiArray</a>:</span> <ul> <li> <div> Concepts bug fix and Workaround for Visual Studio 2010 (<a href="https://svn.boost.org/trac/boost/ticket/4874">#4874</a>) </div> </li> <li> <div> Fix to assert.cpp test case (<a href="https://svn.boost.org/trac/boost/changeset/78498">Patch</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/conversion/lexical_cast.htm">Lexical cast</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span></code> exception is now globaly visible and can be catched even if code is compiled with -fvisibility=hidden </div> </li> <li> <div> Now it is possible to compile and use library with disabled exceptions <a href="https://svn.boost.org/trac/boost/ticket/5800">#5800</a> </div> </li> <li> <div> Better performance, less memory usage and bugfixes for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">*&gt;</span></code> conversions </div> </li> <li> <div> Fixed bugs and warnings: <a href="https://svn.boost.org/trac/boost/ticket/6645">#6645</a>, <a href="https://svn.boost.org/trac/boost/ticket/6562">#6562</a>, <a href="https://svn.boost.org/trac/boost/ticket/6812">#6812</a>, <a href="https://svn.boost.org/trac/boost/ticket/6852">#6852</a>, <a href="https://svn.boost.org/trac/boost/ticket/6717">#6717</a>, <a href="https://svn.boost.org/trac/boost/ticket/6670">#6770</a>, <a href="https://svn.boost.org/trac/boost/ticket/6504">#6504</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> Fixed build issues with STLPort library </div> </li> <li> <div> Boost.System is now required depenency </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/6635">#6635</a>, <a href="https://svn.boost.org/trac/boost/ticket/6833">#6833</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> <ul> <li> <div> Promoted math constants to be 1st class citizens, including convenient access to the most widely used built-in float, double, long double via three namespaces. </div> </li> <li> <div> Added the Owen's T function and Skew Normal distribution written by Benjamin Sobotta. </div> </li> <li> <div> Added Hankel functions. </div> </li> <li> <div> Corrected issue <a href="https://svn.boost.org/trac/boost/ticket/6627">#6627 nonfinite_num_put formatting of 0.0 is incorrect</a> based on a patch submitted by K R Walker. </div> </li> <li> <div> Changed constant initialization mechanism so that it is thread safe even for user-defined types, also so that user defined types get the full precision of the constant, even when <code><span class="keyword">long</span> <span class="keyword">double</span></code> does not. So for example 128-bit rational approximations will work with UDT's and do the right thing, even though <code><span class="keyword">long</span> <span class="keyword">double</span></code> may be only 64 or 80 bits. </div> </li> <li> <div> Fixed issue in <code><span class="identifier">bessel_jy</span></code> which causes Y[sub 8.5](4[pi]) to yield a NaN. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/msm/">MSM</a>:</span> <ul> <li> <div> eUML : better syntax for front-ends defined with eUML as transition table only. Caution: Breaking Change!<a href="https://www.boost.org/doc/libs/1_50_0/libs/msm/doc/HTML/ch03s04.html#eUML-composite-table">https://www.boost.org/doc/libs/1_50_0/libs/msm/doc/HTML/ch03s04.html#eUML-composite-table</a> </div> </li> <li> <div> Bugfix: graph building was only working if initial_state defined as a sequence. </div> </li> <li> <div> Bugfix: flags defined for a Terminate or Interrupt state do not break the blocking function of these states any more. </div> </li> <li> <div> Bugfix: multiple deferred events from several regions were not working in every case. </div> </li> <li> <div> Bugfix: visitor was passed by value to submachines. </div> </li> <li> <div> Bugfix: no_transition was not called for submachines who send an event to themselves. </div> </li> <li> <div> Fixed warnings with gcc. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/program_options/">Program Options</a>:</span> <ul> <li> <div> Improved error reporting (<a href="https://svn.boost.org/trac/boost/changeset/77827">Patch from Leo Goodstadt</a>). </div> </li> <li> <div> Support for customizing name of option's value in help messages (<a href="https://svn.boost.org/trac/boost/ticket/4781">#4781</a>) </div> </li> <li> <div> Fixed compilation with gcc 4.7 (<a href="https://svn.boost.org/trac/boost/ticket/6790">#6790</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/property_map/">PropertyMap</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6539">#6539</a> the return type of get() is not documented correctly. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6721">#6721</a> property_map_traits documentation does not mention reference. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/proto/">Proto</a>:</span> <ul> <li> <div> Use <code><span class="keyword">decltype</span></code>-based <code><span class="identifier">result_of</span></code> if and only if the compiler implements N3276. </div> </li> <li> <div> For C++11, force parameter to <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">eval_if_c</span></code> and <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span></code> to be <code><span class="keyword">bool</span></code>. </div> </li> <li> <div> Disable <tt>'__forceinline not inlined'</tt> warning on msvc. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6498">#6498</a> boost::ratio won't compile with default settings. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/scope_exit/">ScopeExit</a>:</span> <ul> <li> <div> New Features: <ul> <li> <div> Use variadic macros to specify captures as commas-separated lists (but kept preprocessor sequence syntax for backward compatibility). </div> </li> <li> <div> Capture the object in scope using <code><span class="identifier">this_</span></code>. </div> </li> <li> <div> Support empty captures using <code><span class="keyword">void</span></code>. </div> </li> <li> <div> Implicit lambda-like captures using <code><span class="identifier">BOOST_SCOPE_EXIT_ALL</span></code> on compilers that support C++11 lambda functions. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span> <ul> <li> <div> New Features: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/1850">#1850</a> Request for unlock_guard to compliment lock_guard. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2637">#2637</a> Request for shared_mutex duration timed_lock and timed_lock_shared. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2741">#2741</a> Proposal to manage portable and non portable thread attributes. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3567">#3567</a> Request for shared_lock_guard. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6194">#6194</a> Adapt to Boost.Move. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6195">#6195</a> c++11 compliance: Provide the standard time related interface using Boost.Chrono. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6217">#6217</a> Enhance Boost.Thread shared mutex interface following Howard Hinnant proposal. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6224">#6224</a> c++11 compliance: Add the use of standard noexcept on compilers supporting them. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6226">#6226</a> c++11 compliance: Add explicit bool conversion from locks. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6228">#6228</a> Add promise constructor with allocator following the standard c++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6230">#6230</a> c++11 compliance: Follows the exception reporting mechanism as defined in the c++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6266">#6266</a> Breaking change: thread destructor should call terminate if joinable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6269">#6269</a> Breaking change: thread move assignment should call terminate if joinable. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6272">#6272</a> c++11 compliance: Add thread::id hash specialization. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6273">#6273</a> c++11 compliance: Add cv_status enum class and use it on the conditions wait functions. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6231">#6231</a> Add BasicLockable requirements in the documentation to follow c++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6342">#6342</a> c++11 compliance: Adapt the one_flag to the c++11 interface. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6671">#6671</a> upgrade_lock: missing mutex and release functions. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6672">#6672</a> upgrade_lock:: missing constructors from time related types. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6675">#6675</a> upgrade_lock:: missing non-member swap. </div> </li> <li> <div> Added missing packaged_task::result_type and packaged_task:: constructor with allocator. </div> </li> <li> <div> Added packaged_task::reset() </div> </li> </ul> </div> </li> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/2575">#2575</a> Bug- Boost 1.36.0 on Itanium platform. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4345">#4345</a> thread::id and joining problem with cascade of threads. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4921">#4921</a> BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be documented. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5013">#5013</a> documentation: boost::thread: pthreas_exit causes terminate(). </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5173">#5173</a> boost::this_thread::get_id is very slow. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5351">#5351</a> interrupt a future get boost::unknown_exception. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5516">#5516</a> Upgrade lock is not acquired when previous upgrade lock releases if another read lock is present. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5990">#5990</a> shared_future&lt;T&gt;::get() has wrong return type. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6174">#6174</a> packaged_task doesn't correctly handle moving results. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6222">#6222</a> Compile error with SunStudio: unique_future move. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6673">#6673</a> shared_lock: move assign doesn't works with c++11. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6674">#6674</a> shared_mutex: try_lock_upgrade_until doesn't works. </div> </li> <li> <div> Fix issue signaled on the ML with task_object(task_object const&amp;) in presence of task_object(task_object&amp;&amp;) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> Fix equality for <code><span class="identifier">unordered_multiset</span></code> and <code><span class="identifier">unordered_multimap</span></code>. </div> </li> <li> <div> Implement <code><span class="identifier">reserve</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/6857">#6857</a>). </div> </li> <li> <div> Avoid gcc's <code><span class="special">-</span><span class="identifier">Wfloat</span><span class="special">-</span><span class="identifier">equal</span></code> and <code><span class="special">-</span><span class="identifier">Wshadow</span></code> warnings (<a href="https://svn.boost.org/trac/boost/ticket/6190">#6190</a>, <a href="https://svn.boost.org/trac/boost/ticket/6771">#6771</a>). </div> </li> <li> <div> Fix namespace issue with bcp (<a href="https://svn.boost.org/trac/boost/ticket/6905">#6905</a>). </div> </li> <li> <div> Fix Sun workarounds (<a href="https://svn.boost.org/trac/boost/ticket/6784">#6784</a>). </div> </li> <li> <div> Some internal changes to bucket allocation. </div> </li> <li> <div> See the <a href="https://www.boost.org/doc/html/unordered/changes.html#unordered.changes.boost_1_50_0">change log</a> for full details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/wave/index.html">Wave</a>:</span> <ul> <li> <div> Wave V2.3.2, see the <a href="https://www.boost.org/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/libs/xpressive/">xpressive</a>:</span> <ul> <li> <div> Remove very ugly <code><span class="identifier">lexical_cast</span></code> hack with a slightly less ugly one. </div> </li> <li> <div> Replace MPL assert with static assert since it's problematic in C++11, fixes <a href="https://svn.boost.org/trac/boost/ticket/6846">#6846</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_50_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> Intel: 11.1 </div> </li> <li> <div> LLVM Clang 2.8 </div> </li> <li> <div> GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Intel: 11.1 </div> </li> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 9.0, 10.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++0x mode: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang from subversion </div> </li> <li> <div> GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.3, 4.6.2 </div> </li> <li> <div> pgCC: 11.9 </div> </li> <li> <div> Intel: 10.1, 11.1, 12.0, 12.1 </div> </li> <li> <div> Visual Age 10.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang from subversion </div> </li> <li> <div> Intel 11.1, 12.0 </div> </li> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.4, 4.7.0 </div> </li> <li> <div> GCC, C++0x mode, mingw: 4.5.2 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V12.1.0.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_50_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="https://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.49.0http://www.boost.org/users/history/version_1_49_0.htmlhttp://www.boost.org/users/history/version_1_49_0.htmlFri, 24 Feb 2012 16:20:32 -0500 <div id="version_1_49_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/heap/index.html">Heap</a>:</span> Priority queue data structures, from Tim Blechmann. </div> </li> </ul> </div> <div id="version_1_49_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> Added a new class template <code><span class="identifier">basic_waitable_timer</span></code> based around the C++11 clock type requirements. It may be used with the clocks from the C++11 <code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">&gt;</span></code> library facility or, if those are not available, Boost.Chrono. The typedefs <code><span class="identifier">high_resolution_timer</span></code>, <code><span class="identifier">steady_timer</span></code> and <code><span class="identifier">system_timer</span></code> may be used to create timer objects for the standard clock types. </div> </li> <li> <div> Added a new <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">object_handle</span></code> class for performing waits on Windows kernel objects. Thanks go to Boris Schaeling for contributing substantially to the development of this feature. </div> </li> <li> <div> On Linux, <code><span class="identifier">connect</span><span class="special">()</span></code> can return EAGAIN in certain circumstances. Remapped this to another error so that it doesn't look like a non-blocking operation (<a href="https://svn.boost.org/trac/boost/ticket/6048">#6048</a>). </div> </li> <li> <div> Fixed a compile error on NetBSD (<a href="https://svn.boost.org/trac/boost/ticket/6098">#6098</a>). </div> </li> <li> <div> Fixed deadlock on Mac OS X (<a href="https://svn.boost.org/trac/boost/ticket/6275">#6275</a>). </div> </li> <li> <div> Fixed a regression in <code><span class="identifier">buffered_write_stream</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/6310">#6310</a>). </div> </li> <li> <div> Fixed a non-paged pool &quot;leak&quot; on Windows when an <code><span class="identifier">io_service</span></code> is repeatedly run without anything to do (<a href="https://svn.boost.org/trac/boost/ticket/6321">#6321</a>). </div> </li> <li> <div> Reverted earlier change to allow some speculative operations to be performed without holding the lock, as it introduced a race condition in some multithreaded scenarios. </div> </li> <li> <div> Fixed a bug where the second buffer in an array of two buffers may be ignored if the first buffer is empty. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono">Chrono</a>:</span> <ul> <li> <div> Bug Fixes: <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6092">#6092</a> Input from non integral durations makes the compiler fail. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6093">#6093</a> [1/3]second fails as valid duration input. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6113">#6113</a> duplicate symbol when BOOST_CHRONO_HEADER_ONLY is defined. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6243">#6243</a> Sandia-pgi-11.9: more than one instance of overloaded function &quot;min&quot; matches. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6257">#6257</a> process_cpu_clock::now() on linux gives time_points 1/1000 times. </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> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/6499">#6499</a>, <a href="https://svn.boost.org/trac/boost/ticket/6336">#6336</a>, <a href="https://svn.boost.org/trac/boost/ticket/6335">#6335</a>, <a href="https://svn.boost.org/trac/boost/ticket/6287">#6287</a>, <a href="https://svn.boost.org/trac/boost/ticket/6205">#6205</a>, <a href="https://svn.boost.org/trac/boost/ticket/4383">#4383</a>. </div> </li> <li> <div> Added <code><span class="identifier">allocator_traits</span></code> support for both C++11 and C++03 compilers through an internal <code><span class="identifier">allocator_traits</span></code> clone. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/filesystem/">Filesystem</a>:</span> <ul> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/3714">#3714</a>, Added test cases and fixes for class path errors when assignment or append used self or portion of self as source. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/4889">#4889</a>, <a href="https://svn.boost.org/trac/boost/ticket/6320">#6320</a>, Locale codecvt_facet not thread safe on Windows. Move Windows, Mac OS X, locale and codecvt facet back to namespace scope. POSIX except OS X uses local static initialization (IE lazy) to ensure exceptions are catchable if environmental variables are misconfigured and to avoid use of locale(&quot;&quot;) if not actually used. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5652">#5652</a>, recursive_directory_iterator fails on cyclic symbolic links. Thanks to Daniel Aarno for the patch. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5653">#5653</a>, recursive_directory_iterator(error_code) can still throw filesystem_error. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5900</a>, directory_iterator access violation on Windows if error is thrown. Thanks to Andreas Eckleder for the patch. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5900</a> comment 2, a bug in director_iterator construction with error_code argument that caused increment to be called without the ec argument being passed. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5989">#5989</a> by cleaning up test suite path_test.cpp code even though the ticket itself was not a defect, and clarifying docs; iteration over a path yields generic format. </div> </li> <li> <div> Fix <a href="https://svn.boost.org/trac/boost/ticket/5592">#5592</a>, Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP. </div> </li> <li> <div> Operations function fixes for PGI compiler, thanks to Noel Belcourt. </div> </li> <li> <div> Relax permissions test to reflect reality, particularly on the Sandia test platforms. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/foreach/">Foreach</a>:</span> <ul> <li> <div> Fix for <a href="https://svn.boost.org/trac/boost/ticket/6131">#6131</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> Fixed bugs <ul> <li> <div> Distance for multi-geometries ignored specified distance strategy. </div> </li> <li> <div> In difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list). </div> </li> <li> <div> Raise exception for calculation of distances of multi-geometrie(s) where one of them is empty </div> </li> <li> <div> Multi DSV did not correctly use settings. </div> </li> <li> <div> Self-intersections could sometimes be missed (introduced in 1.48). </div> </li> <li> <div> Convex hull crashed on empty range (e.g. empty multi point). </div> </li> </ul> </div> </li> <li> <div> Solved tickets <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6028">#6028</a> Documentation: closure. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6178">#6178</a> Missing headerfile. </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/6021">#6021</a> convex hull of multipoint. </div> </li> </ul> </div> </li> <li> <div> Additional functionality <ul> <li> <div> Support for line/polygon intersections and differences </div> </li> <li> <div> Support for convert of segment/box of different point types </div> </li> <li> <div> Support for append for multi point </div> </li> <li> <div> Scalar functions (distance, area, length, perimeter) now throw an empty_input_exception on empty input </div> </li> </ul> </div> </li> <li> <div> Documentation <ul> <li> <div> Updated support status </div> </li> </ul> </div> </li> <li> <div> Internal changes <ul> <li> <div> Updates in specializations/not_implemented for distance/convert/assign/area </div> </li> <li> <div> Move of wkt/dsv to io folder, making domains redundant </div> </li> <li> <div> Strategy concepts assigned to zero to avoid clang warnings (patched by Vishnu) </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/5881">#5881</a>, <a href="https://svn.boost.org/trac/boost/ticket/6033">#6033</a>, <a href="https://svn.boost.org/trac/boost/ticket/6061">#6061</a>, <a href="https://svn.boost.org/trac/boost/ticket/6137">#6137</a>, <a href="https://svn.boost.org/trac/boost/ticket/6246">#6246</a>, <a href="https://svn.boost.org/trac/boost/ticket/6239">#6239</a>, <a href="https://svn.boost.org/trac/boost/ticket/6293">#6293</a>, <a href="https://svn.boost.org/trac/boost/ticket/6306">#6306</a>, <a href="https://svn.boost.org/trac/boost/ticket/6313">#6313</a> and <a href="https://svn.boost.org/trac/boost/ticket/6371">#6371</a>, plus others not in Trac. </div> </li> <li> <div> Re-enabled LEDA graph support (thanks to Jens Muller for the patch). </div> </li> <li> <div> Added documentation for <code><span class="identifier">edge_predecessor_recorder</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/icl/">Icl</a>:</span> <ul> <li> <div> Fixed tickets <a href="https://svn.boost.org/trac/boost/ticket/6095">#6095</a> and <a href="https://svn.boost.org/trac/boost/ticket/6210">#6210</a>. </div> </li> <li> <div> Added move semantics for constructors, assignment operators and binary operators. </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/6531">#6531</a>, <a href="https://svn.boost.org/trac/boost/ticket/6412">#6412</a>, <a href="https://svn.boost.org/trac/boost/ticket/6398">#6398</a>, <a href="https://svn.boost.org/trac/boost/ticket/6340">#6340</a>, <a href="https://svn.boost.org/trac/boost/ticket/6319">#6319</a>, <a href="https://svn.boost.org/trac/boost/ticket/6287">#6287</a>, <a href="https://svn.boost.org/trac/boost/ticket/6265">#6265</a>, <a href="https://svn.boost.org/trac/boost/ticket/6233">#6233</a>, <a href="https://svn.boost.org/trac/boost/ticket/6147">#6147</a>, <a href="https://svn.boost.org/trac/boost/ticket/6134">#6134</a>, <a href="https://svn.boost.org/trac/boost/ticket/6058">#6058</a>, <a href="https://svn.boost.org/trac/boost/ticket/6054">#6054</a>, <a href="https://svn.boost.org/trac/boost/ticket/5772">#5772</a>, <a href="https://svn.boost.org/trac/boost/ticket/5738">#5738</a>, <a href="https://svn.boost.org/trac/boost/ticket/5622">#5622</a>, <a href="https://svn.boost.org/trac/boost/ticket/5552">#5552</a>, <a href="https://svn.boost.org/trac/boost/ticket/5518">#5518</a>, <a href="https://svn.boost.org/trac/boost/ticket/4655">#4655</a>, <a href="https://svn.boost.org/trac/boost/ticket/4452">#4452</a>, <a href="https://svn.boost.org/trac/boost/ticket/4383">#4383</a>, <a href="https://svn.boost.org/trac/boost/ticket/4297">#4297</a>. </div> </li> <li> <div> Fixed timed functions in mutex implementations to fulfill POSIX requirements: <em>Under no circumstance shall the function fail with a timeout if the mutex can be locked immediately. The validity of the abs_timeout parameter need not be checked if the mutex can be locked immediately.</em> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/6347">#6347</a>, <a href="https://svn.boost.org/trac/boost/ticket/6223">#6223</a>, <a href="https://svn.boost.org/trac/boost/ticket/6153">#6153</a>. </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> Fixed bugs and warnings: <a href="https://svn.boost.org/trac/boost/ticket/6127">#6127</a>, <a href="https://svn.boost.org/trac/boost/ticket/6132">#6132</a>, <a href="https://svn.boost.org/trac/boost/ticket/6159">#6159</a>, <a href="https://svn.boost.org/trac/boost/ticket/6182">#6182</a>, <a href="https://svn.boost.org/trac/boost/ticket/6186">#6186</a>, <a href="https://svn.boost.org/trac/boost/ticket/6193">#6193</a>, <a href="https://svn.boost.org/trac/boost/ticket/6264">#6264</a>, <a href="https://svn.boost.org/trac/boost/ticket/6290">#6290</a>, <a href="https://svn.boost.org/trac/boost/ticket/6298">#6298</a>, <a href="https://svn.boost.org/trac/boost/ticket/6400">#6400</a>. </div> </li> <li> <div> Better performance and less memory usage for boost::container::basic_string conversions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> Fixed incorrect use of <code><span class="identifier">MultiByteToWideChar</span></code> in detection of invalid input sequences. </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/6417">#6417</a>, <a href="https://svn.boost.org/trac/boost/ticket/6183">#6183</a>, <a href="https://svn.boost.org/trac/boost/ticket/6185">#6185</a>, <a href="https://svn.boost.org/trac/boost/ticket/6395">#6395</a>, <a href="https://svn.boost.org/trac/boost/ticket/6396">#6396</a>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/property_tree">PropertyTree</a>:</span> <ul> <li> <div> Fixes for bugs <a href="https://svn.boost.org/trac/boost/ticket/4840">#4840</a>, <a href="https://svn.boost.org/trac/boost/ticket/5259">#5259</a>, <a href="https://svn.boost.org/trac/boost/ticket/5281">#5281</a>, <a href="https://svn.boost.org/trac/boost/ticket/5944">#5944</a>, <a href="https://svn.boost.org/trac/boost/ticket/5757">#5757</a>, <a href="https://svn.boost.org/trac/boost/ticket/5710">#5710</a>, and <a href="https://svn.boost.org/trac/boost/ticket/5307">#5307</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/proto">Proto</a>:</span> <ul> <li> <div> Force some functions to be inline, fixes <a href="https://svn.boost.org/trac/boost/ticket/5735">#5735</a>. </div> </li> <li> <div> Add user documentation for per-domain <code><span class="identifier">as_expr</span></code> and <code><span class="identifier">as_child</span></code>; other doc tweaks. </div> </li> <li> <div> Fix some buggy and over-complicated example programs. </div> </li> <li> <div> Add some missing copyright notices. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/spirit/index.html">Spirit</a>:</span> <ul> <li> <div> Spirit V2.5.2, see the '<a href="http://www.boost.org/doc/libs/1_49_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5_2.html">What's New</a>' section for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/thread">Thread</a>:</span> <ul> <li> <div> Fixed Bugs: <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/2309">#2309</a> Lack of g++ symbol visibility support in Boost.Thread. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/2639">#2639</a> documentation should be extended(defer_lock, try_to_lock, ...). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3639">#3639</a> Boost.Thread doesn't build with Sun-5.9 on Linux. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3762">#3762</a> Thread can't be compiled with winscw (Codewarrior by Nokia). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3885">#3885</a> document about mix usage of boost.thread and native thread api. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/3975">#3975</a> Incorrect precondition for promise::set_wait_callback(). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4048">#4048</a> thread::id formatting involves locale </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4315">#4315</a> gcc 4.4 Warning: inline ... declared as dllimport: attribute ignored. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4480">#4480</a> OpenVMS patches for compiler issues workarounds. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/4819">#4819</a> boost.thread's documentation misprints. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5040">#5040</a> future.hpp in boost::thread does not compile with /clr. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5423">#5423</a> thread issues with C++0x. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5502">#5502</a> race condition between shared_mutex timed_lock and lock_shared. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5594">#5594</a> boost::shared_mutex not fully compatible with Windows CE. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5617">#5617</a> boost::thread::id copy ctor. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5739">#5739</a> set-but-not-used warnings with gcc-4.6. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5826">#5826</a> threads.cpp: resource leak on threads creation failure. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5839">#5839</a> thread.cpp: ThreadProxy leaks on exceptions. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5859">#5859</a> win32 shared_mutex constructor leaks on exceptions. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6100">#6100</a> Compute hardware_concurrency() using get_nprocs() on GLIBC systems. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6141">#6141</a> Compilation error when boost.thread and boost.move are used together. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6168">#6168</a> recursive_mutex is using wrong config symbol (possible typo). </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6175">#6175</a> Compile error with SunStudio. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6200">#6200</a> patch to have condition_variable and mutex error better handle EINTR. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6207">#6207</a> shared_lock swap compiler error on clang 3.0 c++11. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/6208">#6208</a> try_lock_wrapper swap compiler error on clang 3.0 c++11. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered">Unordered</a>:</span> <ul> <li> <div> On compilers without rvalue references, the containers are no longer movable by default, as move emulation was causing some odd quirks (<a href="https://svn.boost.org/trac/boost/ticket/6167">#6167</a>, <a href="https://svn.boost.org/trac/boost/ticket/6311">#6311</a>). Define <code><span class="identifier">BOOST_UNORDERED_USE_MOVE</span></code> to make them movable - Boost.Move is still used for elements regardless. </div> </li> <li> <div> Fix sequence point warning (<a href="https://svn.boost.org/trac/boost/ticket/6370">#6370</a>). </div> </li> <li> <div> Better support for C++11 compilers using older standard libraries. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/uuid/">Uuid</a>:</span> <ul> <li> <div> fixed <a href="https://svn.boost.org/trac/boost/ticket/6258">#6258</a> </div> </li> <li> <div> fixed <a href="https://svn.boost.org/trac/boost/ticket/5325">#5325</a> (sha1 implementation handles messages as long as the specification) </div> </li> <li> <div> progress on <a href="https://svn.boost.org/trac/boost/ticket/6118">#6118</a> (there are fewer warnings) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/xpressive/">xpressive</a>:</span> <ul> <li> <div> Eliminate some unused variable warnings on gcc. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_49_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> Intel: 11.1 </div> </li> <li> <div> LLVM Clang 2.8 </div> </li> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.2, 4.6.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Intel: 11.1 </div> </li> <li> <div> GCC: 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 9.0, 10.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit. </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC, C++0x mode: 4.4.2, 4.6.1, 4.6.2 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.6.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.2 </div> </li> <li> <div> pgCC: 11.9 </div> </li> <li> <div> Intel: 10.1, 11.1, 12.0 </div> </li> <li> <div> PathScale: 4.0.8 </div> </li> <li> <div> Visual Age 10.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang from subversion </div> </li> <li> <div> Intel 11.1, 12.0 </div> </li> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 9.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.5.2 </div> </li> <li> <div> GCC, C++0x mode, mingw: 4.5.2 </div> </li> <li> <div> GCC, mingw 64-bit: 4.4.7, 4.5.4, 4.6.1 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_49_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 and Vladimir Prus managed this release. </p> </div> Version 1.48.0http://www.boost.org/users/history/version_1_48_0.htmlhttp://www.boost.org/users/history/version_1_48_0.htmlTue, 15 Nov 2011 10:47:30 -0500<x> <div id="version_1_48_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/container/index.html">Container</a>:</span> Standard library containers and extensions, from Ion Gaztañaga. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/locale/index.html">Locale</a>:</span> Provide localization and Unicode handling tools for C++, from Artyom Beilis. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/html/move.html">Move</a>:</span> Portable move semantics for C++03 and C++11 compilers, from Ion Gaztañaga. </div> </li> </ul> </div> <div id="version_1_48_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/index.html">Asio</a>:</span> <ul> <li> <div> Implemented various performance improvements, including: <ul> <li> <div> Using thread-local operation queues in single-threaded use cases (i.e. when <code><span class="identifier">concurrency_hint</span></code> is 1) to eliminate a lock/unlock pair. </div> </li> <li> <div> Allowing some <code><span class="identifier">epoll_reactor</span></code> speculative operations to be performed without holding the lock. </div> </li> <li> <div> Improving locality of reference by performing an <code><span class="identifier">epoll_reactor</span></code>'s I/O operation immediately before the corresponding handler is called. Also improves scalability across CPUs. </div> </li> <li> <div> Specialising asynchronous read and write operations for buffer sequences that are arrays (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>) of exactly two buffers. </div> </li> </ul> </div> </li> <li> <div> Fixed compile error in regex overload of <code><span class="identifier">async_read_until</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/5688">#5688</a>). </div> </li> <li> <div> Fixed Windows-specific compile error by explicitly specifying the <code><span class="identifier">signal</span><span class="special">()</span></code> function from the global namespace (<a href="https://svn.boost.org/trac/boost/ticket/5722">#5722</a>). </div> </li> <li> <div> Changed <code><span class="identifier">deadline_timer</span></code> implementation to not read clock unless the timer heap is non-empty. </div> </li> <li> <div> Changed SSL buffer sizes to be large enough to hold a complete TLS record (<a href="https://svn.boost.org/trac/boost/ticket/5854">#5854</a>). </div> </li> <li> <div> Fixed synchronous <code><span class="identifier">null_buffers</span></code> operations so that they obey the user's non-blocking setting (<a href="https://svn.boost.org/trac/boost/ticket/5756">#5756</a>). </div> </li> <li> <div> Changed to set <code><span class="identifier">fd_set</span></code> size at runtime when using Windows. </div> </li> <li> <div> Disabled MSVC warning due to const qualifier being applied to function type. </div> </li> <li> <div> Fixed crash that occurs when using Intel C++ compiler (<a href="https://svn.boost.org/trac/boost/ticket/5763">#5763</a>). </div> </li> <li> <div> Changed OpenSSL initialisation to support all available algorithms. </div> </li> <li> <div> Fixed SSL error mapping when session is gracefully shut down. </div> </li> <li> <div> Added some latency test programs. </div> </li> <li> <div> Clarified that a read operation ends when the buffer is full (<a href="https://svn.boost.org/trac/boost/ticket/5999">#5999</a>). </div> </li> <li> <div> Fixed exception safety issue in <code><span class="identifier">epoll_reactor</span></code> initialisation (<a href="https://svn.boost.org/trac/boost/ticket/6006">#6006</a>). </div> </li> <li> <div> Made number of strand implementations configurable via <code><span class="identifier">BOOST_ASIO_STRAND_IMPLEMENTATIONS</span></code> macro. </div> </li> <li> <div> Added support for <code><span class="identifier">BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION</span></code> flag which switches strand allocation to use a round-robin approach rather than hashing. </div> </li> <li> <div> Fixed potential strand starvation issue that can occur when <code><span class="identifier">strand</span><span class="special">.</span><span class="identifier">post</span><span class="special">()</span></code> is used. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/chrono/index.html">Chrono</a>:</span> <ul> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5979">#5979</a> Added chrono rounding utilities as defined by Howard Hinnant <a href="http://home.roadrunner.com/~hinnant/duration_io/chrono_util.html">here</a>. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5978">#5978</a> Add BOOST_CHRONO_HAS_PROCESS_CLOCKS to know if process clocks are available. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5998">#5998</a> Make possible to disable hybrid error handling. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5906">#5906</a> Take in account the constexpr as defined in the standard. </div> </li> <li> <div> <a href="http://svn.boost.org/trac/boost/ticket/5907">#5907</a> Take in account noexcept for compilers supporting it. </div> </li> <li> <div> Fixed some bugs. </div> </li> <li> <div> See the <a href="http://www.boost.org/doc/html/chrono/appendices.html#chrono.appendices.history">History</a> for more details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/config/index.html">Config</a>:</span> <ul> <li> <div> Add <code><span class="identifier">BOOST_NO_DECLTYPE_N3276</span></code> config macro. (See <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf">N3276</a>.) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/fusion/index.html">Fusion</a>:</span> <ul> <li> <div> Make <code><span class="identifier">single_view</span></code> a random access fusion sequence. </div> </li> <li> <div> Remove bogus compile-time asserts from <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">distance</span></code>. </div> </li> <li> <div> Cleaner implementation of segmented Fusion. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/geometry">Geometry</a>:</span> <ul> <li> <div> Bugfixes: <ul> <li> <div> Robustness issue, in some circumstances the union failed to output. Fixed. </div> </li> <li> <div> Robustness issue, in some circumstances the calculated intersection point was outside the segment. Fixed. </div> </li> <li> <div> Concept issue, cartesian intersect didn't understand segments other than the provided one. Fixed. </div> </li> <li> <div> Sometimes self-intersections in linestrings were missed. Fixed. </div> </li> <li> <div> The fusion coordinate system was not registered correctly. Fixed. </div> </li> </ul> </div> </li> <li> <div> Solved tickets: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5726">#5726</a> (Segment intersection algorithm still assumes 'first', 'second' members) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5744">#5744</a> (mistake fusion adapt example) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5748">#5748</a> (need include &lt;boost/foreach.hpp&gt;) </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5954">#5954</a> (distance_pythagoras skips sqrt() step) </div> </li> </ul> </div> </li> <li> <div> Improvements on algorithms: <ul> <li> <div> Checking self-intersections is now not done automatically, this can blast performance. </div> </li> <li> <div> Besides that, checking self-intersections is made faster. </div> </li> <li> <div> Intersections now avoid outputting duplicate points. So they output the minimal set. </div> </li> </ul> </div> </li> <li> <div> Additional algorithms: <ul> <li> <div> covered_by: within is defined as &quot;within, not on boundary&quot;. covered_by is &quot;within or on boundary&quot; </div> </li> </ul> </div> </li> <li> <div> Additional functionality: <ul> <li> <div> within: strategies can now be specified for within&lt;point, box&gt; and within&lt;box, box&gt; </div> </li> <li> <div> convert: a much broader range of conversions is supported </div> </li> <li> <div> assign: idem, (currently partly) synonym for convert (but reversed arguments) </div> </li> </ul> </div> </li> <li> <div> Additional coordinate types: <ul> <li> <div> Basic support for Boost.Rational </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/graph/">Graph</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/5185">#5185</a>, <a href="https://svn.boost.org/trac/boost/ticket/5506">#5506</a>, <a href="https://svn.boost.org/trac/boost/ticket/5813">#5813</a> and <a href="https://svn.boost.org/trac/boost/ticket/5919">#5919</a>. </div> </li> <li> <div> Various other bug fixes not in Trac. </div> </li> <li> <div> Changed edge_descriptor type for reverse_graph to a new data type to avoid ambiguities with the edge_descriptor of the underlying graph. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/2796">#2796</a>, <a href="https://svn.boost.org/trac/boost/ticket/4031">#4031</a>, <a href="https://svn.boost.org/trac/boost/ticket/4251">#4251</a>, <a href="https://svn.boost.org/trac/boost/ticket/4452">#4452</a>, <a href="https://svn.boost.org/trac/boost/ticket/4895">#4895</a>, <a href="https://svn.boost.org/trac/boost/ticket/5077">#5077</a>, <a href="https://svn.boost.org/trac/boost/ticket/5120">#5120</a>, <a href="https://svn.boost.org/trac/boost/ticket/5123">#5123</a>, <a href="https://svn.boost.org/trac/boost/ticket/5230">#5230</a>, <a href="https://svn.boost.org/trac/boost/ticket/5197">#5197</a>, <a href="https://svn.boost.org/trac/boost/ticket/5287">#5287</a>, <a href="https://svn.boost.org/trac/boost/ticket/5294">#5294</a>, <a href="https://svn.boost.org/trac/boost/ticket/5306">#5306</a>, <a href="https://svn.boost.org/trac/boost/ticket/5308">#5308</a>, <a href="https://svn.boost.org/trac/boost/ticket/5392">#5392</a>, <a href="https://svn.boost.org/trac/boost/ticket/5409">#5409</a>, </div> </li> <li> <div> Added support to customize offset_ptr and allow creating custom managed segments that might be shared between 32 and 64 bit processes. </div> </li> <li> <div> Shared memory in windows has again filesystem lifetime: kernel bootstamp and WMI use to get a reliable timestamp was causing a lot of trouble. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/4797">#4797</a>, <a href="https://svn.boost.org/trac/boost/ticket/5165">#5165</a>, <a href="https://svn.boost.org/trac/boost/ticket/5183">#5183</a>, <a href="https://svn.boost.org/trac/boost/ticket/5191">#5191</a>. </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> Added code to work with Inf and NaN values on any platform (<a href="https://svn.boost.org/trac/boost/ticket/5689">#5689</a>). </div> </li> <li> <div> New Quickbook documentation (<a href="https://svn.boost.org/trac/boost/ticket/5723">#5723</a>). </div> </li> <li> <div> Better performance and less memory usage for many combinations of Source and Target types. </div> </li> <li> <div> Better performance for C locale. </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> Added new series evaluation methods to the cyclic Bessel I, J, K and Y functions. Also taken great care to avoid spurious over and underflow of these functions. Fixes issue <a href="https://svn.boost.org/trac/boost/ticket/5560">#5560</a>. </div> </li> <li> <div> Added an example of using Inverse Chi-Squared distribution for Bayesian statistics, provided by Thomas Mang. </div> </li> <li> <div> Added tests to use improved version of lexical_cast which handles C99 nonfinites without using global facets. </div> </li> <li> <div> Corrected wrong out-of-bound uniform distribution CDF complement values <a href="https://svn.boost.org/trac/boost/ticket/5733">#5733</a>. </div> </li> <li> <div> Enabled long double support on OpenBSD (issue <a href="https://svn.boost.org/trac/boost/ticket/6014">#6014</a>). </div> </li> <li> <div> Changed nextafter and related functions to behave in the same way as other implementations - so that nextafter(+INF, 0) is a finite value (issue <a href="https://svn.boost.org/trac/boost/ticket/5832">#5832</a>). </div> </li> <li> <div> Changed tuple include configuration to fix issue when using in conjunction with Boost.Tr1 (issue <a href="https://svn.boost.org/trac/boost/ticket/5934">#5934</a>). </div> </li> <li> <div> Changed class eps_tolerance to behave correctly when both ends of the range are zero (issue <a href="https://svn.boost.org/trac/boost/ticket/6001">#6001</a>). </div> </li> <li> <div> Fixed missing include guards on prime.hpp (issue <a href="https://svn.boost.org/trac/boost/ticket/5927">#5927</a>). </div> </li> <li> <div> Removed unused/undocumented constants from constants.hpp (issue <a href="https://svn.boost.org/trac/boost/ticket/5982">#5982</a>). </div> </li> <li> <div> Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue <a href="https://svn.boost.org/trac/boost/ticket/5914">#5914</a>). </div> </li> <li> <div> Minor patches for Cray compiler compatibility. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/msm/">MSM</a>:</span> <ul> <li> <div> eUML: added easier event reprocessing: process(event_) and reprocess() </div> </li> <li> <div> Rewrite of internal transition tables. There were a few bugs (failing recursivity in internal transition tables of sub-sub machines) and a missing feature (unused internal transition table of the main state machine). </div> </li> <li> <div> Bugfixes <ul> <li> <div> Reverted favor_compile_time policy to Boost 1.46 state </div> </li> <li> <div> none event now is convertible from any other event </div> </li> <li> <div> eUML and pseudo exit states </div> </li> <li> <div> Fixed not working Flag_AND </div> </li> <li> <div> Fixed rare bugs causing multiple processing of the same event in a submachine whose transition table contains this event and a base event of it. </div> </li> <li> <div> gcc warnings about unused variables </div> </li> </ul> </div> </li> <li> <div> Breaking change: the new internal transition table feature causes a minor breaking change. In a submachine, the &quot;Fsm&quot; template parameter for guards / actions of an internal table declared using internal_transition_table now is the submachine, not the higher-level state machine. Internal transitions declared using internal rows in the higher-level state machine keep their behavior (the &quot;Fsm&quot; parameter is the higher-level state machine). To sum up, the internal transition &quot;Fsm&quot; parameter is the closest state machine containing this transition. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/numeric/conversion/index.html">Numeric.Conversion</a>:</span> <ul> <li> <div> Added numeric_cast_traits; see '<a href="http://www.boost.org/doc/libs/1_48_0/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html#boost_numericconversion.type_requirements_and_user_defined_types_support.udts_with_numeric_cast">numeric_cast_traits</a>' for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/proto/index.html">Proto</a>:</span> <ul> <li> <div> <em>Breaking Change:</em> Reduce numbers of operator overloads by using rvalue references on compilers that support them. Any user code that defines additional operator overloads on Proto expressions could potentially be rendered ambiguous by this change. The solution is to use a grammar to disable Proto's operators that are made ambiguous by any user-defined operators. </div> </li> <li> <div> Move definitions of Proto tag types into an ADL-blocking namespace. </div> </li> <li> <div> Add second template parameter to <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">siwtch_</span></code> to control dispatching to cases. </div> </li> <li> <div> Allow dependent domains to be specified with <code><span class="identifier">BOOST_PROTO_EXTENDS</span></code> and <code><span class="identifier">BOOST_PROTO_BASIC_EXTENDS</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/regex/">Regex</a>:</span> <ul> <li> <div> Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/698">#698</a>, <a href="https://svn.boost.org/trac/boost/ticket/5835">#5835</a>, <a href="https://svn.boost.org/trac/boost/ticket/5958">#5958</a>, <a href="https://svn.boost.org/trac/boost/ticket/5736">#5736</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/spirit/index.html">Spirit</a>:</span> <ul> <li> <div> Spirit V2.5.1, see the '<a href="http://www.boost.org/doc/libs/1_48_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5_1.html">What's New</a>' section for details. </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> Extension to support <a href="http://www.boost.org/libs/type_traits/doc/html/boost_typetraits/category/value_traits/operators.html">operator detection</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> Improved support for the C++11 standard - breaking change to equality and emplace. </div> </li> <li> <div> Use Boost.Move to implement move semantics. </div> </li> <li> <div> See the <a href="http://www.boost.org/doc/html/unordered/changes.html#unordered.changes.boost_1_48_0___major_update">change log</a> for full details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/wave/index.html">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> </ul> </div> <div id="version_1_48_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> LLVM Clang 2.8 </div> </li> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.1, 4.5.2, 4.6 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> <li> <div> Intel 11.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Intel 11.1 </div> </li> <li> <div> GCC: 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 9.0, 10.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit. </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC 4.4.2 </div> </li> <li> <div> QCC, C++0x mode: 4.4.2, 4.6.1 </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang from subversion, with libc++ and GNU libstdc++ </div> </li> <li> <div> LLVM Clang 2.8 x </div> </li> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.5.4, 4.6.1, 4.6.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.4.4, 4.5.2 </div> </li> <li> <div> pgCC: 11.2 x </div> </li> <li> <div> Intel: 10.1, 11.1, 12.0 </div> </li> <li> <div> PathScale: 4.0.8 </div> </li> <li> <div> Visual Age 10.1 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang from subversion, with libc++ and GNU libstdc++. </div> </li> <li> <div> Intel 11.1. </div> </li> <li> <div> GCC: 4.2.1, 4.4.4. </div> </li> <li> <div> GCC, C++0x mode: 4.4.4. </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 8.0, 9.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.1 </div> </li> <li> <div> GCC, C++0x mode, mingw: 4.5.2 </div> </li> <li> <div> GCC, mingw 64-bit: 4.7.0 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit. </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_48_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 and Vladimir Prus managed this release. </p> </div> </x>Version 1.47.0http://www.boost.org/users/history/version_1_47_0.htmlMon, 11 Jul 2011 18:19:33 -0400 New Libraries: Chrono, Geometry, Phoenix and Ratio. Updated Libraries: Accumulators, Asio, Config, DateTime, Dynamic Bitset, Foreach, Function, Function Types, Graph, Iostreams, Iterator, Lexical Cast, Logic, Math, Meta State Machine, MultiIndex, Proto, Random, Range, Spirit, Tokenizer, Utility, Uuid, Wave http://sourceforge.net/projects/boost/files/boost/1.47.0/ <div id="version_1_47_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/chrono/index.html">Chrono</a>:</span> Useful time utilities, from Vicente J. Botet Escribá. </div> </li> <li> <div> <span class="library"><a href="/libs/geometry/index.html">Geometry</a>:</span> Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot. </div> </li> <li> <div> <span class="library"><a href="/libs/phoenix/index.html">Phoenix</a>:</span> Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller. </div> </li> <li> <div> <span class="library"><a href="/libs/ratio/index.html">Ratio</a>:</span> Compile time rational arithmetic, from Vicente J. Botet Escribá. </div> </li> </ul> </div> <div id="version_1_47_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span> <ul> <li> <div> New statistical accumulators: <code><span class="identifier">sum_kahan</span></code>, <code><span class="identifier">sum_of_weights_kahan</span></code>, <code><span class="identifier">sum_of_variates_kahan</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> <div> Many new features and improvements: <ul> <li> <div> Signal handling. </div> </li> <li> <div> A debugging aid for asynchronous programs. </div> </li> <li> <div> Timeouts on socket iostreams. </div> </li> <li> <div> Composed connect operations. </div> </li> <li> <div> Rewritten SSL implementation. </div> </li> <li> <div> C++0x move support. </div> </li> <li> <div> Compatibility with POSIX <code><span class="identifier">fork</span><span class="special">()</span></code>. </div> </li> <li> <div> ... and much more. See the <a href="/doc/libs/1_47_0/doc/html/boost_asio/history.html">Revision History</a> in the Boost.Asio documentation for more details. </div> </li> </ul> </div> </li> <li> <div> Tickets addressed: <a href="https://svn.boost.org/trac/boost/ticket/2879">#2879</a>, <a href="https://svn.boost.org/trac/boost/ticket/3238">#3238</a>, <a href="https://svn.boost.org/trac/boost/ticket/3297">#3297</a>, <a href="https://svn.boost.org/trac/boost/ticket/3307">#3307</a>, <a href="https://svn.boost.org/trac/boost/ticket/3702">#3702</a>, <a href="https://svn.boost.org/trac/boost/ticket/3741">#3741</a>, <a href="https://svn.boost.org/trac/boost/ticket/3900">#3900</a>, <a href="https://svn.boost.org/trac/boost/ticket/3905">#3905</a>, <a href="https://svn.boost.org/trac/boost/ticket/3939">#3939</a>, <a href="https://svn.boost.org/trac/boost/ticket/3958">#3958</a>, <a href="https://svn.boost.org/trac/boost/ticket/4162">#4162</a>, <a href="https://svn.boost.org/trac/boost/ticket/4971">#4971</a>, <a href="https://svn.boost.org/trac/boost/ticket/5124">#5124</a>, <a href="https://svn.boost.org/trac/boost/ticket/5128">#5128</a>, <a href="https://svn.boost.org/trac/boost/ticket/5418">#5418</a>, <a href="https://svn.boost.org/trac/boost/ticket/5453">#5453</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/config/index.html">Config</a>:</span> <ul> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/1988">#1988</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/date_time/index.html">DateTime</a>:</span> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/4920">#4920</a>, <a href="https://svn.boost.org/trac/boost/ticket/3651">#3651</a>, <a href="https://svn.boost.org/trac/boost/ticket/4845">#4845</a>, <a href="https://svn.boost.org/trac/boost/ticket/4475">#4475</a>, <a href="https://svn.boost.org/trac/boost/ticket/4952">#4952</a>, <a href="https://svn.boost.org/trac/boost/ticket/5345">#5345</a>, <a href="https://svn.boost.org/trac/boost/ticket/5250">#5250</a>, <a href="https://svn.boost.org/trac/boost/ticket/4798">#4798</a>, <a href="https://svn.boost.org/trac/boost/ticket/4754">#4754</a>, <a href="https://svn.boost.org/trac/boost/ticket/4411">#4411</a>, <a href="https://svn.boost.org/trac/boost/ticket/5126">#5126</a>, <a href="https://svn.boost.org/trac/boost/ticket/4780">#4780</a>, <a href="https://svn.boost.org/trac/boost/ticket/2475">#2475</a>, <a href="https://svn.boost.org/trac/boost/ticket/1674">#1674</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/dynamic_bitset/index.html">Dynamic Bitset</a>:</span> <ul> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/5439">#5439</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> <ul> <li> <div> Use rvalue refs on supporting compilers for const rvalue detection. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/function/index.html">Function</a>:</span> <ul> <li> <div> Bug fixes: <a href="https://svn.boost.org/trac/boost/ticket/3410">#3410</a>, <a href="https://svn.boost.org/trac/boost/ticket/3618">#3618</a>, <a href="https://svn.boost.org/trac/boost/ticket/3912">#3912</a>, <a href="https://svn.boost.org/trac/boost/ticket/4073">#4073</a>, <a href="https://svn.boost.org/trac/boost/ticket/4325">#4325</a>, <a href="https://svn.boost.org/trac/boost/ticket/4717">#4717</a>, <a href="https://svn.boost.org/trac/boost/ticket/4765">#4765</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/function_types/index.html">Function Types</a>:</span> <ul> <li> <div> Bug fixes: <a href="https://svn.boost.org/trac/boost/ticket/1653">#1653</a>, <a href="https://svn.boost.org/trac/boost/ticket/3162">#3162</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/graph/index.html">Graph</a>:</span> <ul> <li> <div> Bug fixes. </div> </li> <li> <div> Remove deprecated function <code><span class="identifier">kolmogorov_max_flow</span></code>, use <code><span class="identifier">boykov_kolmogorov_max_flow</span></code> instead. </div> </li> <li> <div> Removed <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">graph</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">is_same</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header since its functionality is in Boost.Type_Traits. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> <ul> <li> <div> Support filesystem v3 paths (<a href="https://svn.boost.org/trac/boost/ticket/4485">#4485</a>). </div> </li> <li> <div> Fix a memory leak in <code><span class="identifier">chain</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4922">#4922</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/iterator/index.html">Iterator</a>:</span> <ul> <li> <div> Add <code><span class="identifier">function_input_iterator</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2893">#2893</a>). </div> </li> <li> <div> Bug fixes: <a href="https://svn.boost.org/trac/boost/ticket/1427">#1427</a>, <a href="https://svn.boost.org/trac/boost/ticket/1517">#1517</a>, <a href="https://svn.boost.org/trac/boost/ticket/3434">#3434</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/conversion/lexical_cast.htm">Lexical cast</a>:</span> <ul> <li> <div> Better performance and less memory usage for many combinations of Source and Target types (<a href="https://svn.boost.org/trac/boost/ticket/5564">#5564</a>, <a href="https://svn.boost.org/trac/boost/ticket/5417">#5417</a>, <a href="https://svn.boost.org/trac/boost/ticket/4397">#4397</a>, <a href="https://svn.boost.org/trac/boost/ticket/5350">#5350</a>, <a href="https://svn.boost.org/trac/boost/ticket/5576">#5576</a>). </div> </li> <li> <div> Documentation updated (<a href="https://svn.boost.org/trac/boost/ticket/5576">#5576</a>, <a href="https://svn.boost.org/trac/boost/ticket/5494">#5494</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/logic/index.html">Logic</a>:</span> <ul> <li> <div> Bug fixes: <a href="https://svn.boost.org/trac/boost/ticket/3093">#3093</a>, <a href="https://svn.boost.org/trac/boost/ticket/3600">#3600</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/math/index.html">Math</a>:</span> <ul> <li> <div> Added changesign function to sign.hpp to facilitate addition of nonfinite facets. </div> </li> <li> <div> Addition of nonfinite facets from Johan Rade, with tests, examples of use for C99 format infinity and NaN, and documentation. </div> </li> <li> <div> Added tests and documentation of changesign from Johan Rade. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/msm/index.html">Meta State Machine</a>:</span> <ul> <li> <div> Added a <a href="/doc/libs/1_47_0/libs/msm/doc/HTML/ch03s05.html#backend-start"><code><span class="identifier">stop</span><span class="special">()</span></code></a> method in the back-end. </div> </li> <li> <div> Added partial support for <a href="/doc/libs/1_47_0/libs/msm/doc/HTML/ch03s04.html#eUML-phoenix">Boost.Phoenix functors in eUML</a>. </div> </li> <li> <div> Added the possibility to <a href="/doc/libs/1_47_0/libs/msm/doc/HTML/ch03s05.html#backend-state-switch">choose when state switching occurs</a>. </div> </li> <li> <div> Bugfixes: <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/5117">#5117</a>, <a href="https://svn.boost.org/trac/boost/ticket/5253">#5253</a>, <a href="https://svn.boost.org/trac/boost/ticket/5533">#5533</a>, <a href="https://svn.boost.org/trac/boost/ticket/5573">#5573</a>. </div> </li> <li> <div> gcc warnings about unused variables. </div> </li> <li> <div> better implementation of <code><span class="identifier">favor_compile_time</span></code> back-end policy. </div> </li> <li> <div> bug with eUML and state construction. </div> </li> <li> <div> incorrect eUML event and state macros. </div> </li> <li> <div> incorrect event type passed to a direct entry state's on_entry action. </div> </li> <li> <div> more examples. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/multi_index/index.html">MultiIndex</a>:</span> <ul> <li> <div> Fixed an ADL problem in <code><span class="identifier">composite_key_compare</span></code> related with Boost.Ref. </div> </li> <li> <div> Maintenance fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> <div> Pre-preprocessed for better compile times. </div> </li> <li> <div> Default preprocessor limits raised: <ul> <li> <div> Max expression arity (<code><span class="identifier">BOOST_PROTO_MAX_ARITY</span></code>) bumped from 5 to 10. </div> </li> <li> <div> Max function call arity (<code><span class="identifier">BOOST_PROTO_MAX_FUNCTION_CALL_ARITY</span></code>) bumped from 5 to 10. </div> </li> <li> <div> Max logical operator arity (<code><span class="identifier">BOOST_PROTO_MAX_LOGICAL_ARITY</span></code>) bumped from 8 to 10. </div> </li> </ul> </div> </li> <li> <div> Better integration of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">basic_expr</span></code> to avoid accidental needless instantiations of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">expr</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/random/index.html">Random</a>:</span> <ul> <li> <div> Synchronized with the new standard. <ul> <li> <div> Many new distributions added: <code><span class="identifier">chi_squared_distribution</span></code>, <code><span class="identifier">negative_binomial_distribution</span></code>, <code><span class="identifier">fisher_f_distribution</span></code>, <code><span class="identifier">student_t_distribution</span></code>, <code><span class="identifier">weibull_distribution</span></code>, <code><span class="identifier">extreme_value_distribution</span></code>, <code><span class="identifier">discrete_distribution</span></code>, <code><span class="identifier">piecewise_constant_distribution</span></code>, <code><span class="identifier">piecewise_liear_distribution</span></code> </div> </li> <li> <div> Renamed <code><span class="identifier">uniform_int</span></code> and <code><span class="identifier">uniform_real</span></code> to <code><span class="identifier">uniform_int_distribution</span></code> and <code><span class="identifier">uniform_real_distribution</span></code>. </div> </li> <li> <div> Added members to all distributions: <code><span class="identifier">param_type</span></code>, <code><span class="identifier">param</span></code>, stream operators, comparison operators, <code><span class="identifier">min</span></code> and <code><span class="identifier">max</span></code>. </div> </li> <li> <div> Allow distributions to be used directly with generators without use of <code><span class="identifier">variate_generator</span></code>. </div> </li> <li> <div> Changed the meaning of the parameters of <code><span class="identifier">geometric_distribution</span></code> and <code><span class="identifier">lognormal_distribution</span></code>. </div> </li> <li> <div> Added a second parameter to <code><span class="identifier">gamma_distribution</span></code>. </div> </li> <li> <div> Added <code><span class="identifier">seed_seq</span></code> and added the corresponding constructors and <code><span class="identifier">seed</span></code> overloads the generators. </div> </li> <li> <div> Added <code><span class="identifier">generate_canonical</span></code>. </div> </li> <li> <div> Renamed the engine tempates. e.g. <code><span class="identifier">mersenne_twister</span></code> becomes <code><span class="identifier">mersenne_twister_engine</span></code>. </div> </li> <li> <div> New engine adapter <code><span class="identifier">independent_bits_engine</span></code>. </div> </li> <li> <div> Added new predefined engine typedefs: <code><span class="identifier">mt19937_64</span></code>, <code><span class="identifier">ranlux</span><span class="special">[</span><span class="number">24</span><span class="special">|</span><span class="number">48</span><span class="special">][</span><span class="identifier">_base</span><span class="special">]</span></code>, <code><span class="identifier">knuth_b</span></code>. </div> </li> <li> <div> Updated seeding algorithms. </div> </li> <li> <div> Added <code><span class="identifier">discard</span></code> </div> </li> <li> <div> Use unsigned types instead of signed types in all the predefined engines. </div> </li> </ul> </div> </li> <li> <div> Bug fixes: <ul> <li> <div> <code><span class="identifier">linear_congruential_engine</span></code> could assert because the modular arithmetic was not implemented in all cases. <code><span class="identifier">shuffle_output</span></code>, now called <code><span class="identifier">shuffle_order_engine</span></code>, could cause integer overflow. These cases were not triggered by any predefined engines. </div> </li> <li> <div> <code><span class="identifier">uniform_small_int</span></code> now actually behaves as documented. </div> </li> </ul> </div> </li> <li> <div> New efficient algorithms for <code><span class="identifier">binomial_distribution</span></code> and <code><span class="identifier">poisson_distribution</span></code>. </div> </li> <li> <div> Moved all features into <code><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">random</span></code> </div> </li> <li> <div> Backwards compatibility issues: <ul> <li> <div> The seeding algorithms have changed. This was unavoidable for compatibility with the standard. Not to mention that some of the existing algorithms were weird and inconsistent. <ul> <li> <div> Seeding with an integer: The behaviour should be unchanged for most generators except <code><span class="identifier">lagged_fibonacci</span></code> and <code><span class="identifier">subtract_with_carry</span></code> (and thus <code><span class="identifier">ranlux</span></code>). </div> </li> <li> <div> Seeding a generator with another generator: This has been enabled by making all all generators models of <code><span class="identifier">SeedSeq</span></code>. Therefore, if you seed a Boost.Random generator with a non Boost.Random generator, your code will no longer compile. The algorithm has changed, so code using this seeding method will yield different values. </div> </li> <li> <div> Seeding a generator from a pair of iterators: This implicitly assumed that the elements were 32-bit integers in some places, but not everywhere. I've added this requirement everywhere and updated the algorithms accordingly. The behaviour of generators with a <code><span class="identifier">value_type</span></code> no more than 32 bits should be unchanged. </div> </li> </ul> </div> </li> <li> <div> Renaming: <ul> <li> <div> Whenever a class was renamed, there is a wrapper with the old name. There are also using declarations in namespace boost for everything that was moved. </div> </li> <li> <div> The names of a few accessors in the distributions changed. Both the old and the new names are allowed. </div> </li> </ul> </div> </li> <li> <div> <code><span class="identifier">geometric_distribution</span></code> and <code><span class="identifier">lognormal_distribution</span></code>: The behaviour is different at runtime. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometric_distribution</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lognormal_distribution</span></code> provide the old behaviour, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">random</span><span class="special">::</span><span class="identifier">geometric_distribution</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">random</span><span class="special">::</span><span class="identifier">lognormal_distribution</span></code> provide the new behaviour. </div> </li> <li> <div> Streaming: gamma_distribution has a new parameter, thus text saved with the old version will not readable by the new version. </div> </li> <li> <div> <code><span class="identifier">variate_generator</span></code> is now a simple pass through wrapper. Code that assumes that it will adjust the generator's result type to match the distribution will no longer work. This is not an issue with any of the distributions provided by Boost.Random. </div> </li> <li> <div> Return types: The <code><span class="identifier">result_types</span></code> of some generators have changed slightly. Some signed types have changed to unsigned to match the standard. </div> </li> <li> <div> <code><span class="identifier">has_fixed_range</span></code>: This is now always false, as it doesn't appear to be very useful and is excessively cumbersome. Anything that was accessing <code><span class="identifier">const_min</span></code> and <code><span class="identifier">const_max</span></code> without first checking <code><span class="identifier">has_fixed_range</span></code> was incorrect to begin with. </div> </li> </ul> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/range/index.html">Range</a>:</span> <ul> <li> <div> Fixed the end position <code><span class="identifier">irange</span></code> when step size is greater than 1 (<a href="https://svn.boost.org/trac/boost/ticket/5544">#5544</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> <ul> <li> <div> Spirit V2.5, see the '<a href="/doc/libs/1_47_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html">What's New</a>' section for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/tokenizer/index.html">Tokenizer</a>:</span> <ul> <li> <div> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/4649">#4649</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/utility/index.html">Utility</a>:</span> <ul> <li> <div> Bug fixes: <a href="https://svn.boost.org/trac/boost/ticket/4432">#4432</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/utility/index.html">Uuid</a>:</span> <ul> <li> <div> Fixed tickets: (<a href="https://svn.boost.org/trac/boost/ticket/5570">#5570</a>, <a href="https://svn.boost.org/trac/boost/ticket/4601">#4601</a>, <a href="https://svn.boost.org/trac/boost/ticket/4991">#4991</a>, <a href="https://svn.boost.org/trac/boost/ticket/5145">#5145</a>, <a href="https://svn.boost.org/trac/boost/ticket/5235">#5235</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> <ul> <li> <div> Wave V2.3.0, see the <a href="/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_47_0.build_system"> <h3><span class="link">Build System</span></h3> <ul> <li> <div> The official name of Boost.Build executable was changed to <code><span class="identifier">b2</span></code>. The bootstrap scripts create a copy with the old name <code><span class="identifier">bjam</span></code> to prevent third-party build scripts from failing. </div> </li> </ul> </div> <div id="version_1_47_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="/tools/boostbook/index.html">BoostBook</a>:</span> <ul> <li> <div> Handle doxygen tags: <code><span class="special">\</span><span class="identifier">see</span></code>, <code><span class="identifier">tparam</span></code>, <code><span class="identifier">ref</span></code> (for classes only). </div> </li> <li> <div> Support note for classes as well as functions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> <ul> <li> <div> Generate consistent ids for headings. </div> </li> <li> <div> Improved unicode support for windows. </div> </li> <li> <div> Warn about windows paths, as they aren't portable. </div> </li> <li> <div> Reverse deprecation of <code><span class="special">[</span><span class="identifier">br</span><span class="special">]</span></code>. </div> </li> <li> <div> Support date ranges and comma seperated clauses in copyright attributes. </div> </li> <li> <div> Improved delimeter checking for simple markup (e.g. <code><span class="special">*</span><span class="identifier">bold</span><span class="special">*</span></code>). </div> </li> <li> <div> Pass-thru comments in code snippets. </div> </li> <li> <div> <code>__FILENAME__</code> macro now generates relative paths. </div> </li> <li> <div> Allow quickbook escapes inside comments in syntax highlighted code. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_47_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> LLVM Clang 2.8 </div> </li> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> <li> <div> Intel 12.0 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Apple Clang 2.1 </div> </li> <li> <div> Intel 11.1 </div> </li> <li> <div> GCC: 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 7.1, 9.0, 10.0 </div> </li> <li> <div> GCC, mingw: 4.4.0 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 64 bit </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QCC </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Clang from subversion, with GNU libstdc++. </div> </li> <li> <div> LLVM Clang 2.8 </div> </li> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> <li> <div> pgCC: 11.2 </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1, 12.0 </div> </li> <li> <div> PathScale: 3.2 </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Clang from subversion, with GNU libstdc++. </div> </li> <li> <div> Intel 11.1 </div> </li> <li> <div> GCC: 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 7.1, 9.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.5.2 </div> </li> <li> <div> GCC, C++0x mode, mingw: 4.5.2 </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_47_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> Version 1.46.1Sat, 12 Mar 2011 10:45:53 -0500<span class="brief"><span class="purpose"> Bug fixes: Asio, Fusion, Graph, Icl, Math, Polygon, Proto, Property Tree, Signals2, TR1, Unordered. </span></span>http://sourceforge.net/projects/boost/files/boost/1.46.1/<div class="description"> <div id="version_1_46_1.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/asio/">Asio</a>:</span> </div> <ul> <li> <div> <code><span class="identifier">EV_ONESHOT</span></code> seems to cause problems on some versions of Mac OS X, with the <code><span class="identifier">io_service</span></code> destructor getting stuck inside the <code><span class="identifier">close</span><span class="special">()</span></code> system call. Changed the kqueue backend to use <code><span class="identifier">EV_CLEAR</span></code> instead (<a href="https://svn.boost.org/trac/boost/ticket/5021">#5021</a>). </div> </li> <li> <div> Fixed compile failures with some versions of <tt>g++</tt> due to the use of anonymous enums (<a href="https://svn.boost.org/trac/boost/ticket/4883">#4883</a>). </div> </li> <li> <div> Fixed a bug on kqueue-based platforms, where some system calls that repeatedly fail with <code><span class="identifier">EWOULDBLOCK</span></code> are not correctly re-registered with kqueue. </div> </li> <li> <div> Changed <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">streambuf</span></code> to ensure that its internal pointers are updated correctly after the data has been modified using <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">streambuf</span></code> member functions. </div> </li> <li> <div> Fixed a bug that prevented the linger socket option from working on platforms other than Windows. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/fusion/">Fusion</a>:</span> </div> <ul> <li> <div> Fix <code><span class="identifier">disable_if</span></code> for Visual C++ 7.1/8.0 </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/filesystem/">Filesystem</a>:</span> </div> <ul> <li> <div> Fix for STLPort (<a href="https://svn.boost.org/trac/boost/ticket/5217">#5217</a>). </div> </li> <li> <div> PGI large file support </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/graph/">Graph</a>:</span> </div> <ul> <li> <div> Bug fixes, including fixes for: <a href="https://svn.boost.org/trac/boost/ticket/5181">#5181</a>, <a href="https://svn.boost.org/trac/boost/ticket/5180">#5180</a>, <a href="https://svn.boost.org/trac/boost/ticket/5199">#5199</a> and <a href="https://svn.boost.org/trac/boost/ticket/5175">#5175</a>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/icl/">Icl</a>:</span> </div> <ul> <li> <div> Intersects for interval_maps and segment_type/element_type (<a href="https://svn.boost.org/trac/boost/ticket/5207">#5207</a>). </div> </li> <li> <div> Fixed some ambiguous calls to functions in boost and std namespaces. </div> </li> <li> <div> Other bug fixes, and documentation fixes. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/math/">Math</a>:</span> </div> <ul> <li> <div> Several minor bug fixes. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/polygon/">Polygon</a>:</span> </div> <ul> <li> <div> Disabled 45-degree booleans optimization. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/proto/">Proto</a>:</span> </div> <ul> <li> <div> Make <code><span class="identifier">display_expr</span></code> copyable (<a href="https://svn.boost.org/trac/boost/ticket/5096">#5096</a>). </div> </li> <li> <div> Fix const correctness problem in <code><span class="identifier">pass_through</span></code>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/property_tree/">Property Tree</a>:</span> </div> <ul> <li> <div> Fix compile error in JSON parser. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/signals2/">Signals2</a>:</span> </div> <ul> <li> <div> Fix unused parameter warning. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/tr1/">TR1</a>:</span> </div> <ul> <li> <div> Allow specialization of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">hash</span></code>. </div> </li> <li> <div> Improved support for Pathscale and Sun compilers. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/unordered/">Unordered</a>:</span> </div> <ul> <li> <div> Add missing copy constructors and assignment operators when using rvalue references (<a href="https://svn.boost.org/trac/boost/ticket/5119">#5119</a>). </div> </li> </ul> </li> </ul> </div> <div id="version_1_46_1.other_changes"> <h3><span class="link">Other changes</span></h3> <ul> <li> <div> Update getting started guide to reflect changes to boost build. </div> </li> <li> <div> In quickbook, workaround optimization bug in g++ 4.4. </div> </li> </ul> </div> <div id="version_1_46_1.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.1, 4.4.3, 4.4.5, 4.5.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1 </div> </li> <li> <div> Clang: 2.8 </div> </li> <li> <div> Pathscale: 3.2 </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> GCC: 4.0.1, 4.2.1, 4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4. </div> </li> <li> <div> Intel: 11.1 </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Visual C++: 7.1, 8.0, 9.0 and 10.0. </div> </li> <li> <div> GCC, mingw: 4.4.0. </div> </li> </ul> </li> <li> <div> FreeBSD: </div> <ul> <li> <div> GCC: 4.2.1, 64 bit. </div> </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.4, 4.4.5, 4.5.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2 </div> </li> <li> <div> pgCC: 11.2 </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1 </div> </li> <li> <div> PathScale: 3.2, 4.0.8 </div> </li> <li> <div> Visual Age C++: 10.1 </div> </li> <li> <div> Clang from subversion </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> Intel C++ Compiler: 10.1, 11.0, 11.1 </div> </li> <li> <div> GCC: 4.0.1, 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> <li> <div> Clang from subversion, with GNU libstdc++, libc++ and libc++ in C++0x mode. </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Visual C++: 7.1, 9.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.5.1 </div> </li> <li> <div> GCC, mingw, C++0x mode: 4.5.1 </div> </li> <li> <div> Borland: 6.1.3 (2009), 6.2.1 (2010) </div> </li> </ul> </li> <li> <div> AIX: </div> <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0 </div> </li> </ul> </li> <li> <div> Solaris: </div> <ul> <li> <div> Sun C++: 5.10 </div> </li> </ul> </li> </ul> </div> <div id="version_1_46_1.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> </div>Version 1.46.0Mon, 21 Feb 2011 15:36:13 -0500<span class="brief"><span class="purpose"> New Libraries: Icl. Updated Libraries: Array, Asio, Bind, Concept Check, Filesystem, Fusion, Hash, Iostreams, Iterator, Math, Meta State Machine, Optional, Pool, Program Options, Proto, Signals, Spirit, Tokenizer, Unordered, Wave. Updated Tools: Boostbook, Inspect, Quickbook. </span></span>http://sourceforge.net/projects/boost/files/boost/1.46.0/<div class="description"> <div id="version_1_46_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/icl/index.html">Icl</a>:</span> Interval Container Library, interval sets and maps and aggregation of associated values, from Joachim Faulhaber. </div> </li> </ul> </div> <div id="version_1_46_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/array/index.html">Array</a>:</span> </div> <ul> <li> <div> Added support for cbegin/cend (<a href="https://svn.boost.org/trac/boost/ticket/4761">#4761</a>) </div> </li> <li> <div> Fixed a problem with the Sun compiler (<a href="https://svn.boost.org/trac/boost/ticket/4757">#4757</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> </div> <ul> <li> <div> Fixed an integer overflow problem that occurs when <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v4</span><span class="special">::</span><span class="identifier">broadcast</span><span class="special">()</span></code> is used on 64-bit platforms. </div> </li> <li> <div> Fixed a problem on older Linux kernels (where epoll is used without timerfd support) that prevents timely delivery of deadline_timer handlers, after the program has been running for some time (<a href="https://svn.boost.org/trac/boost/ticket/5045">#5045</a>). </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/bind/index.html">Bind</a>:</span> </div> <ul> <li> <div> <code><span class="identifier">make_adaptable</span></code> now documented (<a href="https://svn.boost.org/trac/boost/ticket/4532">#4532</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/concept_check/index.html">Concept Check</a>:</span> </div> <ul> <li> <div> fixed warnings with self-assignment (<a href="https://svn.boost.org/trac/boost/ticket/4918">#4918</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/filesystem/index.html">Filesystem</a>:</span> </div> <ul> <li> <div> Version 3 of the library is now the default. </div> </li> <li> <div> IBM vacpp: Workaround for compiler bug affecting <code><span class="identifier">iterator_facade</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/4912">#4912</a>) </div> </li> <li> <div> Verify, clarify, document that <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> can be used to specify <code><span class="identifier">BOOST_FILESYSTEM_VERSION</span></code>. (<a href="https://svn.boost.org/trac/boost/ticket/4891">#4891</a>) </div> </li> <li> <div> Replaced C-style <code><span class="identifier">assert</span></code> with <code><span class="identifier">BOOST_ASSERT</span></code>. </div> </li> <li> <div> Undeprecated <code><span class="identifier">unique_path</span><span class="special">()</span></code>. Instead, add a note mentioning the workaround for lack of thread safety and possible change to cwd. <code><span class="identifier">unique_path</span><span class="special">()</span></code> is just too convenient to deprecate! </div> </li> <li> <div> Cleared several GCC warnings. </div> </li> <li> <div> Changed V2 code to use <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code>. </div> </li> <li> <div> Windows: Fix <code><span class="identifier">status</span><span class="special">()</span></code> to report non-symlink reparse point correctly. </div> </li> <li> <div> Add <code><span class="identifier">symlink_option</span></code> to <code><span class="identifier">recursive_directory_iterator</span></code>, allowing control over recursion into directory symlinks. Note that the default is changed to not recurse into directory symlinks. </div> </li> <li> <div> Reference documentation cleanup, including fixing missing and broken links, and adding missing functions. </div> </li> <li> <div> Miscellaneous implementation code cleanup. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> </div> <ul> <li> <div> vector copy constructor now copies sequence members in the same order on different platforms (<a href="https://svn.boost.org/trac/boost/ticket/2823">#2823</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/graph/index.html">Graph</a>:</span> </div> <ul> <li> <div> Fixed Graphviz output to work on Visual C++ 7.1. </div> </li> <li> <div> Replaced assert with <code><span class="identifier">BOOST_ASSERT</span></code>. </div> </li> <li> <div> Changed to Boost.Filesystem v3. </div> </li> <li> <div> Fixed the following bugs from Trac: <a href="https://svn.boost.org/trac/boost/ticket/1021">#1021</a>, <a href="https://svn.boost.org/trac/boost/ticket/4556">#4556</a>, <a href="https://svn.boost.org/trac/boost/ticket/4631">#4631</a>, <a href="https://svn.boost.org/trac/boost/ticket/4642">#4642</a>, <a href="https://svn.boost.org/trac/boost/ticket/4715">#4715</a>, <a href="https://svn.boost.org/trac/boost/ticket/4731">#4731</a>, <a href="https://svn.boost.org/trac/boost/ticket/4737">#4737</a>, <a href="https://svn.boost.org/trac/boost/ticket/4753">#4753</a>, <a href="https://svn.boost.org/trac/boost/ticket/4758">#4758</a>, <a href="https://svn.boost.org/trac/boost/ticket/4793">#4793</a>, <a href="https://svn.boost.org/trac/boost/ticket/4843">#4843</a>, <a href="https://svn.boost.org/trac/boost/ticket/4851">#4851</a>, <a href="https://svn.boost.org/trac/boost/ticket/4852">#4852</a>, <a href="https://svn.boost.org/trac/boost/ticket/4887">#4887</a>, <a href="https://svn.boost.org/trac/boost/ticket/4914">#4914</a>, <a href="https://svn.boost.org/trac/boost/ticket/4966">#4966</a>. </div> </li> <li> <div> Fixed various bugs not in Trac. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> </div> <ul> <li> <div> Support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">type_index</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4756">#4756</a>). </div> </li> <li> <div> Avoid <code><span class="special">-</span><span class="identifier">Wconversion</span></code> warnings. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> </div> <ul> <li> <div> Use <code><span class="identifier">BOOST_ASSERT</span></code> instead of <code><span class="identifier">assert</span></code>. </div> </li> <li> <div> Fixed flush regression (<a href="https://svn.boost.org/trac/boost/ticket/4590">#4590</a>). </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/iterator/index.html">Iterator</a>:</span> </div> <ul> <li> <div> fixed problem with <code><span class="identifier">implicit_cast</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/3645">#3645</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math</a>:</span> </div> <ul> <li> <div> Added Wald, Inverse Gaussian and geometric distributions. </div> </li> <li> <div> Added information about configuration macros. </div> </li> <li> <div> Added support for mpreal as a real-numered type. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/msm/index.html">Meta State Machine</a>:</span> </div> <ul> <li> <div> <a href="/doc/libs/1_46_0/libs/msm/doc/HTML/ch03s05.html#backend-compile-time-analysis">Compile-time state machine analysis</a>. </div> </li> <li> <div> <a href="/doc/libs/1_46_0/libs/msm/doc/HTML/ch03s05.html#backend-boost-parameter">Boost.Parameter interface definition for <code><span class="identifier">msm</span><span class="special">::</span><span class="identifier">back</span><span class="special">::</span><span class="identifier">state_machine</span><span class="special">&lt;&gt;</span></code> template arguments</a>. </div> </li> <li> <div> <a href="/doc/libs/1_46_0/libs/msm/doc/HTML/ch03s05.html#backend-queues">Possibility to provide a container for the event and deferred event queues</a>. A policy implementation based on a more efficient Boost.CircularBuffer is provided. </div> </li> <li> <div> <code><span class="identifier">msm</span><span class="special">::</span><span class="identifier">back</span><span class="special">::</span><span class="identifier">state_machine</span><span class="special">&lt;&gt;::</span><span class="identifier">is_flag_active</span></code> method made const. </div> </li> <li> <div> <a href="/doc/libs/1_46_0/libs/msm/doc/HTML/ch03s05.html#backend-enqueueing">Added possibility to enqueue events for delayed processing</a>. </div> </li> <li> <div> Bugfixes </div> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4926">#4926</a>. </div> </li> <li> <div> stack overflow using the Defer functor </div> </li> <li> <div> anonymous transition of a submachine not called for the initial state </div> </li> </ul> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/optional/index.html">Optional</a>:</span> </div> <ul> <li> <div> Updated test results with information about expected failures (<a href="https://svn.boost.org/trac/boost/ticket/2294">#2294</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/pool/index.html">Pool</a>:</span> </div> <ul> <li> <div> Now can set a max_size for pool (<a href="https://svn.boost.org/trac/boost/ticket/2696">#2696</a>) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pool</span><span class="special">/</span><span class="identifier">pool</span><span class="special">.</span><span class="identifier">hpp</span></code> uses <code><span class="keyword">reinterpret_cast</span></code> instead of <code><span class="keyword">static_cast</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2941">#2941</a>) </div> </li> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pool_allocator</span></code> now works with vector of vectors (<a href="https://svn.boost.org/trac/boost/ticket/386">#386</a>) </div> </li> <li> <div> Boost pool is now compatible with Microsoft memory leak detection (<a href="https://svn.boost.org/trac/boost/ticket/4346">#4346</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/program_options/index.html">Program Options</a>:</span> </div> <ul> <li> <div> Fixed errors in examples in docs (<a href="https://svn.boost.org/trac/boost/ticket/3992">#3992</a>, <a href="https://svn.boost.org/trac/boost/ticket/4858">#4858</a>) </div> </li> <li> <div> Now takes <code><span class="identifier">argv</span></code> as const (<a href="https://svn.boost.org/trac/boost/ticket/3909">#3909</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> </div> <ul> <li> <div> <strong>Breaking change</strong>: <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">proto</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span></code> no longer defines <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">pop_front</span></code> and <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">reverse</span></code>, which have moved to their own headers under <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">proto</span><span class="special">/</span><span class="identifier">functional</span></code> </div> </li> <li> <div> Add callable wrappers for more Fusion algorithms (including <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">at</span></code>); and callable wrappers for some std utilities like <code><span class="identifier">make_pair</span></code>, <code><span class="identifier">first</span></code> and <code><span class="identifier">second</span></code>, all under the new <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">proto</span><span class="special">/</span><span class="identifier">functional</span></code> directory </div> </li> <li> <div> Allow transforms to be specified separately from a grammar </div> </li> <li> <div> <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">matches</span></code> preserves domain-specific expression wrappers </div> </li> <li> <div> Fix ADL issue with <code><span class="keyword">operator</span><span class="special">,</span></code> in <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">and_</span></code> transform </div> </li> <li> <div> Fix handling of grammar checking in expressions involving multiple domains (<a href="https://svn.boost.org/trac/boost/ticket/4675">#4675</a>) </div> </li> <li> <div> Fix ambiguous <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> in <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">display_expr</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4910">#4910</a>) </div> </li> <li> <div> <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">is_sequence</span></code> answers true for Proto expressions (<a href="https://svn.boost.org/trac/boost/ticket/5006">#5006</a>) </div> </li> <li> <div> Eliminate <code><span class="special">-</span><span class="identifier">Wundef</span></code> GCC warning in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">proto</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">.</span><span class="identifier">hpp</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/5075">#5075</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/signals/index.html">Signals</a>:</span> </div> <ul> <li> <div> gcc warning cleanup (<a href="https://svn.boost.org/trac/boost/ticket/4365">#4365</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> </div> <ul> <li> <div> Spirit V2.4.2, see the '<a href="/doc/libs/1_46_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_2.html">What's New</a>' section for details. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/tokenizer/index.html">Tokenizer</a>:</span> </div> <ul> <li> <div> <code><span class="identifier">isspace</span></code>/<code><span class="identifier">ispunct</span></code> was called with wrong character type (<a href="https://svn.boost.org/trac/boost/ticket/4791">#4791</a>) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> </div> <ul> <li> <div> Avoid using <code><span class="keyword">operator</span><span class="special">&amp;</span></code> with the value type. </div> </li> <li> <div> Avoid <code><span class="special">-</span><span class="identifier">Wconversion</span></code> warnings. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> </div> <ul> <li> <div> See the <a href="/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </li> </ul> </div> <div id="version_1_46_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="/tools/boostbook/index.html">Boostbook</a>:</span> </div> <ul> <li> <div> Better support for attributes on root elements - including <code><span class="identifier">lang</span></code>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/tools/inspect/index.html">Inspect</a>:</span> </div> <ul> <li> <div> Check that Boost headers do not use C's <code><span class="identifier">assert</span></code> macro. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> </div> <ul> <li> <div> Add support for <code><span class="identifier">lang</span></code> attribute in documentation info. </div> </li> <li> <div> Improved anchors. </div> </li> <li> <div> Support <code><span class="identifier">import</span></code>, <code><span class="identifier">include</span></code> and <code><span class="identifier">xinclude</span></code> in conditional phrases. </div> </li> <li> <div> Uses Filesystem 3. </div> </li> </ul> </li> </ul> </div> <div id="version_1_46_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.2, </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0, 4.5.2 </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1 </div> </li> <li> <div> Clang: 2.8 </div> </li> <li> <div> Pathscale: 3.2. </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> GCC: 4.0.1, 4.2.1, 4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4. </div> </li> <li> <div> Intel: 11.1 </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Visual C++: 7.1, 8.0, 9.0 and 10.0. </div> </li> <li> <div> GCC, mingw: 4.4.0. </div> </li> </ul> </li> <li> <div> FreeBSD: </div> <ul> <li> <div> GCC: 4.2.1, 64 bit. </div> </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.0, 4.5.2 </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0, 4.5.2 </div> </li> <li> <div> pgCC 11.1 </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1 </div> </li> <li> <div> PathScale: 3.2, 4.0 </div> </li> <li> <div> Visual Age C++ 10.1 </div> </li> <li> <div> Clang from subversion </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> Intel C++ Compiler: 10.1, 11.0, 11.1 </div> </li> <li> <div> GCC: 4.0.1, 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> <li> <div> Clang from subversion </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0 </div> </li> <li> <div> Visual C++ with STLport: 9.0 </div> </li> <li> <div> Visual C++, Windows Mobile 5, with STLport: 9.0 </div> </li> <li> <div> GCC, mingw: 4.4.0, 4.5.1, 4.6.0 </div> </li> <li> <div> GCC, mingw, C++0x mode: 4.5.1 </div> </li> <li> <div> Borland: 6.1.3 (2009), 6.2.1 (2010) </div> </li> </ul> </li> <li> <div> AIX: </div> <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0 </div> </li> </ul> </li> <li> <div> FreeBSD: </div> <ul> <li> <div> GCC 4.2.1, 64 bit </div> </li> </ul> </li> <li> <div> Solaris: </div> <ul> <li> <div> Sun C++: 5.10 </div> </li> </ul> </li> </ul> </div> <div id="version_1_46_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> </div>Version 1.45.0Fri, 19 Nov 2010 11:00:00 EST<span class="brief"><span class="purpose"> Updated Libraries: Asio, Config, Flyweight, Foreach, Fusion, Graph, Interprocess, Math, Meta State Machine, MultiArray, Proto, Spirit, TypeTraits, uBLAS, Unordered, Wave, Xpressive. Updated tools: Boostbook, Quickbook </span></span>http://sourceforge.net/projects/boost/files/boost/1.45.0/<div class="description"> <div id="version_1_45_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> </div> <ul> <li> <div> Fixed a problem on kqueue-based platforms where a <code><span class="identifier">deadline_timer</span></code> may never fire if the <code><span class="identifier">io_service</span></code> is running in a background thread (<a href="https://svn.boost.org/trac/boost/ticket/4568">#4568</a>). </div> </li> <li> <div> Fixed a const-correctness issue that prevented valid uses of <code><span class="identifier">has_service</span><span class="special">&lt;&gt;</span></code> from compiling (<a href="https://svn.boost.org/trac/boost/ticket/4638">#4638</a>). </div> </li> <li> <div> Fixed MinGW cross-compilation (<a href="https://svn.boost.org/trac/boost/ticket/4491">#4491</a>). </div> </li> <li> <div> Removed dependency on deprecated Boost.System functions (<a href="https://svn.boost.org/trac/boost/ticket/4672">#4672</a>). </div> </li> <li> <div> Ensured <code><span class="identifier">close</span><span class="special">()</span></code>/<code><span class="identifier">closesocket</span><span class="special">()</span></code> failures are correctly propagated (<a href="https://svn.boost.org/trac/boost/ticket/4573">#4573</a>). </div> </li> <li> <div> Added a check for errors returned by <code><span class="identifier">InitializeCriticalSectionAndSpinCount</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4574">#4574</a>). </div> </li> <li> <div> Added support for hardware flow control on QNX (<a href="https://svn.boost.org/trac/boost/ticket/4625">#4625</a>). </div> </li> <li> <div> Always use <code><span class="identifier">pselect</span><span class="special">()</span></code> on HP-UX, if it is available (<a href="https://svn.boost.org/trac/boost/ticket/4578">#4578</a>). </div> </li> <li> <div> Ensured handler arguments are passed as lvalues (<a href="https://svn.boost.org/trac/boost/ticket/4744">#4744</a>). </div> </li> <li> <div> Fixed Windows build when thread support is disabled (<a href="https://svn.boost.org/trac/boost/ticket/4680">#4680</a>). </div> </li> <li> <div> Fixed a Windows-specific problem where <code><span class="identifier">deadline_timer</span></code> objects with expiry times set more than 5 minutes in the future may never expire (<a href="https://svn.boost.org/trac/boost/ticket/4745">#4745</a>). </div> </li> <li> <div> Fixed the <code><span class="identifier">resolver</span></code> backend on BSD platforms so that an empty service name resolves to port number <code><span class="number">0</span></code>, as per the documentation (<a href="https://svn.boost.org/trac/boost/ticket/4690">#4690</a>). </div> </li> <li> <div> Fixed read operations so that they do not accept buffer sequences of type <code><span class="identifier">const_buffers_1</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4746">#4746</a>). </div> </li> <li> <div> Redefined <code><span class="identifier">Protocol</span></code> and <code><span class="identifier">id</span></code> to avoid clashing with Objective-C++ keywords (<a href="https://svn.boost.org/trac/boost/ticket/4191">#4191</a>). </div> </li> <li> <div> Fixed a <code><span class="identifier">vector</span></code> reallocation performance issue that can occur when there are many active <code><span class="identifier">deadline_timer</span></code> objects (<a href="https://svn.boost.org/trac/boost/ticket/4780">#4780</a>). </div> </li> <li> <div> Fixed the kqueue backend so that it compiles on NetBSD (<a href="https://svn.boost.org/trac/boost/ticket/4662">#4662</a>). </div> </li> <li> <div> Fixed the socket <code><span class="identifier">io_control</span><span class="special">()</span></code> implementation on 64-bit Mac OS X and BSD platforms (<a href="https://svn.boost.org/trac/boost/ticket/4782">#4782</a>). </div> </li> <li> <div> Fixed a Windows-specific problem where failures from <code><span class="identifier">accept</span><span class="special">()</span></code> are incorrectly treated as successes (<a href="https://svn.boost.org/trac/boost/ticket/4859">#4859</a>). </div> </li> <li> <div> Deprecated the separate compilation header <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">cpp</span><span class="special">&gt;</span></code> in favour of <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4560">#4560</a>). </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/config/index.html">Config</a>:</span> </div> <ul> <li> <div> Added new defect macros, <code><span class="identifier">BOOST_NO_VARIADIC_MACROS</span></code> and <code><span class="identifier">BOOST_NO_NUMERIC_LIMITS_LOWEST</span></code>. </div> </li> <li> <div> Minor fixes (<a href="https://svn.boost.org/trac/boost/ticket/4670">#4670</a>, <a href="https://svn.boost.org/trac/boost/ticket/4563">#4563</a>, <a href="https://svn.boost.org/trac/boost/ticket/4474">#4474</a>, <a href="https://svn.boost.org/trac/boost/ticket/4508">#4508</a>). </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/flyweight/index.html">Flyweight</a>:</span> </div> <ul> <li> <div> Fixed a hanging problem with <a href="/libs/flyweight/doc/tutorial/configuration.html#intermodule_holder"><code><span class="identifier">intermodule_holder</span></code></a> in Win32 platforms related to a Boost.Interprocess issue described at ticket <a href="https://svn.boost.org/trac/boost/ticket/4606">#4606</a>. </div> </li> <li> <div> Removed an internal assertion incompatible with program termination via <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exit</span></code>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> </div> <ul> <li> <div> Fix ambiguitiy by making <code><span class="identifier">auto_any</span></code> constructor explicit. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> </div> <ul> <li> <div> Added <code><span class="identifier">BOOST_FUSION_ADAPT_ADT</span></code>, <code><span class="identifier">BOOST_FUSION_ADAPT_TPL_ADT</span></code>, <code><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_ADT</span></code> and <code><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</span></code>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/graph/index.html">Graph</a>:</span> </div> <ul> <li> <div> Added Stoer-Wagner min-cut algorithm contributed by Daniel Trebbien. </div> </li> <li> <div> Added implicit graph (implicit_graph) and A* (astar_maze) examples contributed by W. P. McNeill. </div> </li> <li> <div> Added bundled property support for graph properties. </div> </li> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/4556">#4556</a>, <a href="https://svn.boost.org/trac/boost/ticket/4622">#4622</a>, <a href="https://svn.boost.org/trac/boost/ticket/4631">#4631</a>, <a href="https://svn.boost.org/trac/boost/ticket/4715">#4715</a>, <a href="https://svn.boost.org/trac/boost/ticket/4753">#4753</a>, <a href="https://svn.boost.org/trac/boost/ticket/4758">#4758</a> and <a href="https://svn.boost.org/trac/boost/ticket/4793">#4793</a> plus others not in Trac. </div> </li> <li> <div> Fixed documentation bugs <a href="https://svn.boost.org/trac/boost/ticket/4731">#4731</a> and <a href="https://svn.boost.org/trac/boost/ticket/4737">#4737</a>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> </div> <ul> <li> <div> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/1080">#1080</a>, <a href="https://svn.boost.org/trac/boost/ticket/3284">#3284</a>, <a href="https://svn.boost.org/trac/boost/ticket/3439">#3439</a>, <a href="https://svn.boost.org/trac/boost/ticket/3448">#3448</a>, <a href="https://svn.boost.org/trac/boost/ticket/3582">#3582</a>, <a href="https://svn.boost.org/trac/boost/ticket/3682">#3682</a>, <a href="https://svn.boost.org/trac/boost/ticket/3829">#3829</a>, <a href="https://svn.boost.org/trac/boost/ticket/3846">#3846</a>, <a href="https://svn.boost.org/trac/boost/ticket/3914">#3914</a>, <a href="https://svn.boost.org/trac/boost/ticket/3947">#3947</a>, <a href="https://svn.boost.org/trac/boost/ticket/3950">#3950</a>, <a href="https://svn.boost.org/trac/boost/ticket/3951">#3951</a>, <a href="https://svn.boost.org/trac/boost/ticket/3985">#3985</a>, <a href="https://svn.boost.org/trac/boost/ticket/4010">#4010</a>, <a href="https://svn.boost.org/trac/boost/ticket/4417">#4417</a>, <a href="https://svn.boost.org/trac/boost/ticket/4019">#4019</a>, <a href="https://svn.boost.org/trac/boost/ticket/4039">#4039</a>, <a href="https://svn.boost.org/trac/boost/ticket/4218">#4218</a>, <a href="https://svn.boost.org/trac/boost/ticket/4230">#4230</a>, <a href="https://svn.boost.org/trac/boost/ticket/4250">#4250</a>, <a href="https://svn.boost.org/trac/boost/ticket/4297">#4297</a>, <a href="https://svn.boost.org/trac/boost/ticket/4350">#4350</a>, <a href="https://svn.boost.org/trac/boost/ticket/4352">#4352</a>, <a href="https://svn.boost.org/trac/boost/ticket/4426">#4426</a>, <a href="https://svn.boost.org/trac/boost/ticket/4516">#4516</a>, <a href="https://svn.boost.org/trac/boost/ticket/4524">#4524</a>, <a href="https://svn.boost.org/trac/boost/ticket/4557">#4557</a>, <a href="https://svn.boost.org/trac/boost/ticket/4606">#4606</a>, <a href="https://svn.boost.org/trac/boost/ticket/4685">#4685</a>, <a href="https://svn.boost.org/trac/boost/ticket/4694">#4694</a>. </div> </li> <li> <div> Added support for standard rvalue reference move semantics (tested on GCC 4.5 and VC10). </div> </li> <li> <div> Permissions can be detailed for interprocess named resources. </div> </li> <li> <div> <code><span class="identifier">mapped_region</span><span class="special">::</span><span class="identifier">flush</span></code> initiates disk flushing but does not guarantee it's completed when returns, since it is not portable. </div> </li> <li> <div> FreeBSD and MacOS now use posix semaphores to implement named semaphores and mutex. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/math/index.html">Math</a>:</span> </div> <ul> <li> <div> Added inverse gamma distribution and inverse chi_square and scaled inverse chi_square. </div> </li> <li> <div> Added warnings about potential ambiguity with std random library in distribution and function names. </div> </li> <li> <div> Editorial revision of documentation, and added FAQ. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/msm/index.html">Meta State Machine</a>:</span> </div> <ul> <li> <div> <a href="/doc/libs/1_45_0/libs/msm/doc/HTML/ch08.html#d0e2995">Support for serialization</a>. </div> </li> <li> <div> <a href="/doc/libs/1_45_0/libs/msm/doc/HTML/ch03s04.html#eUML-reuse-functor">Possibility to use normal</a> functors (from functor front-end) in eUML. </div> </li> <li> <div> <a href="/doc/libs/1_45_0/libs/msm/doc/HTML/ch03s05.html#backend-fsm-constructor-args">New constructors where substates / submachines can be taken as arguments</a>. This allows passing arguments to the constructor of a submachine. </div> </li> <li> <div> Bugfixes (anonymous transitions) </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/multi_array/index.html">MultiArray</a>:</span> </div> <ul> <li> <div> Fixes for bugs <a href="https://svn.boost.org/trac/boost/ticket/3581">#3581</a>, <a href="https://svn.boost.org/trac/boost/ticket/3820">#3820</a>, <a href="https://svn.boost.org/trac/boost/ticket/3989">#3989</a>, <a href="https://svn.boost.org/trac/boost/ticket/4032">#4032</a>, plus other bugs not in Trac. </div> </li> <li> <div> Added new examples and test cases. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> </div> <ul> <li> <div> Knock down value of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">N</span></code>, fixes bug <a href="https://svn.boost.org/trac/boost/ticket/4602">#4602</a>, </div> </li> <li> <div> Support non-rtti compilers </div> </li> <li> <div> Fix bug with <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">matches</span></code>, array types and the wildcard pattern. </div> </li> <li> <div> Make Proto work on MSVC with the /clr option </div> </li> <li> <div> Add const-qualified overloads of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">eval</span></code> </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> Spirit V2.4.1, see the '<a href="/doc/libs/1_45_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_1.html">What's New</a>' section for details. </div> </li> <li> <div> <span class="library"><a href="/libs/type_traits/index.html">TypeTraits</a>:</span> </div> <ul> <li> <div> Added new traits add_rvalue_reference, add_lvalue_reference and common_type. </div> </li> <li> <div> Minor fixes to is_signed, is_unsigned and is_virtual_base_of. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/numeric/ublas/index.html">uBLAS</a>:</span> </div> <ul> <li> <div> Tickets closed: </div> <ul> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/4410">#4410</a>, </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3397">#3397</a>, </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/795">#795</a>, </div> </li> <li> <div> <a href="https://svn.boost.org/trac/boost/ticket/3514">#3514</a>, </div> </li> </ul> </li> <li> <div> Mixed types operation are possible and new tests added (like matrix&lt;complex&gt;+matrix&lt;double&gt;), </div> </li> <li> <div> New features: </div> <ul> <li> <div> a new size&lt;&gt; operator is available. For example size&lt;1&gt;(A+B) give the number of rows of the sum of matrices A and B, </div> </li> </ul> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> </div> <ul> <li> <div> Fix inserting from iterators which return by copy from <code><span class="keyword">operator</span><span class="special">*</span></code> in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_map</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_set</span></code>. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> </div> <ul> <li> <div> See the <a href="/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> </div> <ul> <li> <div> <code><span class="identifier">xpressive</span><span class="special">::</span><span class="identifier">as</span></code> handles wide-char <code><span class="identifier">sub_match</span></code> objects, fixes bug <a href="https://svn.boost.org/trac/boost/ticket/4496">#4496</a> </div> </li> </ul> </li> </ul> </div> <div id="version_1_45_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <div> <span class="library"><a href="/tools/boostbook/index.html">Boostbook</a>:</span> </div> <ul> <li> <div> Fix syntax highlighter for comments at the end of code blocks. </div> </li> </ul> </li> <li> <div> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> </div> <ul> <li> <div> Fix command line macros. </div> </li> <li> <div> Nested code snippets. </div> </li> <li> <div> Nested documentation info comments. </div> </li> <li> <div> Revert xml escaping document info, it broke some documentation files (will now be in 1.6). </div> </li> <li> <div> Some other small tweaks. See <a href="/doc/html/quickbook/change_log.html#quickbook.change_log.releases.version_1_5_3___boost_1_45_0">the change log</a> for more info. </div> </li> </ul> </li> </ul> </div> <div id="version_1_45_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.1. </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1 </div> </li> <li> <div> Pathscale: 3.2. </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> GCC: 4.0.1, 4.2.1, 4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4. </div> </li> <li> <div> Intel: 11.1 </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Visual C++: 7.1, 8.0, 9.0 and 10.0. </div> </li> <li> <div> GCC, mingw: 4.3.3. </div> </li> </ul> </li> <li> <div> FreeBSD: </div> <ul> <li> <div> GCC: 4.2.1, 32 bit. </div> </li> <li> <div> GCC: 4.2.1, 64 bit. </div> </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: </div> <ul> <li> <div> GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.0, 4.6.0 (dev version). </div> </li> <li> <div> GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. </div> </li> <li> <div> Intel: 10.1, 11.0, 11.1. </div> </li> <li> <div> pgCC 10.1. </div> </li> <li> <div> PathScale: 3.2. </div> </li> <li> <div> Clang from subversion. </div> </li> </ul> </li> <li> <div> OS X: </div> <ul> <li> <div> Intel C++ Compiler: 10.1, 11.0, 11.1. </div> </li> <li> <div> GCC: 4.0.1, 4.2.1, 4.4.4 </div> </li> <li> <div> GCC, C++0x mode: 4.4.4 </div> </li> <li> <div> Clang from subversion. </div> </li> </ul> </li> <li> <div> Windows: </div> <ul> <li> <div> Borland: 5.9.3, 6.1.3 (2009), 6.2.1 (2010), 6.3.0 </div> </li> <li> <div> GCC, mingw: 4.3.3, 4.4.5, 4.5.1 </div> </li> <li> <div> GCC, mingw, C++0x mode: 4.5.1 </div> </li> <li> <div> Visual C++: 7.1, 8.0, 9.0, 10.0 </div> </li> </ul> </li> <li> <div> AIX: </div> <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0. </div> </li> </ul> </li> <li> <div> FreeBSD: </div> <ul> <li> <div> GCC 4.2.1, 64 bit. </div> </li> </ul> </li> <li> <div> Solaris: </div> <ul> <li> <div> Sun C++: 5.10. </div> </li> </ul> </li> </ul> </div> <div id="version_1_45_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> </div>Version 1.44.0Fri, 13 Aug 2010 13:00:00 EDT<span class="brief"><span class="purpose"> New Libraries: Meta State Machine, Polygon. Updated Libraries: Accumulators, Asio, Config, Filesystem, Foreach, Fusion, Hash, Iostreams, Math, MPL, Multi-index Containers, Proto, Regex, Spirit, Thread, TR1, Type Traits, uBLAS, Utility, Uuid, Wave, Xpressive. Updates for Quickbook and Boostbook. </span></span>http://sourceforge.net/projects/boost/files/boost/1.44.0/<div class="description"> <div id="version_1_44_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/msm/index.html">Meta State Machine</a>:</span> High-performance expressive UML2 finite state machines, from Christophe Henry </div> </li> <li> <div> <span class="library"><a href="/libs/polygon/index.html">Polygon</a>:</span> Booleans/clipping, resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson. </div> </li> </ul> </div> <div id="version_1_44_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span> <ul> <li> <div> Correct miscellaneous documentation inaccuracies </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> <div> Reduced compile times. (Note that some programs may need to add additional <code><span class="preprocessor">#include</span></code>s, e.g. if the program uses <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> but does not explicitly include <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.) </div> </li> <li> <div> Reduced the size of generated code. </div> </li> <li> <div> Refactored <code><span class="identifier">deadline_timer</span></code> implementation to improve performance. </div> </li> <li> <div> Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers. </div> </li> <li> <div> Improved performance of <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">streambuf</span></code> with <code><span class="identifier">async_read</span><span class="special">()</span></code> and <code><span class="identifier">async_read_until</span><span class="special">()</span></code>. These read operations now use the existing capacity of the <code><span class="identifier">streambuf</span></code> when reading, rather than limiting the read to 512 bytes. </div> </li> <li> <div> Added optional separate compilation. To enable, add <code><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">cpp</span><span class="special">&gt;</span></code> to one source file in a program, then build the program with <code><span class="identifier">BOOST_ASIO_SEPARATE_COMPILATION</span></code> defined in the project/compiler settings. Alternatively, <code><span class="identifier">BOOST_ASIO_DYN_LINK</span></code> may be defined to build a separately-compiled Asio as part of a shared library. </div> </li> <li> <div> Added new macro <code><span class="identifier">BOOST_ASIO_DISABLE_FENCED_BLOCK</span></code> to permit the disabling of memory fences around completion handlers, even if thread support is enabled. </div> </li> <li> <div> Reworked timeout examples to better illustrate typical use cases. </div> </li> <li> <div> Ensured that handler arguments are passed as <code><span class="keyword">const</span></code> types. </div> </li> <li> <div> Fixed incorrect parameter order in <code><span class="identifier">null_buffers</span></code> variant of <code><span class="identifier">async_send_to</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4170">#4170</a>). </div> </li> <li> <div> Ensured <code><span class="keyword">unsigned</span> <span class="keyword">char</span></code> is used with <code><span class="identifier">isdigit</span></code> in <code><span class="identifier">getaddrinfo</span></code> emulation (<a href="https://svn.boost.org/trac/boost/ticket/4201">#4201</a>). </div> </li> <li> <div> Fixed handling of very small but non-zero timeouts (<a href="https://svn.boost.org/trac/boost/ticket/4205">#4205</a>). </div> </li> <li> <div> Fixed crash that occurred when an empty buffer sequence was passed to a composed read or write operation. </div> </li> <li> <div> Added missing <code><span class="keyword">operator</span><span class="special">+</span></code> overload in <code><span class="identifier">buffers_iterator</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4382">#4382</a>). </div> </li> <li> <div> Implemented cancellation of <code><span class="identifier">null_buffers</span></code> operations on Windows. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/config/index.html">Config</a>:</span> <ul> <li> <div> Added new defect macro, <code><span class="identifier">BOOST_NO_COMPLETE_VALUE_INITIALIZATION</span></code>. </div> </li> <li> <div> Added new defect macro <code><span class="identifier">BOOST_NO_0X_HDR_TYPEINDEX</span></code>, fixes issue <a href="https://svn.boost.org/trac/boost/ticket/4274">#4274</a>. </div> </li> <li> <div> Added support for code visibility in GCC. </div> </li> <li> <div> Fixed issues <a href="https://svn.boost.org/trac/boost/ticket/4385">#4385</a>, <a href="https://svn.boost.org/trac/boost/ticket/4324">#4324</a>, <a href="https://svn.boost.org/trac/boost/ticket/4221">#4221</a>, <a href="https://svn.boost.org/trac/boost/ticket/4182">#4182</a>, <a href="https://svn.boost.org/trac/boost/ticket/4178">#4178</a>, <a href="https://svn.boost.org/trac/boost/ticket/4152">#4152</a>, <a href="https://svn.boost.org/trac/boost/ticket/4182">#4115</a>. <a href="https://svn.boost.org/trac/boost/ticket/4112">#4112</a>, <a href="https://svn.boost.org/trac/boost/ticket/4059">#4059</a>, <a href="https://svn.boost.org/trac/boost/ticket/4041">#4041</a>, <a href="https://svn.boost.org/trac/boost/ticket/4012">#4012</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/filesystem/index.html">Filesystem</a>:</span> <ul> <li> <div> This release contains both version 2 and version 3 of the library. Version 3 is a major upgrade that will break some existing user code, so version 2 is the default. Users are encouraged to migrate to version 3. See '<a href="/libs/filesystem/v2/doc/index.htm">Version 2</a>' and '<a href="/libs/filesystem/v3/doc/index.htm">Version 3</a>' for more information. </div> </li> <li> <div> Fix problems with symbol visibility for shared libraries. </div> </li> <li> <div> Fix various minor problems. </div> </li> <li> <div> Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/3863">#3863</a>, <a href="https://svn.boost.org/trac/boost/ticket/4248">#4248</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> <ul> <li> <div> Add <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">foreach_fwd</span><span class="special">.</span><span class="identifier">hpp</span></code> for forward declarations of foreach's customization points, fixes <a href="https://svn.boost.org/trac/boost/ticket/3998">#3998</a>. </div> </li> <li> <div> Remove out-of-date work-arounds for sun compilers, fixes <a href="https://svn.boost.org/trac/boost/ticket/4306">#4306</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> <ul> <li> <div> Added <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">reverse_fold</span></code>, <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">iter_fold</span></code> and <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">reverse_iter_fold</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/1623">#1623</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> <ul> <li> <div> Option to prevent implicit casts when calling the hash function by defining the macro <code><span class="identifier">BOOST_HASH_NO_IMPLICIT_CASTS</span></code>, which can avoid some subtle problems. This might be activated by default in a future version. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> <ul> <li> <div> Several fixes for file descriptors class, including a breaking change to the constructors and <code><span class="identifier">open</span></code> methods for <code><span class="identifier">file_descriptor</span></code>, <code><span class="identifier">file_descriptor_source</span></code> and <code><span class="identifier">file_descriptor_sink</span></code>. See <a href="/libs/iostreams/doc/classes/file_descriptor.html">the documentation</a> for details. The old methods are still available if you define <code><span class="identifier">BOOST_IOSTREAMS_USE_DEPRECATED</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/3323">#3323</a>, <a href="https://svn.boost.org/trac/boost/ticket/3517">#3517</a>, <a href="https://svn.boost.org/trac/boost/ticket/4335">#4335</a>). </div> </li> <li> <div> Fix several issues with compression and decompression (<a href="https://svn.boost.org/trac/boost/ticket/2318">#2318</a>, <a href="https://svn.boost.org/trac/boost/ticket/4091">#4091</a>, <a href="https://svn.boost.org/trac/boost/ticket/3348">#3348</a>, <a href="https://svn.boost.org/trac/boost/ticket/2783">#2783</a>, <a href="https://svn.boost.org/trac/boost/ticket/1579">#1579</a>, <a href="https://svn.boost.org/trac/boost/ticket/3853">#3853</a>). </div> </li> <li> <div> And a load more miscellaneous fixes (<a href="https://svn.boost.org/trac/boost/ticket/3851">#3851</a>, <a href="https://svn.boost.org/trac/boost/ticket/3279">#3279</a>, <a href="https://svn.boost.org/trac/boost/ticket/3689">#3689</a>, <a href="https://svn.boost.org/trac/boost/ticket/2356">#2356</a>, <a href="https://svn.boost.org/trac/boost/ticket/2996">#2996</a>, <a href="https://svn.boost.org/trac/boost/ticket/4102">#4102</a>, <a href="https://svn.boost.org/trac/boost/ticket/2998">#2998</a>, <a href="https://svn.boost.org/trac/boost/ticket/1612">#1612</a>, <a href="https://svn.boost.org/trac/boost/ticket/2325">#2325</a>). </div> </li> <li> <div> Thanks to Steven Watanabe for almost all these fixes. For more detail see the <a href="/libs/iostreams/doc/release_notes.html">release notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/math/index.html">Math</a>:</span> <ul> <li> <div> Fixed incorrect range and support for Rayleigh distribution. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/mpl/index.html">MPL</a>:</span> <ul> <li> <div> Make <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">string</span></code> work with <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">transform</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> <ul> <li> <div> Fixed a bug preventing the use of <code><span class="identifier">modify_key</span></code> with rollback in <a href="/libs/multi_index/doc/reference/ord_indices.html#modify_key">ordered</a> and <a href="/libs/multi_index/doc/reference/hash_indices.html#modify_key">hashed</a> indices when <code><span class="identifier">Modifier</span></code> and <code><span class="identifier">Rollback</span></code> are different types (ticket <a href="https://svn.boost.org/trac/boost/ticket/4130">#4130</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> <div> <em>Minor change in behavior:</em> when using <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">and_</span></code> as a transform, apply <em>all</em> transforms but only return the result of applying the last. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_44">Release Notes</a> for details. </div> </li> <li> <div> <em>Minor change in behavior:</em> <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">as_expr</span></code> and <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">as_child</span></code> no longer run objects that are already proto expressions through the expression domain's generator. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_44">Release Notes</a> for details. </div> </li> <li> <div> <em>Minor change in behavior:</em> Proto uses <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">basic_expr</span></code> instead of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">expr</span></code> when possible for better compile times. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_44">Release Notes</a> for details. </div> </li> <li> <div> Add support for sub-domains. </div> </li> <li> <div> Introduce per-domain <code><span class="identifier">as_expr</span></code> and <code><span class="identifier">as_child</span></code> customization points to allow for domain-specific customization of variable capture behavior. </div> </li> <li> <div> The <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">_default</span></code> transform is also a grammar that matches the expressions the transform knows how to handle. </div> </li> <li> <div> Add <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">_void</span></code>, a no-op primitive transform that does nothing and returns <code><span class="keyword">void</span></code>. </div> </li> <li> <div> The <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">pass_through</span></code> transform doesn't strip expression wrappers, fixes <a href="https://svn.boost.org/trac/boost/ticket/4175">#4175</a>. </div> </li> <li> <div> Const-correctness fixes when invoking proto domains. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/regex/index.html">Regex</a>:</span> <ul> <li> <div> Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/4309">#4309</a>, <a href="https://svn.boost.org/trac/boost/ticket/4215">#4215</a>, <a href="https://svn.boost.org/trac/boost/ticket/4212">#4212</a>, <a href="https://svn.boost.org/trac/boost/ticket/4191">#4191</a>, <a href="https://svn.boost.org/trac/boost/ticket/4132">#4132</a>, <a href="https://svn.boost.org/trac/boost/ticket/4123">#4123</a>, <a href="https://svn.boost.org/trac/boost/ticket/4114">#4114</a>, <a href="https://svn.boost.org/trac/boost/ticket/4036">#4036</a>, <a href="https://svn.boost.org/trac/boost/ticket/4020">#4020</a>, <a href="https://svn.boost.org/trac/boost/ticket/3941">#3941</a>, <a href="https://svn.boost.org/trac/boost/ticket/3902">#3902</a>, <a href="https://svn.boost.org/trac/boost/ticket/3890">#3890</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> Spirit V2.4, see the '<a href="/doc/libs/1_44_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4.html">What's New</a>' section for details. </div> </li> <li> <div> <span class="library"><a href="/libs/system/index.html">System</a>:</span> <ul> <li> <div> Change system_category and generic_category to functions, to conform to the C++0x FCD. This change may cause compile errors some user code; the fix is add &quot;()&quot; to references to system_category and generic_category, so that they become function calls. </div> </li> <li> <div> Fix problems with symbol visibility for shared libraries. </div> </li> <li> <div> Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/4254">#4254</a>, <a href="https://svn.boost.org/trac/boost/ticket/3994">#3994</a>, <a href="https://svn.boost.org/trac/boost/ticket/3474">#3474</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span> <ul> <li> <div> Fixes for miscellaneous trac issues (<a href="https://svn.boost.org/trac/boost/ticket/2501">#2501</a>, <a href="https://svn.boost.org/trac/boost/ticket/4341">#4341</a>, <a href="https://svn.boost.org/trac/boost/ticket/4363">#4363</a>, <a href="https://svn.boost.org/trac/boost/ticket/3760">#3760</a>, <a href="https://svn.boost.org/trac/boost/ticket/3761">#3761</a>, <a href="https://svn.boost.org/trac/boost/ticket/3611">#3611</a>, <a href="https://svn.boost.org/trac/boost/ticket/2955">#2955</a>, <a href="https://svn.boost.org/trac/boost/ticket/4071">#4071</a>, <a href="https://svn.boost.org/trac/boost/ticket/3195">#3195</a>, <a href="https://svn.boost.org/trac/boost/ticket/3097">#3097</a>, <a href="https://svn.boost.org/trac/boost/ticket/2874">#2874</a>, <a href="https://svn.boost.org/trac/boost/ticket/4316">#4316</a>, <a href="https://svn.boost.org/trac/boost/ticket/4317">#4317</a>, <a href="https://svn.boost.org/trac/boost/ticket/4322">#4322</a>, <a href="https://svn.boost.org/trac/boost/ticket/3244">#3244</a>, <a href="https://svn.boost.org/trac/boost/ticket/2747">#2747</a>, <a href="https://svn.boost.org/trac/boost/ticket/4305">#4305</a>, <a href="https://svn.boost.org/trac/boost/ticket/3195">#3195</a>, <a href="https://svn.boost.org/trac/boost/ticket/2704">#2704</a>, <a href="https://svn.boost.org/trac/boost/ticket/2293">#2293</a>, <a href="https://svn.boost.org/trac/boost/ticket/868">#868</a>, <a href="https://svn.boost.org/trac/boost/ticket/2918">#2918</a>, <a href="https://svn.boost.org/trac/boost/ticket/4238">#4238</a>, <a href="https://svn.boost.org/trac/boost/ticket/3269">#3269</a>, <a href="https://svn.boost.org/trac/boost/ticket/3178">#3178</a>, <a href="https://svn.boost.org/trac/boost/ticket/3195">#3195</a>). </div> </li> <li> <div> Fixes for other miscellaneous issues (remove warnings, support newer compilers, etc.) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/tr1/index.html">TR1</a>:</span> <ul> <li> <div> Fixed VC10 support. </div> </li> <li> <div> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">result_of</span></code> always uses the TR1 ResultOf protocol, even on compilers that support the C++0x <code><span class="identifier">decltype</span></code>-based implementation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/type_traits/index.html">Type Traits</a>:</span> <ul> <li> <div> Added support for rvalue references throughout the library, plus two new traits classes is_rvalue_reference and is_lvalue_reference. Fixes <a href="https://svn.boost.org/trac/boost/ticket/4407">#4407</a> and <a href="https://svn.boost.org/trac/boost/ticket/3804">#3804</a>. </div> </li> <li> <div> Fixed ticket <a href="https://svn.boost.org/trac/boost/ticket/3621">#3621</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/numeric/ublas/index.html">uBLAS</a>:</span> <ul> <li> <div> New assignment operators to feed in vectors and matrices in many nice ways (<a href="http://svn.boost.org/trac/boost/ticket/4034">#4034</a>). Thank you Nasos </div> </li> <li> <div> New doxygen-based <a href="/libs/numeric/ublas/doc/html/index.html">documentation</a> </div> </li> <li> <div> Enable arithmetic operators (+,-,*,/) to work between ublas containers of std::complex and integral types (<a href="http://svn/boost/org/trac/boost/ticket/3649">#3649</a>). Thank you Neal </div> </li> <li> <div> Removed unused variables in functional.hpp (<a href="http://svn.boost.org/trac/boost/ticket/4377">#4377</a>). Thank you Marco </div> </li> <li> <div> New matrix_indirect and vector_indirect views to access elements with a matrix or vector of indices </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/utility/index.html">Utility</a>:</span> <ul> <li> <div> Added a new template class, <a href="/libs/utility/value_init.htm#initialized"><code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">initialized</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code></a>, in order to fix <a href="https://svn.boost.org/trac/boost/ticket/3472">#3472</a>. </div> </li> <li> <div> New version of <code><span class="identifier">value_initialized</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> no longer calls <code><span class="identifier">memset</span></code> when the compiler has implemented value-initialization completely (<a href="https://svn.boost.org/trac/boost/ticket/3869">#3869</a>). </div> </li> <li> <div> New template <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_result_of</span></code> that implements the TR1 ResultOf protocol even if <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code> uses the C++0x <code><span class="identifier">decltype</span></code>-based implementation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/uuid/index.html">Uuid</a>:</span> <ul> <li> <div> Define <code><span class="identifier">BOOST_UUID_NO_TYPE_TRAITS</span></code> to remove the dependency on Boost.TypeTraits. </div> </li> <li> <div> Stream <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> handles left, internal, and right manipulators. </div> </li> <li> <div> Added <code><span class="identifier">to_string</span></code>, <code><span class="identifier">to_wstring</span></code> to convert a uuid to a string. </div> </li> <li> <div> Fixed minor bugs in documentation. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> See the <a href="/libs/wave/ChangeLog">Changelog</a> for details. </div> </li> <li> <div> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> <div> Replace non-portable <code><span class="keyword">using</span></code> declarations with <code><span class="keyword">typedef</span></code>s in <code><span class="identifier">nested_results</span></code>. </div> </li> <li> <div> Support user-defined assertions with placeholders for non-local variables. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_44_0.updated_tools"> <h3><span class="link">Updated tools</span></h3> <ul> <li> <div> <span class="library"><a href="/tools/boostbook/index.html">Boostbook</a>:</span> <ul> <li> <div> Significantly faster. </div> </li> <li> <div> Improved syntax highlighter. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> <ul> <li> <div> Use the cygwin 1.7 API for better path handling. </div> </li> <li> <div> Improved boostbook generation. </div> </li> <li> <div> Tweak the grammar to clean up some edge cases. </div> </li> <li> <div> For more detail see the <a href="/doc/libs/1_44_0/doc/html/quickbook/change_log.html#quickbook.change_log.version_1_5_2___boost_1_44_0">change log</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_44_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> OS X: <ul> <li> <div> GCC 4.0.1 on Intel Leopard. </div> </li> </ul> </div> </li> <li> <div> Linux: <ul> <li> <div> GCC 4.4 on 64-bit Suse. </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 7.1 SP1, 8.0 SP1, 9.0 SP1 and 10.0. </div> </li> <li> <div> GCC 4.3.3, using Mingw. </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1, 32 and 64 bit. </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> Intel 10.1 on 32 bit Red Hat Enterprise Linux. </div> </li> <li> <div> Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. </div> </li> <li> <div> GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. </div> </li> <li> <div> GCC, with C++0x extensions, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. </div> </li> <li> <div> GCC 4.4 on 64 bit Suse. </div> </li> <li> <div> QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. </div> </li> <li> <div> Clang from subversion (will be released with LLVM 2.8). </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. </div> </li> <li> <div> GCC 4.0.1, 4.2.1 (Apple build). </div> </li> <li> <div> GCC 4.4 </div> </li> <li> <div> GCC, with C++0x extensions, 4.4 </div> </li> <li> <div> Clang from subversion (will be released with LLVM 2.8). </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 7.1 SP, 8.0, 9.0 on 32-bit XP. </div> </li> <li> <div> Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. </div> </li> <li> <div> Visual C++ 10.0 on XP. </div> </li> <li> <div> Visual C++ 10.0 on 64-bit Windows 7. </div> </li> <li> <div> Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). </div> </li> <li> <div> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. </div> </li> <li> <div> GCC 4.3.3, 4.5 on Mingw. </div> </li> <li> <div> GCC, with C++0x extensions, 4.5 on Mingw. </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition, V11.1.0.0, on AIX Version 5.3.0.40. </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1 on FreeBSD 7.2, 64 bit. </div> </li> <li> <div> GCC 4.2.1 on FreeBSD 8.0, 32 bit. </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun C++ 5.10 on Solaris 5.10. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_44_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> <p> Thanks to Marshall Clow for organizing the bug sprint and to everyone who took part. </p> </div> </div>Version 1.43.0Thu 6 May 2010 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Functional/Factory, Functional/Forward. Major Update: Range. Updated Libraries: Accumulators, Array, Asio, Fusion, Iostreams, Multi-index Containers, Proto, Random, Spirit, Thread, Unordered, Uuid, Wave, Xpressive. Also, updates to the build system and quickbook. </span></span>http://sourceforge.net/projects/boost/files/boost/1.43.0/<div class="description"> <div id="version_1_43_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/functional/factory/index.html">Functional/factory</a>:</span> Function objects for dynamic and by-value construction, from Tobias Schwinger. </li> <li> <span class="library"><a href="/libs/functional/forward/index.html">Functional/forward</a>:</span> Function object adapters to address the forwarding problem, from Tobias Schwinger. </li> </ul> </div> <div id="version_1_43_0.major_updates"> <h3><span class="link">Major Updates</span></h3> <ul> <li> <span class="library"><a href="/libs/range/index.html">Range</a>:</span> Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. <ul> <li> Range-based version of the full STL iterator based algorithms. </li> <li> Range adaptors which can be combined with range-based algorithms for unprecedented expressiveness and efficiency. </li> <li> New functions: irange, istream_range, join, combine. </li> </ul> </li> </ul> </div> <div id="version_1_43_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span> <ul> <li> Avoid premature template evaluation in operator overload return types. </li> </ul> </li> <li> <span class="library"><a href="/libs/array/index.html">Array</a>:</span> <ul> <li> Added support for SunCC compiler. </li> <li> Added 'fill' member function. </li> <li> Changed exception code to use boost::throw_exception. </li> </ul> </li> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Improved performance. </li> <li> Reduced compile times. </li> <li> Reduced the size of generated code. </li> <li> Extended the guarantee that background threads don't call user code to all asynchronous operations (<a href="https://svn.boost.org/trac/boost/ticket/3923">#3923</a>). </li> <li> Changed to use edge-triggered epoll on Linux. </li> <li> Changed to use <code><span class="identifier">timerfd</span></code> for dispatching timers on Linux, when available. </li> <li> Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. </li> <li> Added a bitmask type <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">resolver_query_base</span><span class="special">::</span><span class="identifier">flags</span></code> as per the TR2 proposal. This type prevents implicit conversion from <code><span class="keyword">int</span></code> to <code><span class="identifier">flags</span></code>, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. </li> <li> Added <code><span class="preprocessor">#define</span> <span class="identifier">NOMINMAX</span></code> for all Windows compilers. Users can define <code><span class="identifier">BOOST_ASIO_NO_NOMINMAX</span></code> to suppress this definition (<a href="https://svn.boost.org/trac/boost/ticket/3901">#3901</a>). </li> <li> Fixed a bug where 0-byte asynchronous reads were incorrectly passing an <code><span class="identifier">error</span><span class="special">::</span><span class="identifier">eof</span></code> result to the completion handler (<a href="https://svn.boost.org/trac/boost/ticket/4023">#4023</a>). </li> <li> Changed the <code><span class="identifier">io_control</span><span class="special">()</span></code> member functions to always call <code><span class="identifier">ioctl</span></code> on the underlying descriptor when modifying blocking mode (<a href="https://svn.boost.org/trac/boost/ticket/3307">#3307</a>). </li> <li> Changed the resolver implementation to longer require the typedefs <code><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_query</span></code> and <code><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_iterator</span></code>, as neither typedef is part of the documented <code><span class="identifier">InternetProtocol</span></code> requirements. The corresponding typedefs in the <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span></code>, <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">udp</span></code> and <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">icmp</span></code> classes have been deprecated. </li> <li> Fixed out-of-band handling for reactors not based on <code><span class="identifier">select</span><span class="special">()</span></code>. </li> <li> Added new <code><span class="identifier">BOOST_ASIO_DISABLE_THREADS</span></code> macro that allows Asio's threading support to be independently disabled. </li> <li> Minor documentation improvements. </li> </ul> </li> <li> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> <ul> <li> Added new macros for adapting or defining custom types. See the <a href="/libs/fusion/doc/html/fusion/change_log.html">Changelog</a> for details. </li> </ul> </li> <li> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> <ul> <li> Minor fixes (<a href="https://svn.boost.org/trac/boost/ticket/2505">#2505</a>, <a href="https://svn.boost.org/trac/boost/ticket/3839">#3839</a>, <a href="https://svn.boost.org/trac/boost/ticket/3953">#3953</a>, <a href="https://svn.boost.org/trac/boost/ticket/3723">#3723</a>, <a href="https://svn.boost.org/trac/boost/ticket/3969">#3969</a>, <a href="https://svn.boost.org/trac/boost/ticket/4135">#4135</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> <ul> <li> <a href="/libs/serialization/doc/serialization.html#constructors">Serialization of non default constructible values</a> is now properly supported through user-provided facilities <code><span class="identifier">save_construct_data</span></code> and <code><span class="identifier">load_construct_data</span></code>. <code><span class="identifier">multi_index_container</span></code> serialization <a href="/libs/serialization/doc/tutorial.html#versioning">class version</a> has been bumped from 1 to 2. </li> </ul> </li> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_43">Release Notes</a> for details. </li> <li> Minor change to recommended expression extension mechanism: use <code><span class="identifier">BOOST_PROTO_EXTENDS_USING_ASSIGN</span><span class="special">()</span></code>. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_43">Release Notes</a> for details. </li> <li> Fix error in invocation of callable monomorphic function objects in Proto transforms. </li> <li> Fix misc const correctness issues, work around fusion bug. </li> <li> Add non-const function call overloads to proto terminals. </li> <li> Add a default constructor to <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">literal</span><span class="special">&lt;&gt;</span></code>. </li> <li> Do not use deprecated config macros. </li> <li> Add <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">assert_matches</span><span class="special">()</span></code> function and friends to <tt>&lt;boost/proto/debug.hpp&gt;</tt>. </li> <li> <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">make_expr</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">unpack_expr</span><span class="special">&lt;&gt;</span></code> return const-qualified rvalues. </li> <li> Add documentation for Expr and Domain concepts. </li> </ul> </li> <li> <span class="library"><a href="/libs/random/index.html">Random</a>:</span> <ul> <li> Put the implementation of random_device in a compiled lib, and added Windows support. </li> <li> Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. </li> </ul> </li> <li> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> Spirit V2.3, see the '<a href="/doc/libs/1_43_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html">What's New</a>' section for details. </li> <li> <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span> <ul> <li> Uses <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span></code> for all exceptions except <code><span class="identifier">thread_interrupted</span></code> </li> <li> Added fix for issue 2742 </li> <li> Optimizations to mutex locks and <code><span class="identifier">call_once</span></code> </li> </ul> </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> <code><span class="identifier">erase_return_void</span></code> is now <code><span class="identifier">quick_erase</span></code> (<a href="http://svn.boost.org/trac/boost/ticket/3966">#3966</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/uuid/index.html">Uuid</a>:</span> <ul> <li> Split generators into separate files. </li> <li> Fixed bug in basic_random_generator (<a href="https://svn.boost.org/trac/boost/ticket/3971">#3971</a>). </li> <li> Updated documentation. </li> </ul> </li> <li> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> See the <a href="/libs/wave/ChangeLog">Changelog</a> for details. </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> Add missing include to <tt>&lt;boost/xpressive/regex_error.hpp&gt;</tt>. </li> </ul> </li> </ul> </div> <div id="version_1_43_0.build_system"> <h3><span class="link">Build System</span></h3> <ul> <li> When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in <tt>Archive has no index</tt> error. </li> <li> The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. </li> </ul> </div> <div id="version_1_43_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> <ul> <li> Unicode escape characters. </li> <li> Support the UTF-8 byte order mark. </li> <li> Disallow <code><span class="special">[</span></code> in simple markup. Fixes some errors with mismatched punctuation. </li> <li> Add a command line flag (<code><span class="special">-</span><span class="identifier">D</span></code>) to define macros at the command line. </li> <li> Improved post-processor output. </li> <li> Check that <code><span class="special">[</span><span class="identifier">section</span><span class="special">]</span></code> and <code><span class="special">[</span><span class="identifier">endsect</span><span class="special">]</span></code> tags are balanced in templates. </li> </ul> </li> </ul> </div> <div id="version_1_43_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> OS X: <ul> <li> GCC 4.0.1 on Intel Leopard. </li> </ul> </li> <li> Linux: <ul> <li> GCC 4.4.1 on Ubuntu Linux. </li> <li> GCC 4.4 on 64-bit Suse. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. </li> <li> GCC 4.3.3, using Mingw </li> </ul> </li> <li> FreeBSD: <ul> <li> GCC 4.2.1, 32 and 64 bit. </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> Linux: <ul> <li> Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. </li> <li> Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. </li> <li> GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. </li> <li> GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. </li> </ul> </li> <li> OS X: <ul> <li> Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. </li> <li> GCC 4.0.1 on Intel Leopard. </li> <li> Clang from subversion. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 8,0, 9,0 on 32-bit XP. </li> <li> Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. </li> <li> Visual C++ 10.0 on XP. </li> <li> Visual C++ 10.0 on 64-bit Windows 7. </li> <li> Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). </li> <li> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. </li> <li> GCC 4.3.3 on Mingw. </li> <li> GCC 4.4.3 on Mingw, with and without C++0x extensions. </li> <li> GCC 4.5 on Mingw. </li> </ul> </li> <li> AIX: <ul> <li> IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. </li> </ul> </li> <li> FreeBSD: <ul> <li> GCC 4.2.1 on FreeBSD 7.2, 64 bit. </li> <li> GCC 4.2.1 on FreeBSD 8.0, 32 bit. </li> </ul> </li> <li> Solaris: <ul> <li> Sun C++ 5.10 on Solaris 5.10. </li> </ul> </li> </ul> </div> <div id="version_1_43_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> </div>Version 1.42.0Tue 2 Feb 2010 14:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Uuid. Updated Libraries: Asio, Circular Buffer, Fusion, Graph, Integer, Iostreams, Program.Options, PropertyMap, Proto, Regex, Spirit, Unordered, Xpressive. </span></span>http://sourceforge.net/projects/boost/files/boost/1.42.0/<div class="description"> <div id="version_1_42_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/uuid/index.html">Uuid</a>:</span> A universally unique identifier, from Andy Tompkins. </li> </ul> </div> <div id="version_1_42_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Added a new HTTP Server 4 example illustrating the use of stackless coroutines with Asio. </li> <li> Changed handler allocation and invocation to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">addressof</span></code> to get the address of handler objects, rather than applying <code><span class="keyword">operator</span><span class="special">&amp;</span></code> directly (<a href="https://svn.boost.org/trac/boost/ticket/2977">#2977</a>). </li> <li> Restricted MSVC buffer debugging workaround to 2008, as it causes a crash with 2010 beta 2 (<a href="https://svn.boost.org/trac/boost/ticket/3796">#3796</a>, <a href="https://svn.boost.org/trac/boost/ticket/3822">#3822</a>). </li> <li> Fixed a problem with the lifetime of handler memory, where Windows needs the <code><span class="identifier">OVERLAPPED</span></code> structure to be valid until both the initiating function call has returned and the completion packet has been delivered. </li> <li> Don't block signals while performing system calls, but instead restart the calls if they are interrupted. </li> <li> Documented the guarantee made by strand objects with respect to order of handler invocation. </li> <li> Changed strands to use a pool of implementations, to make copying of strands cheaper. </li> <li> Ensured that kqueue support is enabled for BSD platforms (<a href="https://svn.boost.org/trac/boost/ticket/3626">#3626</a>). </li> <li> Added a <code><span class="identifier">boost_</span></code> prefix to the <code><span class="keyword">extern</span> <span class="string">&quot;C&quot;</span></code> thread entry point function (<a href="https://svn.boost.org/trac/boost/ticket/3809">#3809</a>). </li> <li> In <code><span class="identifier">getaddrinfo</span></code> emulation, only check the socket type (<code><span class="identifier">SOCK_STREAM</span></code> or <code><span class="identifier">SOCK_DGRAM</span></code>) if a service name has been specified. This should allow the emulation to work with raw sockets. </li> <li> Added a workaround for some broken Windows firewalls that make a socket appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1. </li> <li> Applied a fix for reported excessive CPU usage under Solaris (<a href="https://svn.boost.org/trac/boost/ticket/3670">#3670</a>). </li> <li> Added some support for platforms that use older compilers such as g++ 2.95 (<a href="https://svn.boost.org/trac/boost/ticket/3743">#3743</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> <ul> <li> Added methods erase_begin(size_type) and erase_end(size_type) with constant complexity for such types of stored elements which do not need an explicit destruction e.g. int or double. </li> <li> Similarly changed implementation of the clear() method and the destructor so their complexity is now constant for such types of stored elements which do not require an explicit destruction (the complexity for other types remains linear). </li> </ul> </li> <li> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> <ul> <li> The accumulator is the first argument to the functor of <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">fold</span></code> and <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">accumulate</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2355">#2355</a>). </li> <li> Added support for associative iterators and views (<a href="https://svn.boost.org/trac/boost/ticket/3473">#3473</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/graph/index.html">Graph</a>:</span> <ul> <li> Removed old interface to <code><span class="identifier">compressed_sparse_row_graph</span></code>, making new interface the default. </li> </ul> </li> <li> <span class="library"><a href="/libs/integer/index.html">Integer</a>:</span> <ul> <li> Reverted Trunk to release branch state (i.e. a &quot;known good state&quot;). </li> <li> Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/653">653</a>, <a href="https://svn.boost.org/trac/boost/ticket/3084">3084</a>, <a href="https://svn.boost.org/trac/boost/ticket/3177">3177</a>, <a href="https://svn.boost.org/trac/boost/ticket/3180">3180</a>, <a href="https://svn.boost.org/trac/boost/ticket/3548">3568</a>, <a href="https://svn.boost.org/trac/boost/ticket/3657">3657</a>, <a href="https://svn.boost.org/trac/boost/ticket/2134">2134</a>. </li> <li> Added long long support to <tt>boost::static_log2</tt>, <tt>boost::static_signed_min</tt>, <tt>boost::static_signed_max</tt>, <tt>boost::static_unsigned_min</tt><tt>boost::static_unsigned_max</tt>, when available. </li> <li> The argument type and the result type of <tt>boost::static_signed_min</tt> etc are now typedef'd. Formerly, they were hardcoded as <tt>unsigned long</tt> and <tt>int</tt> respectively. Please, use the provided typedefs in new code (and update old code as soon as possible). </li> </ul> </li> <li> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> <ul> <li> Fixed many outstanding issues. Thanks to Richard Smith for his work on this. (<a href="https://svn.boost.org/trac/boost/ticket/3612">#3612</a>, <a href="https://svn.boost.org/trac/boost/ticket/3311">#3311</a>, <a href="https://svn.boost.org/trac/boost/ticket/2094">#2094</a>, <a href="https://svn.boost.org/trac/boost/ticket/3010">#3010</a>, <a href="https://svn.boost.org/trac/boost/ticket/2894">#2894</a>, <a href="https://svn.boost.org/trac/boost/ticket/3011">#3011</a>, <a href="https://svn.boost.org/trac/boost/ticket/3352">#3352</a>, <a href="https://svn.boost.org/trac/boost/ticket/3505">#3505</a>). </li> <li> For more information see the <a href="/libs/iostreams/doc/release_notes.html">library release notes</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/program_options/index.html">Program.Options</a>:</span> <ul> <li> Information about option name added to a few exception classes and various clean ups in exception classes (<a href="https://svn.boost.org/trac/boost/ticket/3423">#3423</a>). </li> <li> Description wordwrapping in presense of default parameters fixed (<a href="https://svn.boost.org/trac/boost/ticket/2613">#2613</a>). </li> <li> Empty value in configuration file is now permitted (<a href="https://svn.boost.org/trac/boost/ticket/1537">#1537</a>). </li> <li> Quotes are no longer stripped from string values (<a href="https://svn.boost.org/trac/boost/ticket/850">#850</a>). </li> <li> Fix endless loop in case of long default arguments (<a href="https://svn.boost.org/trac/boost/ticket/689">#689</a>). </li> <li> Fix compile warning caused by usage of boost::any (<a href="https://svn.boost.org/trac/boost/ticket/2562">#2562</a>). </li> <li> Fix memory bug in example/response_file.cpp (<a href="https://svn.boost.org/trac/boost/ticket/3525">#3525</a>). </li> <li> Most compilation warnings were fixed (<a href="https://svn.boost.org/trac/boost/ticket/3608">#3608</a>). </li> <li> Make column width for description text configurable. (<a href="https://svn.boost.org/trac/boost/ticket/3703">#3703</a>). </li> <li> Add general split function: split_unix() (<a href="https://svn.boost.org/trac/boost/ticket/2561">#2561</a>). </li> <li> Enable open config files from given file name (<a href="https://svn.boost.org/trac/boost/ticket/3264">#3264</a>). </li> <li> Additional flag for required options (<a href="https://svn.boost.org/trac/boost/ticket/2982">#2982</a>). </li> <li> Enable case insensitive style for command line (<a href="https://svn.boost.org/trac/boost/ticket/3498">#3498</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/property_map/index.html">PropertyMap</a>:</span> <ul> <li> Removed old header files (directly in the <code><span class="identifier">boost</span><span class="special">/</span></code> directory); they were deprecated since 1.40, replaced by headers in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span></code>. </li> </ul> </li> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> Fix const correctness issues with <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">flatten</span></code> and friends (<a href="https://svn.boost.org/trac/boost/ticket/3364">#3364</a>). </li> <li> Accomodate recent change to <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">fold</span></code>, remove old support for Doxygen and pre-1.35 Fusion (<a href="https://svn.boost.org/trac/boost/ticket/3553">#3553</a>). </li> <li> In binary operations, when one operand has a user-specified domain and the other has the default domain, the user-specified domain trumps. </li> <li> Fix <code><span class="identifier">BOOST_PROTO_EXTENDS</span></code> to work with elaborated types. </li> <li> Work around EDG compiler bug with function types and cv-qualification. </li> </ul> </li> <li> <span class="library"><a href="/libs/regex/index.html">Regex</a>:</span> <ul> <li> Added support for Functors rather than strings as format expressions. </li> <li> Improved error reporting when throwing exceptions to include better more relevant information. </li> <li> Improved performance and reduced stack usage of recursive expressions. </li> <li> Fixed tickets <a href="https://svn.boost.org/trac/boost/ticket/2802">#2802</a>, <a href="https://svn.boost.org/trac/boost/ticket/3425">#3425</a>, <a href="https://svn.boost.org/trac/boost/ticket/3507">#3507</a>, <a href="https://svn.boost.org/trac/boost/ticket/3546">#3546</a>, <a href="https://svn.boost.org/trac/boost/ticket/3631">#3631</a>, <a href="https://svn.boost.org/trac/boost/ticket/3632">#3632</a>, <a href="https://svn.boost.org/trac/boost/ticket/3715">#3715</a>, <a href="https://svn.boost.org/trac/boost/ticket/3718">#3718</a>, <a href="https://svn.boost.org/trac/boost/ticket/3763">#3763</a>, <a href="https://svn.boost.org/trac/boost/ticket/3764">#3764</a> </li> </ul> </li> <li> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> Spirit V2.2, see the '<a href="/doc/libs/1_42_0/libs/spirit/doc/html/spirit/what_s_new.html">What's New</a>' section for details. </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> Support instantiating the containers with incomplete value types. </li> <li> Add <code><span class="identifier">erase_return_void</span></code> as a temporary workaround for the current <code><span class="identifier">erase</span></code> which can be inefficient because it has to find the next element to return an iterator (<a href="http://svn.boost.org/trac/boost/ticket/3693">#3693</a>). </li> <li> Add templated find overload for compatible keys. </li> <li> Improved codegear compatibility. </li> <li> Other minor changes, full details in <a href="/doc/html/unordered/changes.html#unordered.changes.boost_1_42_0">the changelog</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> <code><span class="identifier">match_results</span></code> no longer relies on undefined behavior in <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/3278">#3278</a>). </li> <li> Do NOT copy singular iterators (<a href="https://svn.boost.org/trac/boost/ticket/3538">#3538</a>). </li> <li> Eliminate gcc and darwin warnings (<a href="https://svn.boost.org/trac/boost/ticket/3734">#3734</a>). </li> </ul> </li> </ul> </div> <div id="version_1_42_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> OS X: <ul> <li> GCC 4.0.1 on Intel Leopard. </li> <li> GCC 4.0.1 on PowerPC Tiger. </li> </ul> </li> <li> Linux: <ul> <li> GCC 4.4.1 on Ubuntu Linux. </li> <li> GCC 4.4 on Debian. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. </li> <li> Visual C++ 9.0 on Windows 2008, 64 bit. </li> <li> GCC 4.3.3, using Mingw </li> </ul> </li> <li> FreeBSD: <ul> <li> GCC 4.2.1, 32 and 64 bit. </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> Linux: <ul> <li> Intel 10.1 on Red Hat Enterprise Linux. </li> <li> Intel 10.1 on 64 bit Red Hat Enterprise Linux. </li> <li> Intel 11.0 on 32 bit Red Hat Enterprise Linux. </li> <li> Intel 11.0 on 64 bit Red Hat Enterprise Linux. </li> <li> Intel 11.1 on 64 bit Red Hat Enterprise Linux. </li> <li> Intel 11.1 on 64 bit Linux Redhat 5.1 Server. </li> <li> Intel 11.1 on Suse Linux 64 bit. </li> <li> GCC 3.4.6, GCC 4.2.4, GCC 4.3.4 and GCC 4.4.2 on Red Hat Enterprise Linux. </li> <li> GCC 4.3.4 and GCC 4.4.2 with C++0x extensions on Red Hat Enterprise Linux. </li> <li> GCC 4.4.1 on 64 bit Linux. </li> <li> GCC 4.4.3 on Debian unstable. </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. </li> </ul> </li> <li> OS X: <ul> <li> Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. </li> <li> GCC 4.0.1 on Intel Leopard. </li> <li> GCC 4.0.1 on PowerPC Tiger. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1, 8,0, 9,0 on XP. </li> <li> Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. </li> <li> Visual C++ 10.0 beta 2. </li> <li> Visual C++ 10.0 on 32-bit Vista. </li> <li> Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). </li> <li> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. </li> <li> GCC 4.4.1 on Mingw, with and without C++0x extensions. </li> </ul> </li> <li> AIX: <ul> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40. </li> </ul> </li> <li> FreeBSD: <ul> <li> GCC 4.2.1 on FreeBSD 7.0, 32 bit and 64 bit. </li> </ul> </li> <li> Solaris: <ul> <li> Sun C++ 5.10 on Solaris 5.10. </li> </ul> </li> </ul> </div> <div id="version_1_42_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James and Vladimir Prus managed this release. </p> </div> </div>Version 1.41.0Tue, 17 Nov 2009 17:00:00 GMT<span class="brief"><span class="purpose"> New Library: Property Tree. Updated libraries: DateTime, Filesystem, Iostreams, Math, Multi-index Containers, Proto, Python, Regex, Spirit, System, Thread, Unordered, Utility, Wave, Xpressive. Updates to boost build and quickbook. The CMake build system for Boost, still under development <a href="http://sodium.resophonic.com/boost-cmake/current-docs/">here</a>, has been removed from the main release to avoid confusion. </span></span>http://sourceforge.net/projects/boost/files/boost/1.41.0/<div class="description"> <div id="version_1_41_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/property_tree/index.html">Property Tree</a>:</span> A tree data structure especially suited to storing configuration data, from Marcin Kalicinski and Sebastian Redl. </li> </ul> </div> <div id="version_1_41_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/date_time/index.html">DateTime</a>:</span> <ul> <li> The default format for time durations is now &quot;<code><span class="special">%-%</span><span class="identifier">O</span><span class="special">:%</span><span class="identifier">M</span><span class="special">:%</span><span class="identifier">S</span><span class="special">%</span><span class="identifier">F</span></code>&quot; instead of &quot;<code><span class="special">%-%</span><span class="identifier">H</span><span class="special">:%</span><span class="identifier">M</span><span class="special">:%</span><span class="identifier">S</span><span class="special">%</span><span class="identifier">F</span></code>&quot; that was used previously. In order to retain the old behavior, the format string has to be specified explicitly during the time IO facet construction (<a href="https://svn.boost.org/trac/boost/ticket/1861">#1861</a>). </li> <li> Gregorian dates now use 32-bit integer type internally on 64-bit platforms (<a href="https://svn.boost.org/trac/boost/ticket/3308">#3308</a>). </li> <li> See the <a href="/doc/html/date_time/details.html#date_time.changes">full changelog</a> for more detail. </li> </ul> </li> <li> <span class="library"><a href="/libs/filesystem/index.html">Filesystem</a>:</span> <ul> <li> Bug fixes: (<a href="https://svn.boost.org/trac/boost/ticket/3385">#3385</a>). (<a href="https://svn.boost.org/trac/boost/ticket/3528">#3528</a>). (<a href="https://svn.boost.org/trac/boost/ticket/3509">#3509</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> Some old unreleased developments. There are still several open issues that should be fixed in the next version. <ul> <li> Add a grep filter (<a href="https://svn.boost.org/trac/boost/ticket/1627">#1627</a>). </li> <li> Support archives with multiple members (<a href="https://svn.boost.org/trac/boost/ticket/1896">#1896</a>). </li> <li> Make <code><span class="identifier">tee</span></code> work with input streams (<a href="https://svn.boost.org/trac/boost/ticket/791">#791</a>). </li> <li> Improved filesystem interoperability. </li> <li> Several warnings fixed or suppressed (including <a href="https://svn.boost.org/trac/boost/ticket/1618">#1618</a>, <a href="https://svn.boost.org/trac/boost/ticket/1875">#1875</a>, <a href="https://svn.boost.org/trac/boost/ticket/2779">#2779</a>). </li> <li> Various other fixes (including <a href="https://svn.boost.org/trac/boost/ticket/1580">#1580</a>, <a href="https://svn.boost.org/trac/boost/ticket/1671">#1671</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/math/index.html">Math</a>:</span> Substantially improved the performance of the incomplete gamma function and it's inverse: this enhances the performance of the gamma, poisson, chi-squared and non-central chi-squared distributions. </li> <li> <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> Maintenance fixes. Consult the library <a href="/libs/multi_index/doc/release_notes.html#boost_1_41">release notes</a> for further information. </li> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> Clean up some MSVC warnings and errors in /Za (disable Microsoft extensions) mode. </li> <li> Fixes for c++0x mode on various compilers. </li> </ul> </li> <li> <span class="library"><a href="/libs/python/index.html">Python</a>:</span> Boost.Python now supports Python 3 (Haoyu Bai's Google Summer of Code project, mentored by Stefan Seefeld). </li> <li> <span class="library"><a href="/libs/regex/index.html">Regex</a>:</span> Added support for many Perl 5.10 syntax elements including named sub-expressions, branch resets and recursive regular expressions. </li> <li> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> This is the initial official release of the new Spirit V2.1, a completely new library for parsing, lexing, and output generation. Note: this release is not backwards compatible with earlier versions. Known issue: <code><span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbol</span><span class="special">::</span><span class="identifier">find</span></code> will match a symbol that starts with the string you're searching for. This will be fixed in the next version. </li> <li> <span class="library"><a href="/libs/system/index.html">System</a>:</span> <ul> <li> Bug fix: (<a href="https://svn.boost.org/trac/boost/ticket/3559">#3559</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span> <ul> <li> Support for futures, promises and packaged tasks added </li> <li> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_ptr</span></code> is now faster when there are lots of thread-specific objects </li> <li> Some Boost.Thread facilities are now header-only </li> </ul> </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> Major update: <ul> <li> Replaced a lot of the macro based implementation with a cleaner template based implementation. </li> <li> Reduced memory use. </li> <li> Full details in <a href="/doc/html/unordered/changes.html#unordered.changes.boost_1_41_1">the changelog</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/utility/index.html">Utility</a>:</span> A &quot;const&quot; issue of <code><span class="identifier">value_initialized</span></code> is fixed: Its <code><span class="identifier">data</span><span class="special">()</span></code> member function and its conversion operator are replaced by overloads for const and non-const access (<a href="https://svn.boost.org/trac/boost/ticket/2548">#2548</a>). </li> <li> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> See the <a href="/libs/wave/ChangeLog">changelog</a> for details. </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> Fix infinite loop with some uses of <tt>\Q...\E</tt> quotemeta (<a href="https://svn.boost.org/trac/boost/ticket/3586">#3586</a>). </li> <li> Eliminate unreachable code warnings on MSVC </li> <li> Clean up some MSVC warnings and errors in /Za (&quot;disable Microsoft extensions&quot;) mode. </li> <li> Fixes for c++0x mode on various compilers. </li> </ul> </li> </ul> </div> <div id="version_1_41_0.build_system"> <h3><span class="link">Build System</span></h3> <p> A bug preventing &quot;fat&quot; 32-bit + 64-bit builds on OSX has been fixed. </p> </div> <div id="version_1_41_0.boost_cmake_moved"> <h3><span class="link">Boost.CMake moved</span></h3> <p> The cmake version of boost has moved; the Boost.CMmake release will be separate and will lag the main release slightly, but will also be capable of producing patch releases as necessary. </p> <p> More information on the <a href="https:://svn.boost.org/trac/boost/wiki/CMake">Boost CMake wiki page</a>. </p> </div> <div id="version_1_41_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <span class="library"><a href="/tools/quickbook/index.html">Quickbook 1.5</a>:</span> These changes require your document to use the <code><span class="special">[</span><span class="identifier">quickbook</span> <span class="number">1.5</span><span class="special">]</span></code> tag: <ul> <li> More intuitive syntax and variable lookup for template calls (<a href="https://svn.boost.org/trac/boost/ticket/1174">#1174</a>, <a href="https://svn.boost.org/trac/boost/ticket/2034">#2034</a>, <a href="https://svn.boost.org/trac/boost/ticket/2036">#2036</a>). </li> <li> Image attributes (<a href="https://svn.boost.org/trac/boost/ticket/1157">#1157</a>) </li> <li> Table Ids (<a href="https://svn.boost.org/trac/boost/ticket/1194">#1194</a>) </li> <li> Better handling of whitespace in <code><span class="identifier">section</span></code> syntax. (<a href="https://svn.boost.org/trac/boost/ticket/2712">#2712</a>) </li> </ul> </li> </ul> </div> <div id="version_1_41_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> OS X: <ul> <li> GCC 4.0.1 on Intel Tiger and Leopard. </li> <li> GCC 4.0.1 on PowerPC Tiger. </li> </ul> </li> <li> Linux: <ul> <li> GCC 4.4.1 on Ubuntu Linux. </li> <li> GCC 4.4 on Debian </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> Linux: <ul> <li> Intel 10.1 on Red Hat Enterprise Linux. </li> <li> Intel 10.1 on 64-bit Red Hat Enterprise Linux. </li> <li> Intel 10.1 on Suse Linux on 64 bit Itanium. </li> <li> Intel 11.0 on 32 bit Red Hat Enterprise Linux. </li> <li> Intel 11.0 on 64 bit Red Hat Enterprise Linux. </li> <li> Intel 11.1 on 64 bit Red Hat Enterprise Linux. </li> <li> Intel 11.1 on 64 bit Linux Redhat 5.1 Server. </li> <li> GCC 3.4.3, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.1 on Red Hat Enterprise Linux. </li> <li> GCC 4.3.3 and GCC 4.4.1 with C++0x extensions on Red Hat Enterprise Linux. </li> <li> GCC 4.3.3 on 64-bit Redhat Server 5.1. </li> <li> GCC 4.3.3 on 64 bit Linux. </li> <li> GCC 4.3.4 on Debian unstable. </li> <li> GCC 4.3.2 on 64 bit Gentoo. </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. </li> <li> Sun 5.9 on Red Hat Enterprise Linux. </li> </ul> </li> <li> OS X: <ul> <li> Intel C++ Compiler 11.1 on Leopard. </li> <li> Intel C++ Compiler 10.1, 11.0. </li> <li> GCC 4.0.1 on Intel Tiger. </li> <li> GCC 4.0.1 on PowerPC Tiger. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1, 8,0, 9,0 on XP. </li> <li> Visual C++ 9.0 on 32-bit Vista. </li> <li> Visual C++ 9.0 on AMD 64-bit Vista. </li> <li> Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. </li> <li> Visual C++ 10.0 beta 1 with <a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=457199">a patch for the program options lib</a>. </li> <li> Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.0 (2010). </li> <li> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. </li> <li> GCC 4.4.1 on Mingw, with and without C++0x extensions. </li> </ul> </li> <li> AIX: <ul> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40. </li> </ul> </li> <li> FreeBSD: <ul> <li> GCC 4.2.1 on FreeBSD 7.0. </li> </ul> </li> <li> Solaris: <ul> <li> Sun C++ 5.10 on Solaris 5.10. </li> </ul> </li> </ul> </div> <div id="version_1_41_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, and Daniel James managed this release. </p> </div> </div>Version 1.40.0Thu, 27 Aug 2009 17:00:00 GMT<span class="brief"><span class="purpose"> Build System improvements. Updated Libraries: Accumulators, Asio, Circular Buffer, Foreach, Function, Fusion, Graph, Hash, Interprocess, Intrusive, MPL, Program.Options, Property Map, Proto, Random, Serialization, Unordered, Xpressive. </span></span>http://sourceforge.net/projects/boost/files/boost/1.40.0/<div class="description"> <div id="version_1_40_0.update"> <h3><span class="link">Update</span></h3> <p> Added missing notes for Graph and Property Map. </p> </div> <div id="version_1_40_0.boost_cmake"> <h3><span class="link">Boost.CMake</span></h3> <p> Boost.CMake is <em>now distributed separately</em>. The cmake build for boost is <em>BROKEN</em> in the tarballs above. See the <a href="https://svn.boost.org/trac/boost/wiki/CMake">Boost.CMake wiki page</a> for pointers to working versions. </p> </div> <div id="version_1_40_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span> <ul> <li> Works on GCC 4.4. </li> </ul> </li> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Added a new ping example to illustrate the use of ICMP sockets. </li> <li> Changed the <code><span class="identifier">buffered</span><span class="special">*</span><span class="identifier">_stream</span><span class="special">&lt;&gt;</span></code> templates to treat 0-byte reads and writes as no-ops, to comply with the documented type requirements for <code><span class="identifier">SyncReadStream</span></code>, <code><span class="identifier">AsyncReadStream</span></code>, <code><span class="identifier">SyncWriteStream</span></code> and <code><span class="identifier">AsyncWriteStream</span></code>. </li> <li> Changed some instances of the <code><span class="keyword">throw</span></code> keyword to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span><span class="special">()</span></code> to allow Asio to be used when exception support is disabled. Note that the SSL wrappers still require exception support (<a href="https://svn.boost.org/trac/boost/ticket/2754">#2754</a>). </li> <li> Made Asio compatible with the OpenSSL 1.0 beta (<a href="https://svn.boost.org/trac/boost/ticket/3256">#3256</a>). </li> <li> Eliminated a redundant system call in the Solaris <tt>/dev/poll</tt> backend. </li> <li> Fixed a bug in resizing of the bucket array in the internal hash maps (<a href="https://svn.boost.org/trac/boost/ticket/3095">#3095</a>). </li> <li> Ensured correct propagation of the error code when a synchronous accept fails (<a href="https://svn.boost.org/trac/boost/ticket/3216">#3216</a>). </li> <li> Ensured correct propagation of the error code when a synchronous read or write on a Windows HANDLE fails. </li> <li> Fixed failures reported when <code><span class="identifier">_GLIBCXX_DEBUG</span></code> is defined (<a href="https://svn.boost.org/trac/boost/ticket/3098">#3098</a>). </li> <li> Fixed custom memory allocation support for timers (<a href="https://svn.boost.org/trac/boost/ticket/3107">#3107</a>). </li> <li> Tidied up various warnings reported by g++ (<a href="https://svn.boost.org/trac/boost/ticket/1341">#1341</a>, <a href="https://svn.boost.org/trac/boost/ticket/2618">#2618</a>). </li> <li> Various documentation improvements, including more obvious hyperlinks to function overloads, header file information, examples for the handler type requirements, and adding enum values to the index (<a href="https://svn.boost.org/trac/boost/ticket/3157">#3157</a>, <a href="https://svn.boost.org/trac/boost/ticket/2620">#2620</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> <ul> <li> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/2785">#2785</a>, <a href="https://svn.boost.org/trac/boost/ticket/3285">#3285</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> <ul> <li> Workaround for conflict with Python headers (<a href="https://svn.boost.org/trac/boost/ticket/3000">#3000</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/function/index.html">Function</a>:</span> <ul> <li> Optimize the use of small target objects. </li> <li> Make Boost.Function compile under BOOST_NO_EXCEPTIONS (<a href="https://svn.boost.org/trac/boost/ticket/2499">#2499</a>, <a href="https://svn.boost.org/trac/boost/ticket/2494">#2494</a>, <a href="https://svn.boost.org/trac/boost/ticket/2469">#2469</a>, <a href="https://svn.boost.org/trac/boost/ticket/2466">#2466</a>, <a href="https://svn.boost.org/trac/boost/ticket/2900">#2900</a>) </li> <li> Various minor fixes (<a href="https://svn.boost.org/trac/boost/ticket/2642">#2642</a>, <a href="https://svn.boost.org/trac/boost/ticket/2847">#2847</a>, <a href="https://svn.boost.org/trac/boost/ticket/2929">#2929</a> <a href="https://svn.boost.org/trac/boost/ticket/3012">#3012</a>) </li> </ul> </li> <li> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> <ul> <li> Improved compile times for <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>. </li> </ul> </li> <li> <span class="library"><a href="/libs/graph/index.html">Graph</a>:</span> <ul> <li> Merged in the <a href="/libs/graph_parallel/doc/html/index.html">Parallel Boost Graph Library</a>, giving a full suite of graph algorithms and data structures for distributed-memory computers (such as clusters). </li> <li> Updates to the interface of the compressed sparse row graph, including constructors from unsorted edge lists. </li> <li> An implicit grid graph, saving memory over using the former generator. </li> <li> New algorithms: Dijkstra's single-source shortest path algorithm without a separate color map and an algorithm to find maximal common subgraphs between two graphs. </li> <li> Assorted bug fixes. </li> </ul> </li> <li> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> <ul> <li> Automatically configure the float functions using template metaprogramming instead of trying to configure every possibility manually. </li> </ul> </li> <li> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> Windows shared memory is created in Shared Documents folder so that it can be shared between services and processes </li> <li> Fixed bugs <a href="https://svn.boost.org/trac/boost/ticket/2967">#2967</a>, <a href="https://svn.boost.org/trac/boost/ticket/2973">#2973</a>, <a href="https://svn.boost.org/trac/boost/ticket/2992">#2992</a>, <a href="https://svn.boost.org/trac/boost/ticket/3138">#3138</a>, <a href="https://svn.boost.org/trac/boost/ticket/3166">#3166</a>, <a href="https://svn.boost.org/trac/boost/ticket/3205">#3205</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> Code cleanup in tree_algorithms.hpp and avl_tree_algorithms.hpp </li> <li> Fixed bug <a href="https://svn.boost.org/trac/boost/ticket/3164">#3164</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/mpl/index.html">MPL</a>:</span> <ul> <li> Added <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">char_</span></code> and <code><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">string</span></code> for compile-time string manipulation, based on multichar literals (<a href="https://svn.boost.org/trac/boost/ticket/2905">#2905</a>). </li> <li> Updated <a href="/libs/mpl/doc/refmanual.html">MPL Reference Manual</a>. </li> <li> Bug fixes. </li> </ul> </li> <li> <span class="library"><a href="/libs/program_options/index.html">Program.Options</a>:</span> <ul> <li> Support for building with disabled exceptions (<a href="https://svn.boost.org/trac/boost/ticket/2096">#2096</a>). </li> <li> Unicode parser no longer drops original tokens (<a href="https://svn.boost.org/trac/boost/ticket/2425">#2425</a>). </li> <li> Fixed crash on user-inserted items in <code><span class="identifier">variables_map</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2782">#2782</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/property_map/index.html">Property Map</a>:</span> <ul> <li> Moved property map code into a separate directory, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span></code>. The old files exist and forward to the new ones; the previous files directly in <code><span class="identifier">boost</span><span class="special">/</span></code> will be removed in Boost 1.42.0. </li> <li> Moved distributed property maps to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">graph</span><span class="special">::</span><span class="identifier">parallel</span></code> namespace. </li> <li> Added a property map based on a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_array</span></code>, providing a simpler interface. </li> </ul> </li> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> PrimitiveTransforms have stricter conformance to ResultOf protocol. (Warning: some invalid code may break.) </li> <li> Add a sensible default for <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">_default</span></code>'s template parameter. </li> <li> Improved default evaluation strategy for pointers to members. </li> <li> GCC 3.4 portability fixes (<a href="https://svn.boost.org/trac/boost/ticket/3021">#3021</a>). </li> <li> Work around Visual C++'s non-std-compliant ciso646 macros. </li> </ul> </li> <li> <span class="library"><a href="/libs/random/index.html">Random</a>:</span> <ul> <li> Made the constructors of all the generators call the copy constructor when passed a non-const reference. </li> <li> Changed seeding functions to accept any arithmetic type. As a side-effect, the exact signature of seed changed for some classes. </li> <li> Major bug fixes in uniform_int. </li> </ul> </li> <li> <span class="library"><a href="/libs/serialization/index.html">Serialization</a>:</span> <ul> <li> Removed deprecated headers: <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">static_warning</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">state_saver</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">smart_cast</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pfto</span><span class="special">.</span><span class="identifier">hpp</span></code>. Use the the equivalent headers in the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">serialization</span><span class="special">/</span></code> directory instead (<a href="https://svn.boost.org/trac/boost/ticket/3062">#3062</a>). </li> <li> <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">archive_serializer_map</span></code> should now be used instead of <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">archive_pointer_iserializer</span></code>. For more details see <a href="/doc/libs/1_40_0/libs/serialization/doc/release.html">the library release notes</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> Implement <code><span class="identifier">emplace</span></code> for all compilers, not just ones with rvalue references and variadic templates (<a href="https://svn.boost.org/trac/boost/ticket/1978">#1978</a>). </li> <li> Create less buckets by default. </li> <li> Some minor tweaks for better compiler support (<a href="https://svn.boost.org/trac/boost/ticket/2908">#2908</a>, <a href="https://svn.boost.org/trac/boost/ticket/3096">#3096</a>, <a href="https://svn.boost.org/trac/boost/ticket/3082">#3082</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> Works on Visual C++ 10.0 (<a href="https://svn.boost.org/trac/boost/ticket/3124">#3124</a>). </li> </ul> </li> </ul> </div> <div id="version_1_40_0.build_system"> <h3><span class="link">Build System</span></h3> <p> The default naming of libraries in Unix-like environment now matches system conventions, and does not include various decorations. Naming of libraries on Cygwin was also fixed. Support for beta versions of Microsoft Visual Studio 10 was added. With gcc, 64-bit compilation no longer requires that target architecture be specified. </p> </div> <div id="version_1_40_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <span class="library"><a href="/tools/boostbook/index.html">Boostbook</a>:</span> <ul> <li> Hide <code><span class="identifier">INTERNAL</span> <span class="identifier">ONLY</span></code> enums in doxygen documentation (<a href="https://svn.boost.org/trac/boost/ticket/3242">#3242</a>). </li> <li> Tweaked appearance of member classes/structs/unions in a class synopsis. </li> </ul> </li> <li> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> <ul> <li> Support python code snippets (<a href="https://svn.boost.org/trac/boost/ticket/3029">#3029</a>). </li> <li> Add <code><span class="identifier">teletype</span></code> source mode (<a href="https://svn.boost.org/trac/boost/ticket/1202">#1202</a>) </li> </ul> </li> </ul> </div> <div id="version_1_40_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> OS X: <ul> <li> GCC 4.0.1 on Intel Tiger and Leopard </li> <li> GCC 4.0.1 on PowerPC Tiger </li> </ul> </li> <li> Linux: <ul> <li> GCC 4.3.3 on Ubuntu Linux. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> Linux: <ul> <li> Intel 9.0 on Red Hat Enterprise Linux. </li> <li> Intel 10.0 on Red Hat Enterprise Linux. </li> <li> Intel 10.1 on 64-bit Linux Redhat 5.1 Server. </li> <li> Intel 10.1 on Suse Linux on 64 bit Itanium. </li> <li> Intel 11.0 on Red Hat Enterprise Linux. </li> <li> Intel 11.1 on Red Hat Enterprise Linux. </li> <li> GCC 3.4.3, GCC 4.0.1, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.0 on Red Hat Enterprise Linux. </li> <li> GCC 4.3.3 and GCC 4.4.0 with C++0x extensions on Red Hat Enterprise Linux. </li> <li> GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux. </li> <li> GCC 4.1.2 on Suse Linux on 64 bit Itanium. </li> <li> GCC 4.1.2 on 64-bit Redhat Server 5.1. </li> <li> GCC Open64 4.2.2 on Red Hat Enterprise Linux. </li> <li> GCC 4.3.4 on Debian unstable. </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise Linux. </li> <li> GCC version 4.2.0 (PathScale 3.2 driver) on 64-bit Red Hat Enterprise Linux. </li> <li> Sun 5.9 on Red Hat Enterprise Linux. </li> </ul> </li> <li> OS X: <ul> <li> Intel 10.1, 11.0 on Intel Leopard. </li> <li> Intel 10.1, 11.0 on Intel Tiger. </li> <li> GCC 4.0.1, 4.2.1 on Intel Leopard. </li> <li> GCC 4.0.1 on Intel Tiger. </li> <li> GCC 4.0.1 on PowerPC Tiger. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1 on XP. </li> <li> Visual C++ 9.0 on XP. </li> <li> Visual C++ 9.0 on Vista. </li> <li> Visual C++ 9.0 on Vista 64-bit. </li> <li> Visual C++ 9.0, using STLport 5.2, on XP and Windows Mobile 5.0. </li> <li> Visual C++ 10.0 beta. </li> <li> Borland 5.9.3, 6.1.0, 6.1.3. </li> <li> Borland C++ Builder 2007 and 2009. </li> <li> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. </li> <li> Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 64-bit. </li> <li> GCC 4.3.3 and 4.4.0, on Mingw with C++0x features. </li> </ul> </li> <li> AIX: <ul> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40. </li> </ul> </li> <li> Solaris: <ul> <li> Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10. </li> <li> GCC 3.4.6 on Solaris 5.10. </li> </ul> </li> </ul> </div> <div id="version_1_40_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, and Daniel James managed this release. </p> </div> </div>Version 1.39.0Sat, 02 May 2009 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Signals2. Updated Libraries: Asio, Flyweight, Foreach, Hash, Interprocess, Intrusive, Program.Options, Proto, PtrContainer, Range, Unordered, Xpressive. Updated Tools: Boostbook, Quickbook. </span></span>http://sourceforge.net/projects/boost/files/boost/1.39.0/<div class="description"> <div id="version_1_39_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/signals2/index.html">Signals2</a>:</span> Managed signals &amp; slots callback implementation (thread-safe version 2), from Frank Mori Hess. </li> </ul> </div> <div id="version_1_39_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Implement automatic resizing of the bucket array in the internal hash maps. This is to improve performance for very large numbers of asynchronous operations and also to reduce memory usage for very small numbers. A new macro <code><span class="identifier">BOOST_ASIO_HASH_MAP_BUCKETS</span></code> may be used to tweak the sizes used for the bucket arrays. </li> <li> Add performance optimisation for the Windows IOCP backend for when no timers are used. </li> <li> Prevent locale settings from affecting formatting of TCP and UDP endpoints (<a href="https://svn.boost.org/trac/boost/ticket/2682">#2682</a>). </li> <li> Fix a memory leak that occurred when an asynchronous SSL operation's completion handler threw an exception (<a href="https://svn.boost.org/trac/boost/ticket/2910">#2910</a>). </li> <li> Fix the implementation of <code><span class="identifier">io_control</span><span class="special">()</span></code> so that it adheres to the documented type requirements for IoControlCommand (<a href="https://svn.boost.org/trac/boost/ticket/2820">#2820</a>). </li> <li> Fix incompatibility between Asio and ncurses.h (<a href="https://svn.boost.org/trac/boost/ticket/2156">#2156</a>). </li> <li> On Windows, specifically handle the case when an overlapped <code><span class="identifier">ReadFile</span></code> call fails with <code><span class="identifier">ERROR_MORE_DATA</span></code>. This enables a hack where a <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">stream_handle</span></code> can be used with a message-oriented named pipe (<a href="https://svn.boost.org/trac/boost/ticket/2936">#2936</a>). </li> <li> Fix system call wrappers to always clear the error on success, as POSIX allows successful system calls to modify errno (<a href="https://svn.boost.org/trac/boost/ticket/2953">#2953</a>). </li> <li> Don't include termios.h if <code><span class="identifier">BOOST_ASIO_DISABLE_SERIAL_PORT</span></code> is defined (<a href="https://svn.boost.org/trac/boost/ticket/2917">#2917</a>). </li> <li> Cleaned up some more MSVC level 4 warnings (<a href="https://svn.boost.org/trac/boost/ticket/2828">#2828</a>). </li> <li> Various documentation fixes (<a href="https://svn.boost.org/trac/boost/ticket/2871">#2871</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> The <a href="/libs/flyweight/doc/tutorial/configuration.html#refcounted">refcounted</a> component was not thread-safe due to an incorrect implementation and could deadlock under heavy usage conditions. This problem has been corrected. </li> </ul> </li> <li> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> <ul> <li> Eliminate shadow warnings on gcc for nested <code><span class="identifier">FOREACH</span></code> loops </li> <li> Portability fix for Intel-Win toolset </li> </ul> </li> <li> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> <ul> <li> Remove deprecated headers for hashing containers. Everything that was in them is included in <code><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">hash</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2412">#2412</a>). </li> <li> Other minor changes, full details in the library <a href="/doc/html/hash/changes.html#hash.changes.boost_1_39_0">change log</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> Increased portability and bug fixes. Full details in the library <a href="/doc/html/interprocess/acknowledgements_notes.html#interprocess.acknowledgements_notes.release_notes.release_notes_boost_1_39_00">change log</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> Optimizations and bug fixes. Full details in the library <a href="/doc/html/intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_39_00">change log</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/program_options/index.html">Program.Options</a>:</span> <ul> <li> Multitoken options fixed (<a href="https://svn.boost.org/trac/boost/ticket/469">#469</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> Work around incompatibility with standard Linux header. </li> <li> Add <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">noinvoke</span><span class="special">&lt;&gt;</span></code> to block metafunction invocation in object transforms. </li> </ul> </li> <li> <span class="library"><a href="/libs/ptr_container/index.html">PtrContainer</a>:</span> <ul> <li> Bug fixes from Trac applied. </li> </ul> </li> <li> <span class="library"><a href="/libs/range/index.html">Range</a>:</span> <ul> <li> Bug fixes from Trac applied. </li> </ul> </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> Fixed regression in 1.38 that prevented unordered from using more than about 1.5 million buckets (<a href="https://svn.boost.org/trac/boost/ticket/2975">#2975</a>). </li> <li> Minor implementation changes, including <a href="https://svn.boost.org/trac/boost/ticket/2756">#2756</a>. Full details in the library <a href="/doc/html/unordered/changes.html#unordered.changes.boost_1_39_0">change log</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> Work around for gcc optimization problem resulting in pure virtual function call runtime error (<a href="https://svn.boost.org/trac/boost/ticket/2655">#2655</a>). </li> </ul> </li> </ul> </div> <div id="version_1_39_0.updated_tools"> <h3><span class="link">Updated Tools</span></h3> <ul> <li> <span class="library"><a href="/tools/boostbook/index.html">Boostbook</a>:</span> <ul> <li> Improved PDF generation. </li> <li> Preliminary HTMLHelp support. </li> <li> Add default path for callout images. </li> <li> Include data members' <code><span class="special">&lt;</span><span class="identifier">purpose</span><span class="special">&gt;</span></code> in the class synopsis. </li> <li> Fix bug where a function's <code><span class="special">&lt;</span><span class="identifier">purpose</span><span class="special">&gt;</span></code> wasn't displayed if it was just plain text. </li> <li> Support the alt tag in <code><span class="special">&lt;</span><span class="identifier">headername</span><span class="special">&gt;</span></code> and <code><span class="special">&lt;</span><span class="identifier">macroname</span><span class="special">&gt;</span></code>. Use this if the header or macro name is different to the contents of the tag (<a href="https://svn.boost.org/trac/boost/ticket/1977">#1977</a>). </li> <li> Support links relative to the boost root in <code><span class="special">&lt;</span><span class="identifier">ulink</span><span class="special">&gt;</span></code> tags, using a custom url, see the <a href="/doc/html/boostbook/together.html#boostbook.linking">linking documentation</a> for details (<a href="https://svn.boost.org/trac/boost/ticket/1166">#1166</a>). </li> <li> Avoid generating filenames that only differ in case for function, method and macro documentation. </li> <li> Run the docbook chunker quietly, unless boostbook.verbose is set. This parameter might be used in other places in future releases. </li> <li> Make the 1.1 DTD available. </li> <li> Fill in some missing reference documentation (partially fixes <a href="https://svn.boost.org/trac/boost/ticket/2153">#2153</a>). </li> <li> Changes to doxygen integration: <ul> <li> Support <code><span class="special">\</span><span class="keyword">throw</span></code>. </li> <li> Support global variables and enums. </li> <li> Better support for documentation written in function and method bodies. </li> <li> Workaround a problem with doxygen 1.5.8's xml output (<a href="https://svn.boost.org/trac/boost/ticket/2937">#2937</a>). </li> </ul> </li> </ul> </li> <li> <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span> <ul> <li> Return an error code and error count if there are any errors (<a href="https://svn.boost.org/trac/boost/ticket/1399">#1399</a>). </li> <li> Support both windows and cygwin paths at the compile line when compiled with cygwin. </li> <li> Fix some issues with C++ and Python code: <ul> <li> Fail gracefully for a mismatched <code><span class="char">''</span></code>. </li> <li> Warn if any unexpected character are encountered and write them out properly (<a href="https://svn.boost.org/trac/boost/ticket/1170">#1170</a>). </li> <li> Fix a bug for hex encoded characters in strings (<a href="https://svn.boost.org/trac/boost/ticket/2860">#2860</a>). </li> </ul> </li> <li> Improved testing, including tests for expected failures. </li> <li> Generate valid document info for document types other than <code><span class="identifier">library</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2711">#2711</a>): <ul> <li> Remove library specific attributes. </li> <li> Put title before info block. </li> </ul> </li> <li> Fix a bug when calling templates. </li> <li> Less warnings when built using gcc. </li> <li> Small documentation improvements (<a href="https://svn.boost.org/trac/boost/ticket/1213">#1213</a>, <a href="https://svn.boost.org/trac/boost/ticket/2701">#2701</a>). </li> <li> Fix a bug with xinclude pages when outdir is the current directory (<a href="https://svn.boost.org/trac/boost/ticket/2921">#2921</a>). </li> </ul> </li> </ul> </div> <div id="version_1_39_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> OS X: <ul> <li> GCC 4.0.1 on Intel Tiger and Leopard </li> <li> GCC 4.0.1 on PowerPC Tiger </li> </ul> </li> <li> Linux: <ul> <li> GCC 4.3.2 on Ubuntu Linux. </li> <li> GCC 4.3.3 on Debian &quot;unstable&quot;. </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. </li> </ul> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> Linux: <ul> <li> Intel 9.0 on Red Hat Enterprise Linux </li> <li> Intel 10.0 on Red Hat Enterprise Linux </li> <li> Intel 10.1 on 64-bit Linux Redhat 5.1 Server. </li> <li> Intel 10.1 on Suse Linux on 64 bit Itanium </li> <li> Intel 11.0 on Red Hat Enterprise Linux </li> <li> GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux </li> <li> GCC 4.1.2 on 64-bit Redhat Server 5.1 </li> <li> GCC 4.1.2 on Suse Linux on 64 bit Itanium </li> <li> GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux </li> <li> GCC 4.3.2 with C++0x extensions on Red Hat Enterprise Linux </li> <li> GCC 4.2.1 on OpenSuSE Linux </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise Linux </li> <li> GNU gcc version 4.2.0 (PathScale 3.2 driver) on 64-bit Red Hat Enterprise Linux </li> <li> Sun 5.9 on Red Hat Enterprise Linux </li> </ul> </li> <li> OS X: <ul> <li> Intel 9.1, 10.1 on Tiger </li> <li> Intel 10.1, 11.0 on Leopard </li> <li> GCC 4.2.1 on Leopard </li> </ul> </li> <li> Windows: <ul> <li> Visual C++ 9.0 on Vista. </li> <li> Visual C++ 9.0, using STLport 5.2, on XP and Windows Mobile 5.0. </li> <li> Borland 5.9.3 </li> <li> Borland 6.1.0 </li> <li> Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit. </li> <li> Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit. (TODO: not recently) </li> <li> GCC 4.3.3, on Mingw </li> </ul> </li> <li> AIX: <ul> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40 </li> </ul> </li> <li> NetBSD: <ul> <li> GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64. </li> </ul> </li> <li> Solaris: <ul> <li> Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10 </li> <li> GCC 3.4.6 on Solaris 5.10 </li> </ul> </li> </ul> </div> <div id="version_1_39_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, and Daniel James managed this release. </p> </div> </div>Version 1.38.0http://www.boost.org/users/history/version_1_38_0.htmlhttp://www.boost.org/users/history/version_1_38_0.htmlSun, 08 Feb 2009 12:00:00 +0000 <div id="version_1_38_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="http://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> <ul> <li> <div> Design pattern to manage large quantities of highly redundant objects, from Joaquín M López Muñoz. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/scope_exit/doc/html/index.html">ScopeExit</a>:</span> <ul> <li> <div> Execute arbitrary code at scope exit, from Alexander Nasonov. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/utility/swap.html">Swap</a>:</span> <ul> <li> <div> Enhanced generic swap function, from Joseph Gauterin. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_38_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/index.html">Accumulators</a>:</span> <ul> <li> <div> Add <code><span class="identifier">rolling_sum</span></code>, <code><span class="identifier">rolling_count</span></code> and <code><span class="identifier">rolling_mean</span></code> accumulators. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/html/any.html">Any</a>:</span> <ul> <li> <div> Use a by-value argument for <code><span class="keyword">operator</span><span class="special">=</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/2311">#2311</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/asio/index.html">Asio</a>:</span> <ul> <li> <div> Improved compatibility with some Windows firewall software. </div> </li> <li> <div> Ensured arguments to <code><span class="identifier">windows</span><span class="special">::</span><span class="identifier">overlapped_ptr</span><span class="special">::</span><span class="identifier">complete</span><span class="special">()</span></code> are correctly passed to the completion handler (<a href="https://svn.boost.org/trac/boost/ticket/2614">#2614</a>). </div> </li> <li> <div> Fixed a link problem and multicast failure on QNX (<a href="https://svn.boost.org/trac/boost/ticket/2504">#2504</a>, <a href="https://svn.boost.org/trac/boost/ticket/2530">#2530</a>). </div> </li> <li> <div> Fixed a compile error in SSL support on MinGW / g++ 3.4.5. </div> </li> <li> <div> Drop back to using a pipe for notification if eventfd is not available at runtime on Linux (<a href="https://svn.boost.org/trac/boost/ticket/2683">#2683</a>). </div> </li> <li> <div> Various minor bug and documentation fixes (<a href="https://svn.boost.org/trac/boost/ticket/2534">#2534</a>, <a href="https://svn.boost.org/trac/boost/ticket/2541">#2541</a>, <a href="https://svn.boost.org/trac/boost/ticket/2607">#2607</a>, <a href="https://svn.boost.org/trac/boost/ticket/2617">#2617</a>, <a href="https://svn.boost.org/trac/boost/ticket/2619">#2619</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/config/index.html">Config</a>:</span> <ul> <li> <div> Add new macros BOOST_NO_STD_UNORDERED and BOOST_NO_INITIALIZER_LISTS. </div> </li> <li> <div> Added Codegear compiler support. </div> </li> <li> <div> Added Dragonfly to the BSD family of configs. </div> </li> <li> <div> Updated MSVC's binary ABI settings to match compiler default when doing 64-bit builds. </div> </li> <li> <div> Recognise latest compilers from MS and Intel. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/date_time/index.html">Date_Time</a>:</span> <ul> <li> <div> Added support for formatting and reading time durations longer than 24 hours with new formatter: <code><span class="special">%</span><span class="number">0</span></code>. </div> </li> <li> <div> Removed the <code><span class="identifier">testfrmwk</span><span class="special">.</span><span class="identifier">hpp</span></code> file from the public include directory. </div> </li> <li> <div> Fixed several bugs and compile errors. </div> </li> <li> <div> For full details see the <a href="http://www.boost.org/doc/libs/1_38_0/doc/html/date_time/details.html#date_time.changes">change history</a> </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/exception/index.html">Exception</a>:</span> <ul> <li> <div> Improved and more customizable <a href="http://www.boost.org/libs/exception/doc/diagnostic_information.html">diagnostic_information</a> output. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/filesystem/index.html">Filesystem</a>:</span> <ul> <li> <div> Fix native(name) test failures on POSIX-like systems. </div> </li> <li> <div> Several bugfixes (<a href="https://svn.boost.org/trac/boost/ticket/2543">#2543</a>, <a href="https://svn.boost.org/trac/boost/ticket/2224">#2224</a>, <a href="https://svn.boost.org/trac/boost/ticket/2531">#2531</a>, <a href="https://svn.boost.org/trac/boost/ticket/1840">#1840</a>, <a href="https://svn.boost.org/trac/boost/ticket/2542">#2542</a>). </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> Added a new algorithms for Travelling Salesman Problem approximation (<code><span class="identifier">metric_tsp_approx</span></code>) and resource-constrained Shortest Paths (<code><span class="identifier">r_c_shortest_paths</span></code>). </div> </li> <li> <div> Support for named vertices in <code><span class="identifier">adjacency_list</span></code>. </div> </li> <li> <div> A number of bugfixes ( <a href="https://svn.boost.org/trac/boost/ticket/416">#416</a>, <a href="https://svn.boost.org/trac/boost/ticket/1622">#1622</a>, <a href="https://svn.boost.org/trac/boost/ticket/1700">#1700</a>, <a href="https://svn.boost.org/trac/boost/ticket/2209">#2209</a>, <a href="https://svn.boost.org/trac/boost/ticket/2392">#2392</a>, <a href="https://svn.boost.org/trac/boost/ticket/2460">#2460</a>, and <a href="https://svn.boost.org/trac/boost/ticket/2550">#2550</a>) </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/functional/hash/index.html">Hash</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">container_fwd</span><span class="special">.</span><span class="identifier">hpp</span></code> has been moved to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">container_fwd</span><span class="special">.</span><span class="identifier">hpp</span></code>. The current location is deprecated. </div> </li> <li> <div> For more detail, see the <a href="http://www.boost.org/doc/html/hash/changes.html#hash.changes.boost_1_38_0">library changelog</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> <div> Updated documentation to show rvalue-references functions instead of emulation functions. </div> </li> <li> <div> More non-copyable classes are now movable. </div> </li> <li> <div> Move-constructor and assignments now leave moved object in default-constructed state instead of just swapping contents. </div> </li> <li> <div> Several bugfixes (<a href="https://svn.boost.org/trac/boost/ticket/2391">#2391</a>, <a href="https://svn.boost.org/trac/boost/ticket/2431">#2431</a>, <a href="https://svn.boost.org/trac/boost/ticket/1390">#1390</a>, <a href="https://svn.boost.org/trac/boost/ticket/2570">#2570</a>, <a href="https://svn.boost.org/trac/boost/ticket/2528">#2528</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> <div> New treap-based containers: treap, treap_set, treap_multiset. </div> </li> <li> <div> Corrected compilation bug for Windows-based 64 bit compilers. </div> </li> <li> <div> Corrected exception-safety bugs in container constructors. </div> </li> <li> <div> Updated documentation to show rvalue-references functions instead of emulation functions. </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> Changed to work without RTTI when <code><span class="identifier">BOOST_NO_TYPEID</span></code> is defined (<a href="https://svn.boost.org/trac/boost/ticket/1220">#1220</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/math/doc/sf_and_dist/html/index.html">Math</a>:</span> <ul> <li> <div> Added Johan Råde's optimised floating point classification routines. </div> </li> <li> <div> Fixed code so that it compiles in GCC's -pedantic mode (bug report <a href="https://svn.boost.org/trac/boost/ticket/1451">#1451</a>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> Some redundant type definitions have been deprecated. Consult the library <a href="http://www.boost.org/libs/multi_index/doc/release_notes.html#boost_1_38">release notes</a> for further information. </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/proto/index.html">Proto</a>:</span> <ul> <li> <div> Fix problem with SFINAE of binary operators (Bug <a href="https://svn.boost.org/trac/boost/ticket/2407">2407</a>). </div> </li> <li> <div> Fix <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">call</span></code> transform for callable transforms with &gt;3 arguments. </div> </li> <li> <div> <code><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value</span></code> changed behavior for array-by-value terminals. </div> </li> <li> <div> <code><span class="identifier">unpack_expr</span></code> requires only Forward Sequences rather than Random Access Sequences. </div> </li> <li> <div> Deprecate legacy undocumented <code><span class="identifier">BOOST_PROTO_DEFINE_</span><span class="special">(</span><span class="identifier">VARARG_</span><span class="special">)</span><span class="identifier">FUNCTION_TEMPLATE</span></code> macros. </div> </li> <li> <div> Add <code><span class="identifier">BOOST_PROTO_REPEAT</span></code> and <code><span class="identifier">BOOST_PROTO_LOCAL_ITERATE</span></code> macros to help with repetitive code generation </div> </li> <li> <div> Support for nullary expressions with tag types other than <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">terminal</span></code> </div> </li> <li> <div> Allow 0- and 1-argument variants of <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">or_</span></code> and <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">and_</span></code> </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> <em>Breaking change</em>: empty expressions, and empty alternatives are now allowed when using the Perl regular expression syntax. This change has been added for Perl compatibility, when the new <code><span class="identifier">syntax_option_type</span></code> <em>no_empty_expressions</em> is set then the old behaviour is preserved and empty expressions are prohibited. This is issue <a href="https://svn.boost.org/trac/boost/ticket/1081">#1081</a>. </div> </li> <li> <div> Added support for Perl style ${n} expressions in format strings (issue <a href="https://svn.boost.org/trac/boost/ticket/2556">#2556</a>). </div> </li> <li> <div> Added support for accessing the location of sub-expressions within the regular expression string (issue <a href="https://svn.boost.org/trac/boost/ticket/2269">#2269</a>). </div> </li> <li> <div> Fixed compiler compatibility issues <a href="https://svn.boost.org/trac/boost/ticket/2244">#2244</a>, <a href="https://svn.boost.org/trac/boost/ticket/2514">#2514</a>, and <a href="https://svn.boost.org/trac/boost/ticket/2244">#2458</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/doc/html/thread.html">Thread</a>:</span> <ul> <li> <div> No longer catches unhandled exceptions in threads as this debuggers couldn't identify the cause of unhandled exceptions in threads. An unhandled exception will still cause the application to terminate. </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> Added support for the TR1 math functions and the unordered containers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/type_traits/index.html">Type Traits</a>:</span> <ul> <li> <div> Added support for Codegear intrinsics. </div> </li> <li> <div> Minor tweaks to warning suppression and alignment_of code. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> <div> Use <a href="http://www.boost.org/libs/utility/swap.html"><code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code></a>. </div> </li> <li> <div> Use a larger prime number list for selecting the number of buckets. </div> </li> <li> <div> Use <a href="http://www.boost.org/libs/type_traits/doc/html/boost_typetraits/category/alignment.html">aligned storage</a> to store the types. </div> </li> <li> <div> Add support for C++0x initializer lists where they're available. </div> </li> <li> <div> For more detail, see the <a href="http://www.boost.org/doc/html/unordered/changes.html#unordered.changes.boost_1_38_0">library changelog</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="http://www.boost.org/libs/xpressive/index.html">Xpressive</a>:</span> <ul> <li> <div> <code><span class="identifier">basic_regex</span></code> gets nested <code><span class="identifier">syntax_option_flags</span></code> and <code><span class="identifier">value_type</span></code> typedef, for compatibility with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_regex</span></code> </div> </li> <li> <div> Ported to Proto v4; Proto v2 at <tt>boost/xpressive/proto</tt> has been removed. </div> </li> <li> <div> <code><span class="identifier">regex_error</span></code> inherits from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception</span></code> </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_38_0.other_changes"> <h3><span class="link">Other Changes</span></h3> <ul> <li> <div> Experimental support for building Boost with <a href="http://www.cmake.org/">CMake</a> has been introduced in this version. For more details see the <a href="https://svn.boost.org/trac/boost/wiki/CMake">wiki</a>, Discussion is taking place on the <a href="https://lists.boost.org/mailman/listinfo.cgi/boost-cmake">Boost-cmake mailing list</a>. </div> </li> <li> <div> Fixed subversion properties for several files. Most notably, unix shell scripts should always have unix line endings, even in the windows packages. </div> </li> </ul> </div> <div id="version_1_38_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> <div> OS X: <ul> <li> <div> GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2 </div> </li> <li> <div> GCC 4.0.1 on PowerPC OS X 10.4.9 </div> </li> </ul> </div> </li> <li> <div> Linux: <ul> <li> <div> GCC 4.3.2 on Ubuntu Linux. </div> </li> <li> <div> GCC 4.3.3 on Debian "unstable". </div> </li> </ul> </div> </li> <li> <div> HP-UX: <ul> <li> <div> GCC 4.2.1 on HP-UX 64-bit. </div> </li> <li> <div> HP C/aC++ B3910B A.06.17 on HP-UX 64-bit. </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. </div> </li> </ul> </div> </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> <div> Linux: <ul> <li> <div> GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux </div> </li> <li> <div> GCC 4.1.2 on 64-bit Redhat Server 5.1 </div> </li> <li> <div> GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux </div> </li> <li> <div> GCC 4.3.2 with C++0x extensions </div> </li> <li> <div> GCC 4.2.1 on OpenSuSE Linux </div> </li> <li> <div> pgCC 8.0-0a 64-bit target on Red Hat Enterprise Linux </div> </li> <li> <div> QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise Linux </div> </li> </ul> </div> </li> <li> <div> OS X: <ul> <li> <div> Intel 9.1, 10.0 on OS X 10.4.10 </div> </li> <li> <div> Intel 10.1, 11.0 on OS X 10.5.2 </div> </li> </ul> </div> </li> <li> <div> Windows: <ul> <li> <div> Visual C++ 9.0 on Vista EE 64-bit. </div> </li> <li> <div> Visual C++ 9.0 express on Vista 32-bit. </div> </li> <li> <div> Visual C++ 9.0 on XP 32-bit. </div> </li> <li> <div> Visual C++ 8.0, using STLport, on XP and Windows Mobile 5.0 </div> </li> <li> <div> Visual C++ 7.1, using STLport, on XP </div> </li> <li> <div> Borland 5.9.3 </div> </li> <li> <div> Borland 6.1.0 </div> </li> <li> <div> Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit. </div> </li> <li> <div> Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit. </div> </li> <li> <div> Comeau 4.3.10.1 beta 2, with a Visual C++ 9.0 backend. </div> </li> <li> <div> GCC 3.4.4, on Cygwin </div> </li> </ul> </div> </li> <li> <div> AIX: <ul> <li> <div> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40 </div> </li> </ul> </div> </li> <li> <div> FreeBSD: <ul> <li> <div> GCC 4.2.1 on FreeBSD 7. </div> </li> </ul> </div> </li> <li> <div> NetBSD: <ul> <li> <div> GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64. </div> </li> </ul> </div> </li> <li> <div> QNX: <ul> <li> <div> QNX Software Development Platform 6.4.0 x86 </div> </li> </ul> </div> </li> <li> <div> Solaris: <ul> <li> <div> Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10 </div> </li> <li> <div> GCC 3.4.6 on Solaris 5.10 </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_38_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>, and Daniel James managed this release. Thanks to Vicente Botet for helping compile these release notes. </p> </div> Version 1.37.0Mon, 03 Nov 2008 12:00:00 GMT<span class="brief"><span class="purpose"> New Library: Proto. Updated Libraries: Asio, Circular Buffer, Dynamic Bitset, Exception, Hash, Interprocess, Intrusive, Math, Type Traits, Unordered </span></span>http://sourceforge.net/projects/boost/files/boost/1.37.0/<div class="description"> <div id="version_1_37_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span> <ul> <li> Expression template library and compiler construction toolkit for domain-specific embedded languages, from Eric Niebler. </li> </ul> </li> </ul> </div> <div id="version_1_37_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Enhanced CompletionCondition concept with the signature <code><span class="identifier">size_t</span> <span class="identifier">CompletionCondition</span><span class="special">(</span><span class="identifier">error_code</span> <span class="identifier">ec</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">total</span><span class="special">)</span></code>, where the return value indicates the maximum number of bytes to be transferred on the next read or write operation. (The old CompletionCondition signature is still supported for backwards compatibility). </li> <li> New windows::overlapped_ptr class to allow arbitrary overlapped I/O functions (such as TransmitFile) to be used with Asio. </li> <li> On recent versions of Linux, an eventfd descriptor is now used (rather than a pipe) to interrupt a blocked select/epoll reactor. </li> <li> Added const overloads of lowest_layer(). </li> <li> Synchronous read, write, accept and connect operations are now thread safe (meaning that it is now permitted to perform concurrent synchronous operations on an individual socket, if supported by the OS). </li> <li> Reactor-based io_service implementations now use lazy initialisation to reduce the memory usage of an io_service object used only as a message queue. </li> </ul> </li> <li> <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> <ul> <li> Added new methods <code><span class="identifier">is_linearized</span><span class="special">()</span></code> and <code><span class="identifier">rotate</span><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span></code>. </li> <li> Minor bug fixes and documentation updates. </li> </ul> </li> <li> <span class="library"><a href="/libs/dynamic_bitset/">Dynamic Bitset</a>:</span> <ul> <li> Constructor &quot;do the right thing&quot; dispatch, a la standard sequence containers (follows the proposed resolution of <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#438">library issue 438</a>, currently in the <tt>C++0x</tt> working paper). </li> <li> Improvements to documentation, code examples and implementation. </li> </ul> </li> <li> <span class="library"><a href="/libs/exception/index.html">Exception</a>:</span> <ul> <li> Support for non-RTTI builds. </li> <li> Optimizations. </li> <li> A new macro <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code> which can be used instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span></code> when throwing, to automatically record information about the location of the throw in the exception object. </li> </ul> </li> <li> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> <ul> <li> Minor bug fix (<a href="http://svn.boost.org/trac/boost/ticket/2264">ticket 2264</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> Added placement insertion (<code><span class="identifier">emplace</span><span class="special">()</span></code>, <code><span class="identifier">emplace_back</span><span class="special">()</span></code>...) methods to containers. </li> <li> Containers can be used now in recursive types. </li> <li> Minor bug fixes. </li> </ul> </li> <li> <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> Intrusive now takes advantage of compilers with variadic templates. </li> <li> <code><span class="identifier">clone_from</span></code> functions now copy predicates and hash functions of associative containers. </li> <li> Added incremental hashing to unordered containers via <code><span class="identifier">incremental</span><span class="special">&lt;&gt;</span></code> option. </li> <li> Minor bug fixes. </li> </ul> </li> <li> <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math.Special Functions</a>:</span> Improved accuracy and testing of the inverse hypergeometric functions. </li> <li> <span class="library"><a href="/libs/type_traits/index.html">Type Traits</a>:</span> Added better support for the Codegear compiler. </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> <ul> <li> Rename overload of <code><span class="identifier">emplace</span></code> with hint, to <code><span class="identifier">emplace_hint</span></code> as specified in <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2691.pdf">n2691</a>. </li> <li> Provide forwarding headers at <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span><span class="special">/</span><span class="identifier">unordered_map_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> and <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span><span class="special">/</span><span class="identifier">unordered_set_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. </li> <li> Move all of the implementation inside the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span></code> directory. </li> </ul> </li> </ul> </div> <div id="version_1_37_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC </li> <li> GCC 4.2.4 on Ubuntu Linux 8.10 </li> <li> GCC 4.3.2 on Debian Sid </li> <li> GCC 4.2.1 on HP-UX Integrity </li> <li> HP C/aC++ B3910B A.06.17 on HP-UX 64-bit </li> <li> Visual C++ 9.0 SP1, 8.0, and 7.1 SP1, all on Windows XP </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> GCC 4.1.2 on NetBSD </li> <li> HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC </li> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40 </li> <li> Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.10 </li> <li> Compaq C++ V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform. </li> <li> Sun C++ 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10. </li> <li> On Linux: <ul> <li> GCC 3.4.3, 4.0.1, 4.2.1, 4.2.4, 4.3.2. </li> <li> GCC 4.3.2 with C++0x extensions. </li> <li> GCC 4.1.1, 4.2.1 on 64 bit linux. </li> <li> Intel C++ 8.1, 9.0, 9.1 and 10.0 </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.1 </li> <li> Sun Compiler 5.9, 5.10 with stdcxx </li> </ul> </li> <li> On Windows: <ul> <li> Several testers using Visual C++ 7.1, 8.0, 9.0 and 10.0 </li> <li> Visual C++ 7.1 with Apache C++ Standard Library 4.2.x branch. </li> <li> Visual C++ 8.0 with STLport 5.1 </li> <li> Visual C++ 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0 Pocket PC SDK (ARMV4I). </li> <li> Intel 10.1, with Visual C++ 9 backend. </li> <li> Borland 5.9.3 and 6.10.0 </li> <li> 64 bit Intel 10.1, with Visual C++ 9 backend. </li> <li> 64 bit Visual C++ 9.0. </li> <li> 64-bit Visual C++ 9.0 with Apache C++ Standard Library 4.2.x branch. </li> <li> Comeau C++ 4.3.10.1 beta 2, with Visual C++ 9 backend. </li> </ul> </li> </ul> </div> <div id="version_1_37_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, and Daniel James managed this release. </p> </div> </div>Version 1.36.0Thu, 14 Aug 2008 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Accumulators, Exception, Units, Unordered. Updated Libraries: Asio, Assign, Circular Buffer, Foreach, Function, Hash, Interprocess, Intrusive, Math, Multi-index Containers, MPI, PtrContainer, Spirit, Thread, Wave, Xpressive. </span></span>http://sourceforge.net/projects/boost/files/boost/1.36.0/<div class="description"> <div id="version_1_36_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span> Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler. </li> <li> <span class="library"><a href="/libs/exception/doc/boost-exception.html">Exception</a>:</span> A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads, from Emil Dotchevski. </li> <li> <span class="library"><a href="/libs/units/index.html">Units</a>:</span> Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe </li> <li> <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span> Unordered associative containers, from Daniel James. </li> </ul> </div> <div id="version_1_36_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> <ul> <li> Added support for serial ports. </li> <li> Added support for UNIX domain sockets. </li> <li> Added support for raw sockets and ICMP. </li> <li> Added wrappers for POSIX stream-oriented file descriptors (excluding regular files). </li> <li> Added wrappers for Windows stream-oriented <code><span class="identifier">HANDLE</span></code>s such as named pipes (requires <code><span class="identifier">HANDLE</span></code>s that work with I/O completion ports). </li> <li> Added wrappers for Windows random-access <code><span class="identifier">HANDLE</span></code>s such as files (requires <code><span class="identifier">HANDLE</span></code>s that work with I/O completion ports). </li> <li> Added support for reactor-style operations (i.e. they report readiness but perform no I/O) using a new <code><span class="identifier">null_buffers</span></code> type. </li> <li> Added an iterator type for bytewise traversal of buffer sequences. </li> <li> Added new <code><span class="identifier">read_until</span><span class="special">()</span></code> and <code><span class="identifier">async_read_until</span><span class="special">()</span></code> overloads that take a user-defined function object for locating message boundaries. </li> <li> Added an experimental two-lock queue (enabled by defining <code><span class="identifier">BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE</span></code>) that may provide better <code><span class="identifier">io_service</span></code> scalability across many processors. </li> <li> Various fixes, performance improvements, and more complete coverage of the custom memory allocation support. </li> </ul> </li> <li> <span class="library"><a href="/libs/assign/index.html">Assign</a>:</span> <code><span class="identifier">list_of</span><span class="special">()</span></code> (and its variants) now has overloaded comparison operators. This allows you to write test code such as <code><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span> <span class="identifier">my_container</span><span class="special">,</span> <span class="identifier">list_of</span><span class="special">(</span><span class="number">2</span><span class="special">)(</span><span class="number">3</span><span class="special">)(</span><span class="number">4</span><span class="special">)(</span><span class="number">5</span><span class="special">)</span> <span class="special">);</span></code>. </li> <li> <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> <ul> <li> Default constructor now doesn't allocate memory, and sets the capacity of the buffer to 0 </li> </ul> </li> <li> <span class="library"><a href="/libs/foreach/index.html">Foreach</a>:</span> <code><span class="identifier">BOOST_FOREACH</span></code> macro for easily iterating over the elements of a sequence, from Eric Niebler. <ul> <li> New <code><span class="identifier">BOOST_REVERSE_FOREACH</span></code> macro for iterating over a sequence in reverse. </li> </ul> </li> <li> <span class="library"><a href="/libs/function/index.html">Function</a>:</span> <ul> <li> Improved allocator support, from Emil Dotchevski. </li> </ul> </li> <li> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> Minor updates and fixes, for more info see the <a href="/doc/html/hash/changes.html#hash.changes.boost_1_36_0">change log</a>. </li> <li> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> <ul> <li> Added anonymous shared memory for UNIX systems. </li> <li> Fixed missing move semantics on managed memory classes. </li> <li> Added copy_on_write and open_read_only options for shared memory and mapped file managed classes. </li> <li> <code><span class="identifier">shared_ptr</span></code> is movable and supports aliasing. </li> </ul> </li> <li> <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span> <ul> <li> Added <code><span class="identifier">linear</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">cache_last</span><span class="special">&lt;&gt;</span></code> options to singly linked lists. </li> <li> Added <code><span class="identifier">optimize_multikey</span><span class="special">&lt;&gt;</span></code> option to unordered container hooks. </li> <li> Optimized unordered containers when <code><span class="identifier">store_hash</span></code> option is used in the hook. </li> <li> Implementation changed to avoid explicit use of <code><span class="keyword">try</span></code>-<code><span class="keyword">catch</span></code> blocks and be compilable with exceptions disabled. </li> </ul> </li> <li> <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math</a>:</span> <ul> <li> Added new non-central Chi-Square, Beta, F and T distributions. </li> <li> Added Exponential Integral and Zeta special functions. </li> <li> Added Rounding, Truncation, and Unit-in-the-last-place functions. </li> <li> Added support for compile time powers of a runtime base. </li> <li> Added a few SSE2 based optimisations for the Lanczos approximations. </li> </ul> </li> <li> <span class="library"><a href="/doc/html/mpi.html">MPI</a>:</span> <ul> <li> Added support for non-blocking operations in Python, from Andreas Klöckner. </li> <li> Added support for graph topologies. </li> </ul> </li> <li> <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> Minor additions and maintenance fixes. Consult the library <a href="/libs/multi_index/doc/release_notes.html#boost_1_36">release notes</a> for further information. </li> <li> <span class="library"><a href="/libs/ptr_container/index.html">PtrContainer</a>:</span> Support for a few more containers, and addition of insert iterators. For details see <a href="/libs/ptr_container/doc/ptr_container.html#upgrading-from-boost-v-1-35">upgrading details</a>. </li> <li> <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span> Integrated the &quot;Classic&quot; Spirit V1.8.x code base with Spirit V2, &quot;The New Generation&quot;. See <a href="/libs/spirit/classic/change_log.html">Change Log</a>. </li> <li> <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span> <ul> <li> New generic <code><span class="identifier">lock</span></code> and <code><span class="identifier">try_lock</span></code> functions for locking multiple mutexes at once. </li> <li> Rvalue reference support for move semantics where the compilers supports it. </li> <li> A few bugs fixed and missing functions added (including the serious win32 condition variable bug). </li> <li> <code><span class="identifier">scoped_try_lock</span></code> types are now backwards-compatible with Boost 1.34.0 and previous releases. </li> <li> Support for passing function arguments to the thread function by supplying additional arguments to the <code><span class="identifier">thread</span></code> constructor. </li> <li> Backwards-compatibility overloads added for <code><span class="identifier">timed_lock</span></code> and <code><span class="identifier">timed_wait</span></code> functions to allow use of <code><span class="identifier">xtime</span></code> for timeouts. </li> </ul> </li> <li> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> <ul> <li> Wave V2.0 is a new major release introducing some breaking API changes, preventing it to be used with Boost versions earlier than V1.36.0. Mainly, the API and hook interface have been streamlined for more consistency. </li> <li> Fixed a couple of bugs, improved regression test system to include testing of the preporcessing hooks interface (for details see: <a href="/libs/wave/ChangeLog">Changelog</a>). </li> </ul> </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler. <ul> <li> <code><span class="identifier">skip</span><span class="special">()</span></code> for specifying which parts of the input sequence to ignore when matching it against a regex. </li> <li> <code><span class="identifier">regex_replace</span><span class="special">()</span></code> accepts formatter objects and formatter expressions in addition to format strings. </li> <li> Range-based <code><span class="identifier">regex_replace</span><span class="special">()</span></code> algorithm. </li> <li> Fix crash when semantic actions are placed in look-aheads, look-behinds or independent sub-expressions. </li> </ul> </li> </ul> </div> <div id="version_1_36_0.compilers_tested"> <h3><span class="link">Compilers Tested</span></h3> <p> Boost's primary test compilers are: </p> <ul> <li> GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC </li> <li> GCC 4.2.3 on Ubuntu Linux 8.04.1 </li> <li> HP C/aC++ B3910B A.06.17 on HP-UX 64-bit </li> <li> Visual C++ 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2 </li> </ul> <p> Boost's additional test compilers include: </p> <ul> <li> GCC 4.2.1 on FreeBSD-7 </li> <li> GCC 4.1.2 on NetBSD </li> <li> HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC </li> <li> IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40 </li> <li> Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1 </li> <li> Compaq C++ V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform. </li> <li> Sun C++ 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10. </li> <li> On Linux: <ul> <li> GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0. </li> <li> GCC 4.3.0 with C++0x extensions. </li> <li> GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux. </li> <li> Intel C++ 8.1, 9.0 and 9.1. </li> <li> QLogic PathScale(TM) Compiler Suite: Version 3.1 </li> <li> pgCC 7.2-3 64-bit target on x86-64 Linux </li> </ul> </li> <li> On Windows: <ul> <li> Intel 10.1, with Visual C++ 9 backend. </li> <li> Lots of tests on Visual C++ 7.1, 8.0, 9.0 </li> <li> Visual C++ 7.1 with Apache C++ Standard Library 4.2.x branch. </li> <li> Visual C++ 8.0 with STLport 5.1 </li> <li> Visual C++ 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0 Pocket PC SDK (ARMV4I). </li> <li> Borland 5.6.4, 5.8.2, 5.9.3 </li> <li> 64 bit Intel 10.1, with Visual C++ 9 backend. </li> <li> 64 bit Visual C++ 9. </li> <li> Comeau C++ 4.3.10.1 beta 2, with Visual C++ 9 backend. </li> </ul> </li> </ul> </div> <div id="version_1_36_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a>, <a href="/users/people/rene_rivera.html">Rene Rivera</a>, and Daniel James managed this release. </p> </div> </div>Version 1.35.0Sat, 29 Mar 2008 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Asio, Bimap, Circular Buffer, Function Types, Fusion, GIL, Interprocess, Intrusive, Math/Special Functions, Math/Statistical Distributions, MPI, System. Updated Libraries: Graph, Hash, Iostreams, Multi Array, Multi-index Containers, Serialization, Thread, Wave, Xpressive. </span></span>http://sourceforge.net/projects/boost/files/boost/1.35.0/<div class="description"> <div id="version_1_35_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> Portable networking, including sockets, timers, hostname resolution and socket iostreams, from Chris Kohlhoff. </li> <li> <span class="library"><a href="/libs/bimap/index.html">Bimap</a>:</span> Boost.Bimap is a bidirectional maps library for C++. With Boost.Bimap you can create associative containers in which both types can be used as key, from Matias Capeletto. </li> <li> <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> STL compliant container also known as ring or cyclic buffer, from Jan Gaspar. </li> <li> <span class="library"><a href="/libs/function_types/index.html">Function Types</a>:</span> Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types. From Tobias Schwinger. </li> <li> <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span> Library for working with tuples, including various containers, algorithms, etc. From Joel de Guzman, Dan Marsden and Tobias Schwinger. </li> <li> <span class="library"><a href="/libs/gil/doc/index.html">GIL</a>:</span> Generic Image Library, from Lubomir Bourdev and Hailin Jin. </li> <li> <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span> Shared memory, memory mapped files, process-shared mutexes, condition variables, containers and allocators, from Ion Gaztañaga. </li> <li> <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span> Intrusive containers and algorithms, from Ion Gaztañaga. </li> <li> <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math/Special Functions</a>:</span> A wide selection of mathematical special functions from John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang. </li> <li> <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math/Statistical Distributions</a>:</span> A wide selection of univariate statistical distributions and functions that operate on them from John Maddock and Paul Bristow </li> <li> <span class="library"><a href="/doc/html/mpi.html">MPI</a>:</span> Message Passing Interface library, for use in distributed-memory parallel application programming, from Douglas Gregor and Matthias Troyer. </li> <li> <span class="library"><a href="/libs/system/index.html">System</a>:</span> Operating system support, including the diagnostics support that will be part of the C++0x standard library, from Beman Dawes. </li> </ul> </div> <div id="version_1_35_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/libs/graph/doc/index.html">Graph</a>:</span> Generic graph components and algorithms. Highlights: <ul> <li> <code><span class="identifier">kolmogorov_max_flow</span></code>, from Stephan Diederich as part of the 2006 Google Summer of Code. </li> <li> <code><span class="identifier">read_dimacs_max_flow</span></code> and <code><span class="identifier">write_dimacs_max_flow</span></code> for max-flow problems, from Stephan Diederich. </li> <li> <code><span class="identifier">read_graphml</span></code> and <code><span class="identifier">write_graphml</span></code> for GraphML input/output, from Tiago de Paula Peixoto. </li> <li> <code><span class="identifier">minimum_cycle_ratio</span></code> and <code><span class="identifier">maximum_cycle_ratio</span></code>, from Dmitry Bufistov and Andrey Parfenov. </li> <li> <code><span class="identifier">boyer_myrvold_planarity_test</span></code>, along with a suite of algorithms for planar graphs, from Aaron Windsor. </li> <li> LEDA Adaptor improvements, from Jens Müller. </li> </ul> </li> <li> <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span> A TR1 hash function object, from Daniel James. Highlights: <ul> <li> Support for <code><span class="keyword">long</span> <span class="keyword">long</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code>. </li> <li> Improved the algorithm for hashing floating point numbers. </li> <li> A few bug and warning fixes. </li> </ul> </li> <li> <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis. Highlights: <ul> <li> Clarified the semantics of close(). This fixes several bugs but will break some existing code. See <a href="/libs/iostreams/doc/index.html?path=12">Release Notes</a> for details. </li> <li> Numerous other bug fixes and optimizations. </li> </ul> </li> <li> <span class="library"><a href="/libs/multi_array/index.html">Multi Array</a>:</span> <ul> <li> Added &quot;dimensionality&quot; compile-time constante to the MultiArray concept. </li> <li> For greater control over error situations, uses of C++ assert have been replaced with BOOST_ASSERT. </li> <li> Fixed a bug with simultaneous resizing and reindexing. </li> </ul> </li> <li> <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span> <ul> <li> New <a href="/libs/multi_index/doc/tutorial/key_extraction.html#global_fun"><code><span class="identifier">global_fun</span></code></a> predefined key extractor. </li> <li> Added <a href="/libs/multi_index/doc/tutorial/indices.html#iterator_to"><code><span class="identifier">iterator_to</span></code></a> facility. </li> <li> Included <a href="/libs/multi_index/doc/tutorial/creation.html#special_allocator">support for non-standard allocators</a> such as those of <a href="/libs/interprocess/index.html">Boost.Interprocess</a>, which makes <code><span class="identifier">multi_index_container</span></code>s placeable in shared memory. </li> <li> New versions of <code><span class="identifier">modify</span></code> and <code><span class="identifier">modify_key</span></code> with rollback, as described in the <a href="/libs/multi_index/doc/tutorial/basics.html#ord_updating">tutorial</a>. </li> <li> A number of optimizations and minor improvements have also been included. For a complete list of changes, see the library <a href="/libs/multi_index/doc/release_notes.html#boost_1_35">release notes</a>. </li> </ul> </li> <li> <span class="library"><a href="/libs/serialization/index.html">Serialization</a>:</span> Boost.Serialization has been updated with optimizations for dense arrays. </li> <li> <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span> <ul> <li> The Thread library has been updated to be more in line with the C++0x working draft. </li> <li> Instances of boost::thread and of the various lock types are now movable. </li> <li> Threads can be interrupted at interruption points. </li> <li> Condition variables can now be used with any type that implements the Lockable concept, through the use of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code> (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition</span></code> is a typedef to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code>, provided for backwards compatibility). <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code> is provided as an optimization, and will only work with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">&gt;</span></code> (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span></code>). </li> <li> Thread IDs are separated from boost::thread, so a thread can obtain it's own ID (using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>), and IDs can be used as keys in associative containers, as they have the full set of comparison operators. </li> <li> Timeouts are now implemented using the Boost DateTime library, through a typedef <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system_time</span></code> for absolute timeouts, and with support for relative timeouts in many cases. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span></code> is supported for backwards compatibility only. </li> <li> Locks are implemented as publicly accessible templates <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_lock</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">upgrade_lock</span></code>, which are templated on the type of the mutex. The Lockable concept has been extended to include publicly available <code><span class="identifier">lock</span><span class="special">()</span></code> and <code><span class="identifier">unlock</span><span class="special">()</span></code> member functions, which are used by the lock types. </li> <li> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code> has been removed, and the functionality subsumed into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code>. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code> is left as a typedef, but is no longer a separate class. </li> <li> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code> has been removed, and the functionality subsumed into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code>. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code> is left as a typedef, but is no longer a separate class. </li> <li> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">lock_ops</span></code> has been removed. Code that relies on the <code><span class="identifier">lock_ops</span></code> implementation detail will no longer work, as this has been removed, as it is no longer necessary now that mutex types now have public <code><span class="identifier">lock</span><span class="special">()</span></code> and <code><span class="identifier">unlock</span><span class="special">()</span></code> member functions. </li> <li> <code><span class="identifier">scoped_lock</span></code> constructors with a second parameter of type bool are no longer provided. With previous boost releases, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="keyword">false</span><span class="special">);</span></code> could be used to create a lock object that was associated with a mutex, but did not lock it on construction. This facility has now been replaced with the constructor that takes a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock_type</span></code> as the second parameter: <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock</span><span class="special">);</span></code> </li> <li> The broken <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">read_write_mutex</span></code> has been replaced with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_mutex</span></code>. </li> </ul> </li> <li> <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser. Highlights: <ul> <li> Added the possibility to continue the preprocessing after an error occured. </li> <li> Added the macro introspection API to the wave::context object. </li> <li> Added threading support to the library. </li> <li> Improved the overall performance by upto 30%. </li> <li> Changed and unified preprocessor hook interface (this is an interface breaking change!), added several new preprocessor hook functions. </li> <li> Added serialization support. </li> <li> Added new examples (for instance: Hannibal - a partial C++ parser, by Danny Havenith). </li> <li> Added a new lexical analyzer based on Ben Hansons Lexertl library. </li> <li> Fixed a large number of other bugs and problems. </li> </ul> </li> <li> <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler. Highlights: <ul> <li> Added <em>semantic actions</em> to static regexes. A semantic action is code that executes when part of a regular expression matches. </li> <li> Added <em>custom assertions</em> to static regexes. A custom assertion is a Boolean predicate that can participate in the regex match. </li> <li> Added <em>named regexes</em> for embedding a static or dynamic regex into a dynamic regex. This can be used to create dynamic regex grammars. </li> <li> Added <em>named captures</em> to dynamic regexes, like Perl. </li> </ul> </li> </ul> </div> <div id="version_1_35_0.supported_compilers"> <h3><span class="link">Supported Compilers</span></h3> <p> The following compilers are officially supported in this release: </p> <ul> <li> HP aC++ A.06.14 on HP-UX </li> <li> Darwin GCC 4.01. </li> <li> GNU GCC up to version 4.2.1, on Linux and Solaris. </li> <li> Intel C++ 9.1 on Linux. </li> <li> Intel C++ 10.1 on Windows. </li> <li> Microsoft Visual C++ 7.1 and 8 on Windows (Visual Sudio .NET 2003 and 2005). </li> </ul> <p> In addition the following compilers should be well supported, but weren't part of our release criteria for 1.35: </p> <ul> <li> IBM Visual Age 9.0 on AIX. </li> <li> Intel C++ 10 and later on Linux. </li> <li> GNU GCC 4.3 and later on Linux and Solaris. </li> <li> Microsoft Visual C++ 9 (Visual Studio .NET 2008). </li> </ul> </div> <div id="version_1_35_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="/users/people/beman_dawes.html">Beman Dawes</a> managed this release. </p> </div> </div>Version 1.34.1https://www.boost.org/users/history/version_1_34_1.htmlhttp://www.boost.org/users/history/version_1_34_1.htmlTue, 24 Jul 2007 12:00:00 +0000 <p> This is a bug fix release addressing many problems with the 1.34.0 release. It is a recommended upgrade for all users of Boost 1.34.0. For a complete list of fixes see <a href="http://svn.boost.org/trac/boost/query?status=closed&amp;milestone=Boost+1.34.1">Boost Trac</a>. </p> <div id="version_1_34_1.supported_compilers"> <h3><span class="link">Supported Compilers</span></h3> <p> New in this release is improved support for the IBM XL C/C++ compiler. </p> <p> Boost is tested on a wide range of compilers and platforms. Since Boost libraries rely on modern C++ features not available in all compilers, not all Boost libraries will work with every compiler. New in this release The following compilers and platforms have been extensively tested with Boost, although many other compilers and platforms will work as well. For more information, see the <a href="https://www.boost.org/regression/release/user/">regression test results</a>. </p> <ul> <li> <div> <a href="http://developer.apple.com/">Apple GCC</a> 4.0.1 on Mac OS X. </div> </li> <li> <div> <a href="http://www.codegear.com/products/cppbuilder">Borland C++</a> 5.8.2 on Windows. </div> </li> <li> <div> <a href="http://gcc.gnu.org/">GNU C++</a> <ul> <li> <div> 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux </div> </li> <li> <div> 4.1.x on Solaris </div> </li> <li> <div> 3.4.x on Windows </div> </li> </ul> </div> </li> <li> <div> <a href="http://h30097.www3.hp.com/cplus/">HP C++ for Tru64 UNIX 7.1</a>. </div> </li> <li> <div> <a href="http://www.hp.com/go/c++">HP aC++ A.06.14</a>. </div> </li> <li> <div> <a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">Intel C++</a> 9.1 on Windows, 9.0 on Linux. </div> </li> <li> <div> <a href="http://www.metrowerks.com/">Metrowerks CodeWarrior</a> 9.4 on Windows. </div> </li> <li> <div> <a href="http://msdn.microsoft.com/visualc/">Microsoft Visual C++</a> 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0. Note: Boost does not support the non-standard "Safe" C++ Library shipping with Visual C++ 8.0, which may result in many spurious warnings from Boost headers and other standards-conforming C++ code. To suppress these warnings, define the macro <code><span class="identifier">_SCL_SECURE_NO_DEPRECATE</span></code>. </div> </li> <li> <div> <a href="http://developers.sun.com/sunstudio/index.jsp">Sun Studio 11</a> on Solaris. </div> </li> </ul> </div> <div id="version_1_34_1.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/thomas_witt.html">Thomas Witt</a> managed this release. </p> <p> A great number of people contributed their time and expertise to make this release possible. Special thanks go to Kim Barrett consolidating Boost.Iostreams changes from various branches and Rene Rivera for general build and installation support. </p> </div> Version 1.34.0https://www.boost.org/users/history/version_1_34_0.htmlhttp://www.boost.org/users/history/version_1_34_0.htmlSat, 12 May 2007 12:00:00 +0000 <div id="version_1_34_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/doc/html/foreach.html">Foreach Library</a>:</span> <code><span class="identifier">BOOST_FOREACH</span></code> macro for easily iterating over the elements of a sequence, from Eric Niebler. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/statechart/doc/index.html">Statechart Library</a>:</span> Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/tr1/index.html">TR1 Library</a>:</span> An implementation of the C++ Technical Report on Standard Library Extensions, from John Maddock. This library does not itself implement the TR1 components, rather it's a thin wrapper that will include your standard library's TR1 implementation (if it has one), otherwise it will include the Boost Library equivalents, and import them into namespace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span></code>. Highlights include: Reference Wrappers, Smart Pointers, result_of, Function Object Binders, Polymorphic function wrappers, Type Traits, Random Number Generators and Distributions, Tuples, Fixed Size Array, Hash Function Objects, Regular Expressions, and Complex Number Additional Algorithms. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/doc/html/typeof.html">Typeof Library</a>:</span> Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/doc/html/xpressive.html">Xpressive Library</a>:</span> Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler. </div> </li> </ul> </div> <div id="version_1_34_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/assign/index.html">Assign Library</a>:</span> <ul> <li> <div> Support for <code><span class="identifier">ptr_map</span><span class="special">&lt;</span><span class="identifier">key</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</span></code> via the new function <code><span class="identifier">ptr_map_insert</span><span class="special">()</span></code> </div> </li> <li> <div> Support for initialization of <a href="https://www.boost.org/doc/libs/1_34_0/libs/ptr_container/index.html">Pointer Containers</a> when the containers hold pointers to an abstract base class. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/doc/html/date_time.html">Date_time library</a>:</span> <ul> <li> <div> Support for new US/Canada timezone rules and other bug fixes. See <a href="https://www.boost.org/doc/libs/1_34_0/doc/html/date_time/details.html#changes">Change History</a> for details. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/index.htm">Filesystem Library</a>:</span> Major upgrade in preparation for submission to the C++ Standards Committee for TR2. Changes include: <ul> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/i18n.html#Internationalization">Internationalization</a>, provided by class templates <em>basic_path</em>, <em>basic_filesystem_error</em>, <em>basic_directory_iterator</em>, and <em>basic_directory_entry</em>. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/i18n.html#Simplification">Simplification</a> of the path interface by eliminating special constructors to identify native formats. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/i18n.html#Rationalization">Rationalization</a> of predicate function design, including the addition of several new functions. </div> </li> <li> <div> Clearer specification by reference to <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/design.htm#POSIX-01">POSIX</a>, the ISO/IEEE Single Unix Standard, with provisions for Windows and other operating systems. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/i18n.html#Preservation">Preservation</a> of existing user code whenever possible. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/i18n.html#More_efficient">More efficient</a> directory iteration. </div> </li> <li> <div> Addition of a <a href="https://www.boost.org/doc/libs/1_34_0/libs/filesystem/doc/tr2_proposal.html#Class-template-basic_recursive_directory_iterator">recursive directory iterator</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/function/index.html">Function Library</a>:</span> Boost.Function now implements a small buffer optimization, which can drastically improve the performance when copying or constructing Boost.Function objects storing small function objects. For instance, <code><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">X</span><span class="special">:</span><span class="identifier">foo</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">)</span></code> requires no heap allocation when placed into a Boost.Function object. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/functional/hash/index.html">Functional/Hash Library</a>:</span> <ul> <li> <div> Use declarations for standard classes, so that the library doesn't need to include all of their headers </div> </li> <li> <div> Deprecated the <tt>&lt;boost/functional/hash/*.hpp&gt;</tt> headers. </div> </li> <li> <div> Add support for the <code><span class="identifier">BOOST_HASH_NO_EXTENSIONS</span></code> macro, which disables the extensions to TR1 </div> </li> <li> <div> Minor improvements to the hash functions for floating point numbers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/index.html">Graph Library</a>:</span> <ul> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/maximum_matching.html"><code><span class="identifier">edmonds_maximum_cardinality_matching</span></code></a>, from Aaron Windsor. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/lengauer_tarjan_dominator.htm"><code><span class="identifier">lengauer_tarjan_dominator_tree</span></code></a>, from JongSoo Park. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/compressed_sparse_row.html"><code><span class="identifier">compressed_sparse_row_graph</span></code></a>, from Jeremiah Willcock and Douglas Gregor of Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/sorted_erdos_renyi_gen.html"><code><span class="identifier">sorted_erdos_renyi_iterator</span></code></a>, from Jeremiah Willcock of Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/biconnected_components.html"><code><span class="identifier">biconnected_components</span></code></a> now supports a visitor and named parameters, from Janusz Piwowarski. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/adjacency_matrix.html"><code><span class="identifier">adjacency_matrix</span></code></a> now models the <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/BidirectionalGraph.html">Bidirectional Graph</a> concept. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/dijkstra_shortest_paths.html"><code><span class="identifier">dijkstra_shortest_paths</span></code></a> now calls <code><span class="identifier">vis</span><span class="special">.</span><span class="identifier">initialize_vertex</span></code> for each vertex during initialization. </div> </li> <li> <div> <em>Note:</em> the name of the compiled library for the <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/read_graphviz.html">GraphViz reader</a> has changed to <tt>boost_graph</tt> (from <tt>bgl-viz</tt>) to match Boost conventions. </div> </li> <li> <div> See the <a href="https://www.boost.org/doc/libs/1_34_0/libs/graph/doc/history.html#1.34.0">complete revision history</a> for more information. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/multi_array/index.html">MultiArray Library</a>:</span> Boost.MultiArray now by default provides range-checking for <code><span class="keyword">operator</span><span class="special">[]</span></code>. Range checking can be disabled by defining the macro <code><span class="identifier">BOOST_DISABLE_ASSERTS</span></code> before including <tt>multi_array.hpp</tt>. A bug in <code><span class="identifier">multi_array</span><span class="special">::</span><span class="identifier">resize</span><span class="special">()</span></code> related to storage orders was fixed. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/multi_index/doc/index.html">Multi-index Containers Library</a>:</span> <ul> <li> <div> New <a href="https://www.boost.org/doc/libs/1_34_0/libs/multi_index/doc/tutorial/indices.html#rnd_indices">random access indices</a>. </div> </li> <li> <div> Non key-based indices feature new <a href="https://www.boost.org/doc/libs/1_34_0/libs/multi_index/doc/tutorial/indices.html#rearrange">rearrange facilities</a>. </div> </li> <li> <div> This version also includes a number of optimizations and usage improvements. For a complete list of changes, see the library <a href="https://www.boost.org/doc/libs/1_34_0/libs/multi_index/doc/release_notes.html#boost_1_34">release notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/optional/index.html">Optional Library</a>:</span> <ul> <li> <div> <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span> <span class="keyword">and</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> now added to Optional's documentation </div> </li> <li> <div> Relational operators now directly support arguments of type <code><span class="char">'T'</span></code> and <code><span class="char">'none_t'</span></code> </div> </li> <li> <div> operator-&gt;() now also works with reference types. </div> </li> <li> <div> Helper functions <code><span class="identifier">make_optional</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span> <span class="identifier">make_optional</span><span class="special">(</span><span class="identifier">cond</span><span class="special">,</span><span class="identifier">val</span><span class="special">)</span> <span class="keyword">and</span> <span class="identifier">get_optional_value_or</span><span class="special">(</span><span class="identifier">opt</span><span class="special">,</span><span class="identifier">alternative_value</span><span class="special">)</span></code> added. </div> </li> <li> <div> Constructor taking a boolean condition (as well as a value) added. </div> </li> <li> <div> Member function <code><span class="identifier">get_value_or</span><span class="special">(</span><span class="identifier">alternative_value</span><span class="special">)</span></code> added. </div> </li> <li> <div> Incompatbility bug with mpl::apply&lt;&gt; fixed. </div> </li> <li> <div> Converting assignment bug with uninitialized lvalues fixed. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/parameter/index.html">Parameter Library</a>:</span> <ul> <li> <div> Every ArgumentPack is now a valid <a href="https://www.boost.org/doc/libs/1_34_0/libs/mpl/doc/refmanual/forward-sequence.html">MPL Forward Sequence.</a> </div> </li> <li> <div> Support for unnamed arguments (those whose keyword is deduced from their types) is added. </div> </li> <li> <div> Support for named and unnamed template arguments is added. </div> </li> <li> <div> New overload generation macros solve the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm">forwarding problem</a> directly. </div> </li> <li> <div> See also the Python library changes, below. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/ptr_container/index.html">Pointer Container Library</a>:</span> <ul> <li> <div> Support for serialization via <a href="https://www.boost.org/doc/libs/1_34_0/libs/serialization/index.html">Boost.Serialization.</a> </div> </li> <li> <div> Exceptions can be disabled by defining the macro BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header. This macro is defined by default if BOOST_NO_EXCEPTIONS is defined. </div> </li> <li> <div> Additional <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> overloads added s.t. one can also pass <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> instead of only <code><span class="identifier">T</span><span class="special">*</span></code> arguments to member functions. </div> </li> <li> <div> <code><span class="identifier">transfer</span><span class="special">()</span></code> now has weaker requirements s.t. one can transfer objects from <code><span class="identifier">ptr_container</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code> to <code><span class="identifier">ptr_container</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span></code>, </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/python/index.html">Python Library</a>:</span> <ul> <li> <div> Boost.Python now automatically appends C++ signatures to docstrings. The new <a href="https://www.boost.org/doc/libs/1_34_0/libs/python/doc/v2/docstring_options.html"><tt>docstring_options.hpp</tt></a> header is available to control the content of docstrings. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/python/doc/v2/stl_iterator.html#stl_input_iterator-spec"><code><span class="identifier">stl_input_iterator</span></code></a>, for turning a Python iterable object into an STL input iterator, from Eric Niebler. </div> </li> <li> <div> Support for <code><span class="keyword">void</span><span class="special">*</span></code> conversions is added. </div> </li> <li> <div> Integrated support for wrapping C++ functions built with the parameter library; keyword names are automatically known to docsstrings. </div> </li> <li> <div> Enhancements to the API for better embedding support (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">import</span><span class="special">()</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">exec</span><span class="special">()</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">exec_file</span><span class="special">()</span></code>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/doc/html/signals.html">Signals Library</a>:</span> More improvements to signal invocation performance from Robert Zeh. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/smart_ptr/smart_ptr.htm">Smart Pointers Library</a>:</span> <ul> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/smart_ptr/shared_ptr.htm#allocator_constructor">Allocator support</a> as proposed in <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1851.pdf">N1851</a> (162 Kb PDF). </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_34_0/libs/smart_ptr/pointer_cast.html"><code><span class="identifier">pointer_cast</span></code></a> and <a href="https://www.boost.org/doc/libs/1_34_0/libs/smart_ptr/pointer_to_other.html"><code><span class="identifier">pointer_to_other</span></code></a> utilities to allow pointer-independent code, from Ion Gaztanaga. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/algorithm/string/index.html">String Algorithm Library</a>:</span> <ul> <li> <div> <code><span class="identifier">lexicographical_compare</span></code> </div> </li> <li> <div> <code><span class="identifier">join</span></code> </div> </li> <li> <div> New comparison predicates <code><span class="identifier">is_less</span></code>, <code><span class="identifier">is_not_greater</span></code>. </div> </li> <li> <div> Negative indexes support (like Perl) in various algorihtms (<code><span class="special">*</span><span class="identifier">_head</span><span class="special">/</span><span class="identifier">tail</span></code>, <code><span class="special">*</span><span class="identifier">_nth</span></code>). </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_34_0/libs/wave/index.html">Wave Library</a>:</span> <ul> <li> <div> Wave now correctly recognizes pp-number tokens as mandated by the C++ Standard, which are converted to C++ tokens right before they are returned from the library. </div> </li> <li> <div> Several new preprocessing hooks have been added. For a complete description please refer to the related documentation page: <a href="https://www.boost.org/doc/libs/1_34_0/libs/wave/doc/class_reference_ctxpolicy.html">The Context Policy</a>. </div> </li> <li> <div> Shared library (dll) support has been added for the generated Wave libraries. </div> </li> <li> <div> The overall error handling has been improved. It is now possible to recover and continue after an error or a warning was issued. </div> </li> <li> <div> Support for optional comment and/or full whitespace preservation in the generated output stream has been added. </div> </li> <li> <div> The Wave library now performs automatic include guard detection to avoid accessing header files more than once, if appropriate. </div> </li> <li> <div> Full interactive mode has been added to the Wave tool. Now the Wave tool can be used just like Python or Perl for instance to interactively try out your BOOST_PP macros. Additionally it is now possible to load and save the current state of an interactive session (macro tables et.al.). </div> </li> <li> <div> The overall performance has been improved by upto 40-60%, depending on the concrete files to process. </div> </li> <li> <div> Support for new pragmas has been added allowing to control certain library features from inside the preprocessed sources (partial output redirection, control of generated whitespace and #line directives). </div> </li> <li> <div> Optional support for #pragma message "..." has been added. </div> </li> <li> <div> This version also includes a number of bug fixes and usage improvements. For a complete list of changes, see the libraries <a href="https://www.boost.org/doc/libs/1_34_0/libs/wave/ChangeLog">change log</a>. </div> </li> </ul> </div> </li> </ul> </div> <div id="version_1_34_0.supported_compilers"> <h3><span class="link">Supported Compilers</span></h3> <p> Boost is tested on a wide range of compilers and platforms. Since Boost libraries rely on modern C++ features not available in all compilers, not all Boost libraries will work with every compiler. The following compilers and platforms have been extensively tested with Boost, although many other compilers and platforms will work as well. For more information, see the <a href="https://www.boost.org/regression/release/user/">regression test results</a>. </p> <ul> <li> <div> <a href="http://developer.apple.com/">Apple GCC</a> 4.0.1 on Mac OS X. </div> </li> <li> <div> <a href="http://www.codegear.com/products/cppbuilder">Borland C++</a> 5.8.2 on Windows. </div> </li> <li> <div> <a href="http://gcc.gnu.org/">GNU C++</a> <ul> <li> <div> 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux </div> </li> <li> <div> 4.1.x on Solaris </div> </li> <li> <div> 3.4.x on Windows </div> </li> </ul> </div> </li> <li> <div> <a href="http://h30097.www3.hp.com/cplus/">HP aC++ A.06.14</a>. </div> </li> <li> <div> <a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">Intel C++</a> 9.1 on Windows, 9.0 on Linux. </div> </li> <li> <div> <a href="http://www.metrowerks.com/">Metrowerks CodeWarrior</a> 9.4 on Windows. </div> </li> <li> <div> <a href="http://msdn.microsoft.com/visualc/">Microsoft Visual C++</a> 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0. Note: Boost does not support the non-standard "Safe" C++ Library shipping with Visual C++ 8.0, which may result in many spurious warnings from Boost headers and other standards-conforming C++ code. To suppress these warnings, define the macro <code><span class="identifier">_SCL_SECURE_NO_DEPRECATE</span></code>. </div> </li> <li> <div> <a href="http://developers.sun.com/sunstudio/compilers_index.html">Sun Studio 11</a> on Solaris. </div> </li> </ul> </div> <div id="version_1_34_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <a href="https://www.boost.org/users/people/thomas_witt.html">Thomas Witt</a> managed this release. </p> <p> A great number of people contributed their time and expertise to make this release possible. Special thanks go to Vladimir Prus for making Boost.Build version 2 a reality, David Abrahams for authoring a new getting started guide and Greg D. for answering countless questions. </p> </div> Version 1.33.1https://www.boost.org/users/history/version_1_33_1.htmlhttp://www.boost.org/users/history/version_1_33_1.htmlTue, 05 Dec 2006 12:00:00 +0000 <div id="version_1_33_1.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/doc/html/any.html">Any Library</a>:</span> Cast to reference types introduced in 1.33.0 is now documented on <code><span class="identifier">any_cast</span></code> documentation page. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/bind/bind.html">Bind Library</a>:</span> Bind expressions now support <a href="https://www.boost.org/doc/libs/1_33_1/libs/bind/bind.html#operators">comparisons and negation</a>. Example: <code><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">name</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)</span> <span class="special">&lt;</span> <span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">name</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">)</span></code>. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/config/index.html">Config Library</a>:</span> Don't undef <code><span class="identifier">BOOST_LIB_TOOLSET</span></code> after use. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/python/doc/index.html">Boost.Python</a>:</span> <ul> <li> <div> The build now assumes Python 2.4 by default, rather than 2.2 </div> </li> <li> <div> Support Python that's built without Unicode support </div> </li> <li> <div> Support for wrapping classes with overloaded address-of (<code><span class="special">&amp;</span></code>) operators </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/smart_ptr/index.html">Smart Pointer Library</a>:</span> Fixed problems under Metrowerks CodeWarrior on PowerPC (Mac OS X) with inlining on, GNU GCC on PowerPC 64. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/regex/doc/index.html">Regex Library</a>:</span> Fixed the supplied makefiles, and other small compiler specific changes. Refer to the <a href="https://www.boost.org/doc/libs/1_33_1/libs/regex/doc/history.html">regex history page</a> for more information on these and other small changes. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/iostreams/doc/index.html">Iostreams Library</a>:</span> Improved the interface for accessing a chain's components, added <code><span class="identifier">is_open</span></code> members to the file and file descriptor devices, fixed memory-mapped files on Windows, and made minor changes to the documentation. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/python/doc/index.html">Boost.Python</a>:</span> <ul> <li> <div> Added support for docstrings on nonstatic properties. </div> </li> <li> <div> We now export the client-provided docstrings for <code><span class="identifier">init</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span></code> and <em>XXX</em><code><span class="identifier">_FUNCTION_OVERLOADS</span><span class="special">()</span></code> for only the last overload. </div> </li> <li> <div> Support for Embedded VC++ 4 and GCC-3.3 on MacOS added </div> </li> <li> <div> Introduced better support for rvalue from-python conversions of shared_ptr. </div> </li> <li> <div> Support for exposing <code><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">*&gt;</span></code> with the indexing suite. </div> </li> <li> <div> updated visual studio project build file. </div> </li> <li> <div> Added search feature to the index page. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/functional/hash/index.html">Functional/Hash Library</a>:</span> Fixed the points example. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/index.html">Multi-index Containers Library</a>:</span> Fixed a problem with multithreaded code, and other minor changes. Refer to the library <a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/release_notes.html#boost_1_33_1">release notes</a> for further details. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/table_of_contents.html">Graph Library</a>:</span> <ul> <li> <div> Fixed a problem with the relaxed heap on x86 Linux (fixes bug in <code><span class="identifier">dijkstra_shortest_paths</span></code>). </div> </li> <li> <div> Fixed problems with <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/cuthill_mckee_ordering.html"><code><span class="identifier">cuthill_mckee_ordering</span></code></a> and <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/king_ordering.html"><code><span class="identifier">king_ordering</span></code></a> producing no results. </div> </li> <li> <div> Added <code><span class="identifier">color_map</span></code> parameter to <code><span class="identifier">dijkstra_shortest_paths</span></code>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/signals/doc/index.html">Signals Library</a>:</span> Fixed problems with the use of Signals across shared library boundaries. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/thread/doc/index.html">Thread library</a>:</span> <code><span class="identifier">read_write_mutex</span></code> has been removed due to problems with deadlocks. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/wave/index.html">Wave library</a> (V1.2.1):</span> Fixed a couple of problems, refer to the <a href="https://www.boost.org/doc/libs/1_33_1/libs/wave/ChangeLog">change log</a> for further details. </div> </li> </ul> </div> <div id="version_1_33_1.supported_compilers"> <h3><span class="link">Supported Compilers</span></h3> <p> Boost is tested on a wide range of compilers and platforms. Since Boost libraries rely on modern C++ features not available in all compilers, not all Boost libraries will work with every compiler. The following compilers and platforms have been extensively tested with Boost, although many other compilers and platforms will work as well. For more information, see the <a href="https://www.boost.org/regression/release/user/">regression test results</a>. </p> <p> <em>New for this release</em>: Support for building with the newest STLport-5.0 was added. The support includes building with MinGW Runtime 3.8 plus STLport-5.0 improved to support wide character operations. Apple GCC 4.0, HP Tru64 C++, and Microsoft Visual C++ 8.0 are supported platforms. We have added an experimental autoconf-like <tt>configure</tt> script for Unix-like systems: run <tt>configure --help</tt> for more information. </p> <ul> <li> <div> <a href="http://developer.apple.com/">Apple GCC</a> 3.3, 4.0 on Mac OS X. </div> </li> <li> <div> <a href="http://www.codegear.com/products/cppbuilder">Borland C++</a> 5.6.4 on Windows. </div> </li> <li> <div> <a href="http://gcc.gnu.org">GNU C++</a> 2.95.3 (with and without STLport), 3.2.x., 3.3.x, 3.4.x, 4.0.x on Windows, Linux and Solaris. </div> </li> <li> <div> <a href="http://h30097.www3.hp.com/cplus/">HP C++ for Tru64 UNIX 7.1</a>. </div> </li> <li> <div> <a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">Intel C++</a> 8.1, 9.0 on Windows, Linux. </div> </li> <li> <div> <a href="http://www.metrowerks.com">Metrowerks CodeWarrior</a> 8.3, 9.4, 9.5 on Mac OS X and Windows. </div> </li> <li> <div> <a href="http://msdn.microsoft.com/visualc/">Microsoft Visual C++</a> 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0. Note: Boost does not support the non-standard "Safe" C++ Library shipping with Visual C++ 8.0, which may result in many spurious warnings from Boost headers and other standards-conforming C++ code. To suppress these warnings, define the macro <code><span class="identifier">_SCL_SECURE_NO_DEPRECATE</span></code>. </div> </li> </ul> </div> <div id="version_1_33_1.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <span class="inset-left"><img src="https://www.boost.org/gfx/boost_1_33_0.jpg" alt="Medieval Mr. Gregor"/></span> <a href="https://www.boost.org/users/people/doug_gregor.html">Douglas Gregor</a> managed this release. </p> <p> A great number of people contributed their time and expertise to make this release possible. Special thanks go to Aleksey Gurtovoy and Misha Bergal, who managed to keep the regression testing system working throughout the release process; David Abrahams, Beman Dawes, Aleksey Gurtovoy, Bronek Kozicki, Rene Rivera and Jonathan Turkanis for greatly improving the quality of this release; Rene Rivera for the new Boost web page design; and Zoltan "cad" Juhasz for the new Boost logo. </p> </div> Version 1.33.0https://www.boost.org/users/history/version_1_33_0.htmlhttp://www.boost.org/users/history/version_1_33_0.htmlThu, 11 Aug 2005 12:00:00 +0000 <div id="version_1_33_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/iostreams/doc/index.html">Iostreams Library</a>:</span> Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/functional/hash/index.html">Functional/Hash Library</a>:</span> A TR1 hash function object that can be extended to hash user defined types, from Daniel James. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/parameter/doc/html/index.html">Parameter Library</a>:</span> Write functions that accept arguments by name: especially useful when a function has more than one argument with a useful default value, since named arguments can be passed in any order. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/ptr_container/index.html">Pointer Container Library</a>:</span> Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/wave/index.html">Wave</a>:</span> Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser. </div> </li> </ul> </div> <div id="version_1_33_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/doc/html/any.html">Any Library</a>:</span> <code><span class="identifier">any_cast</span></code> has been enhanced to allow direct access to <code><span class="identifier">any</span></code>'s held value. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/assign/doc/index.html">Assignment Library</a>:</span> Support for <a href="https://www.boost.org/doc/libs/1_33_1/libs/ptr_container/index.html">Pointer Container Library</a> and new efficient functions <code><span class="identifier">ref_list_of</span><span class="special">()</span></code> and <code><span class="identifier">cref_list_of</span><span class="special">()</span></code> for generating anonymous ranges. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/bind/bind.html">Bind Library</a>:</span> Bind expressions now support <a href="https://www.boost.org/doc/libs/1_33_1/libs/bind/bind.html#operators">comparisons and negation</a>. Example: <code><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">name</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)</span> <span class="special">&lt;</span> <span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">name</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">)</span></code>. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/doc/html/date_time.html">Date-Time Library</a>:</span> <ul> <li> <div> Added <a href="https://www.boost.org/doc/libs/1_33_1/doc/html/date_time/local_time.html">local time and time zone classes</a>. </div> </li> <li> <div> Added <a href="https://www.boost.org/doc/libs/1_33_1/doc/html/date_time/date_time_io.html">format-based Input/Output facets</a>. </div> </li> <li> <div> For a complete list of changes, see the library <a href="https://www.boost.org/doc/libs/1_33_1/doc/html/date_time/details.html#date_time.changes">change history</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/index.html">Graph Library</a>:</span> Introduced several new algorithms and improved existing algorithms: <ul> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/python.html">Experimental Python bindings</a>, from Doug Gregor and Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/floyd_warshall_shortest.html"><code><span class="identifier">floyd</span> <span class="identifier">warshall</span> <span class="identifier">all</span> <span class="identifier">pairs</span> <span class="identifier">shortest</span> <span class="identifier">paths</span></code></a>, from Lauren Foutz and Scott Hill. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/astar_search.html"><code><span class="identifier">astar</span> <span class="identifier">search</span></code></a>, from Kristopher Beevers and Jufeng Peng. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/fruchterman_reingold.html"><code><span class="identifier">fruchterman</span> <span class="identifier">reingold</span> <span class="identifier">force</span> <span class="identifier">directed</span> <span class="identifier">layout</span></code></a>, from Doug Gregor and Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/biconnected_components.html"><code><span class="identifier">biconnected</span> <span class="identifier">components</span></code> and <code><span class="identifier">articulation</span> <span class="identifier">points</span></code></a>, from Jeremy Siek, Janusz Piwowarski, and Doug Gregor. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/sequential_vertex_coloring.html"><code><span class="identifier">sequential</span> <span class="identifier">vertex</span> <span class="identifier">coloring</span></code></a> has been updated, tested, and documented. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/gursoy_atun_layout.html"><code><span class="identifier">gursoy</span> <span class="identifier">atun</span> <span class="identifier">layout</span></code></a>, from Jeremiah Willcock and Doug Gregor of Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/king_ordering.html"><code><span class="identifier">king</span> <span class="identifier">ordering</span></code></a>, from D. Kevin McGrath of Indiana University. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/cuthill_mckee_ordering.html"><code><span class="identifier">cuthill</span> <span class="identifier">mckee</span> <span class="identifier">ordering</span></code></a> has been recast as an invocation of <code><span class="identifier">breadth</span> <span class="identifier">first</span> <span class="identifier">search</span></code> and now supports graphs with multiple components. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/dijkstra_shortest_paths.html"><code><span class="identifier">dijkstra</span> <span class="identifier">shortest</span> <span class="identifier">paths</span></code></a> now uses a relaxed heap [<a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/bibliography.html#driscoll88">61</a>] as its priority queue, improving its complexity to O(V log V) and improving real-world performance for larger graphs. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/read_graphviz.html"><code><span class="identifier">read</span> <span class="identifier">graphviz</span></code></a> now has a new, Spirit-based parser that works for all graph types and supports arbitrary properties on the graph, from Ron Garcia. The old, Bison-based GraphViz reader has been deprecated and will be removed in a future Boost release. <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/write-graphviz.html"><code><span class="identifier">write</span> <span class="identifier">graphviz</span></code></a> also supports dynamic properties. </div> </li> <li> <div> <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/subgraph.html"><code><span class="identifier">subgraph</span></code></a>: <code><span class="identifier">get_property</span></code> now refers to the subgraph property, not the root graph's property. </div> </li> <li> <div> See the <a href="https://www.boost.org/doc/libs/1_33_1/libs/graph/doc/history.html#by-version">history</a> for additional changes and bug fixes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/index.html">Multi-index Containers Library</a>:</span> <ul> <li> <div> New <a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/tutorial/indices.html#hashed_indices">hashed indices</a>. </div> </li> <li> <div> Added <a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/tutorial/creation.html#serialization">serialization support</a>. </div> </li> <li> <div> For a complete list of changes, see the library <a href="https://www.boost.org/doc/libs/1_33_1/libs/multi_index/doc/release_notes.html">release notes</a>. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/program_options/doc/index.html">Program Options Library</a>:</span> <ul> <li> <div> Option descriptions are now printed with word wrapping. </div> </li> <li> <div> Command line parser can bypass unregistered options, instread of throwing. </div> </li> <li> <div> Removed support for "implicit" (optional) values. </div> </li> <li> <div> New customization method 'command_line_parser::extra_style_parser'. Unlike 'additional_parser', allows the user to parse several tokens and return a vector of options, not just a single option. </div> </li> <li> <div> Work with disabled exceptions. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/property_map/property_map.html">Property Map Library</a>:</span> Introduced the <a href="https://www.boost.org/doc/libs/1_33_1/libs/property_map/doc/dynamic_property_map.html"><code><span class="identifier">dynamic</span> <span class="identifier">properties</span></code></a> class, which provides dynamically-typed access to a set of property maps. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/python/doc/index.html">Boost.Python</a>:</span> <ul> <li> <div> Added support for docstrings on nonstatic properties. </div> </li> <li> <div> We now export the client-provided docstrings for <code><span class="identifier">init</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span></code> and <em>XXX</em><code><span class="identifier">_FUNCTION_OVERLOADS</span><span class="special">()</span></code> for only the last overload. </div> </li> <li> <div> Support for Embedded VC++ 4 and GCC-3.3 on MacOS added </div> </li> <li> <div> Introduced better support for rvalue from-python conversions of shared_ptr. </div> </li> <li> <div> Support for exposing <code><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">*&gt;</span></code> with the indexing suite. </div> </li> <li> <div> updated visual studio project build file. </div> </li> <li> <div> Added search feature to the index page. </div> </li> </ul> </div> </li> <li> <div> <p><span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/random/index.html">Random Number Library</a>:</span> Improved initialization for <code><span class="identifier">mersenne_twister</span></code>, algorithm by Makoto Matsumoto and Takuji Nishimura, implemented for Boost by Jens Maurer.</p> <p>Note: All test vectors for <code><span class="identifier">mersenne_twister</span></code>s constructed or seeded without parameters or with a single <code><span class="keyword">unsigned</span> <span class="keyword">int</span></code> parameter become invalid.</p> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/range/index.html">Range Library</a>:</span> Minor addition of convenience functions to <code><span class="identifier">iterator</span> <span class="identifier">range</span></code> like <code><span class="identifier">front</span><span class="special">(),</span> <span class="identifier">back</span><span class="special">()</span></code> and <code><span class="keyword">operator</span><span class="special">[]()</span></code>. </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/regex/index.html">Regex Library</a>:</span> <ul> <li> <div> Rewritten front end parser now supports (?imsx-imsx) constructs, plus lookbehind assertions and conditional expressions. </div> </li> <li> <div> Thin wrapper classes improve integration with MFC/ATL code. </div> </li> <li> <div> Full (optional) Unicode support via the ICU library. Refer to the <a href="https://www.boost.org/doc/libs/1_33_1/libs/regex/doc/history.html">regex history page</a> for more information on these and other small changes. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/libs/serialization/doc/index.html">Serialization Library</a>:</span> <ul> <li> <div> DLL version. </div> </li> <li> <div> Auto-linking. </div> </li> <li> <div> Serialization of variants. </div> </li> <li> <div> Improved serialization of shared pointers. </div> </li> </ul> </div> </li> <li> <div> <span class="library"><a href="https://www.boost.org/doc/libs/1_33_1/doc/html/signals.html">Signals Library</a>:</span> added slot blocking/unblocking, from Frantz Maerten. Huge improvements to signal invocation performance from Robert Zeh. </div> </li> </ul> </div> <div id="version_1_33_0.supported_compilers"> <h3><span class="link">Supported Compilers</span></h3> <p> Boost is tested on a wide range of compilers and platforms. Since Boost libraries rely on modern C++ features not available in all compilers, not all Boost libraries will work with every compiler. The following compilers and platforms have been extensively tested with Boost, although many other compilers and platforms will work as well. For more information, see the <a href="https://www.boost.org/regression/release/user/">regression test results</a>. </p> <ul> <li> <div> <a href="http://developer.apple.com/">Apple GCC</a> 3.x on Mac OS X. </div> </li> <li> <div> <a href="http://www.codegear.com/products/cppbuilder">Borland C++</a> 5.6.4 on Windows. </div> </li> <li> <div> <a href="http://gcc.gnu.org">GNU C++</a> 2.95.3 (with and without STLport), 3.2.x., 3.3.x, 3.4.x, 4.0.x on Windows, Linux and Solaris. </div> </li> <li> <div> <a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">Intel C++</a> 8.1, 9.0 on Windows, Linux. </div> </li> <li> <div> <a href="http://www.metrowerks.com">Metrowerks CodeWarrior</a> 8.3, 9.4, 9.5 on Mac OS X and Windows. </div> </li> <li> <div> <a href="http://msdn.microsoft.com/visualc/">Microsoft Visual C++</a> 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0 beta. Note: due to intermittent problems with Visual C++ 8.0 beta, and the presence of a variety of pre-release compiler builds, we are unable to guarantee compatibility until the final compiler is released. </div> </li> </ul> </div> <div id="version_1_33_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <img src="https://www.boost.org/gfx/boost_1_33_0.jpg" alt="[]"/><a href="https://www.boost.org/users/people/doug_gregor.html">Douglas Gregor</a> managed this release. </p> <p> A great number of people contributed their time and expertise to make this release possible. Special thanks go to Aleksey Gurtovoy and Misha Bergal, who managed to keep the regression testing system working throughout the release process; David Abrahams, Beman Dawes, Aleksey Gurtovoy, Rene Rivera and Jonathan Turkanis for greatly improving the quality of this release; Rene Rivera for the new Boost web page design; and Zoltan "cad" Juhasz for the new Boost logo. </p> </div> Version 1.32.0Fri, 19 Nov 2004 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Assignment, Minmax, Multi-Index, Numeric Conversion, Program Options, Range, Serialization, String, Tribool. Updated Libraries: Graph, MPL, Python, Signals, Utility, Test. Removed Libraries: Compose. </span></span>http://sourceforge.net/projects/boost/files/boost/1.32.0/<div class="description"> <div id="version_1_32_0.important___new_toolset_names"> <h3><span class="link">Important - New Toolset Names</span></h3> <p> The names of some the Boost.Build <a href="/doc/libs/1_32_0/more/getting_started.html#Tools">toolsets</a> have been changed to remove the &quot;<tt>.</tt>&quot; (dot) character and to fix some other naming inconsistencies. For example, <tt>vc7.1</tt> toolset was renamed to become <tt>vc-7_1</tt>. Please refer to the <a href="/doc/libs/1_32_0/more/getting_started.html#Tools">Supported Toolsets</a> section of the installation guide for the complete list of the current toolset names. This change was made as a part of the effort to make the Boost distribution compatible with ISO 9660 level 2 requirements. </p> </div> <div id="version_1_32_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/assign/index.html">Assignment Library</a>:</span> Filling containers with constant or generated data has never been easier, from Thorsten Ottosen. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/algorithm/minmax/index.html">Minmax Library</a>:</span> Standard library extensions for simultaneous min/max and min/max element computations, from Herve Bronnimann. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/multi_index/doc/index.html">Multi-index Containers Library</a>:</span> Containers with multiple STL-compatible access interfaces, from Joaquin M Lopez Munoz. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/numeric/conversion/index.html">Numeric Conversion Library</a>:</span> Optimized policy-based numeric conversions, from Fernando Cacciola. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/doc/html/program_options.html">Program Options Library</a>:</span> Access to configuration data given on command line, in config files and other sources, from Vladimir Prus. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/range/index.html">Range Library</a>:</span> a new infrastructure for generic algorithms that builds on top of the new iterator concepts, from Thorsten Ottosen. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/serialization/doc/index.html">Serialization Library</a>:</span> Serialization/de-serialization of arbitrary C++ data structures to various formats including text, binary, and xml, from Robert Ramey. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/algorithm/string/index.html">String Algorithms Library</a>:</span> Collection of string related algorithms for case conversion, trimming, find/replace operations and more, from Pavol Droba. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/doc/html/tribool.html">Tribool</a>:</span> 3-state boolean type library, from Doug Gregor. </li> </ul> </div> <div id="version_1_32_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> Compose: This deprecated library has been removed. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/graph/index.html">Graph</a>:</span> <ul> <li> Added <a href="/doc/libs/1_32_0/libs/graph/doc/bundles.html">bundled properties</a> to the <a href="/doc/libs/1_32_0/libs/graph/doc/adjacency_list.html"><code><span class="identifier">adjacency_list</span></code></a> and <a href="/doc/libs/1_32_0/libs/graph/doc/adjacency_matrix.html"><code><span class="identifier">adjacency_matrix</span></code></a> class templates, greatly simplifying the introduction of internal vertex and edge properties. </li> <li> The <a href="/doc/libs/1_32_0/libs/graph/doc/leda_conversion.html">LEDA graph adaptors</a> have been ported to LEDA 4.5. </li> <li> Added algorithms for <a href="/doc/libs/1_32_0/libs/graph/doc/betweenness_centrality.html">betweenness centrality</a> and <a href="/doc/libs/1_32_0/libs/graph/doc/bc_clustering.html">betweenness centrality clustering</a>. </li> <li> Added <a href="/doc/libs/1_32_0/libs/graph/doc/circle_layout.html">circle layout</a> and <a href="/doc/libs/1_32_0/libs/graph/doc/kamada_kawai_spring_layout.html">undirected spring layout</a> algorithms. </li> </ul> </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/mpl/doc/index.html">MPL Library</a>:</span> <ul> <li> Updated to use the Boost Software License. </li> <li> New <a href="/doc/libs/1_32_0/libs/mpl/doc/index.html">documentation</a>, including a complete <a href="/doc/libs/1_32_0/libs/mpl/doc/refmanual.html">reference manual.</a> </li> <li> Major interface changes and improvements, many of which are not backward compatible. Please refer to the <a href="/doc/libs/1_32_0/libs/mpl/doc/tutorial/changes-in-boost-1-32-0.html">1.32 changelog</a> for the detailed information about upgrading to the new version. </li> </ul> </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/python/doc/index.html">Python Library</a>:</span> <ul> <li> Updated to use the Boost Software License. </li> <li> a new, <a href="/doc/libs/1_32_0/libs/python/doc/tutorial/doc/html/python/exposing.html#python.class_virtual_functions">better method of wrapping classes with virtual functions</a> has been implemented. </li> <li> Support for the new Python Bool type, thanks to Daniel Holth. </li> <li> Support for upcoming GCC symbol export control features have been folded in, thanks to Niall Douglas. </li> <li> Improved support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span></code>-like types. </li> <li> Components used by other libraries have been moved out of <tt>python/detail</tt> and into <tt>boost/detail</tt> to improve dependency relationships. </li> <li> Miscellaneous bug fixes and compiler workarounds. </li> </ul> </li> <li> <span class="library"><a href="/doc/libs/1_32_0/doc/html/signals.html">Signals Library</a>:</span> Introduced deterministic slot ordering, permitting slots to be connected at the beginning or end of slot groups or the slot list itself. Combiners may safely have state and are accessible from the signal. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/utility/utility.htm">Utility</a>:</span> class template <a href="/doc/libs/1_32_0/libs/utility/utility.htm#result_of">result_of</a> added. </li> <li> <span class="library"><a href="/doc/libs/1_32_0/libs/test/index.html">Test Library</a>:</span> <ul> <li>namespace names gets shorten; old one still supported till next release</li> <li>added proper encoding of XML PCDATA</li> <li>support for wide string comparison implemented</li> </ul> <p> For complete list of changes see Test Library <a href="/doc/libs/1_32_0/libs/test/doc/release_notes.html#v1_32_0">release notes</a>. </p> </li> </ul> </div> <div id="version_1_32_0.regression_tests"> <h3><span class="link">Regression tests</span></h3> <p> This release has been extensively tested on a variety of different compilers and platforms. It is known to contain no regressions against the previous reference release on the compilers and configurations tested. Please refer to the corresponding <a href="http://www.meta-comm.com/engineering/boost-regression/1_32_0/index.html">regression reports</a> to see how well your compiler performs on the new Boost codebase. </p> </div> <div id="version_1_32_0.acknowledgements"> <h3><span class="link">Acknowledgements</span></h3> <p> <img alt="[]" src="http://boost.sourceforge.net/photos/aleksey_gurtovoy2.jpg"/> <a href="/users/people/aleksey_gurtovoy.html">Aleksey Gurtovoy</a> managed this release. <a href="/doc/libs/1_32_0/more/release_procedures.htm">Managing a release</a> at all is an enormous job, and Aleksey always goes beyond merely meeting requirements by insisting on the highest possible quality. The Boost membership owes him a debt of gratitude. </p> <p> This release wouldn't have been possible without the dedicated effort of many, many members of the Boost community who generously contributed their outstanding expertise, time and energy to making it happen. For patches, bug fixes, troubleshooting, expert advice, and prompt responses to the release manager's requests we thank: </p> <p> David Abrahams, Misha Bergal, Jonathan Brandmeyer, Fernando Cacciola, Marshall Clow, Christopher Currie, Pavol Droba, Caleb Epstein, Eric Friedman, Jeff Garland, Michael Glassford, Doug Gregor, Joel de Guzman, Hubert Holin, Jaakko Jarvi, Hartmut Kaiser, Bronek Kozicki, Tarjei Knapstad, Toon Knapen, Aaron W. LaFramboise, Joaquin M Lopez Munoz, Christoph Ludwig, John Maddock, Paul Mensonides, Guillaume Melquiond, Thorsten Ottosen, Vladimir Prus, Robert Ramey, Rene Rivera, Gennadiy Rozental, Stefan Slapeta, Jonathan Turkanis, Pavel Vozenilek, Jonathan Wakely, Daryle Walker, Victor A. Wagner Jr. and Martin Wille. </p> <p> Also, our special thanks go to: John Maddock for the managing the effort of converting the majority of the Boost libraries to the <a href="/doc/libs/1_32_0/more/license_info.html">Boost Software License</a>, Eric Niebler and Joel de Guzman for taking on the important job of improving the Boost documentation's look and feel, and last, but not least, to our regression test runners, without whom we simply would never have released: Toon Knapen, Bronek Kozicki, Rene Rivera, Markus Schopflin, Stefan Slapeta, Victor A. Wagner Jr. and Martin Wille. </p> <p> Thank you everybody! </p> </div> </div>Version 1.31.0Mon, 26 Jan 2004 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: enable_if, Variant. Updated Libraries: Date Time, Filesystem, Iterator, MultiArray, Python, Random Number, Regex, Spirit, Test. Deprecated Libraries: Compose. </span></span>http://sourceforge.net/projects/boost/files/boost/1.31.0/<div class="description"> <div id="version_1_31_0.new_license"> <h3><span class="link">New License</span></h3> <p> A unified <a href="/doc/libs/1_31_0/more/license_info.html">Boost Software License</a> has been developed and will gradually replace the individual licenses for most Boost libraries. The new license offers better legal protection for both users and developers, and should speed user's legal reviews of Boost libraries. Dave Abrahams led the Boost effort to develop better licensing. The legal team was led by <a href="http://cyber.law.harvard.edu/people/cabell/index.html">Diane Cabell</a>, Director, Clinical Programs, <a href="http://cyber.law.harvard.edu">Berkman Center for Internet &amp; Society</a>, Harvard Law School. <a href="http://www.nixonpeabody.com/attorneys_detail1.asp?ID=121">Devin Smith</a>, attorney, <a href="http://www.nixonpeabody.com/default.asp">Nixon Peabody LLP</a>, wrote the Boost License. Eva Chan, Harvard Law School, contributed analysis of issues and drafts of various legal documents. </p> <p> Note: Many of the Boost libraries are still using earlier licenses, though all conform to the <a href="/doc/libs/1_31_0/more/lib_guide.htm#license">Boost License Requirements</a>. After this release we will begin an effort to move toward uniform use of the new license. </p> </div> <div id="version_1_31_0.build_and_installation"> <h3><span class="link">Build and Installation</span></h3> <ul> <li> New <a href="/doc/libs/1_31_0/more/getting_started.html">Getting Started</a> procedures ease download and installation, from Rene Rivera and others. </li> <li> Improved support for libraries requiring <a href="/doc/libs/1_31_0/more/separate_compilation.html">separate compilation</a>, from John Maddock and others. </li> </ul> </div> <div id="version_1_31_0.new_libraries"> <h3><span class="link">New Libraries</span></h3> <ul> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/utility/enable_if.html">enable_if</a>:</span> Selective inclusion of function template overloads, from Jaakko Jarvi, Jeremiah Willcock, and Andrew Lumsdaine. This is an important new technique which exploits the SFINAE (substitution-failure-is-not-an-error) principle. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/variant/index.html">Variant Library</a>:</span> Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman. </li> </ul> </div> <div id="version_1_31_0.updated_libraries"> <h3><span class="link">Updated Libraries</span></h3> <ul> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/compose/index.htm">Compose</a>:</span> This library has been deprecated and will be removed in a future release. Use <a href="/doc/libs/1_31_0/libs/bind/bind.html">Bind</a> or <a href="/doc/libs/1_31_0/libs/lambda/doc/index.html">Lambda</a> instead. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/date_time/doc/index.html">Date Time Library</a>:</span> A whole host of bug fixes, new features, and documentation improvements. See the Date Time Change History for details. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/filesystem/doc/index.htm">Filesystem Library</a>:</span> Several added functions, including improved checking for directory and file name portability. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/iterator/doc/index.html">Iterator Library</a>:</span> Major version upgrade, with interface as proposed for the C++ library TR, including an improved <tt>iterator_adaptor</tt> design plus several new components, from David Abrahams, Jeremy Siek, and Thomas Witt. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/multi_array/index.html">MultiArray</a>:</span> The <tt>multi_array</tt> class template now provides an element-preserving resize operation as well as default construction (see the <a href="/doc/libs/1_31_0/libs/multi_array/doc/reference.html">reference manual</a> for more information). </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/python/index.html">Python Library</a>:</span> <ul> <li> Support for Python 2.3 and Intel C++ on Linux </li> <li> Container <a href="/doc/libs/1_31_0/libs/python/doc/v2/indexing.html">Indexing Suite</a> added. </li> <li> injected constructors and wrapped function objects. </li> <li> wrapping static data members. </li> <li> <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code> conversions. </li> <li> Improved <a href="/doc/libs/1_31_0/libs/python/doc/v2/args.html">keyword arguments</a>. </li> <li> Better error messages, including name demangling for GCC. </li> <li> Simpler <a href="/doc/libs/1_31_0/libs/python/doc/building.html">build procedure</a>. </li> <li> <em>...and more....</em> </li> </ul> </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/random/index.html">Random Number Library</a>:</span> Interface changed to match the C++ <a href="/doc/libs/1_31_0/libs/random/wg21-proposal.html">TR proposal</a>, from Jens Maurer. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/regex/doc/index.html">Regex</a>:</span> Completely new matching algorithm is now much faster than before, plus a selection of <a href="/doc/libs/1_31_0/libs/regex/doc/history.html">new features and enhancements</a>. </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/spirit/index.html">Boost.Spirit 1.8.0</a>:</span> <ul> <li>Multiple grammar start rules</li> <li>Multiple Scanner rules (no more scanner business woes)</li> <li>More dynamic parsers</li> <li>Predefined actors</li> <li>Numerous bug fixes and QOI stuff</li> <li><em>and more...</em></li> </ul> <p> Starting from Spirit v1.8.0, ill conforming compilers will no longer be supported. If you are still using one of these older compilers, please use Spirit v1.6.x. See [@http://spirit.sf.net Spirit's Site] for more details. </p> </li> <li> <span class="library"><a href="/doc/libs/1_31_0/libs/test/index.html">Test Library</a>:</span> <ul> <li>Free function template based test case</li> <li>Custom exception translators support in execution monitor and register_exception_translator added for unit test framework</li> <li>Added support for multi-module unit tests in automatic registration facility</li> <li>Floating point comparison algorithm reworked (Is not backward compatible!!!)</li> <li>Added support for custom users predicate returning both boolean result code and possibly error message</li> <li>Documentation structure rework and update</li> </ul> <p> For a complete list of changes see the Test Library <a href="/doc/libs/1_31_0/libs/test/doc/release_notes.html#v1_31_0">release notes</a>. </p> </li> </ul> </div> <div id="version_1_31_0.miscellaneous"> <h3><span class="link">Miscellaneous</span></h3> <ul> <li> Expanded testing and fixes for non-conforming compilers. </li> <li> Web site hosting now provided by <a href="http://www.sourceforge.net/">SourceForge</a>. </li> </ul> </div> </div>Version 1.30.2Tue, 19 Aug 2003 12:00:00 GMT<span class="brief"><span class="purpose"> Bugfix release </span></span>http://sourceforge.net/projects/boost/files/boost/1.30.2/<div class="description"> <ul> <li> <a href="http://www.boost-consulting.com">Boost Consulting</a> is now hosting Boost CVS mirrors - see our <a href="/more/getting_started.html#CVS">download page</a>. </li> <li> Backported changes to the <a href="/libs/config/config.htm">config system</a>, to better handle new compiler releases. </li> <li> Bugs in regression reporting in subproject tests were fixed. </li> <li> Tests are now run in the context of the user's PATH environment settings </li> <li> msvc-stlport and intel-win32-stlport toolsets now build static libraries with multithreading enabled, to be compatible with the STLPort builds. </li> <li> intel-win32 toolset now handles <code><span class="keyword">wchar_t</span></code> correctly when intel is installed over msvc6. </li> <li> Backported fixes from the main trunk which prevent errors building the <a href="/libs/test/doc/index.html">Boost.Test</a> library in its default configuration. </li> <li> Backported portability improvements for <a href="/libs/utility/checked_delete.html">checked_delete</a>. </li> <li> Locale support for metrowerks (requiring a statically-linked runtime) is more uniformly handled. </li> <li> Backported <a href="/libs/conversion/lexical_cast.htm">conversion/lexical_cast</a>'s <code><span class="keyword">wchar_t</span></code> fixes from the main trunk. </li> <li> intel-linux-tools: added <tt>rt</tt> to FINDLIBS in order to make the <code><span class="identifier">clock_gettime</span><span class="special">()</span></code> function available (backport of a patch in CVS HEAD). </li> <li> <a href="/tools/regression/index.htm">regression/compiler_status.cpp</a>: backported fixes in error log links generation. </li> </ul> </div>Version 1.30.1Mon, 4 Aug 2003 12:00:00 GMT<span class="brief"><span class="purpose"> Withdrawn bug fix release, fixes for Lambda, Spirit, MPL, Function, Config, Format, Regex, Smart Pointers, Python </span></span><div class="description"> <p> This release was withdrawn on the 12 Aug 2003. </p> <p> Fixes were made to the following libraries: * The <a href="/libs/lambda/doc/index.html">Boost.Lambda</a> ..library is now usable with gcc-2.95.2 * <span class="library"><a href="/libs/spirit/index.html">Boost.Spirit</a>:</span> * Fixed. Using MSVC++6 (SP5), calling the assign action with a string value on parsers using the file_iterator will not work. * Fixed: using assign semantic action in a grammar with a multi_pass iterator adaptor applied to an std::istream_iterator resulted in a failure to compile under msvc 7.0. * Fixed: There is a bug in the <tt>range_run&lt;CharT&gt;::set(range&lt;CharT&gt; const&amp; r)</tt> function in &quot;../boost/spirit/utility/impl/chset/range_run.ipp&quot;. * Fixed: handling of trailing whitespace bug (ast_parse/pt_parse related) * Fixed: comment_p and end of data bug * Fixed: Most trailing space bug * Fixed: <code><span class="identifier">chset</span><span class="special">&lt;&gt;::</span><span class="keyword">operator</span> <span class="special">~(</span><span class="identifier">range</span><span class="special">&lt;&gt;)</span></code> bug, <code><span class="keyword">operator</span> <span class="special">&amp;(</span><span class="identifier">chset</span><span class="special">&lt;&gt;,</span> <span class="identifier">range</span><span class="special">&lt;&gt;)</span></code> bug, <code><span class="keyword">operator</span> <span class="special">&amp;(</span><span class="identifier">range</span><span class="special">&lt;&gt;,</span> <span class="identifier">chset</span><span class="special">&lt;&gt;)</span></code> bug * Fixed: <code><span class="identifier">impl</span><span class="special">::</span><span class="identifier">detach_clear</span></code> bug * Fixed: mismatch closure return type bug * Fixed: <code><span class="identifier">access_node_d</span><span class="special">[]</span></code> and <code><span class="identifier">access_match_d</span><span class="special">[]</span></code> iterator bugs * Fixed a bug regarding thread safety of Phoenix/Spirit closures. * The Boost Template <a href="/libs/mpl/doc/index.html">Metaprogramming Library (MPL)</a>'s ..typeof implementation is now compatible with Metrowerks CodeWarrior Pro8. * <span class="library"><a href="/libs/function/index.html">Boost.Function</a>:</span> workaround for the new Borland patch (version 0x564) and MSVC++ .NET 2003. * <span class="library"><a href="/libs/config/index.html">Boost.Config</a></span>, <a href="/libs/format/doc/format.html">Boost.Format</a>, and <a href="/libs/regex/index.html">Boost.Regex</a> ..have been adjusted to avoid warnings with GCC-3.3, and Boost.Format also now works with string types other than <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>. * <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointers</a>:</span> * <code><span class="identifier">checked_delete</span></code> now works on more platforms * Compatibility with the SunPro compiler * Added missing <code><span class="preprocessor">#include</span></code>s. * <span class="library"><a href="/libs/python/index.html">Boost.Python</a>:</span> * warning suppression for finicky compilers * fixed a crashing bug in the <code><span class="identifier">raw_function</span></code> facility when no keyword arguments were passed. * Improved conversion of NULL <code><span class="identifier">shared_ptr</span></code>s to Python. </p> </div>Version 1.30.0Wed, 19 Mar 2003 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Filesystem, Optional, Interval, MPL, Spirit Updated Libraries: Smart Pointers, Utility, Date-Time, Function, Operators, Test </span></span>http://sourceforge.net/projects/boost/files/boost/1.30.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/filesystem/doc/index.htm">Filesystem Library</a></span> added - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes. </li> <li> <span class="library"><a href="/libs/optional/doc/optional.html">Optional Library</a></span> added - A discriminated-union wrapper for optional values, from Fernando Cacciola. </li> <li> <span class="library"><a href="/libs/numeric/interval/doc/interval.htm">Interval Library</a></span> added - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Herve Bronnimann and Sylvain Pion. </li> <li> <span class="library"><a href="/libs/mpl/doc/index.html">MPL</a></span> added - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy. </li> <li> <span class="library"><a href="/libs/spirit/index.html">Spirit Library</a></span> added - An LL (unlimited lookahead) parser framework that represents parsers directly as EBNF grammars in inlined C++ source code, complete with semantic actions, ASTs and much more, from Joel de Guzman and team. </li> <li> <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointers Library</a></span> - cast functions are now spelled <a href="/libs/smart_ptr/shared_ptr.htm#static_pointer_cast">static_pointer_cast</a> / <a href="/libs/smart_ptr/shared_ptr.htm#dynamic_pointer_cast">dynamic_pointer_cast</a>; <a href="/libs/smart_ptr/enable_shared_from_this.html">enable_shared_from_this</a> added; shared_ptr::shared_ptr(), shared_ptr::reset(), weak_ptr::weak_ptr(), weak_ptr::reset() no longer throw; <a href="/libs/smart_ptr/shared_ptr.htm#get_deleter">get_deleter</a> added; weak_ptr::get() removed; make_shared is now spelled <a href="/libs/smart_ptr/weak_ptr.htm#lock">weak_ptr::lock()</a> ; <a href="/libs/smart_ptr/intrusive_ptr.html">intrusive_ptr documentation</a> added; some experimental undocumented shared_ptr features have been removed; a <a href="/libs/smart_ptr/sp_techniques.html">page describing some smart pointer programming techniques</a> has been added. </li> <li> <a href="/libs/utility/assert.html">boost/assert.hpp</a>, <a href="/libs/utility/current_function.html">boost/current_function.hpp</a>, <a href="/libs/utility/throw_exception.html">boost/throw_exception.hpp</a>, <a href="/libs/utility/checked_delete.html">boost/checked_delete.hpp</a> have been documented. </li> <li> <span class="library"><a href="/libs/date_time/doc/index.html">Date-Time Library</a></span> - several fixes and small additions including an interface change to partial_date. See the Date-Time Change History for more details. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a></span> - added support for assignment to zero (to clear) and comparison against zero (to check if empty). </li> <li> <span class="library"><a href="/libs/utility/operators.htm#symmetry">Operators Library</a></span> - now takes advantage of named return value optimization (NRVO) when available, from Daniel Frey. </li> <li> <a href="/status/compiler_status.html">Regression Tests</a> - Much expanded, plus a very nice <a href="http://boost.sourceforge.net/regression-logs/">summary page</a> from Rene Rivera. </li> <li> <span class="library"><a href="/libs/test/index.html">Test Library</a></span> - introduced following new facilities: <ul> <li> Automatic registration of unit tests </li> <li> XML log format </li> <li> XML report format </li> <li> BOOST_CHECK_NO_THROW test tool </li> <li> BOOST_BITWISE_CHECK test tool </li> </ul> <p> For a complete list of changes see the Test Library <a href="/libs/test/doc/release_notes.html#v1_30_0">release notes</a>. </p> </li> <li> Many fixes and enhancements to other libraries. </li> </ul> </div>Version 1.29.0Thu, 10 Oct 2002 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Date-Time, Dynamic Bitset, Format. Updated Libraries: Function, Multi-Array, Preprocessor, Python, Signals, uBLASH. </span></span>http://sourceforge.net/projects/boost/files/boost/1.29.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/date_time/doc/index.html">Date-Time Library</a></span> added - Dates, times, leap seconds, infinity, and more, from Jeff Garland. </li> <li> <span class="library"><a href="/libs/dynamic_bitset/dynamic_bitset.html">Dynamic Bitset</a></span> added - A runtime sized version of the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bitset</span></code> class from Jeremy Siek and Chuck Allison. </li> <li> <span class="library"><a href="/libs/format/index.html">Format Library</a></span> added - Type-safe 'printf-like' format operations, from Samuel Krempp. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a>:</span> Major syntactic changes have been made. Some old syntax and little-used features have been deprecated (and will be removed shortly), and the syntax for the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code> class template has been greatly improved on conforming compilers. Please see the compatibility note for more information. </li> <li> <span class="library"><a href="/libs/multi_array/doc/index.html">Multi-array Library</a></span> added - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia. </li> <li> <span class="library"><a href="/libs/preprocessor/index.html">Preprocessor Library</a>:</span> Major upgrade, from Paul Mensonides. </li> <li> <span class="library"><a href="/libs/python/doc/index.html">Python Library</a></span> - Version 2 is released, from Dave Abrahams and others. This is a major rewrite which works on many more compilers and platforms, with a completely new interface and lots of new features. Boost.Python v2 requires Python 2.2 or later. </li> <li> <span class="library"><a href="/libs/signals/doc/index.html">Signals Library</a></span> added - Managed signals &amp; slots callback implementation, from Doug Gregor. </li> <li> <span class="library"><a href="/libs/test/doc/index.html">Test Library</a>:</span> Major new version, including full unit test capabilities, from Gennadiy Rozental. </li> <li> <span class="library"><a href="/libs/numeric/ublas/doc/index.htm">uBLAS Library</a></span> added - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch. </li> </ul> </div>Version 1.28.0Wed, 15 May 2002 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Lambda, I/O State Saver. Updated Libraries: Configuration, Random Number, Smart Pointers, Function Utility. </span></span>http://sourceforge.net/projects/boost/files/boost/1.28.0/<div class="description"> <ul> <li> The Boost mailing lists are now also accessible as <a href="/more/mailing_lists.htm#newsgroup">newsgroups</a>. </li> <li> A powerful <a href="http://aspn.activestate.com/ASPN/Mail/Archives/boost/">mailing list archive</a> has been contributed by the <a href="http://aspn.activestate.com/ASPN">ActiveState Programmer Network</a>. </li> <li> <span class="library"><a href="/libs/lambda/doc/index.html">Lambda Library</a></span> added, from Jaakko Jarvi and Gary Powell. Define small unnamed function objects at the actual call site: for_each( a.begin(), a.end(), std::cout &lt;&lt; _1 &lt;&lt; ' ' ); </li> <li> <span class="library"><a href="/libs/io/doc/ios_state.html">I/O State Saver Library added</a></span> - Save I/O state to prevent jumbled data, from Daryle Walker. </li> <li> <span class="library"><a href="/libs/config/config.htm">Configuration Library</a>:</span> User code should not use BOOST_NO_LIMITS. </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> Avoid compiler warnings. </li> <li> <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointers Library</a>:</span> Added shared_polymorphic_cast and shared_polymorphic_downcast. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a>:</span> Now supports function objects with the unary <code><span class="special">&amp;</span></code> operator overloaded. </li> <li> <span class="library"><a href="/libs/utility/utility.htm">Utility Library</a>:</span> Added <code><span class="identifier">addressof</span><span class="special">()</span></code> function. </li> <li> The usual small fixes and tweaks. </li> </ul> </div>Version 1.27.0Tue, 5 Feb 2002 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Python, Integer, Function, Quaternions, Octonions, Smart Pointers, Preprocessor, Threads. </span></span>http://sourceforge.net/projects/boost/files/boost/1.27.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/python/doc/index.html">Python Library</a>:</span> Scott Snyder contributed inplace operator support. </li> <li> <span class="library"><a href="/libs/integer/index.html">Integer Library</a>:</span> Daryle Walker contributed enhancements to the <a href="/libs/integer/integer.htm">type selection templates</a>, and added new compile-time <a href="/libs/integer/doc/integer_mask.html">bit mask</a>, <a href="/libs/integer/doc/static_log2.html">binary logarithm</a>, and <a href="/libs/integer/doc/static_min_max.html">extrema</a> templates. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a>:</span> user may request that <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code> objects store a reference to a function object target instead of a copy, using <a href="/libs/bind/ref.html"><code><span class="identifier">ref</span></code></a>. Stateless objects are optimized so that they require no dynamic storage. </li> <li> <span class="library"><a href="/doc/html/boost_math/quaternions.html">Quaternions</a>:</span> added support for GCC 2.95.x. </li> <li> <span class="library"><a href="/doc/html/boost_math/octonions.html">Octonions</a>:</span> added support for GCC 2.95.x. </li> <li> <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointers Library</a>:</span> Peter Dimov contributed a new implementation that fixes some bugs and adds some features including <a href="/libs/smart_ptr/compatibility.htm#threadsafe">thread safety</a> when manipulating the use count, <a href="/libs/smart_ptr/shared_ptr.htm#constructors">custom delete functions</a>, a new <a href="/libs/smart_ptr/weak_ptr.htm">weak_ptr</a>, and shared_static_cast and shared_dynamic_cast. </li> <li> <span class="library"><a href="/libs/preprocessor/doc/index.html">Preprocessor Library</a>:</span> changed macro prefix from BOOST_PREPROCESSOR to BOOST_PP, added support for list data structure manipulation, added examples, made library ANSI C friendly, added generalized <a href="/libs/preprocessor/doc/ref/for.html">repetition</a> and <a href="/libs/preprocessor/doc/ref/while.html">iteration</a> primitives, improved reference manual. </li> <li> <span class="library"><a href="/libs/thread/doc/index.html">Threads Library</a>:</span> Mac Carbon implementation contributed by Mac Murrett. </li> <li> Minor fixes to many libraries. </li> </ul> </div>Version 1.26.0Fri, 30 Nov 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Common Factor, Preprocessor. Updated Libraries: Iterator Adaptor, Random Number, Operators. </span></span>http://sourceforge.net/projects/boost/files/boost/1.26.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/math/doc/common_factor.html">Common Factor Library</a></span> added. Greatest common divisor and least common multiple, from Daryle Walker. </li> <li> <span class="library"><a href="/libs/preprocessor/doc/index.html">Preprocessor Library</a></span> added. Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen. </li> <li> <span class="library"><a href="/libs/utility/iterator_adaptors.htm">Iterator Adaptor Library</a>:</span> Added <a href="/libs/utility/generator_iterator.htm">generator iterator</a> adaptor, from Jens Maurer. </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> Removed iterator interface. Fixed overflows in uniform_int&lt;&gt;. Both changes cause random number sequences to differ compared to previous boost releases. </li> <li> [phase library..<a href="/libs/utility/operators.htm">operators.hpp</a>:] Improvements from Daryle and Helmut Ziesel </li> <li> <span class="library"><a href="/tools/build/index.html">Boost.Build</a>:</span> Continuing improvements, including pre-built <a href="/tools/build/index.html">Boost.Jam executables</a>. </li> <li> Minor fixes to a number of other libraries. </li> </ul> </div>Version 1.25.1Mon, 5 Nov 2001 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Graph, Thread, Function. </span></span>http://sourceforge.net/projects/boost/files/boost/1.25.1/<div class="description"> <ul> <li> <span class="library"><a href="/tools/build/index.html">Boost Build System</a>:</span> Continued improvements. </li> <li> <span class="library"><a href="/libs/config/config.htm">Config Library</a>:</span> Continued refinements. </li> <li> <span class="library"><a href="/libs/graph/doc/index.html">Graph Library</a>:</span> Final cleanup for upcoming the Boost Graph Library book. </li> <li> <span class="library"><a href="/libs/thread/doc/index.html">Thread Library</a>:</span> Minor fixes - tests now pass on most Win32 and POSIX systems including Linux and Solaris. Semaphore removed as too error prone. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a>:</span> direct support for member function pointers and documentation updates. </li> <li> <a href="http://groups.yahoo.com/group/Boost-Users">Boost-Users</a> mailing list has been created to address topics of interest to users of Boost libraries. </li> <li> <a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl">Boost Wiki web</a> added. Provides a place for Boost users to openly discuss and document the use of Boost libraries. It is not officially maintained by Boost developers. </li> </ul> </div>Version 1.25.0Mon, 1 Oct 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Thread, Bind. Updated Libraries: Utility, Array, Config, Random Number, Math, Tokenizer. </span></span>http://sourceforge.net/projects/boost/files/boost/1.25.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/thread/doc/index.html">Thread Library</a></span> added. Portable C++ multi-programming at last, from William Kempf. </li> <li> <a href="/libs/utility/base_from_member.html">Base From Member</a> added to <a href="/libs/utility/utility.htm">Utility Library</a>. Support for the base from member idiom, from Daryle Walker. </li> <li> <a href="/libs/bind/bind.html">Bind</a> and <a href="/libs/bind/mem_fn.html">mem_fn</a> added - Generalized binders for function/object/pointers and member functions, from Peter Dimov. </li> <li> <span class="library"><a href="/libs/array/index.html">Array Library</a>:</span> Minor updates, from Nico Josuttis. </li> <li> <span class="library"><a href="/libs/config/config.htm">Config Library</a>:</span> major redesign with much improved and automated configuration of Boost libraries for specific compilers, from John Maddock. </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> Fixed bug when copying normal_distribution and improved the documentation, from Michael Stevens and Jens Maurer. </li> <li> <a href="/doc/html/boost_math/math_special_functions.html">Special functions</a>, <a href="/doc/html/boost_math/octonions.html">octonions</a>, <a href="/doc/html/boost_math/quaternions.html">quaternions</a> updated, now useable with many more compilers, plus three new special functions, from Hubert Holin, Eric Ford, and others. </li> <li> <span class="library"><a href="/libs/tokenizer/index.html">Tokenizer Library</a>:</span> fixes/enhancements to escaped_list_separator based on empty fields and tokens comments from Johan Nillson and Jens Maurer. </li> <li> Coming Soon - A mailing list for Boost users! </li> </ul> </div>Version 1.24.0Sun, 19 Aug 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Library: Tuple. </span></span>http://sourceforge.net/projects/boost/files/boost/1.24.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/tuple/doc/tuple_users_guide.html">Tuple Library</a></span> added. Tuples ease definition of functions returning multiple values, and more, from Jaakko Jarvi. </li> <li> Minor fixes to some other libraries. </li> <li> <span class="library"><a href="/tools/build/index.html">Boost Build System</a></span> added. Preliminary release of an innovative build system for Boost libraries, from Dave Abrahams and others. </li> <li> <a href="/more/formal_review_schedule.html">Formal Review Schedule</a> added. Shows current, future, and recent past review dates. </li> </ul> </div>Version 1.23.0Fri, 6 Jul 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Any, Function, Tokenizer, Special functions, Octonions, Quaternions. Updated Library: Smart Pointer. </span></span>http://sourceforge.net/projects/boost/files/boost/1.23.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/any/index.html">Any Library</a></span> added. Safe, generic container for single values of different value types, from Kevlin Henney. </li> <li> <span class="library"><a href="/libs/function/index.html">Function Library</a></span> added. Function object wrappers for deferred calls or callbacks, from Doug Gregor. </li> <li> <span class="library"><a href="/libs/tokenizer/index.html">Tokenizer Library</a></span> added. Break a string into a series of tokens, from John Bandela. </li> <li> <a href="/doc/html/boost_math/math_special_functions.html">Special functions</a>, <a href="/doc/html/boost_math/octonions.html">octonions</a>, <a href="/doc/html/boost_math/quaternions.html">quaternions</a> added, from Hubert Holin. </li> <li> <span class="library"><a href="/libs/smart_ptr/smart_ptr.htm">Smart Pointer Library</a>:</span> shared_ptr polymorphic pointers now work on more broken compilers. </li> <li> IBM/Aix Compiler status table contributed by Toon Knapen. </li> <li> Minor fixes to a number of other libraries. </li> </ul> </div>Version 1.22.0Fri, 25 May 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libary: CRC. Updated Libraries: Graph, Integer, Regex, Smart Pointer, Utility. </span></span>http://sourceforge.net/projects/boost/files/boost/1.22.0/<div class="description"> <ul> <li> <span class="library"><a href="/libs/crc/index.html">CRC Library</a></span> added. Compute cyclic redundancy codes from Daryle Walker. </li> <li> <span class="library"><a href="/libs/graph/doc/index.html">Graph Library</a>:</span> Minor fixes. </li> <li> <span class="library"><a href="/libs/integer/integer_traits.html">Integer Traits</a>:</span> added wchar_t specialization, minor portability fixes. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regex Library</a>:</span> Minor portability fixes. </li> <li> <span class="library"><a href="/libs/smart_ptr/smart_ptr.htm">Smart Pointer Library</a>:</span> fixed bugs, tightened requirements, added examples. </li> <li> <span class="library"><a href="/libs/utility/utility.htm">Utility Library</a>:</span> added checked_delete() and checked_array_delete() functions. </li> </ul> </div>Version 1.21.2Tue, 24 Apr 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Compatibility. Updated Libraries: Random Number, Integer, Graph. </span></span>http://sourceforge.net/projects/boost/files/boost/1.21.2/<div class="description"> <ul> <li> <span class="library"><a href="/libs/compatibility/index.html">Compatibility Library</a></span> added: Help for non-conforming standard libraries missing CXX headers from Ralf Grosse-Kunstleve, and help for missing standard library &lt;limits&gt; header from Jens Maurer. (These are unreviewed implementation libraries, treated as maintenance steps only.) </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> Split into separate headers, updated documentation, added lagged_fibonacci generator. </li> <li> <span class="library"><a href="/libs/integer/index.html">Integer Library</a>:</span> Minor portability update. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a>:</span> Changed algorithm interfaces to use named parameters technique. Added graph isomorphism algorithm. </li> <li> Download refinements - files now available from either FTP or web server. </li> <li> <a href="http://sourceforge.net/tracker/?group_id=7586">Tracker</a> Added: View and submit bug, support, and feature requests. </li> <li> Minor portability fixes in several other libraries. </li> </ul> </div>Version 1.21.1Wed, 14 Mar 2001 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Graph, Python, Regex. </span></span>http://sourceforge.net/projects/boost/files/boost/1.21.1/<div class="description"> <ul> <li> New download page. The .zip and .tar.gz files now live on the SourceForge ftp site. </li> <li> <span class="library"><a href="/libs/graph/doc/index.html">Graph Library</a>:</span> Minor docs fixes. </li> <li> <span class="library"><a href="/libs/python/doc/index.html">Python Library</a>:</span> Minor docs fixes. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regex Library</a>:</span> Minor portability fixes. </li> </ul> </div>Version 1.21.0Fri, 9 Mar 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Iterator Adaptor, Pool, Test. Updated Libraries: Graph, Python, Regular Expression, Type Traits. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/utility/iterator_adaptors.htm">Iterator Adaptor Library</a></span> added. Adapt a base type into a standard conforming iterator, and more, from Dave Abrahams, Jeremy Siek, and John Potter. </li> <li> <span class="library"><a href="/libs/pool/doc/index.html">Pool Library</a></span> added. Memory pool management from Steve Cleary. </li> <li> <span class="library"><a href="/libs/test/doc/index.html">Test Library</a></span> added. Support for program testing and execution from Beman Dawes. </li> <li> <a href="/more/generic_programming.html">Generic Programming Techniques</a> page added, contributed by Dave Abrahams. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a>:</span> Updated use of iterator adaptors. Changed <code><span class="keyword">operator</span> <span class="special">==</span></code> for <code><span class="identifier">adjacency_list</span><span class="special">::</span><span class="identifier">edge_descriptor</span></code> to improve semantics for multigraphs. Moved <code><span class="identifier">adjacency_iterator_generator</span></code> from namespace <code><span class="identifier">detail</span></code> to <code><span class="identifier">boost</span></code> and added <a href="/libs/graph/doc/adjacency_iterator.html">documentation</a>. Renamed <code><span class="identifier">dynamic_components</span><span class="special">()</span></code> to <a href="/libs/graph/doc/incremental_components.html"><code><span class="identifier">incremental_components</span><span class="special">()</span></code></a>, better matching graph literature terminology. Cleaned up interface of <a href="/libs/graph/doc/connected_components.html"><code><span class="identifier">connected_components</span><span class="special">()</span></code></a> and created separate <a href="/libs/graph/doc/strong_components.html"><code><span class="identifier">strong_components</span><span class="special">()</span></code></a> function using Tarjan's more efficient algorithm. Fixed documentation figures for <a href="/libs/graph/doc/adjacency_list.html"><code><span class="identifier">adjacency_list</span></code></a> and <a href="/libs/graph/doc/adjacency_matrix.html"><code><span class="identifier">adjacency_matrix</span></code></a>. Added docs for <a href="/libs/graph/doc/cuthill_mckee_ordering.html"><code><span class="identifier">cuthill_mckee_ordering</span><span class="special">()</span></code></a> algorithm. </li> <li> <span class="library"><a href="/libs/python/doc/index.html">Python Library</a></span> upgraded. Better compatibility with Python 2.0, NULL pointers and smart-pointers get converted to/from python None, massive documentation review/revision. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a>:</span> Minor fixes for Unicode platforms. </li> <li> <span class="library"><a href="/libs/type_traits/index.html">Type Traits Library</a></span> upgraded: Major revision. </li> </ul> </div>Version 1.20.2Sat, 10 Feb 2001 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Array traits, Graph, Integer, Random Number, Rational Number, Regular Expression, Smart Pointer, Timer. </span></span>http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=138112<div class="description"> <ul> <li> Array traits: minor portability fix. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> - Changes to <a href="/libs/graph/doc/breadth_first_search.html"><code><span class="identifier">breadth_first_search</span><span class="special">()</span></code></a> re: <a href="/libs/graph/doc/BFSVisitor.html">BFSVisitor</a>, added max flow algorithms <a href="/libs/graph/doc/edmunds_karp_max_flow.html"><code><span class="identifier">edmunds_karp_max_flow</span><span class="special">()</span></code></a> and <a href="/libs/graph/doc/push_relabel_max_flow.html"><code><span class="identifier">push_relabel_max_flow</span><span class="special">()</span></code></a>, added <a href="/libs/graph/doc/adjacency_matrix.html"><code><span class="identifier">adjacency_matrix</span></code></a> graph class, added <a href="/libs/graph/doc/filtered_graph.html"><code><span class="identifier">filtered_graph</span></code></a> adaptor </li> <li> <span class="library"><a href="/libs/integer/index.html">Integer Library</a>:</span> minor fixes to integer.hpp and integer_test.cpp </li> <li> <a href="microsoft_vcpp.html">Portability Hints: Microsoft Visual C++</a> added. </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> Minor portability fixes </li> <li> <span class="library"><a href="/libs/rational/index.html">Rational Number Library</a>:</span> documentation updates, efficiency improvements, co-operates with user-defined types, regression tests </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a>:</span> minor updates. </li> <li> <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointer Library</a>:</span> shared_ptr example added. </li> <li> <span class="library"><a href="/libs/timer/index.html">Timer Library</a>:</span> changed to an all inline implementation. </li> </ul> </div>Version 1.20.1Wed, 10 Jan 2001 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Compressed Pair, Graph Library, Regular Expression. </span></span><div class="description"> <ul> <li> <a href="/boost/compressed_pair.hpp">compressed_pair.hpp</a> minor update fixes test failures of other libraries under VC++. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> minor updates. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> minor updates. </li> <li> Minor website fixes including missing files in boost_all.zip. </li> </ul> </div>Version 1.20.0Sat, 6 Jan 2001 12:00:00 GMT<span class="brief"><span class="purpose"> New Library: Conversion. Updated Libraries: Array, Graph, Regular Expression. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/conversion/index.html">Conversion Library</a></span> added - <a href="/libs/conversion/cast.htm">cast</a> and <a href="/libs/conversion/lexical_cast.htm">lexical_cast</a> headers from Dave Abrahams and Kevlin Henney. </li> <li> Web site moved to a larger host after the old ISP collapsed unexpectedly. </li> <li> Regression tests now include execution testing. See <a href="/status/compiler_status.html">Compiler Status</a>. </li> <li> <a href="/more/discussion_policy.htm">Discussion Policy</a> page added. </li> <li> <span class="library"><a href="/libs/array/index.html">Array Library</a></span> minor documentation improvements. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> minor updates. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> minor updates. </li> </ul> </div>Version 1.19.0Sun, 10 Dec 2000 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Concept Check, Python, Static Assert, Property Map Concepts. Updated Libraries: Graph, Regular Expression. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/concept_check/concept_check.htm">Concept Check Library</a></span> added - tools for generic programming from Jeremy Siek. </li> <li> <span class="library"><a href="/libs/python/doc/index.html">Python Library</a></span> added - reflects C++ classes and functions into Python, from Dave Abrahams. </li> <li> <span class="library"><a href="/libs/static_assert/static_assert.htm">Static Assert Library</a></span> added - compile time assertions from John Maddock </li> <li> <span class="library"><a href="/libs/property_map/property_map.html">Property Map Concepts</a></span> added - interfaces which map key objects to value objects from Jeremy Siek. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> minor updates. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> minor updates. </li> <li> <a href="/more/lib_guide.htm">Library Requirements and Guidelines</a> - directory name policy added. </li> <li> <a href="/more/faq.htm">FAQ</a> updated. </li> </ul> </div>Version 1.18.3Sat, 18 Nov 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Graph, Regular Expression, Cast. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> minor fixes and additions. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> minor fixes. </li> <li> <a href="/boost/cast.hpp">cast.hpp</a> Borland compiler fixes. </li> <li> <a href="/boost/cstdint.hpp">cstdint.hpp</a> changed to no longer expose names to the global namespace. </li> <li> BeOS5/Intel compiler status contributed by John Maddock. </li> <li> <span class="library"><a href="/status/compiler_status.html">Compiler Status</a></span> added two additional test programs. </li> </ul> </div>Version 1.18.2Fri, 3 Nov 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Case, Graph, Regular Expression, Configuration. Utility library split into separate libraries. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/conversion/cast.htm">Cast Library</a></span> Fix numeric_cast&lt;&gt; bugs with floating types. </li> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> minor fixes. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> minor fixes. </li> <li> <span class="library"><a href="/libs/config/index.html">Configuration Header</a></span> more fixes for broken compilers. </li> <li> Boost Header Dependencies page added. </li> <li> Terminology change: Several headers previously lumped together as a &quot;utility&quot; library are now considered separate libraries. For historical reasons, their non-header files still live in the &quot;utility&quot; sub-directory. </li> </ul> </div>Version 1.18.1Sun, 15 Oct 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Graph, Random, Regular Expression, Configuration. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span>, <a href="/libs/random/index.html">Random Number Library</a>, and <a href="/libs/regex/index.html">Regular Expression Library</a>: Minor fixes. </li> <li> <span class="library"><a href="/libs/config/index.html">Configuration Header</a></span> additions for various compiler foibles. </li> <li> Portability Hints: Borland C++ 5.5.1 from Jens Maurer added. </li> <li> <span class="library"><a href="/status/compiler_status.html">Compiler Status</a></span> updated for latest versions of several compilers. </li> </ul> </div>Version 1.18.0Thu, 28 Sep 2000 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Graph, Regular Expression. Updated Libraries: Array, Functional, Utility, Integer. </span></span><div class="description"> <ul> <li> Preliminary release of two important new libraries: <ul> <li> <span class="library"><a href="/libs/graph/doc/table_of_contents.html">Graph Library</a></span> - Generic graph components and algorithms from Jeremy Siek and a University of Notre Dame team. </li> <li> <span class="library"><a href="/libs/regex/index.html">Regular Expression Library</a></span> - Text pattern matching in all its glory from John Maddock. </li> </ul> </li> <li> Other changes: <ul> <li> <span class="library"><a href="/libs/array/index.html">Array Library</a></span> improvements reflecting formal review comments. </li> <li> <a href="/boost/functional.hpp">functional.hpp</a> compiler workarounds added. </li> <li> <code><span class="identifier">tie</span><span class="special">()</span> <span class="identifier">function</span> <span class="keyword">template</span></code> added to utility.hpp for easier handling of std::pair&lt;&gt; return values. </li> <li> <span class="library"><a href="/libs/integer/index.html">Integer Library</a></span> improved handling of 64-bit integers. </li> <li> Minor web site page updates. </li> </ul> </li> </ul> </div>Version 1.17.0Thu, 3 Aug 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Added Library: Array. Updated Libraries: Array Traits, Random Number, Smart Pointer. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/array/index.html">Array Library</a></span> added - An STL compliant container wrapper for arrays of constant size from Nicolai Josuttis. </li> <li> array traits header renamed array_traits.hpp (was array.hpp). </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> more minor changes to support more compilers. </li> <li> <span class="library"><a href="/libs/smart_ptr/index.html">Smart Pointer Library</a>:</span> performance reducing exception-specifications removed. </li> <li> Compiler and test program fixes for call_traits, compressed_pair, and type_traits. </li> <li> Updated <a href="/boost/cast.hpp">cast.hpp</a> to clear compiler warning messages. </li> <li> Linux <a href="/status/compiler_status.html">Compiler Status</a> added. </li> <li> Boost source code now lives in a publicly accessible Concurrent Versions System (CVS) repository. </li> </ul> </div>Version 1.16.1Wed, 5 Jul 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Integer, Random Number, Cast, Call Traits, Operators. </span></span><div class="description"> <ul> <li> <span class="library"><a href="/libs/integer/index.html">Integer</a></span> library: fixed <a href="/boost/cstdint.hpp">cstdint.hpp</a> bug, added <a href="/libs/integer/cstdint_test.cpp">cstdint_test.cpp</a>, updated <a href="/libs/integer/cstdint.htm">docs</a>. </li> <li> <span class="library"><a href="/libs/random/index.html">Random Number Library</a>:</span> minor fixes to <a href="/boost/random.hpp">random.hpp</a> and <a href="/libs/random/random_test.cpp">random_test.cpp</a> to support more compilers. </li> <li> Updated <a href="/boost/cast.hpp">cast.hpp</a> with more Microsoft compiler workarounds. </li> <li> Updated <a href="/libs/utility/call_traits.htm">call_traits docs</a>, added <a href="/libs/utility/call_traits_test.cpp">call_traits_test.cpp</a>. </li> <li> Cleanup and bug fixes for <a href="/boost/operators.hpp">operators.hpp</a> and <a href="/libs/utility/operators_test.cpp">operators_test.cpp</a>. </li> </ul> </div>Version 1.16.0Wed, 28 Jun 2000 12:00:00 GMT<span class="brief"><span class="purpose"> New Libraries: Functional, iterator header, Updated Libraries: Random Number, Rational, Cast, Smart Pointer, Config. </span></span><div class="description"> <ul> <li> Added <a href="/libs/functional/index.html">Functional Library</a> - Enhanced function object adaptors from Mark Rodgers. </li> <li> Added missing <a href="/libs/random/index.html">Random Number Library</a> files. </li> <li> Updated <a href="/libs/utility/operators.htm">operators docs</a> and <a href="/boost/operators.hpp">operators.hpp</a>. </li> <li> New <a href="/boost/iterator.hpp">iterator.hpp</a> header. </li> <li> Minor <a href="/boost/rational.hpp">rational.hpp</a>, <a href="/libs/rational/rational_example.cpp">rational_example.cpp</a>, and <a href="/libs/integer/integer_traits_test.cpp">integer_traits_test.cpp</a> changes to support more compilers. </li> <li> Revised <a href="/boost/cast.hpp">cast.hpp</a>: removed implicit_cast, plus fixes for broken compilers. </li> <li> Minor <a href="/boost/smart_ptr.hpp">smart_ptr.hpp</a> workaround for some GCC builds. </li> <li> Several <a href="/boost/config.hpp">config.hpp</a> changes for Microsoft, Intel, and other compilers. </li> <li> Added <a href="/libs/config/index.html">Configuration Header</a> page and test program. </li> <li> Added Experimental <a href="/status/compiler_status.html">Compiler Status</a> page showing what library works with which compilers. </li> </ul> </div>Version 1.15.1Wed, 21 Jun 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Cast, Operators, Config. </span></span><div class="description"> <p> Fixes to <a href="/boost/cast.hpp">cast.hpp</a> and <a href="/libs/utility/operators.htm">operators</a> fix. Minor additions to <a href="/boost/config.hpp">config.hpp</a> for Microsoft compilers. The 1.15.0 operators changes seem to have introduced incompatibilities. We are working on fixing them, and have started to build a regression test to prevent similar future problems. </p> </div>Version 1.15.0Sat, 17 Jun 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Added Library: Random Number. Updated Libraries: Utility, Config, Cast. </span></span><div class="description"> <p> <a href="/libs/random/index.html">Random Number Library</a> from Jens Maurer added. Updated utility library <a href="/libs/utility/operators.htm">operators</a> eliminates code bloat. Minor additions to <a href="/boost/config.hpp">config.hpp</a> and <a href="/boost/cast.hpp">cast.hpp</a> for Microsoft compilers. </p> </div>Version 1.14.3Mon, 29 May 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Config, Type Traits. </span></span><div class="description"> <p> Minor additions to <a href="/boost/config.hpp">config.hpp</a> for Borland compilers. Minor fix to <code><span class="identifier">type_traits</span></code> example. Minor web site fixes. <a href="/more/formal_review_process.htm">Library Formal Review Process</a> page added. </p> </div>Version 1.14.2Tue, 9 May 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Documentation updates. </span></span><div class="description"> <p> No libraries updated. <a href="/more/lib_guide.htm">Library Requirements and Guidelines</a> expanded, <a href="/more/submission_process.htm">Library Submission Process</a> added. </p> </div>Version 1.14.1Fri, 17 Mar 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Rational, Smart Pointer, Call Traits, Compressed Pair, Type Traits. </span></span><div class="description"> <p> Minor fix to <a href="/boost/rational.hpp">rational.hpp</a>. Minor documentation changes to the <a href="/libs/smart_ptr/index.html">Smart Pointer</a> Library and <a href="/libs/utility/call_traits.htm">call_traits</a>, <a href="/libs/utility/compressed_pair.htm">compressed_pair</a>, and type_traits. Updated <a href="/more/lib_guide.htm">Library Guidelines</a> and <a href="/users/people.html">People</a> page. </p> </div>Version 1.14.0Sun, 5 Mar 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Integer. Experimental libraries moved to vault. </span></span><div class="description"> <p> <a href="/libs/integer/index.html">Integer Library</a> status upgraded after removing bin_bun.hpp. The &quot;Experimental&quot; library category has been removed; the boost files/vault now serves the purpose. Minor fix to <a href="/boost/smart_ptr.hpp">smart_ptr.hpp</a> line endings. </p> </div>Version 1.13.0Tue, 29 Feb 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Added Libraries: Utility, Type Traits, Call Traits, Compressed Pair. </span></span><div class="description"> <p> Adds <a href="/libs/utility/index.html">Utility Library</a> <a href="/libs/type_traits/index.html">type_traits</a>, <a href="/libs/utility/call_traits.htm">call_traits</a>, and <a href="/libs/utility/compressed_pair.htm">compressed_pair</a> headers from John Maddock, Steve Cleary and Howard Hinnant. </p> </div>Version 1.12.0Wed, 23 Feb 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Library: Integer. </span></span><div class="description"> <p> Adds a <a href="/libs/integer/integer_traits.html">integer_traits</a> header from Jens Maurer to the <a href="/libs/integer/index.html">Integer Library</a>. </p> </div>Version 1.11.2Mon, 21 Feb 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Smart Pointer. </span></span><div class="description"> <p> <a href="/libs/smart_ptr/smarttests.htm">Smart pointer timings</a> added (thanks to Gavin Collings). Minor fix to the <code><span class="identifier">min_rand</span></code> sample program. Minor fixes to <a href="/boost/config.hpp">config.hpp</a>. </p> </div>Version 1.11.1Wed, 2 Feb 2000 12:00:00 GMT<span class="brief"><span class="purpose"> Minor fix for cast.hpp. </span></span><div class="description"> <p> Minor fix to <a href="/boost/cast.hpp">cast.hpp</a> (thanks to Doncho Angelov). </p> </div>Version 1.11.0Tue, 1 Feb 2000 12:00:00 GMT<span class="brief"><span class="purpose"> New Library: Rational Number. Updated Libraries: Case, Config, Smart Pointer, Utility. </span></span><div class="description"> <p> Added <a href="/libs/rational/index.html">Rational Number Library</a>. Minor fixes to <a href="/boost/cast.hpp">cast.hpp</a>, <a href="/boost/config.hpp">config.hpp</a>, <a href="/boost/smart_ptr.hpp">smart_ptr.hpp</a>, <a href="/boost/utility.hpp">utility.hpp</a>, and to the <code><span class="identifier">min_rand</span></code> sample programs. Minor site cleanup (thanks to Paul Baxter). </p> </div>Version 1.10.4Fri, 31 Dec 1999 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Smart Pointer, Cast. </span></span><div class="description"> <p> Minor fixes to <a href="/boost/smart_ptr.hpp">smart_ptr.hpp</a> and <a href="/libs/conversion/cast.htm">cast documentation</a>. </p> </div>Version 1.10.3Thu, 30 Dec 1999 12:00:00 GMT<span class="brief"><span class="purpose"> Updated Libraries: Compse, Operators, Cast, Config, Smart Pointer First release with a version number. </span></span><div class="description"> <p> Minor fixes to the compose library examples, <a href="/libs/utility/operators.htm">operators documentation</a>, <a href="/boost/operators.hpp">operators.hpp</a>, <a href="/libs/conversion/cast.htm">cast documentation</a>, <a href="/boost/cast.hpp">cast.hpp</a>, <a href="/boost/config.hpp">config.hpp</a>, and <a href="/boost/smart_ptr.hpp">smart_ptr.hpp</a>. </p> <p> This is the first release with a version number. The version numbering scheme is xxx.yyy.zzz. </p> <ul> <li> xxx = Major version </li> <li> yyy = New library or feature added </li> <li> zzz = Bug fixes only </li> </ul> </div>Old VersionsTue, 14 Dec 1999 12:00:00 GMT<span class="brief"><span class="purpose"> Early releases of boost without version numbers. </span></span><div class="description"> <div id="old_versions.14_dec_1999"> <h3><span class="link">14 Dec 1999</span></h3> <p> <a href="/boost/operators.hpp">Operators.hpp</a> <a href="/libs/utility/operators.htm">documentation</a> improved. </p> </div> <div id="old_versions.13_dec_1999"> <h3><span class="link">13 Dec 1999</span></h3> <p> Added iterator operators and helpers to <a href="/libs/utility/operators.htm">header operators.hpp</a>, together with an iterator test program. This header is maturing into something really useful for building arithmetic or iterator user-defined types, so look it over even if you browsed one of the earlier versions. </p> </div> <div id="old_versions.11_dec_1999"> <h3><span class="link">11 Dec 1999</span></h3> <p> Added next() and prior() to <a href="/libs/utility/utility.htm">header utility.hpp</a>. </p> </div> <div id="old_versions.8_dec_1999"> <h3><span class="link">8 Dec 1999</span></h3> <p> Minor improvements to the <a href="/libs/smart_ptr/index.html">smart pointer</a> library: <code><span class="keyword">operator</span> <span class="special">==</span></code>, <code><span class="keyword">operator</span> <span class="special">!=</span></code>, and specializations for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">swap</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span></code> now provided. </p> </div> <div id="old_versions.18_nov_1999"> <h3><span class="link">18 Nov 1999</span></h3> <p> Minor improvements made to the <a href="/libs/utility/operators.htm">Operator templates</a>. </p> </div> <div id="old_versions.15_nov_1999"> <h3><span class="link">15 Nov 1999</span></h3> <p> <a href="/libs/utility/operators.htm">Operator templates</a> have been added to the <a href="/libs/utility/index.html">utility</a> library. </p> </div> <div id="old_versions.11_oct_1999"> <h3><span class="link">11 Oct 1999</span></h3> <p> Minor <a href="/libs/smart_ptr/index.html">smart pointer</a> library and <a href="/boost/config.hpp">config.hpp</a> changes to improve portability. </p> </div> <div id="old_versions.26_sep_1999"> <h3><span class="link">26 Sep 1999</span></h3> <p> Minor updates to several libraries: * <code><span class="identifier">polymorphic_downcast</span><span class="special">&lt;&gt;</span></code> in the <a href="/libs/utility/index.html">utility</a> library <a href="/boost/cast.hpp">cast.hpp</a> header now works for multiple inheritance cases. * <code><span class="identifier">shared_ptr</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">shared_array</span><span class="special">&lt;&gt;</span></code> <code><span class="identifier">swap</span><span class="special">()</span></code> functions added in the <a href="/libs/smart_ptr/index.html">smart pointer</a> library. * <span class="library"><a href="/boost/timer.hpp">timer.hpp</a></span> <code><span class="identifier">elapsed_max</span><span class="special">()</span></code> and <code><span class="identifier">elapsed_min</span><span class="special">()</span></code> functions added to the <a href="/libs/timer/index.html">timer</a> library. * <span class="library"><a href="/libs/integer/index.html">integer</a></span> library bin_ubin.hpp changes to eliminate compiler warning messages. * <a href="/boost/config.hpp">config.hpp</a> minor changes to aid library developers. No impact on library users. </p> </div> <div id="old_versions.3_sep_1999"> <h3><span class="link">3 Sep 1999</span></h3> <p> The cast functions in the <a href="/libs/utility/index.html">utility</a> library were considerably simplified. </p> </div> <div id="old_versions.1_sep_1999"> <h3><span class="link">1 Sep 1999</span></h3> <p> The cast functions initially in <a href="/boost/utility.hpp">utility.hpp</a> have been moved to <a href="/boost/cast.hpp">cast.hpp</a>, still in the <a href="/libs/utility/index.html">utility</a> library. </p> </div> <div id="old_versions.1_sep_1999"> <h3><span class="link">1 Sep 1999</span></h3> <p> The category &quot;Experimental&quot; has been added to the <a href="/libs/libraries.htm">library</a> page. The <a href="/libs/integer/index.html">integer</a> library is the first entry. </p> </div> <p> ...And the remainder are lost to the mists of time (for now, anyway).... </p> </div>