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