Version 1.53.0
Version 1.53.0
February 4th, 2013 18:29 GMT
Platform | File |
---|---|
unix | boost_1_53_0.tar.bz2 |
boost_1_53_0.tar.gz | |
windows | boost_1_53_0.7z |
boost_1_53_0.zip |
New Libraries
-
Atomic: C++11-style
atomic<>
, from Helge Bahmann, maintained by Tim Blechmann. -
Coroutine: Coroutine library, from Oliver Kowalke.
-
Lockfree: Lockfree data structures, from Tim Blechmann.
-
Multiprecision: Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos.
-
Odeint: Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky.
News
This release contains a fix for ticket #7743, in Boost.Locale. For more details, see the security notice.
Updated Libraries
-
Asio:
-
Fixed some 64-to-32-bit conversion warnings (#7459).
-
Fixed some small errors in documentation and comments (#7761).
-
Fixed an error in the example embedded in
basic_socket::get_option
's documentation (#7562). -
Changed to use
_snwprintf
to address a compile error due to the changedswprintf
signature in recent versions of MinGW (#7373). -
Fixed a deadlock that can occur on Windows when shutting down a pool of
io_service
threads due to running out of work (#7552). -
Enabled the
noexcept
qualifier for error categories (#7797). -
Changed UNIX domain socket example to treat errors from
accept
as non-fatal (#7488). -
Added a small block recycling optimisation to improve default memory allocation behaviour.
-
-
Bimap:
-
Refactor map_view_iterator to improve error messages.
-
Fixed replace_(left/right/key/data) bug when using relations with info.
-
Fixed vector_of and list_of views
assign(size_type,value_type)
bug. -
Fixed vector_of views
operator[](size_type)
andat(size_type)
functions return value.
-
-
Chrono:
-
Deprecated:
-
The chrono i/o version included in Boost.Chrono 1.2.x has been completly refactored in version 2.0.0
-
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.
-
chrono I/O: The __duration_punct<> 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.
-
When BOOST_CHRONO_VERSION==2 the preceding deprecated functions are not available.
-
-
-
Container:
-
Fixed bug #7650.
-
Improved
vector
's insertion performance. -
Changed again experimental multiallocation interface for better performance (still experimental).
-
Added no exception support for those willing to disable exceptions in their compilers.
-
Fixed GCC -Wshadow warnings.
-
Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
-
-
Context:
-
Support for iOS on ARM and MacOS X on x86 (32bit) added.
-
Support for SEH Overwrite Protection on Win32.
-
-
Geometry:
-
Bugfixes
-
avoid generating output polygons with interior rings below minimum size (e.g. one or two points)
-
geometry::disjoint
for degenerate segments (patched by Karsten Ahnert) -
problem in
geometry::difference
for missing handling tangency, reported by H2 -
fixed
geometry::for_each
for use with Lambda's -
fixed
geometry::comparable_distance
point-linestring (and -range, -polygon)
-
-
Additional functionality
-
combinations for
geometry::disjoint
: point/ring, point/polygon, point/multi_polygon -
combinations for
geometry::intersects
: point/ring, point/polygon, point/multi_polygon
-
-
Internal changes
-
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)
-
fixes in unit tests
-
-
-
Graph:
-
Added support for reading from GraphML files containing multiple graphs.
-
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.
-
Added VF2 subgraph isomorphism algorithm (contributed by Flavio De Lorenzi).
-
Interprocess:
-
Fixed GCC -Wshadow warnings.
-
Experimental multiple allocation interface improved and changed again. Still unstable.
-
Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
-
ABI breaking: changed node pool allocators internals for improved efficiency.
-
Fixed bug #7795.
-
-
Math:
-
Fixed mistake in calculating pooled standard deviation in two-sample students t example #7402.
-
Improve accuracy in some corner cases of cyl_bessel_j and gamma_p/gamma_q thanks to suggestions from Rocco Romeo.
-
Improve accuracy in Bessel J and Y with integer orders thanks to suggestions from Rocco Romeo.
-
Polygon:
-
Internal changes:
-
refactored point/segment/interval data/concept/traits.
-
added unit tests for point and interval data/concept/traits.
-
simplified
transform.hpp
to operate only in 2D. -
removed point_3d data/concept/traits.
-
-
Smart Pointers:
-
New Features:
-
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 'make_shared and allocate_shared for arrays' page for more information.
-
shared_ptr
can now be used to hold a pointer to a dynamically allocated array. This is accomplished by using an array type (T[]
orT[N]
) as the template parameter. -
Smart pointers now use
explicit operator bool
on C++11 compilers. This can break code that passes a smart pointer to a function taking abool
, or that returns a smart pointer from a function with abool
return type. Please usep != 0
or!!p
in such cases.
-
-
-
Thread:
-
Deprecated features:
-
Deprecated features since boost 1.53 will be available only until boost 1.58.
-
C++11 compliance: packaged_task<R> is deprecated, use instead packaged_task<R()>.
-
#7537 deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition
-
-
New Features:
-
#6270 C++11 compliance: Add thread constructor from movable callable and movable arguments
-
#7279 C++11 compliance: Add noexcept in system related functions
-
#7280 C++11 compliance: Add promise::...at_thread_exit functions
-
#7281 C++11 compliance: Add ArgTypes to packaged_task template.
-
#7282 C++11 compliance: Add packaged_task::make_ready_at_thread_exit function
-
#7412 C++11 compliance: Add async from movable callable and movable arguments
-
#7413 C++11 compliance: Add async when the launch policy is deferred.
-
#7414 C++11 compliance: future::get post-condition should be valid()==false.
-
#7422 Provide a condition variable with zero-overhead performance penality.
-
#7444 Async: Add make_future/make_shared_future.
-
#7540 Threads: Add a helper class that join a thread on destruction.
-
#7541 Threads: Add a thread wrapper class that joins on destruction.
-
#7575 C++11 compliance: A future created by async should "join" in the destructor.
-
#7587 Synchro: Add strict_lock and nested_strict_lock.
-
#7588 Synchro: Split the locks.hpp in several files to limit dependencies.
-
#7590 Synchro: Add lockable concept checkers based on Boost.ConceptCheck.
-
#7591 Add lockable traits that can be used with enable_if.
-
#7592 Synchro: Add a null_mutex that is a no-op and that is a model of UpgardeLockable.
-
#7593 Synchro: Add a externally_locked class.
-
#7594 Threads: Allow to disable thread interruptions.
-
-
Fixed Bugs:
-
#7464 BOOST_TEST(n_alive == 1); fails due to race condition in a regression test tool.
-
#7657 Serious performance and memory consumption hit if condition_variable methods condition notify_one or notify_all is used repeatedly.
-
#7665 this_thread::sleep_for no longer uses steady_clock in thread.
-
#7668 thread_group::join_all() should check whether its threads are joinable.
-
#7669 thread_group::join_all() should catch resource_deadlock_would_occur.
-
#7671 Error including boost/thread.hpp header on iOS.
-
#7672 lockable_traits.hpp syntax error: "defined" token misspelled.
-
#7798 boost::future set_wait_callback thread safety issues.
-
#7808 Incorrect description of effects for this_thread::sleep_for and this_thread::sleep_until.
-
#7812 Returns: cv_status::no_timeout if the call is returning because the time period specified by rel_time has elapsed, cv_status::timeout otherwise.
-
#7874 compile warning: thread.hpp:342: warning: type attributes are honored only at type definition.
-
#7875 BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not be enabled by default.
-
#7882 wrong exception text from condition_variable::wait(unique_lock<mutex>&).
-
#7890 thread::do_try_join_until() is missing a return type.
-
-
-
Unordered:
-
Remove support for the old pre-standard variadic pair constructors, and equality implementation. Both have been deprecated since Boost 1.48.
-
More internal implementation changes, including a much simpler implementation of
erase
, and removed more deprecated config macros.
-
-
Utility:
-
Added string_ref, a non-owning reference to a contiguous sequence of characters.
-
Updated Tools
-
Boost Build System:
-
Qt5 toolset
-
improved rcc support (#7576)
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2
-
GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.2
-
Intel: 11.1, 12.1
-
LLVM Clang: 2.8
-
LLVM Clang, with libc++: 3.2
-
-
OS X:
-
GCC: 4.4.7
-
GCC, C++11 mode: 4.4.4
-
Intel: 11.1, 12.0
-
-
Windows:
-
Visual C++: 9.0, 10.0
-
-
FreeBSD:
-
GCC: 4.2.1, 32 and 64 bit
-
Boost's additional test compilers include:
-
Linux:
-
Cray: 4.6.1
-
Clang: from subversion
-
LLVM Clang, with libc++: 3.2
-
GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
-
GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.1
-
Intel, C++11 mode: 13.0.1
-
Visual Age:
-
-
OS X:
-
Clang: from subversion
-
Clang, C++11 mode: from subversion
-
Intel: 11.1, 12.0
-
GCC: 4.4.7
-
GCC, C++11 mode: 4.4.4
-
-
Windows:
-
Visual C++: 10.0, 11.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition: V12.1.0.1
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.