Version 1.50.0
Version 1.50.0
June 28th, 2012 12:48 GMT
Platform | File |
---|---|
unix | boost_1_50_0.tar.bz2 |
boost_1_50_0.tar.gz | |
windows | boost_1_50_0.7z |
boost_1_50_0.zip |
Patches
-
Boost.Unordered patch - Fixes a bug when compiled using a C++11 compiler, but with a C++03 allocator. When inserting elements,
allocator_traits
detects that the node can be constructed using an accidental implicit conversion which causes several problems. -
Locale Patch - Fixes a bug which causes
boost::locale::utf::utf_traits
to accept some invalid UTF-8 sequences, which is a possible security flaw.
New Libraries
-
Algorithm: 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
-
Functional/OverloadedFunction: Overload different functions into a single function object, from Lorenzo Caminiti.
-
LocalFunction: Program functions locally, within other functions, directly within the scope where they are needed, from Lorenzo Caminiti.
-
Utility/IdentityType: Wrap types within round parenthesis so they can always be passed as macro parameters, from Lorenzo Caminiti.
Updated Libraries
-
Asio:
-
Changed the
epoll_reactor
backend to do lazy registration forEPOLLOUT
events. -
Fixed the
epoll_reactor
handling of out-of-band data, which was broken by an incomplete fix in the last release. -
Fixed
windows::object_handle
so that it works with Windows compilers that support C++11 move semantics (such as g++). -
Improved the performance of strand rescheduling.
-
Added support for g++ 4.7 when compiling in C++11 mode (#6620).
-
Fixed a problem where
signal_set
handlers were not being delivered when theio_service
was constructed with aconcurrency_hint
of 1 (#6657).
-
-
Concept Check:
-
Fixed:
-
#6738 Shadowed variable warning.
-
-
-
Filesystem:
-
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.
-
Add constexpr value_type preferred_separator to class path.
-
Fix #5118,
replace_extension
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 #5118 have been added. -
Fix #3737, Boost.Filesystem does not compile on Windows Mobile. On Windows,
<sys/stat.h>
is no longer included. -
Fix #4065, Boost Filesystem lexicographic path comparison inconsistent. This required multiple source code bug fixes and code cleanup, correcting problems not related to lexicographical issues.
-
Add class path member function compare for consistency with std::string.
-
Tighten
BOOST_FILESYSTEM_DYN_LINK
andBOOST_FILESYSTEM_STATIC_LINK
logic infilesystem/config.hpp
so that one or the other is always defined, and both being defined is a#error
. -
Add
path::operator+=
and concat functions to tack on things like suffixes or numbers. Suggested by Ed Smith-Rowland and others. -
Fix #6809, Implementation of
filesystem::rename()
method for MS Windows is wrong, by addingMOVEFILE_COPY_ALLOWED
to deal with renames across drives, volumes, file systems. Fix has no effect on non-Windows systems. -
Fix #6819, 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.
-
Fix #6932, create_directories throws exception even if
error_code
is specified.
-
-
Geometry:
-
Fixed Bugs:
-
the return type of comparable projected point strategy for integer points was wrong (integer), fixed
-
several robustness issues in intersection of segments and polygons, fixed
-
invalid intersection output is filtered out
-
disjoint for multi_polygon's might incorrectly return true, fixed
-
-
Additional functionality
-
added algorithm "touches" (OGC SF compliant) for *polygon/*polygon
-
-
-
Graph:
-
Fixed Bugs:
-
#4622 clear_vertex on a vertex with a self-loop can cause a segmentation fault.
-
#6033 Lowpoint map calculated by biconnected_components(...) is sometimes wrong.
-
#6242 isomorphism doesn't reset mapping.
-
#6435 cube_topology documentation should say 3D, not 2D.
-
#6520 small_world_1_70_6_0p02.png is broken in documentation of graph_parallel.
-
#6564 BGL copy constructor for subgraph does not track local vertices/edges.
-
#6573 BGL: boost::isomorphism routine fails with large graphs.
-
#6583 Dijkstra Visitor Concept docs probably show wrong type for variable.
-
#6647 BGL strong_components do not compile on MSVC 8.
-
#6656 Dependent type in subgraph used without typename.
-
#6707 is_straight_line_drawing.hpp missing #include <map>.
-
#6708 Make bool boost::intersects() in is_straight_line_drawing.hpp inline?
-
#6739 Cannot use write_graphviz_dp with a constified subgraph.
-
#6858 boost::get() calls wrongly resolved by g++.
-
#6892 VertexIndexGraph concept not required for bron_kerbosch_all_cliques().
-
Other bugs and warnings not in Trac.
-
-
-
Lexical cast:
-
boost::bad_lexical_cast
exception is now globaly visible and can be catched even if code is compiled with -fvisibility=hidden -
Now it is possible to compile and use library with disabled exceptions #5800
-
Better performance, less memory usage and bugfixes for
boost::iterator_range<character_type*>
conversions
-
-
Math:
-
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.
-
Added the Owen's T function and Skew Normal distribution written by Benjamin Sobotta.
-
Added Hankel functions.
-
Corrected issue #6627 nonfinite_num_put formatting of 0.0 is incorrect based on a patch submitted by K R Walker.
-
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
long double
does not. So for example 128-bit rational approximations will work with UDT's and do the right thing, even thoughlong double
may be only 64 or 80 bits. -
Fixed issue in
bessel_jy
which causes Y[sub 8.5](4[pi]) to yield a NaN.
-
-
MSM:
-
eUML : better syntax for front-ends defined with eUML as transition table only. Caution: Breaking Change!https://www.boost.org/doc/libs/1_50_0/libs/msm/doc/HTML/ch03s04.html#eUML-composite-table
-
Bugfix: graph building was only working if initial_state defined as a sequence.
-
Bugfix: flags defined for a Terminate or Interrupt state do not break the blocking function of these states any more.
-
Bugfix: multiple deferred events from several regions were not working in every case.
-
Bugfix: visitor was passed by value to submachines.
-
Bugfix: no_transition was not called for submachines who send an event to themselves.
-
Fixed warnings with gcc.
-
-
Program Options:
-
Improved error reporting (Patch from Leo Goodstadt).
-
Support for customizing name of option's value in help messages (#4781)
-
Fixed compilation with gcc 4.7 (#6790).
-
-
Proto:
-
Use
decltype
-basedresult_of
if and only if the compiler implements N3276. -
For C++11, force parameter to
mpl::eval_if_c
andmpl::if_c
to bebool
. -
Disable '__forceinline not inlined' warning on msvc.
-
-
ScopeExit:
-
New Features:
-
Use variadic macros to specify captures as commas-separated lists (but kept preprocessor sequence syntax for backward compatibility).
-
Capture the object in scope using
this_
. -
Support empty captures using
void
. -
Implicit lambda-like captures using
BOOST_SCOPE_EXIT_ALL
on compilers that support C++11 lambda functions.
-
-
-
Thread:
-
New Features:
-
#1850 Request for unlock_guard to compliment lock_guard.
-
#2637 Request for shared_mutex duration timed_lock and timed_lock_shared.
-
#2741 Proposal to manage portable and non portable thread attributes.
-
#3567 Request for shared_lock_guard.
-
#6194 Adapt to Boost.Move.
-
#6195 c++11 compliance: Provide the standard time related interface using Boost.Chrono.
-
#6217 Enhance Boost.Thread shared mutex interface following Howard Hinnant proposal.
-
#6224 c++11 compliance: Add the use of standard noexcept on compilers supporting them.
-
#6226 c++11 compliance: Add explicit bool conversion from locks.
-
#6228 Add promise constructor with allocator following the standard c++11.
-
#6230 c++11 compliance: Follows the exception reporting mechanism as defined in the c++11.
-
#6266 Breaking change: thread destructor should call terminate if joinable.
-
#6269 Breaking change: thread move assignment should call terminate if joinable.
-
#6272 c++11 compliance: Add thread::id hash specialization.
-
#6273 c++11 compliance: Add cv_status enum class and use it on the conditions wait functions.
-
#6231 Add BasicLockable requirements in the documentation to follow c++11.
-
#6342 c++11 compliance: Adapt the one_flag to the c++11 interface.
-
#6671 upgrade_lock: missing mutex and release functions.
-
#6672 upgrade_lock:: missing constructors from time related types.
-
#6675 upgrade_lock:: missing non-member swap.
-
Added missing packaged_task::result_type and packaged_task:: constructor with allocator.
-
Added packaged_task::reset()
-
-
Fixed Bugs:
-
#2575 Bug- Boost 1.36.0 on Itanium platform.
-
#4345 thread::id and joining problem with cascade of threads.
-
#4921 BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be documented.
-
#5013 documentation: boost::thread: pthreas_exit causes terminate().
-
#5173 boost::this_thread::get_id is very slow.
-
#5351 interrupt a future get boost::unknown_exception.
-
#5516 Upgrade lock is not acquired when previous upgrade lock releases if another read lock is present.
-
#5990 shared_future<T>::get() has wrong return type.
-
#6174 packaged_task doesn't correctly handle moving results.
-
#6222 Compile error with SunStudio: unique_future move.
-
#6673 shared_lock: move assign doesn't works with c++11.
-
#6674 shared_mutex: try_lock_upgrade_until doesn't works.
-
Fix issue signaled on the ML with task_object(task_object const&) in presence of task_object(task_object&&)
-
-
-
Unordered:
-
Fix equality for
unordered_multiset
andunordered_multimap
. -
Implement
reserve
(#6857). -
Fix namespace issue with bcp (#6905).
-
Fix Sun workarounds (#6784).
-
Some internal changes to bucket allocation.
-
See the change log for full details.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Intel: 11.1
-
LLVM Clang 2.8
-
GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
-
OS X:
-
Intel: 11.1
-
GCC: 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 8.0, 9.0, 10.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0
-
-
FreeBSD:
-
GCC 4.2.1, 32 and 64 bit
-
-
QNX:
-
QCC, C++0x mode: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
Boost's additional test compilers include:
-
Linux:
-
Clang from subversion
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2
-
GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.3, 4.6.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0, 12.1
-
Visual Age 10.1
-
-
OS X:
-
Clang from subversion
-
Intel 11.1, 12.0
-
GCC: 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 8.0, 10.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.4, 4.7.0
-
GCC, C++0x mode, mingw: 4.5.2
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition, V12.1.0.0
-
-
FreeBSD:
-
GCC 4.2.1, 32 and 64 bit
-
-
Solaris:
-
Sun 5.10
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.