New libraries
Predef adds compile‑time detection of compilers, architectures, operating systems, and libraries.
Predef adds compile‑time detection of compilers, architectures, operating systems, and libraries.
atomic<> now uses GCC __atomic* intrinsics, adds 64‑bit and 128‑bit ops, and internal lock pool padding reduces false sharing.
Added 16 dependency additions across 9 libraries and removed 5 dependencies across 5 libraries; atomic drops its Boost.Thread requirement.
Numerous bug fixes across many libraries, including serialization, has_member_function_callable_with, and handler tracking, improve stability.
future<> gets constexpr constructors, make_future improvements, and BOOST_LOG_WITHOUT_DEFAULT_FACTORIES reduces binary size.
| Platform | File | SHA256 Hash |
|---|---|---|
|
Unix
|
boost_1_55_0.tar.bz2 |
|
| boost_1_55_0.tar.gz |
|
|
|
Windows
|
boost_1_55_0.7z |
|
| boost_1_55_0.zip |
|
November 11th, 2013 19:50 GMT
Support was removed from Config for some very old versions of compilers. The new minimum requirements are:
Note: This is just the mininimum requirements for Config. Some Boost libraries may have higher mininimum requirements and not support all platforms or compilers.
Other compilers are currently unchanged, but we are considering removing support for some other old compilers. Candidates for removal are:
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.
Visual Studio 2013 was released quite late in the release process, so there exist several unresolved issues. These include:
has_member_function_callable_with
from Boost.Container's allocator_traits
causes a compile error (#9332).
ex_scoped_thread
compile fails (#9333).
io_service,
strand, buffers,
composed operations, timers, etc., should all work as normal.
cancel() function is not supported
for sockets. Asynchronous operations may only be cancelled
by closing the socket.
null_buffers
are not supported.
tcp::no_delay and socket_base::keep_alive options are supported.
async_connect
were not correctly propagated through to the completion handler (#8795).
io_service.
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
(#8933).
async_wait
on a signal that is already raised (#8738).
async_write_at operations (#8669).
HANDLE
backend to treat ERROR_MORE_DATA
as a non-fatal error when returned by GetOverlappedResult
for a synchronous read (#8722).
generic
as a keyword. Added a workaround that renames the namespace to cpp_generic when those language
extensions are in effect.
async_result support in Boost 1.54.
In particular, the buffered stream templates have been updated so
that they adhere to current handler patterns (#9000, #9001).
use_future
support for Microsoft Visual Studio 2012.
std::min
in the Windows IOCP backend to avoid a dependency on the <algorithm> header (#8758).
BOOST_ATOMIC_INT128_LOCK_FREE
macro.
atomic<> based on GCC __atomic*
intrinsics available since GCC 4.7.
BOOST_NO_EXCEPTIONS.
convert_impl
for map_tag
void 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 boost::no_property instead.
finish_edge
visitor event point in depth-first search; the change should be backward-compatible
with visitors that do not have that member function.
breadth_first_visit,
breadth_first_search,
dijkstra_shortest_paths,
and dijkstra_shortest_paths_no_init.
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.
xxx_dont_splay functions from splay
containers. Deprecated splay_set_hook
from splay containers, use bs_set_hook
instead. Both will be removed in Boost 1.56.
std::bad_alloc exceptions are now are
not converted to boost::bad_lexical_cast
#8966.
std::numeric_limits
specializations if they are required for conversion. Use BOOST_HAS_INT128 for detecting
128 bit integers support #8790.
BOOST_LOG_WITHOUT_DEFAULT_FACTORIES.
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.
boost/log/utility/intrusive_ref_counter.hpp,
boost/log/utility/explicit_operator_bool.hpp, boost/log/utility/empty_deleter.hpp.
These headers will be removed in future releases. The contents
of these headers were moved to other libraries.
timer
attribute generating incorrect time readings on Windows on
heavy thread contention when QueryPerformanceCounter
API was used.
long
double even when the platform
has no standard library long
double support #8940.
multi_index_container
is now efficiently movable.
std::unique_ptr<T>) supported. This includes
insertion of a range [first,last) where the iterators point
to a type that is convertible to that of the element: no copy
construction happens in the process.
shrink_to_fit().
phoenix::function
constructor is constexpr.
.property(name, pm) calls. Example:
boost::dynamic_properties() .property("color", color_map) .property("pos", position_map)
boost::make_iterator_property_map( <pointer or container .begin() iterator>, get(boost::vertex_index, <graph object>))(Note: the lack of namespace qualification on get() in this code is necessary for generic code). Outside a graph context, the closest equivalent is:
boost::make_iterator_property_map( <pointer>, boost::typed_identity_property_map<std::size_t>())There are commented-out static assertions on lines 151 and 159 of
<boost/property_map/property_map.hpp> that can be un-commented to find
deprecated uses of pointers in user code.
lowest and
max_digits10, 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.
boost/smart_ptr/intrusive_ref_counter.hpp header, extracted from Boost.Log.
The header implements a mixin base class that adds support for intrusive_ptr to user's classes.
shared_future::then.
is_copy_contructible
trait #8802.
boost::result_of can be set to use TR1
protocol by default and fall back to decltype
if the function object does not support it (like C++11 lambda functions,
for example). Define BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK
configuration macro to enable this mode.
boost::base_from_member
class template. The class implements perfect forwarding for the constructor
arguments, if the compiler supports rvalue references, variadic templates
and function template default arguments.
boost/utility/explicit_operator_bool.hpp and boost/utility/empty_deleter.hpp
headers, which were extracted from Boost.Log. The headers implement
utilities for defining explicit conversion operators to bool and a deleter function object
that does nothing, respectively.
Boost's primary test compilers are:
Boost's additional test compilers include:
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.
Boost is publicly released three times a year in April, August, and December. Each release has updates to existing libraries, and any new libraries that have passed the rigorous acceptance process.
Achievements capture your contributions to Boost — automatically tracked where possible, manually verified for high-value activities.
Badges recognize your journey on Boost — from the contributions you make to the time you've invested and the milestones you've reached along the way.